Webhooks
Les webhooks vous permettent de recevoir des callbacks HTTP en temps reel lorsque des evenements se produisent sur vos instances WhatsApp. Au lieu d’interroger l’API, Wappfy pousse les evenements vers votre serveur au fur et a mesure qu’ils surviennent.Evenements pris en charge
Wappfy prend en charge 12 types d’evenements webhook :Evenements de messages
Evenements de messages
| Evenement | Description |
|---|---|
message.received | Un nouveau message entrant a ete recu. |
message.sent | Un message sortant a ete envoye avec succes. |
message.delivered | Un message envoye a ete livre sur l’appareil du destinataire (double coche). |
message.read | Un message envoye a ete lu par le destinataire (coches bleues). |
message.failed | L’envoi d’un message sortant a echoue. |
message.reaction | Quelqu’un a reagi a un message avec un emoji. |
Evenements d'instance
Evenements d'instance
| Evenement | Description |
|---|---|
instance.connected | Une instance s’est connectee a WhatsApp avec succes. |
instance.disconnected | Une instance a perdu sa connexion WhatsApp. |
instance.qr | Un nouveau QR code est disponible pour le scan. |
Evenements de groupes et contacts
Evenements de groupes et contacts
| Evenement | Description |
|---|---|
group.joined | Un participant a rejoint un groupe (y compris le bot lui-meme). |
group.left | Un participant a quitte un groupe. |
contact.created | Un nouveau contact a ete enregistre ou detecte. |
Creer un webhook
Enregistrez un endpoint webhook pour commencer a recevoir des evenements.Options de configuration
| Champ | Type | Defaut | Description |
|---|---|---|---|
url | string | obligatoire | L’URL HTTPS qui recevra les requetes POST du webhook. |
events | string[] | obligatoire | Tableau des types d’evenements auxquels s’abonner. |
instance_id | string | null | Limiter le webhook a une instance specifique. Si null, recoit les evenements de toutes les instances. |
secret | string | null | Secret utilise pour generer des signatures HMAC pour la verification du contenu. |
retry_count | number | 3 | Nombre de tentatives de reessai en cas d’echec de livraison (0-5). |
timeout_ms | number | 10000 | Delai d’expiration de la requete en millisecondes (1000-30000). |
Le champ
instance_id est optionnel. S’il est omis, le webhook recevra les evenements de toutes les instances de votre compte.Lister les webhooks
Mettre a jour un webhook
Mettez a jour l’URL, les evenements ou la configuration d’un webhook existant.Supprimer un webhook
Format du contenu de livraison
Lorsqu’un evenement se produit, Wappfy envoie une requete POST a votre URL webhook avec la structure suivante :Champs du contenu
| Champ | Description |
|---|---|
id | Identifiant unique de la livraison. Utilisez-le pour la deduplication. |
event | Le type d’evenement qui a declenche cette livraison. |
instance_id | L’instance qui a genere l’evenement. |
timestamp | Horodatage ISO 8601 du moment ou l’evenement s’est produit. |
data | Contenu specifique a l’evenement. Le contenu varie selon le type d’evenement. |
Verification de la signature HMAC
Si vous fournissez unsecret lors de la creation d’un webhook, chaque livraison inclura un en-tete X-Wappfy-Signature contenant une signature HMAC-SHA256 du corps de la requete.
Verifiez toujours cette signature pour vous assurer que la requete provient de Wappfy et n’a pas ete alteree.
Exemples de verification
Comportement de reessai
Si votre serveur ne repond pas avec un code de statut2xx dans le delai configure timeout_ms, Wappfy reessaiera la livraison.
| Tentative | Delai |
|---|---|
| 1er reessai | 10 secondes |
| 2e reessai | 60 secondes |
| 3e reessai | 5 minutes |
| 4e reessai | 30 minutes |
| 5e reessai | 2 heures |
Les reessais s’arretent lorsqu’une reponse
2xx est recue ou que le retry_count est epuise. Le nombre de reessais par defaut est de 3.Consulter l’historique de livraison
Consultez le journal de livraison d’un webhook pour voir les tentatives de livraison passees et leurs resultats.Exemples de contenu par evenement
message.received
message.received
message.delivered
message.delivered
message.read
message.read
message.reaction
message.reaction
instance.connected
instance.connected
instance.qr
instance.qr
group.joined
group.joined
Bonnes pratiques
Repondez rapidement
Retournez un statut
200 dans les 5 secondes. Traitez l’evenement de maniere asynchrone pour eviter les depassements de delai.Dedupliquez
Utilisez l’
id de livraison pour detecter et ignorer les livraisons en double causees par les reessais.Verifiez les signatures
Validez toujours l’en-tete
X-Wappfy-Signature si vous avez configure un secret.Utilisez HTTPS
Les URL de webhook doivent utiliser HTTPS. Les endpoints HTTP seront rejetes.