Pular para o conteúdo principal

Webhooks

Webhooks sao como os provedores de canal notificam o PulseHub quando algo acontece — um cliente envia uma mensagem, um status de entrega muda, etc.


Padrao de URL do Webhook

https://yourdomain.com/webhooks/{channel_type}/{channel_id}

Verificacao de Webhook (requisicoes GET)

Alguns provedores verificam sua URL de webhook com um desafio antes de enviar mensagens reais:

WhatsApp / Facebook / Instagram

O PulseHub verifica hub.verify_token e retorna hub.challenge.

Telegram

Nao ha verificacao GET — configurar o webhook via Bot API e suficiente.

Viber

Envia um evento conversation_started na primeira abertura. O PulseHub retorna {"status": 0}.


Verificacao de Assinatura

ProvedorCabecalhoSegredo
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
TwilioSeguranca baseada em URL
TelegramSeguranca baseada em UUID na URL

Todas as comparacoes HMAC usam hash_equals() (tempo constante).


Registro de Eventos

Cada payload de webhook e registrado na tabela webhook_events com status = pending. Apos o processamento: processed. Em caso de falha: failed.


Reenvio de Webhooks com Falha

O cron job tenta novamente eventos com falha ate 5 vezes em 24 horas.