Sent message

You can find more details about all parameters and their types in the WebHook documentation.

Use the messages.post setting to get this webhook.

Outgoing message from Mobile

{
  "messages": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "from_me": true,
      "type": "text",
      "chat_id": "[email protected]",
      "timestamp": 1712995377,
      "source": "mobile",
      "status": "sent",
      "text": {
        "body": "Hey bro"
      },
      "from": "61371989950",
      "from_name": "Jonathan"
    }
  ],
  "event": {
    "type": "messages",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}

Outgoing from API

{
  "messages": [
    {
      "id": "yqJRppZk7BI-wNoTwl0rVw",
      "from_me": true,
      "type": "text",
      "chat_id": "[email protected]",
      "timestamp": 1712995598,
      "source": "api",
      "device_id": 11,
      ,
      "text": {
        "body": "Hello, this message was sent via API!"
      },
      "from": "61371989950"
    }
  ],
  "event": {
    "type": "messages",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}

Why Do I See "status": "pending" After Sending a Message?

When you send a message through the API, the initial response may include "status": "pending". This is expected behavior — at the moment the request is processed, the API does not yet know the final delivery status.

You can interpret "pending" as “message sent, awaiting confirmation.”

To track delivery progress, use the webhook event statuses.post. This will notify you as soon as the message is delivered or read. You can also poll for status updates using the GET message endpoint.

If the status remains "pending" and doesn’t change over time, it usually means:

  • The message format or content may be invalid

  • Your account may not have permission to send this type of message

If you're seeing persistent "pending" statuses, contact our support team — we’ll help you identify the issue and resolve it.


The messages statuses array contains all statuses that were sent to the webhook URL. Sent on event "statuses.post" or "statuses.put". We mentioned more about the events here:Mode setting

Status Sent

{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 2,
      "status": "sent",
      "recipient_id": "[email protected]",
      "timestamp": "1712995378"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}


Status Delivered

{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 3,
      "status": "delivered",
      "recipient_id": "[email protected]",
      "timestamp": "1712995378"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}

Status Read

{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 4,
      "status": "read",
      "recipient_id": "[email protected]",
      "timestamp": "1712995581"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}

Format

id*

string

Message ID from event

code*

number

Status code

status*

StatusEnumstring x-enum-descriptions: List [ "Message failed to send (Red error triangle in WhatsApp Mobile)", "Message pending to send (One clock in WhatsApp Mobile)", "Message received by WhatsApp server (One checkmark in WhatsApp Mobile)", "Message delivered to recipient (Two checkmarks in WhatsApp Mobile)", "Message read by recipient (Two blue checkmarks in WhatsApp Mobile)", "Voice-message played by recipient (Two blue checkmarks in WhatsApp Mobile)", "Message deleted by the user" ]

Message ack status

Enum: [ failed, pending, sent, delivered, read, played, deleted ]

recipient_id

ChatID string pattern: ^[\d-]{10,31}@[\w\.]{1,}$

Chat ID

viewer_id

ContactID string pattern: ^([\d]{7,15})?$

Contact ID

timestamp*

string

Timestamp of the status message

Last updated

Was this helpful?