# Webhooks

Crea una suscripción con `POST /hooks`. Atomicat envía un POST HTTP a `target_url` cuando ocurre el evento.

```bash
curl -X POST "https://automation.atomicat-api.com/api/automation/v1/hooks" \
  -H "Authorization: Bearer $ATOMICAT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://example.com/atomicat",
    "event_type": "form_lead.created"
  }'
```

La respuesta incluye el `id` de la suscripción. No repite la URL de destino. `DELETE /hooks/{subscriptionId}` desactiva la suscripción. Las entregas se detienen.

## Eventos

| `event_type` | Cuándo se envía |
| --- | --- |
| `form_lead.created` | Se guarda un envío de formulario |
| `quiz_lead.created` | Se guarda un envío de quiz |
| `page.created` | Se crea una página |
| `page.published` | Se publica una página |
| `product.created` | Se crea un producto |
| `funnel.created` | Se crea un embudo |
| `site.created` | Se crea un sitio |
| `project.created` | Se crea un proyecto |

No hay un evento `video.uploaded`. Después de una carga en la app, consulta `GET /videos`.

`GET /hooks/sample/{eventType}` devuelve un objeto de ejemplo dentro de un arreglo. Úsalo para construir el receptor antes de suscribirte.

## Reglas de la URL

`target_url` debe ser HTTPS en un host público. Se rechazan:

- URLs `http://`
- URLs con usuario o contraseña
- `localhost`, `.local` y `.internal`
- direcciones privadas, de loopback y de enlace local, incluidas las de metadatos de la nube
- un hostname que resuelve a una de esas direcciones

El host se vuelve a comprobar justo antes de cada entrega.

## Receptor

Responde con un estado `2xx`. Trata el cuerpo como JSON. El endpoint de ejemplo muestra los campos de cada evento. Guarda el `id` del evento si necesitas ignorar una entrega repetida.
