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
Twilio—Seguridad basada en URL
Telegram—Seguridad 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.