Webhooks (saída)
Configure em Integrações → Acesso à API → Webhooks (session,workspaces:manage).
O Flow envia POST JSON. Valide a assinatura X-Flow-Signature (HMAC-SHA256 do corpo bruto). A URL precisa ser HTTPS pública.
Flow rejeita hosts privados/loopback (mitigação SSRF). Redirects HTTP durante a entrega não são seguidos.
Eventos
Envelope
hex = HMAC-SHA256(secret, raw_body) — use os bytes brutos do JSON recebido, sem re-serializar.
Falhas retentam com backoff; após falhas sustentadas o webhook pode ser desativado (active=false).
As entregas têm semântica at-least-once. Use data.id ou data.provider_message_id para deduplicar no sistema consumidor.
Diagnóstico de falhas
Em Integrações → Acesso à API → Webhooks → Últimas entregas, o Flow mostra cada tentativa, o status HTTP e uma recomendação. Quando o diagnóstico confirma que a falha está no endpoint configurado, a interface indica o ajuste necessário. Em causas desconhecidas, o diagnóstico permanece neutro para investigação conjunta.
O Flow mantém a validação TLS. Não é seguro ignorar erros de certificado: isso poderia enviar dados a um servidor que não comprova ser o domínio configurado.
Mensagens WhatsApp
Os eventos de mensagem incluem o número conectado do workspace e o número do contato.from_phone e to_phone sempre representam o sentido real da mensagem. Para preservar esse contrato, mensagens sem uma conexão WhatsApp resolvida ou sem o número comercial da conexão não geram evento; o Flow registra a omissão em log para investigação.
message.sent, direction é outbound e from_phone é o business_phone. Mensagens de mídia podem incluir caption, media_url e mimetype. media_url só é emitida quando o provedor informa uma URL HTTP(S); URLs do provedor podem expirar e não devem ser tratadas como armazenamento durável.
