Sign inGet started

Use read acknowledgements, typing and reactions

Make service exchanges responsive while preserving message and reaction semantics.

Prerequisites

A received message, permission to operate the sender and a supported service interaction.

1. Decide what the signal means

Mark an incoming message read when your team has taken the conversation into its service workflow. WhatsApp also marks earlier messages in that conversation as read, so this action acknowledges more than the referenced message. Use typing while preparing an answer rather than as a permanent indicator.

2. Use the published operation

Use Mark a message read, POST /v1/whatsapp/messages/{message_id}/read, for a received message. WhatsApp marks that message and every earlier message in the conversation as read. Set typing_indicator when you are preparing a reply. A 202 confirms that the acknowledgement was accepted for processing; it does not prove that the customer saw the indicator. There is no acknowledgement delivery webhook or separate message to poll.
After Meta accepts the acknowledgement, the received message can show read_at while keeping its received status. The acknowledgement creates no billable outbound message. Follow the published read-receipt operation for typing expiry and eligible message age.

3. Handle reaction changes

Subscribe to whatsapp.reacted for incoming reaction changes. A reaction annotates a referenced message; it is not another whatsapp.received text message. A null emoji can represent removal. Preserve the exact emoji rather than normalizing distinct values.

4. Keep history and current state separate

Use the reaction log for changes and the message’s reactions for the current per-sender state. An unresolved older provider reference can leave no matched reaction, so absence of an entry does not prove the customer never reacted.

5. Test the end of the interaction

Rehearse added, replaced and removed reactions, delayed processing and an interrupted reply. Ensure the actual answer or human handoff follows the signal.

Troubleshooting

If a reaction is missing from the message list, inspect the reaction event and referenced-message log instead. If typing lingers in your application state, review its expiry separately from read state. See WhatsApp events for the published webhook shape.

Next steps