# Webhooks de reacción de WhatsApp

`whatsapp.reacted` se dispara cuando un contacto reacciona a uno de tus mensajes, cambia su emoji o lo retira. Las reacciones enviadas por tu número de empresa no lo emiten. Una suscripción a `whatsapp.received` no incluye reacciones, y una reacción no abre una ventana de atención al cliente.

Una reacción es una anotación sobre un mensaje, no un mensaje en sí, así que no forma parte de la línea de tiempo de entrega ni lleva los [campos que llevan todos los eventos de mensaje](/docs/guides/whatsapp/webhooks#fields-every-message-event-carries).

## El payload

`whatsapp_id` identifica el mensaje al que se reaccionó, no la reacción, y `emoji` es el cambio que hizo el usuario. Un usuario que reacciona, cambia su emoji y luego retira la reacción produce tres eventos sobre ese mismo mensaje. WhatsApp no envía una eliminación entre los dos primeros, así que un cambio llega como un único evento con el nuevo 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 reporta la hora de la reacción con precisión de segundo, así que dos de esos tres eventos pueden compartir un mismo `timestamp`. Ordenarlos por ese valor no los secuenciará, y el orden de entrega tampoco, ya que los reintentos lo hacen poco fiable. Actúa sobre la reacción que lleva cada evento, como el cambio que describe. No reconstruyas la secuencia a partir de los eventos ni trates el último en llegar como la reacción vigente del mensaje, porque ni las marcas de tiempo ni el orden de llegada lo garantizan. Consulta el mensaje para ver las reacciones vigentes: [`GET /v1/whatsapp/messages/{message_id}`](/docs/api/reference/get-whatsapp-message) devuelve una entrada por remitente en `reactions`, y el [registro de reacciones](/docs/api/reference/list-whatsapp-message-reaction-events) del mensaje contiene cada cambio.

`emoji` está presente y es `null` cuando el usuario retiró su reacción, así que un null es la eliminación en sí, no un valor ausente. El emoji se entrega exactamente como lo envió WhatsApp y no se normaliza, por lo que `❤` y `❤️` te llegan como cadenas distintas.

- `from` es el contacto y `to` es tu número de WhatsApp. Gestiona los [identificadores de usuario con alcance de empresa](/docs/guides/whatsapp/business-scoped-user-ids) cuando la dirección del contacto no tiene número de teléfono.

## Próximos pasos

- [Eventos de reacción](/docs/guides/whatsapp/events/reactions): consulta las reacciones actuales y el registro de reacciones
- [Enviar o eliminar una reacción](/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)
