# Envoyer des réactions WhatsApp

Réagissez au message d'un contact avec un emoji, par exemple un pouce levé pour accuser réception de sa réponse. Vous pouvez remplacer votre réaction ou la supprimer par la suite.

## Prérequis

Vous avez besoin d'une clé API avec la permission d'écriture WhatsApp et de l'identifiant de message Bird (`wam_…`) d'un message reçu par votre espace de travail. Utilisez `data.whatsapp_id` depuis [`whatsapp.received`](/docs/guides/whatsapp/receiving-whatsapp), ou le `id` du message depuis le [journal WhatsApp](/docs/guides/whatsapp/message-log).

Remplacez l'identifiant de message d'exemple par l'identifiant d'un message reçu par votre espace de travail. Initialisez le client pour votre langage en suivant le guide SDK [TypeScript](/docs/sdks/typescript), [Python](/docs/sdks/python), [Go](/docs/sdks/go) ou [PHP](/docs/sdks/php). Pour les exemples CLI, [installez et authentifiez le CLI](/docs/cli#authenticate) avec un accès en écriture WhatsApp. Utilisez l'hôte API correspondant à la [région de votre espace de travail](/docs/api/regions) dans les requêtes cURL.

## 1. Ajouter une réaction

Appelez [Réagir à un message WhatsApp](/docs/api/reference/upsert-whatsapp-message-reaction) avec un seul emoji :

**TypeScript**

```typescript
const reaction = await bird.whatsapp.reaction.set("wam_01krdgeqcxet5s7t44vh8rt9mg", {
  emoji: "👍",
});
console.log(reaction.id, reaction.emoji);
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/reactions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/reactions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/reactions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/reactions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/reactions.cli.md) · [cURL](/fr-fr/documentation/guides/whatsapp/reactions.curl.md)

Le API renvoie `202` avec l'identifiant `id` (`war_…`) et le `emoji` de la réaction acceptée. Enregistrez l'identifiant de réaction pour retrouver son résultat dans le journal des réactions. L'acceptation ne confirme pas que WhatsApp a appliqué la réaction.

Vous ne disposez que d'une réaction par message. Pour la remplacer, répétez la requête `PUT` avec un emoji différent. Les réactions ne sont pas facturées.

## 2. Vérifier le résultat de la réaction

[Récupérez le message](/docs/api/reference/get-whatsapp-message) pour voir ses `reactions` actuelles, avec une entrée par expéditeur. Pour le résultat d'une modification particulière, [listez les événements de réaction du message](/docs/api/reference/list-whatsapp-message-reaction-events) et recherchez l'identifiant de réaction enregistré.

Le journal des réactions enregistre les résultats terminaux : `sent` signifie que WhatsApp a accepté votre modification, `failed` signifie que WhatsApp l'a refusée, et `rejected` signifie que Bird l'a refusée avant la transmission. Inspectez le `error` de l'événement pour une modification échouée ou rejetée. Une réaction en attente n'a pas encore d'entrée dans le journal. Les réactions n'ont ni accusé de réception, ni confirmation de lecture, ni webhook de réaction sortant.

## 3. Supprimer votre réaction

Appelez [Supprimer une réaction WhatsApp](/docs/api/reference/delete-whatsapp-message-reaction) avec le même identifiant de message :

**TypeScript**

```typescript
await bird.whatsapp.reaction.remove("wam_01krdgeqcxet5s7t44vh8rt9mg");
```

Examples: [TypeScript](/fr-fr/documentation/guides/whatsapp/reactions.ts.md) · [Python](/fr-fr/documentation/guides/whatsapp/reactions.py.md) · [Go](/fr-fr/documentation/guides/whatsapp/reactions.go.md) · [PHP](/fr-fr/documentation/guides/whatsapp/reactions.php.md) · [CLI](/fr-fr/documentation/guides/whatsapp/reactions.cli.md) · [cURL](/fr-fr/documentation/guides/whatsapp/reactions.curl.md)

Le API renvoie `202` sans corps de réponse. La suppression est traitée de manière asynchrone ; vérifiez les `reactions` actuelles du message ou son journal des réactions pour confirmer le résultat. Une entrée de suppression dans le journal a `emoji: null`. Supprimer une réaction absente est sans effet, et cette opération supprime la réaction de votre espace de travail, pas celle du contact.

## Dépannage

- **`404` ([E15071](/docs/api/errors/E15071))** : Vérifiez l'identifiant du message cible et l'espace de travail. Bird conserve la référence de message nécessaire pour ajouter ou supprimer une réaction pendant 15 jours.
- **`422` ([E01001](/docs/api/errors/E01001))** : Utilisez un message reçu et un seul emoji. Vous ne pouvez pas réagir à un message envoyé par votre espace de travail. Un emoji combiné compte comme un seul emoji ; deux emoji séparés ne comptent pas comme un seul.
- **Réaction inchangée après `202`** : Inspectez le journal des réactions pour une modification échouée ou rejetée. Une réponse HTTP réussie confirme l'acceptation pour traitement.

## Étapes suivantes

- [Recevoir les modifications de réaction](/docs/guides/whatsapp/receiving-whatsapp/reactions)
- [Marquer un message comme lu](/docs/guides/whatsapp/mark-message-as-read)
- [Envoyer une réponse WhatsApp](/docs/guides/whatsapp/sending-whatsapp)

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
