Skip to main content
Webhook é a campainha do seu servidor: quando algo acontece na Notifique (mensagem enviada, entregue, resposta do cliente…), a gente toca a campainha com um POST JSON na sua URL.

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 escopos webhooks:manage e webhooks:read. Precisa de chave? Veja Chaves de API.
Guarde o secret da resposta. Você usa ele para validar cada POST.

3. Valide a assinatura

Cada POST traz X-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 traz sandbox: true
  • Produção (sk_live_...): eventos reais do tráfego
Simule eventos em Developer → Caixa sandbox. Mais em Sandbox, o que é?.

Formato do payload

Todas as requisições são POST com Content-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):
  1. Marque o evento no webhook
  2. Configure inbound em Settings → Received messages
O webhook avisa com um resumo. Para baixar mídia (áudio, imagem, documento) no WhatsApp, use o inboundId na API. Guia completo: Mensagens recebidas e respostas.

Boas práticas

  1. HTTPS sempre na URL cadastrada
  2. Responda 2xx rápido e processe em background
  3. Valide a assinatura em todo POST
  4. Marque só os eventos que sua integração consome
Mais detalhes: Segurança e Confiabilidade.

Eventos por canal

Cada canal tem seus próprios eventos. Marque só o que precisa:

WhatsApp

Envio, entrega, inbound e instância

SMS

Envio, DLR, MO e respostas

Telegram

Envio, inbound e instância

Instagram

Envio, comentários e inbound

E-mail

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