Documentação / Essencial
Marcar uma mensagem como lida (e mostrar «digitando…»)
POST /v1/messages/read
POST /v1/messages/read com {"messageId": "wamid…"}: o id de uma mensagem que você RECEBEU (data.message.id de message.received). Vai no corpo, não na URL (uma URL fica nos registros de acesso, e o id leva o número do contato). O contato vê os tiques azuis; a Meta marca também como lidas as mensagens anteriores dessa conversa. Acrescente "typing": true para mostrar também «digitando…»: some quando você responde ou aos 25 segundos, o que acontecer primeiro.
Não é um envio: não cria um msg_…, não consome cota, não conta como mensagem e não leva Idempotency-Key (marcar duas vezes não faz nada de mal). Funciona igual em números de Cloud API e de Coexistence.
# 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_…" }A Meta só aceita mensagens recebidas nos últimos 30 dias → MESSAGE_TOO_OLD. Um id msg_… → INVALID_MESSAGE_ID; um id de OUTRA conta → INBOUND_MESSAGE_NOT_FOUND (nunca confirmamos que exista).
Mostre «digitando…» só se você for responder (a Meta pede isso): um contato que vê o aviso e não recebe nada fica pior do que um que não viu nada.