Configurar o webhook no Facebook App
1
Acesse o App Dashboard da Meta
Vá para developers.facebook.com → seu App → WhatsApp → Configurações → Webhook.
2
Informe a URL de callback
Cole a URL do endpoint que vai receber os eventos. Em produção, use sempre HTTPS com certificado válido.Se você estiver testando localmente, use ngrok ou Hookdeck para expor seu servidor:
3
Defina o Verify Token
Escolha uma string aleatória e segura (ex.:
meu_token_secreto_123). A Meta faz um GET no seu endpoint na hora da configuração com os parâmetros hub.mode, hub.verify_token e hub.challenge. Seu servidor deve responder com o valor de hub.challenge se o token bater.Node.js
4
Selecione os campos
Ative pelo menos messages para receber mensagens e status. Outros campos úteis:
message_template_status_update, phone_number_quality_update.Diferença entre webhook da Meta e webhook da Timely
Se você usa a Timely como intermediário (o caso padrão), não precisa registrar um webhook na Meta — a Timely faz isso por você. Esta documentação serve para casos em que você conecta a WABA diretamente ou precisa depurar o fluxo completo.
Validação da assinatura
A Meta assina cada requisição com o App Secret do seu Facebook App usando HMAC-SHA256. O header enviado éX-Hub-Signature-256.
Node.js
Payload: mensagem de texto recebida
Payload: status de mensagem enviada
Os status chegam quando a mensagem muda de estado:sent → delivered → read.
Payload: mensagem de mídia (imagem, áudio, documento)
GET https://graph.facebook.com/v19.0/{MEDIA_ID} com seu token de acesso. A Timely.ai faz esse download automaticamente e armazena a URL pública no campo media_url da mensagem normalizada.
Campos importantes do payload
Próximos passos
Webhooks da plataforma
Entenda os webhooks outbound normalizados da Timely.ai.
Canais — API Reference
Gerencie canais WhatsApp via API.