> For the complete documentation index, see [llms.txt](https://support.whapi.cloud/help-desk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.whapi.cloud/help-desk/receiving/webhooks/incoming-webhooks-format/sent-message.md).

# Sent message

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": "919984351847@s.whatsapp.net",
      "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

<pre><code>{
  "messages": [
    {
      "id": "yqJRppZk7BI-wNoTwl0rVw",
      "from_me": true,
      "type": "text",
      "chat_id": "919984351847@s.whatsapp.net",
      "timestamp": 1712995598,
      "source": "api",
      "device_id": 11,
      <a data-footnote-ref href="#user-content-fn-1">"status": "pending"</a>,
      "text": {
        "body": "Hello, this message was sent via API!"
      },
      "from": "61371989950"
    }
  ],
  "event": {
    "type": "messages",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}
</code></pre>

{% hint style="info" %}

### 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 status webhooks:

* **Direct message** — the **`statuses.post`** event notifies you as soon as the message is delivered or read. You can also check the current status with the **GET message** endpoint.
* **Group message** — statuses arrive as **`statuses.put`** events, see [Message statuses in groups](#message-statuses-in-groups) below.

> 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.
{% endhint %}

***

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:[Detailed webhook settings](/help-desk/receiving/webhooks/detailed-webhook-settings.md#mode-setting)

### Outgoing reply to a WhatsApp Flow

{% code overflow="wrap" %}

```json
{
  "messages": [
    {
      "id": "PrDqW3eRtY5uI8o-xYKpHRoAkIw",
      "from_me": true,
      "type": "interactive",
      "timestamp": 1791444464,
      "source": "web",
      "starred": false,
      "chat_id": "15550001111@s.whatsapp.net",
      "from": "15550002222",
      "status": "sent",
      "interactive": {
        "type": "nfm_reply",
        "nfm_reply": {
          "name": "flow",
          "body": "Sent",
          "body_format": 1,
          "response_json": "<JSON string: same content as the response object>",
          "response": {
            "tos_optin": true,
            "categories": [
              "mobile_phones",
              "ebook_readers"
            ],
            "flow_token": "flow_token_example_123",
            "wa_flow_response_params": {
              "response_message": "<JSON string: same content as response_message>",
              "flow_name": "Sign_up_form",
              "flow_id": "1234567890123456",
              "title": "View Flow"
            }
          },
          "native_flow_name": "galaxy_message",
          "version": 3,
          "response_message": {
            "screens": [
              {
                "id": "JOIN_NOW",
                "title": "Join Now",
                "components": [
                  {
                    "name": "tos_optin",
                    "label": "I agree to the terms."
                  },
                  {
                    "name": "marketing_optin",
                    "label": "Keep me up to date about offers and promotions"
                  }
                ]
              },
              {
                "id": "CATEGORIES",
                "title": "Join now",
                "components": [
                  {
                    "name": "categories",
                    "label": "Select categories"
                  }
                ]
              },
              {
                "id": "TERMS_AND_CONDITIONS",
                "title": "Terms and conditions",
                "components": []
              }
            ],
            "response": [
              {
                "id": "JOIN_NOW",
                "title": "Join Now",
                "components": [
                  {
                    "name": "tos_optin",
                    "type": "OptIn",
                    "label": "I agree to the terms.",
                    "value": true,
                    "sensitive": false,
                    "componentData": {
                      "componentMeta": {
                        "type": "OptIn",
                        "label": "I agree to the terms.",
                        "required": true,
                        "name": "tos_optin"
                      },
                      "componentValue": true
                    }
                  }
                ],
                "screenState": {
                  "data": {
                    "screen": "JOIN_NOW",
                    "data": {
                      "fname": "Doe",
                      "lname": "John",
                      "age": "30"
                    }
                  },
                  "form": {
                    "tos_optin": true
                  },
                  "external_data": {}
                }
              },
              {
                "id": "CATEGORIES",
                "title": "Join now",
                "components": [
                  {
                    "name": "categories",
                    "type": "CheckboxGroup",
                    "label": "Select categories",
                    "value": [
                      "Mobile phones",
                      "eBook readers"
                    ],
                    "sensitive": false,
                    "componentData": {
                      "componentMeta": {
                        "type": "CheckboxGroup",
                        "label": "Select categories",
                        "required": true,
                        "name": "categories",
                        "data-source": [
                          {
                            "id": "mobile_phones",
                            "title": "Mobile phones"
                          },
                          {
                            "id": "televisions",
                            "title": "Televisions"
                          },
                          {
                            "id": "home_audio",
                            "title": "Home audio"
                          },
                          {
                            "id": "headphones",
                            "title": "Headphones & earphones"
                          },
                          {
                            "id": "ebook_readers",
                            "title": "eBook readers"
                          },
                          {
                            "id": "cameras",
                            "title": "Cameras"
                          },
                          {
                            "id": "accessories",
                            "title": "Accessories"
                          }
                        ]
                      },
                      "componentValue": [
                        "mobile_phones",
                        "ebook_readers"
                      ]
                    }
                  }
                ],
                "screenState": {
                  "data": {
                    "tos_optin": true
                  },
                  "form": {
                    "categories": [
                      "mobile_phones",
                      "ebook_readers"
                    ]
                  },
                  "external_data": {}
                }
              }
            ],
            "version": 1
          }
        }
      },
      "context": {
        "quoted_id": "XbQ7mN2pLk9vRt4-hRapHRoAkIw",
        "quoted_author": "15550001111",
        "quoted_content": {
          "type": "flow",
          "body": "Hello",
          "buttons": [
            {
              "type": "galaxy_message",
              "text": "View Flow"
            }
          ],
          "native_flow": {
            "message_version": 1,
            "message_params_json": "<JSON string: same content as message_params>",
            "message_params": {
              "bottom_sheet": {
                "in_thread_buttons_limit": 3,
                "divider_indices": []
              },
              "catalog_params": {
                "features": [
                  "cart"
                ]
              }
            },
            "buttons": [
              {
                "name": "galaxy_message",
                "params_json": "<JSON string: same content as params>",
                "params": {
                  "flow_message_version": "3",
                  "flow_token": "flow_token_example_123",
                  "flow_id": "1234567890123456",
                  "flow_cta": "View Flow",
                  "flow_action": "navigate",
                  "flow_action_payload": {
                    "screen": "JOIN_NOW",
                    "data": {
                      "screen": "JOIN_NOW",
                      "data": {
                        "fname": "Doe",
                        "lname": "John",
                        "age": "30"
                      }
                    }
                  },
                  "flow_metadata": {
                    "flow_json_version": 703,
                    "data_api_protocol": null,
                    "data_api_version": null,
                    "flow_name": "Sign_up_form",
                    "categories": []
                  },
                  "icon": "DEFAULT",
                  "has_multiple_buttons": false
                }
              }
            ]
          },
          "cta_disabled": false
        },
        "quoted_type": "interactive"
      },
      "from_name": "My Company"
    }
  ],
  "event": {
    "type": "messages",
    "event": "post"
  },
  "channel_id": "MANTIS-AB1CD"
}
```

{% endcode %}

### Status Sent

```
{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 2,
      "status": "sent",
      "recipient_id": "919984351847@s.whatsapp.net",
      "timestamp": "1712995378"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}
```

***

### Status Delivered

```
{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 3,
      "status": "delivered",
      "recipient_id": "919984351847@s.whatsapp.net",
      "timestamp": "1712995378"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}
```

***

### Status Read

```
{
  "statuses": [
    {
      "id": "YhNqCveDWW90_t8lzrW25w-wO4Twl0rVw",
      "code": 4,
      "status": "read",
      "recipient_id": "919984351847@s.whatsapp.net",
      "timestamp": "1712995581"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "post"
  },
  "channel_id": "MANTIS-M72HC"
}
```

***

### Message statuses in groups

A group message has no single status: each participant receives and reads it separately. That is why statuses of group messages work differently from direct messages:

* **`statuses.post` is not sent for group messages.** Statuses arrive as **`statuses.put`** events, one per participant. The `viewer_id` field shows who received or read the message. Duplicates are possible.
* If your webhook is subscribed only to `statuses` with POST, you will never see status changes of group messages. Enable `statuses` → **PUT** in the webhook settings.
* The `status` field of the message itself (the `messages.post` webhook, the GET message endpoint) does not show whether a group message reached people: it may be `pending` or even `read` right away.
* To check statuses without webhooks, use **`GET /statuses/{MessageID}`**. It returns one entry per participant: the latest status, `viewer_id` and time. Only the latest status is returned, not the history. For direct messages this endpoint returns an empty list — take the status of a direct message from `statuses.post` or from the `status` field of the message.

Example (`statuses.put`, a participant has received the message):

```json
{
  "statuses": [
    {
      "id": "PsriV9xP2h9Ir0g-wgEBq53ioSvg2Q",
      "code": 3,
      "status": "delivered",
      "recipient_id": "120363194020948049@g.us",
      "timestamp": "1712995581",
      "viewer_id": "919984351847@s.whatsapp.net"
    }
  ],
  "event": {
    "type": "statuses",
    "event": "put"
  },
  "channel_id": "MANTIS-M72HC"
}
```

***

### Format

<table data-header-hidden><thead><tr><th width="154"></th><th></th></tr></thead><tbody><tr><td>id*</td><td><p><code>string</code></p><p>Message ID from event</p></td></tr><tr><td>code*</td><td><p><code>number</code></p><p>Status code</p></td></tr><tr><td>status*</td><td><p>StatusEnumstring<br>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" ]</p><p>Message ack status</p><p>Enum:<br>[ failed, pending, sent, delivered, read, played, deleted ]</p></td></tr><tr><td>recipient_id</td><td><p>ChatID <code>string</code><br>pattern: ^[\d-]{10,31}@[\w\.]{1,}$</p><p>Chat ID</p></td></tr><tr><td>viewer_id</td><td><p>ContactID <code>string</code><br>pattern: ^([\d]{7,15})?$</p><p>Participant the status came from. Only in statuses of group messages (<code>statuses.put</code>)</p></td></tr><tr><td>timestamp*</td><td><p><code>string</code></p><p>Timestamp of the status message</p></td></tr></tbody></table>

[^1]: We have disclosed the reasons and description of this status below
