# Webhooks

A API Auvo notifica eventos de tarefas, tickets e ordens de serviço via
**HTTP POST autenticado** para a URL registrada pelo cliente.

## Assinar eventos

Use o grupo **WebHooks** na referência da API para criar/listar/remover
assinaturas. Cada assinatura informa:

- `url` — endpoint do cliente (HTTPS obrigatório em produção).
- `events` — lista de eventos (`task.created`, `task.updated`, `ticket.closed`...).
- `secret` — string opaca retornada na criação; use para assinar payloads.


## Formato do payload


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

## Validação de origem

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

- A diferença entre `ts` e `Date.now()` for maior que **5 minutos**.
- `v1` não bater (use comparação time-safe).


## Reentrega

- Respostas `2xx` em até **10 s** marcam a entrega como sucesso.
- Falhas ou timeout disparam retries com backoff exponencial até **24 h**.
- `X-Auvo-Delivery-Attempt` informa a tentativa atual (1..n).


## Idempotência

Use `deliveryId` para deduplicar entregas no seu lado — reentregas chegam com
o mesmo ID.