Pré-requisitos
- API Key com escopos:
webhooks:read(listar entregas e consultar detalhe) e/ouwebhooks:manage(criar, editar, deletar e reenviar entregas). - Envie a API Key em toda requisição:
- Header:
Authorization: Bearer sk_live_xxxxx - ou Header:
x-api-key: sk_live_xxxxx
- Header:
1. Listar webhooks
Lista os webhooks configurados no workspace. Opcionalmente filtre por evento. Request2. Criar webhook
Cria um novo webhook. A url é validada (formato e acessibilidade em até 3 segundos). Eventos: ex.message.sent, message.delivered, instance.qrcode, instance.connected, sms.sent, email.sent.
Request
3. Obter webhook por ID (inclui secret)
Retorna um webhook pelo ID. Inclui o campo secret (usado para assinatura HMAC). Request4. Listar entregas (deliveries)
Lista as tentativas de entrega de eventos às suas URLs. Use para ver se seus endpoints receberam os POSTs e como responderam. Request5. Obter uma entrega por ID
Retorna o detalhe de uma linha de entrega (útil para inspecionar o payload gravado e o corpo de resposta do seu servidor). Requestpayload, statusCode, response, webhook (nome, URL, enabled).
6. Reenviar uma entrega manualmente
Equivalente ao botão de reenvio no dashboard: enfileira novamente o mesmo evento para a URL do webhook. Exigewebhooks:manage e webhook habilitado (enabled: true). Útil depois de corrigir seu endpoint ou para testes.
Request
webhooks:manage.
7. Validar assinatura (HMAC)
No seu endpoint que recebe os POSTs do Notifique:- Conteúdo:
timestamp + "." + body(body bruto UTF-8). - Algoritmo: HMAC-SHA256(secret, conteúdo).
- Header:
X-Notifique-Signature: t=<timestamp>,v1=<hex>;X-Notifique-Timestamp= mesmo timestamp. Rejeite requisições com timestamp fora de uma janela (ex.: 5 minutos).
Resumo do fluxo
- POST
/v1/webhookscomname,url,events(e opcionalmenteinstanceIds) → criar webhook; guardar secret. - GET
/v1/webhooks→ listar webhooks; GET/v1/webhooks/:id→ obter um (inclui secret). - GET
/v1/webhooks/deliveries→ conferir entregas; GET/v1/webhooks/deliveries/:id→ detalhe de uma entrega; POST/v1/webhooks/deliveries/:id/resend→ reenviar manualmente (escopowebhooks:manage). - PUT
/v1/webhooks/:id→ atualizar webhook; DELETE/v1/webhooks/:id→ remover. - No seu servidor: validar assinatura HMAC com o secret em todo POST recebido.
