Skip to content

Message status

WABA delivery and read receipts sent as message_status webhooks.

2 min read

Event message_status is WABA only. Kirisan POSTs when Meta reports a delivery or read status for an outbound WABA message.

Enable Message status (or the equivalent WABA status event) on Webhooks → Webhook for linked WABA numbers. WhatsApp devices and Telegram do not use this event on the webhooks page.

Header:

X-Kirisan-Event: message_status

Payload fields

FieldTypeMeaning
eventstringmessage_status
channelstringwaba
devicestringWABA device token
recipientstringCustomer phone number
message_idstringMeta message id (wamid.…)
statusstringMeta status — for example sent, delivered, read, failed
metadataobjectmessage_id, status, optional errors array
timestampintegerUnix seconds
productionbooleantrue for live traffic

When Meta reports an error, metadata.errors may list objects with code, title, and message.

Example — delivered

{
  "event": "message_status",
  "channel": "waba",
  "device": "your-waba-device-token",
  "recipient": "6281234567890",
  "message_id": "wamid.HBgLNjI4MTIzNDU2Nzg5MBUCABIYFDN...",
  "status": "delivered",
  "metadata": {
    "message_id": "wamid.HBgLNjI4MTIzNDU2Nzg5MBUCABIYFDN...",
    "status": "delivered"
  },
  "timestamp": 1735689600,
  "production": true
}

Example — failed

{
  "event": "message_status",
  "channel": "waba",
  "device": "your-waba-device-token",
  "recipient": "6281234567890",
  "message_id": "wamid.HBgLNjI4MTIzNDU2Nzg5MBUCABIYFDN...",
  "status": "failed",
  "metadata": {
    "message_id": "wamid.HBgLNjI4MTIzNDU2Nzg5MBUCABIYFDN...",
    "status": "failed",
    "errors": [
      {
        "code": 131026,
        "title": "Message undeliverable",
        "message": "Receiver is incapable of receiving this message"
      }
    ]
  },
  "timestamp": 1735689600,
  "production": true
}
Last updated: July 2, 2026
Was this page helpful?