# Usa confirmaciones de lectura, indicador de escritura y reacciones

Haz que los intercambios de servicio sean ágiles sin alterar la semántica de mensajes y reacciones.

## Requisitos previos

Un mensaje recibido, permiso para operar el remitente y una interacción de servicio compatible.

## 1. Decide qué significa la señal

Marca un mensaje entrante como leído cuando tu equipo haya incorporado la conversación a su flujo de servicio. WhatsApp también marca como leídos los mensajes anteriores en esa conversación, así que esta acción confirma más que el mensaje referenciado. Usa el indicador de escritura mientras preparas una respuesta, no como indicador permanente.

## 2. Usa la operación publicada

Usa [Marcar un mensaje como leído](/docs/api/reference/send-whatsapp-read-receipt), `POST /v1/whatsapp/messages/{message_id}/read`, para un mensaje recibido. WhatsApp marca ese mensaje y todos los anteriores en la conversación como leídos. Establece `typing_indicator` cuando estés preparando una respuesta. Un `202` confirma que la confirmación de lectura fue aceptada para procesamiento; no prueba que el cliente haya visto el indicador. No existe un webhook de entrega de confirmación ni un mensaje separado que consultar.

Después de que Meta acepta la confirmación, el mensaje recibido puede mostrar `read_at` y conservar su estado `received`. La confirmación no genera un mensaje saliente facturable. Sigue la operación publicada de confirmación de lectura para la expiración del indicador de escritura y la antigüedad permitida del mensaje.

## 3. Maneja los cambios de reacción

Suscríbete a `whatsapp.reacted` para los cambios de reacción entrantes. Una reacción anota un mensaje referenciado; no es otro mensaje de texto `whatsapp.received`. Un emoji nulo puede representar una eliminación. Conserva el emoji exacto en lugar de normalizar valores distintos.

## 4. Mantén separados el historial y el estado actual

Usa el registro de reacciones para los cambios y las reacciones del mensaje para el estado actual por remitente. Una referencia anterior no resuelta del proveedor puede no tener una reacción coincidente, así que la ausencia de una entrada no prueba que el cliente nunca reaccionó.

## 5. Prueba el final de la interacción

Ensaya reacciones añadidas, reemplazadas y eliminadas, procesamiento retrasado y una respuesta interrumpida. Asegúrate de que la respuesta real o la transferencia a un agente humano siga a la señal.

## Solución de problemas

Si falta una reacción en la lista de mensajes, inspecciona el evento de reacción y el registro de mensajes referenciados. Si el indicador de escritura persiste en el estado de tu aplicación, revisa su expiración por separado del estado de lectura. Consulta [eventos de WhatsApp](/docs/guides/whatsapp/events#reactions) para la estructura publicada del webhook.

## Próximos pasos

- [Explora la capacidad relacionada de WhatsApp](/products/whatsapp/two-way).
- [Encuentra todas las guías y respuestas explicadas de WhatsApp](/products/whatsapp/resources).
- [Prepara tu primer intercambio completo](/products/whatsapp/getting-started).

## 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)
