Webhook payload example and field reference for Send Message is Read (sentMessageREAD_v2).
{
"eventType": "sentMessageREAD_v2",
"statusString": "Read",
"localMessageId": "16bf77ae-79e691eb4b",
"id": "693fd65f961dc81779391640",
"whatsappMessageId": "wamid.HBgNODYxMzEABEYEjVCNzg2MDU0OEM0NTYxRTlBMwA=",
"conversationId": "68cba3db12b3349e",
"ticketId": "693fd64d1d45f54",
"text": "hello",
"type": "text",
"timestamp": "17651326",
"assigneeId": "65a10905cf65262",
"operatorEmail": "[email protected]",
"channelId": null,
"channelPhoneNumber": "174742"
}Field Description
| Field | Type | Description |
|---|---|---|
| eventType | String | The type of webhook event. Always "sentMessageREAD_v2" for this webhook version |
| statusString | String | Human-readable status of the message. Shows "Read" when the message has been read |
| localMessageId | String | Caller-supplied correlation when available; not a general request-level idempotency guarantee. |
| id | String | WATI message or broadcast-link identifier, depending on the message family; not a unique webhook-delivery ID. |
| whatsappMessageId | String | WhatsApp's unique message identifier (WAMID) for tracking messages in WhatsApp's system |
| conversationId | String | Unique identifier for the conversation thread this message belongs to |
| ticketId | String | Unique identifier for the support ticket associated with this conversation |
| text | String | The actual text content of the message that was sent |
| type | String | Message type, supported values include: "image", "text", "document", "location", "voice", "audio", "button", "interactive", "reaction", "video", "sticker", "contacts", "order", "catalog", "media_placeholder", "template" |
| timestamp | String | Unix seconds encoded as a string. This is a source-dependent message/event-processing timestamp, not a guaranteed time of actual delivery or reply. |
| assigneeId | String | Unique identifier of the agent or user assigned to handle this conversation |
| operatorEmail | String | Email address of the operator/agent who sent the message |
| channelId | String/Null | Identifier for the communication channel. May be null for direct WhatsApp messages |
| channelPhoneNumber | String | The phone number associated with the WhatsApp Business account that sent the message |
Legacy event variant
The same notification also has the legacy eventType sentMessageREAD; the example above shows sentMessageREAD_v2. The legacy base payload does not define localMessageId; do not require it when handling the legacy event. V2 adds caller correlation where available. Other payload fields follow the notification type.
{
"eventType": "sentMessageREAD",
"id": "<wati-message-id>"
}
