Changelog

What's changed

Changes to the Wetarseel API and webhooks, newest first. Each entry says what changed and how to migrate.

Webhooks

Coexist Sent Message replaces message_sent, and delivery ticks arrive as message_status

Two webhook updates: the Coexist echo event is renamed from message_sent to coexist_sent_message, and the new message_status event reports when an outbound message is sent, delivered and read.

What changed

ChangeBeforeAfter
Coexist mobile-app outbound echoevent: "message_sent"event: "coexist_sent_message"
Delivery ticks (sent, delivered, read)No dedicated eventevent: "message_status", with data.status
Webhook settings, Coexist accountsCheckbox labelled Message SentCheckbox labelled Coexist Sent Message
Webhook settings, other accountsNot applicableThe Coexist event is hidden

Compatibility. Nothing breaks today. If your account still has message_sent enabled, Wetarseel keeps posting the same echo body with "event": "message_sent". Saving the webhook settings stores the new name, coexist_sent_message. Update your handlers when convenient.

1. message_sent is now coexist_sent_message

Fired when a message is sent from the WhatsApp Business mobile app and synced to Wetarseel through Coexist. It carries the message content (text, media and so on). It isn't a delivery tick: for ticks, use message_status.

Only Coexist accounts (WhatsApp Business app connected) see this event in the webhook settings.

data is unchanged. Only the top-level event name is different.

{
  "event": "message_sent",
  "timestamp": "2026-11-13T10:00:00.000Z",
  "accountId": "account_123",
  "data": {
    "id": "wamid.HBgLM...",
    "from": "971501111111",
    "to": "971501234567",
    "timestamp": "1731484800",
    "type": "text",
    "text": { "body": "We have dispatched your order!" },
    "business_phone_number_id": "1234567890",
    "file_url": null
  }
}

In the Wetarseel app

  1. Open API & Integrations, then Webhooks.
  2. Check that your webhook URL is set.
  3. Tick Coexist Sent Message (coexist_sent_message).
  4. Save. If Message Sent was ticked before, it shows as Coexist Sent Message, and saving stores the new name.

In your webhook handler

  1. Accept the new name. Keep the old one for now, for a smooth cutover:
switch (event) {
  case 'coexist_sent_message':
  case 'message_sent': // legacy: same payload data
    await handleCoexistOutboundEcho(data);
    break;
  // ...
}

Once your traffic arrives as coexist_sent_message, you can drop the message_sent case.

2. New event: message_status

Fired when Meta reports a delivery tick for an outbound WhatsApp message. It covers messages from the inbox, the API and automations, not only Coexist. Failures still arrive as message_failed_response.

data.statusMeaning
sentAccepted by WhatsApp
deliveredDelivered to the recipient's device
readOpened by the recipient
{
  "event": "message_status",
  "timestamp": "2026-11-13T10:00:00.000Z",
  "accountId": "account_123",
  "data": {
    "id": "wamid.HBgLM...",
    "to": "971501234567",
    "timestamp": "1731484800",
    "type": "text",
    "text": { "body": "We have dispatched your order!" },
    "status": "sent",
    "file_url": null
  }
}
  • data.id is the same WhatsApp message id on every tick for one message.
  • Media messages have type image, audio, video or document, and may carry file_url instead of text.
  • Meta may report delivered and read together as a single read, with no separate delivered.
  • There is no seen status: use read.

To turn it on

  1. Open API & Integrations, then Webhooks.
  2. Tick Message Status.
  3. Save, then handle it in your endpoint:
case 'message_status':
  // data.status is 'sent' | 'delivered' | 'read'
  await handleDeliveryTick(data);
  break;

coexist_sent_message or message_status?

coexist_sent_messagemessage_status
PurposeThe content of a message sent from the WhatsApp Business mobile appDelivery ticks for outbound messages
WhenSomeone sends from the WhatsApp Business appMeta reports sent, delivered or read
Key fieldThe message body or media in datadata.status
Who can subscribeCoexist accounts onlyEvery account with webhooks

Checklist

  1. Update your handlers to accept coexist_sent_message, keeping message_sent until the cutover.
  2. Coexist accounts: tick Coexist Sent Message in the webhook settings and save.
  3. Optionally, tick Message Status to track delivery.
  4. Test with a send from the WhatsApp Business app and a send from the inbox or API, and confirm both events arrive.
  5. Remove the message_sent case once you only receive coexist_sent_message.

Full payloads, headers and signature checks are in the webhooks reference. Questions? Contact your Wetarseel account manager or support.