Saltar al contenido principal

🔗 Webhooks

Los webhooks son la forma en que los proveedores de canales notifican a PulseHub cuando algo sucede — un cliente envía un mensaje, un estado de entrega cambia, etc.


Patrón de URL de Webhook

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

Verificación de Webhook (solicitudes GET)

Algunos proveedores verifican tu URL de webhook con un desafío antes de enviar mensajes reales:

WhatsApp / Facebook / Instagram

PulseHub verifica hub.verify_token y devuelve hub.challenge.

Telegram

No hay verificación GET — configurar el webhook vía Bot API es suficiente.

Viber

Envía un evento conversation_started en la primera apertura. PulseHub devuelve {"status": 0}.


Verificación de Firma

ProveedorHeaderSecreto
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
TwilioSeguridad basada en URL
TelegramSeguridad basada en URL UUID

Todas las comparaciones HMAC usan hash_equals() (tiempo constante).


Registro de Eventos

Cada payload de webhook se registra en la tabla webhook_events con status = pending. Después del procesamiento: processed. En caso de fallo: failed.


Reintento de Webhooks Fallidos

La tarea cron reintenta eventos fallidos hasta 5 veces dentro de 24 horas.