Événements de réaction WhatsApp
Une réaction emoji annote un message existant au lieu d'en créer un nouveau : elle n'apparaît donc jamais comme message à part entière ni parmi ses événements de statut de message. Bird en conserve deux vues : les réactions actuellement présentes sur le message, et un journal de chaque changement qui y a mené. Les deux enregistrent les changements effectués par le contact et par votre numéro professionnel.
Pour être informé de la réaction d'un contact en temps réel, abonnez-vous à whatsapp.reacted. Pour ajouter ou retirer votre propre réaction, consultez Envoyer des réactions.
Prérequis
Une clé API avec la permission de lecture WhatsApp, et l'ID (wam_…) du message auquel la réaction a été ajoutée.
1. Lire les réactions actuelles
Si votre application affiche la réaction actuellement associée à un message, récupérez le message et lisez son reactions. La liste contient une réaction en cours par expéditeur et est omise quand aucune réaction n'est présente.
Pour GET /v1/whatsapp/messages/wam_01ky8b3xq4gd7pmzn2ka51f7te, les champs liés aux réactions ont cette forme (autres champs du message omis) :
{
"id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
"reactions": [
{
"emoji": "👍",
"from": { "phone_number": "+14155550100" }
}
]
}Le message conserve son contenu, sa direction et son statut de livraison d'origine. reactions[].from identifie la personne qui a réagi.
C'est l'état à afficher. Les webhooks de réaction peuvent partager un horodatage et arriver dans le désordre : utilisez-en un comme déclencheur pour relire le message plutôt que comme état actuel.
2. Lire le journal des réactions
Listez les événements de réaction avec GET /v1/whatsapp/messages/{message_id}/reaction-events pour voir chaque changement sur le message référencé, du plus récent au plus ancien : ajouts, remplacements et suppressions. Chaque entrée comporte un ID de réaction (war_…), le emoji, l'auteur du changement dans from, un horodatage occurred_at, et un status :
received: un changement effectué par un contact.sent: WhatsApp a accepté un changement de votre numéro professionnel.failed: WhatsApp a refusé votre changement.rejected: Bird a refusé votre changement avant de l'envoyer.
Une entrée failed ou rejected porte la raison dans error. Une suppression porte emoji: null. Un changement de votre part encore en attente n'a pas d'entrée tant que son résultat n'est pas connu. Une réaction n'est jamais facturée, aucun échec ici n'est lié à la facturation.
Le API des événements de réaction renvoie une réponse paginée. Cet exemple montre une réaction professionnelle rejetée et une réaction de contact reçue antérieurement :
{
"data": [
{
"id": "war_01krdgeqcxet5s7t44vh8rt9mh",
"emoji": "🎉",
"status": "rejected",
"from": {
"phone_number": "+13124495569"
},
"error": {
"code": "internal_error",
"description": "the receiving number is no longer connected",
"occurred_at": "2026-08-28T19:04:22Z"
},
"occurred_at": "2026-08-28T19:04:22Z"
},
{
"id": "war_01krdgeqcxet5s7t44vh8rt9mg",
"emoji": "👍",
"status": "received",
"from": {
"phone_number": "+14155550100",
"bsuid": "US.13491208655302741918"
},
"occurred_at": "2026-08-28T19:01:10Z"
}
],
"next_cursor": null,
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiMjAyNi0wOC0yOFQxOTowNDoyMloiLCJpIjoiMDE5ZTFiMDctNWQ5ZC03NjhiLTkzZTgtODRkYzUxOGQyNjkxIn0"
}L'historique des réactions est distinct des événements de livraison du message. Le point de terminaison événements de statut de message ne contient pas les changements de whatsapp.reacted. Pour la rétention et la pagination, consultez la référence du journal de réactions.
Dépannage
- Réaction absente de la liste des messages : recherchez le message d'origine. Une réaction y est rattachée et n'a pas de ligne de message distincte.
- L'état de la réaction change de manière inattendue : lisez le
reactionsdu message au lieu de trier les événements webhook par heure d'arrivée ou horodatage.
Étapes suivantes
- Webhooks de réaction : être notifié quand un contact réagit
- Envoyer ou retirer une réaction
- Événements de statut de message : la chronologie de livraison d'un message
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.