# Webhooks de reação do WhatsApp

`whatsapp.reacted` é disparado quando um contato reage a uma das suas mensagens, troca o emoji ou remove a reação. Reações enviadas pelo seu número comercial não geram esse evento. Uma assinatura de `whatsapp.received` não inclui reações, e uma reação não abre uma janela de atendimento ao cliente.

Uma reação é uma anotação em uma mensagem, não uma mensagem própria, então não faz parte da linha do tempo de entrega e não contém os [campos que todo evento de mensagem contém](/docs/guides/whatsapp/webhooks#fields-every-message-event-carries).

## O payload

`whatsapp_id` identifica a mensagem que recebeu a reação, não a reação em si, e `emoji` é a alteração feita pelo usuário. Um usuário que reage, troca o emoji e depois remove a reação produz três eventos naquela mesma mensagem. WhatsApp não envia uma remoção entre os dois primeiros, então uma troca chega como um único evento com o novo emoji.

```json
{
  "data": {
    "emoji": "👍",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "whatsapp_id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
  },
  "timestamp": "2026-07-23T14:52:11.000Z",
  "type": "whatsapp.reacted"
}
```

WhatsApp registra o horário da reação com precisão de segundo, então dois desses três eventos podem compartilhar o mesmo `timestamp`. Ordená-los por esse valor não vai sequenciá-los, e a ordem de entrega também não, já que retentativas a tornam não confiável. Trate a reação que cada evento carrega como a alteração que ele descreve. Não reconstrua a sequência a partir dos eventos nem considere o último a chegar como a reação vigente da mensagem, porque nem os timestamps nem a ordem de chegada sustentam isso. Consulte a mensagem para ver as reações que permanecem: [`GET /v1/whatsapp/messages/{message_id}`](/docs/api/reference/get-whatsapp-message) retorna uma entrada por remetente em `reactions`, e o [log de reações](/docs/api/reference/list-whatsapp-message-reaction-events) da mensagem contém todas as alterações.

`emoji` está presente e é `null` quando o usuário removeu sua reação, então um null é a remoção em si, não um valor ausente. O emoji é entregue exatamente como WhatsApp o enviou e não é normalizado, então `❤` e `❤️` chegam como strings diferentes.

- `from` é o contato e `to` é o seu número WhatsApp. Trate [IDs de usuário com escopo de negócio](/docs/guides/whatsapp/business-scoped-user-ids) quando o endereço do contato não tiver número de telefone.

## Próximos passos

- [Eventos de reação](/docs/guides/whatsapp/events/reactions): consulte as reações atuais e o log de reações
- [Enviar ou remover uma reação](/docs/guides/whatsapp/reactions)

## 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](/whatsapp-api) (product)

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