O que é um webhook?
É uma URL HTTPS no seu sistema que recebe avisos automáticos da Notifique. Em vez de ficar perguntando “já entregou?” para a API, você espera o aviso chegar. Pense como notificação push, só que para o seu backend.Para que serve?
Com webhooks você pode:- Saber na hora quando uma mensagem foi enviada, entregue, lida ou falhou
- Automatizar pedidos, CRM, financeiro e bots sem olhar o painel
- Processar mensagens que o cliente mandou (WhatsApp, Telegram, SMS)
- Monitorar conexão de instâncias (QR, conectado, desconectado)
- Rastrear cliques em links curtos e eventos de Forms
Quando usar?
Como configurar
1. Prepare seu endpoint
Crie uma rota HTTPS que aceita POST com JSON e responde 2xx rápido. Exemplo:https://meusite.com/webhooks/notifique
Se o processamento for pesado, enfileire do seu lado e responda 200 logo. É como atender a campainha e resolver a visita depois.
2. Cadastre no painel
Abra Developer → Webhooks, crie um webhook e marque os eventos que importam para você. Também dá para cadastrar pela API com escoposwebhooks:manage e webhooks:read. Precisa de chave? Veja Chaves de API.
secret da resposta. Você usa ele para validar cada POST.
Cabeçalhos HTTP customizados
Você pode enviar até 10 cabeçalhos emheaders. Os valores são guardados criptografados e enviados na verificação inicial, nas entregas e nas retentativas.
Host, Content-Length, Content-Type, Transfer-Encoding, Connection e X-Notifique-* são reservados. Em GET, os nomes aparecem com valores mascarados (por exemplo, Bearer ********). Use PATCH /v1/webhooks/{id} para alterar cabeçalhos; envie {"headers": {}} para remover todos. No PUT, os valores mascarados podem ser reenviados para manter o segredo atual.
Validação da URL ao cadastrar
Ao cadastrar no painel ou via API, a Notifique envia um POST de verificação com corpo JSON na URL antes de aceitar o webhook.
Se o endpoint exige autenticação, responda 401 ou 403 na verificação. A verificação também envia
headers customizados, X-Notifique-Signature e X-Notifique-Timestamp; nas entregas reais, valide a assinatura.
3. Valide a assinatura
Cada POST trazX-Notifique-Signature e X-Notifique-Timestamp. Calcule HMAC-SHA256 do secret com {timestamp}.{body bruto} e rejeite timestamps fora de 5 minutos.
Detalhes na seção Headers e assinatura abaixo.
4. Trate retentativas
Se seu endpoint falhar, tentamos de novo em 5 min, 30 min e 2 h. Responda 2xx rápido.Sandbox x Produção
- Sandbox (
sk_test_...): mesmos nomes de evento; o payload trazsandbox: true - Produção (
sk_live_...): eventos reais do tráfego
Formato do payload
Todas as requisições são POST comContent-Type: application/json. O corpo segue a estrutura:
Headers e assinatura
- Cálculo HMAC:
hash = HMAC-SHA256(secret, timestamp + "." + body)(body = corpo bruto do POST). - Anti-replay: Rejeite requisições com timestamp fora de uma janela (ex.: 5 minutos).
Mensagens recebidas (inbound)
Para processar o que o cliente mandou (WhatsApp, Telegram, SMS):- Marque o evento no webhook
- Configure inbound em Configurações → Mensagens recebidas (EN: Settings → Received messages)
inboundId na API. Guia completo: Mensagens recebidas e respostas.
Boas práticas
- HTTPS sempre na URL cadastrada
- Responda 2xx rápido e processe em background
- Valide a assinatura em todo POST
- Marque só os eventos que sua integração consome
Eventos por canal
Cada canal tem seus próprios eventos. Marque só o que precisa:Envio, entrega, inbound, instância e chamadas
SMS
Envio, DLR, MO e respostas
Telegram
Envio, inbound e instância
Envio, comentários e inbound
Envio, abertura, clique e bounce
Push
Envio, entrega e clique
RCS
Envio, entrega e falha
Voz
Chamadas e gravações
Forms
Inscrição, confirmação e cancelamento
Links curtos
Cliques e conversões
Números de telefone
Ciclo de vida do número contratado
Automações
Ativar, pausar e lifecycle de runs
Templates (Meta)
Aprovação, rejeição e categoria
Evento de reputação do workspace (
trust.score_changed): veja Trust Factor.Próximos passos
- Comece aqui: envie sua primeira mensagem
- Chaves de API: credenciais para cadastrar webhooks via API

