Documentación / Esencial
Marcar un mensaje como leído (y mostrar «escribiendo…»)
POST /v1/messages/read
POST /v1/messages/read con {"messageId": "wamid…"}: el id de un mensaje que RECIBISTE (data.message.id de message.received). Va en el cuerpo, no en la URL (una URL queda en los registros de acceso, y el id lleva el número del contacto). El contacto ve los tildes azules; Meta marca también como leídos los mensajes anteriores de ese chat. Sumá "typing": true para mostrar además «escribiendo…»: se va cuando respondés o a los 25 segundos, lo que pase primero.
No es un envío: no crea un msg_…, no consume cuota, no cuenta como mensaje y no lleva Idempotency-Key (marcar dos veces no hace nada malo). Funciona igual en números de Cloud API y de convivencia.
# messageId comes from a message.received event: data.message.id
curl -X POST https://api.waiaconnect.com/v1/messages/read \
-H "Authorization: Bearer wc_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"messageId": "wamid.HBgN…AA==", "typing": true}'
# → { "messageId": "wamid.…", "status": "read", "typing": true, "typingSeconds": 25, "connectionId": "conn_…" }Meta sólo acepta mensajes recibidos en los últimos 30 días → MESSAGE_TOO_OLD. Un id msg_… → INVALID_MESSAGE_ID; un id de OTRA cuenta → INBOUND_MESSAGE_NOT_FOUND (nunca confirmamos que exista).
Mostrá «escribiendo…» sólo si vas a responder (lo pide Meta): un contacto que lo ve y no recibe nada queda peor que uno que no vio nada.