Aller au contenu principal

🔗 Webhooks

Les webhooks sont la façon dont les fournisseurs de canaux notifient PulseHub quand quelque chose se produit — un client envoie un message, un statut de livraison change, etc.


Format d'URL Webhook​

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

Vérification Webhook (requêtes GET)​

Certains fournisseurs vérifient votre URL webhook avec un challenge avant d'envoyer de vrais messages :

WhatsApp / Facebook / Instagram​

PulseHub vérifie hub.verify_token et renvoie hub.challenge.

Telegram​

Pas de vérification GET — configurer le webhook via l'API Bot suffit.

Viber​

Envoie un événement conversation_started à la première ouverture. PulseHub retourne {"status": 0}.


Vérification de Signature​

FournisseurEn-têteSecret
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
Twilio—Sécurité basée sur l'URL
Telegram—Sécurité basée sur l'URL UUID

Toutes les comparaisons HMAC utilisent hash_equals() (temps constant).


Journalisation des Événements​

Chaque payload webhook est journalisé dans la table webhook_events avec status = pending. Après traitement : processed. En cas d'échec : failed.


Réessai des Webhooks Échoués​

La tâche cron réessaie les événements échoués jusqu'à 5 fois dans les 24 heures.