Pular para o conteúdo principal
A WhatsApp Business API (WABA) da Meta envia eventos diretamente para um endpoint que você registra no Facebook App. Quando você conecta um número WhatsApp na Timely.ai, nossa plataforma recebe esses eventos, os processa e os transforma nos webhooks internos do workspace. Esta página documenta o formato bruto que a Meta envia — útil para depuração, integrações diretas ou quando você precisa entender o que chega antes de qualquer transformação.

Configurar o webhook no Facebook App

1

Acesse o App Dashboard da Meta

Vá para developers.facebook.com → seu App → WhatsAppConfiguraçõesWebhook.
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
Nunca processe um webhook da Meta sem validar X-Hub-Signature-256. O App Secret fica no painel do seu Facebook App — nunca o exponha em código-fonte ou logs.

Payload: mensagem de texto recebida

Payload: status de mensagem enviada

Os status chegam quando a mensagem muda de estado: sentdeliveredread.

Payload: mensagem de mídia (imagem, áudio, documento)

Para baixar a mídia, faça 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.