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
TwilioSécurité basée sur l'URL
TelegramSé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.