> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.chatbridge.mx/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.chatbridge.mx/_mcp/server.

# Message status

POST 

Chat Bridge notifies each status change of a sent message through an HTTP POST request (webhook).

A successful send is notified as `SENT`; no `DELIVERED` event is sent. A message in `SENT` can later receive a second event with an error status (`FAILED`, `EXPIRED`, `IN_BLACKLIST`, `INVALID_FORMAT` or `MISSING_PHONE`) when the operator reports a delivery error; otherwise `SENT` is its final state. Error statuses are terminal: no more events are received for that `message_id` after them. Keep the most recent `datetime` of each `message_id`. Your endpoint must accept `application/json` and respond with a 2xx HTTP code; the response body is ignored.

Reference: https://docs.chatbridge.mx/sms/webhooks/sms-message-status-webhook

## Request

### Payload

- `message_id` (string, optional) — The same `message_id` returned in the `202` response of the send.
- `status` (enum, optional) — Status of the message. `SENT` when it was accepted and sent by the SMS provider; it is followed by an error status if the operator later reports a delivery error. `FAILED` when the send or the delivery failed. The operator can also reject it as `IN_BLACKLIST`, `INVALID_FORMAT` or `MISSING_PHONE`, or report it as `EXPIRED` when the delivery was not confirmed within the message validity period. Batch sends can also report a number rejected before sending: `INVALID_FORMAT`, `INVALID_SOURCE` or `OUTPUT_NOT_FOUND`. Every status other than `SENT` is terminal.
  - Allowed values: `SENT`, `FAILED`, `EXPIRED`, `IN_BLACKLIST`, `MISSING_PHONE`, `INVALID_FORMAT`, `INVALID_SOURCE`, `OUTPUT_NOT_FOUND`
- `datetime` (datetime, optional) — Timestamp of the status change, in UTC.
- `origin_identifier` (string, optional) — Only present when this SMS is the automatic fallback of a WhatsApp or RCS send (see the `fallback` field of those APIs): `message_id` of the originating send, to correlate both attempts. If the backup SMS also fails, a final event with `status: FALLBACK_EXHAUSTED` is emitted (documented in the WhatsApp and RCS APIs). Absent on regular sends.
- `batch_id` (string, optional) — Only present when the message belongs to a batch send (`POST /v1/sms/batches`): the `batch_id` returned in its `202` response.