Skip to main content
Webhooks são a única forma de receber alguma coisa do WhatsApp: mensagens, recibos, mudanças de conexão. O Wabox faz um POST HTTPS com JSON para a URL que você configurar, uma URL por tipo de evento.

Configuração

No painel, em Webhooks e configurações gerais, ou pela API:
Pode ser a mesma URL para tudo (use type no corpo ou o header X-Wabox-Event para rotear) ou uma por tipo. null desliga o tipo. PUT /webhooks/{type} com { "value": "https://..." } altera um só. Os filtros decidem quais mensagens chegam.

Anatomia de uma entrega

Todo payload tem quatro campos em comum:

Garantias de entrega

  • Ordem: entregas de uma mesma instância saem uma de cada vez, na ordem em que os eventos aconteceram. Instâncias diferentes são paralelas.
  • Tentativas: você tem 10 s para responder 2xx. Caso contrário o Wabox tenta de novo após 10 s, 1 min, 10 min, 1 h e 6 h. Depois disso o evento é descartado e fica registrado como falha nos Logs de webhook do painel.
  • Pelo menos uma vez: uma entrega pode repetir (por exemplo, você respondeu 200 mas a conexão caiu antes de o Wabox ler). Guarde event_id e ignore repetidos.
  • Sem conteúdo em repouso: o Wabox não guarda o conteúdo das mensagens; se todas as tentativas falharem, a mensagem não é recuperável pela API. Mantenha o endpoint disponível.
Responda antes de processar. Se o seu handler demora (chama outra API, grava em banco lento), coloque o evento em uma fila interna e devolva 200 na hora. Um endpoint lento vira reenvios, que viram duplicidade.

Segurança

Verifique X-Wabox-Signature em toda entrega — é o que garante que veio do Wabox e não de alguém que descobriu a sua URL. Passo a passo com código em Assinatura dos webhooks.

Testando

  • Sem servidor público: use um túnel (ngrok, Cloudflare Tunnel) apontando para a sua máquina.
  • Para ver o payload cru: qualquer serviço de “request bin”.
  • No painel, Logs de webhook mostra cada tentativa com status HTTP, tempo de resposta e o corpo enviado, e permite reenviar manualmente.
  • A aba Testes da instância dispara mensagens reais para um número seu e acompanha delivery e message_status — veja Diagnóstico.