# Webhooks

La API Auvo notifica eventos de tareas, tickets y órdenes de servicio mediante
**HTTP POST autenticado** a la URL registrada por el cliente.

## Suscribirse a eventos

Usa el grupo **WebHooks** en la referencia de la API para crear/listar/eliminar
suscripciones. Cada suscripción incluye:

- `url` — endpoint del cliente (HTTPS obligatorio en producción).
- `events` — lista de eventos (`task.created`, `task.updated`, `ticket.closed`...).
- `secret` — cadena opaca devuelta al crear; úsala para firmar payloads.


## Formato del payload


```json
{
  "event": "task.created",
  "occurredAt": "2026-04-24T13:45:00Z",
  "deliveryId": "01J9F3T2...-",
  "data": { "taskId": 12345, "customerId": 98 }
}
```

## Validación de origen

Cada entrega incluye `X-Auvo-Signature: t=<ts>,v1=<hexHmacSha256>` calculado
como `HMAC_SHA256(secret, "${ts}.${body}")`. Rechaza si:

- La diferencia entre `ts` y `Date.now()` supera **5 minutos**.
- `v1` no coincide (usa comparación time-safe).


## Reentrega

- Respuestas `2xx` en hasta **10 s** marcan la entrega como exitosa.
- Los fallos o timeouts disparan reintentos con backoff exponencial hasta **24 h**.
- `X-Auvo-Delivery-Attempt` indica el intento actual (1..n).


## Idempotencia

Usa `deliveryId` para deduplicar entregas de tu lado: las reentregas llegan con
el mismo ID.