Skip to main content
WEBHOOK
messages-ack
{
  "event": "message.ack",
  "data": {
    "id": "<string>",
    "event": "message.ack",
    "metadata": [
      {}
    ],
    "me": {
      "id": "<string>",
      "pushName": "<string>"
    },
    "payload": {
      "id": "<string>",
      "from": "<string>",
      "to": "<string>",
      "participant": "<string>",
      "fromMe": true,
      "ack": 123,
      "ackName": "<string>"
    },
    "instanceId": "<string>",
    "userId": "<string>"
  }
}

message.ack

Receive events when server or recipient gets the message, read or played it. AckName field contains message status (ack has the same meaning, but show the value in int, but we keep it for backward compatability, they much to each other) Possible message ack statuses:
  • ackName: ERROR, ack: -1
  • ackName: PENDING, ack: 0
  • ackName: SERVER, ack: 1
  • ackName: DEVICE, ack: 2
  • ackName: READ, ack: 3
  • ackName: PLAYED, ack: 4
The payload may have more fields, it depends on the engine you use, but here’s a minimum amount that all engines send:

Headers

x-userId
string
required

User UUID associated with the connected WhatsApp instance.

x-instanceId
string
required

Instance UUID of the connected WhatsApp instance.

Body

application/json
event
enum<string>
Available options:
message.ack
data
object

Response

200

The API successfully processed the batch of messages and returned a status of 200, confirming successful receipt and synchronization.

I