> 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.

# Batch status

POST 

Sent once per batch when the batch was created with `webhook_mode: BATCH`, after every number has a send result (usually 1 to 2 minutes after the request). If a number is still pending after 30 minutes, the webhook is sent anyway with that number as `QUEUED_PROVIDER`.

Any status change of a number after this webhook (for example, a `FAILED` reported later by the operator, or a number that was still pending) is notified through the regular `messageStatus` webhook with `batch_id`; keep the most recent `datetime` of each `message_id`.

A batch that could not be processed is notified with `status: FAILED` in any `webhook_mode`. It is delivered to the same destinations and with the same retries as the `messageStatus` webhook.

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

## Request

### Payload

- `type` ("BATCH", optional) — Distinguishes this webhook from the per-message one.
- `batch_id` (string, optional) — The same `batch_id` returned in the `202` response.
- `status` (enum, optional)
  - Allowed values: `COMPLETED`, `FAILED`
- `datetime` (datetime, optional) — Timestamp of the webhook, in UTC.
- `total` (integer, optional) — Numbers received in the batch.
- `summary` (map from string to integer, optional) — Number of messages per status (`COMPLETED` only).
- `messages` (list of BatchStatusEventMessagesItems, optional) — Status of each number, in the order of the request.
- `error` (string, optional) — Reason of the failure (`FAILED` only).
- `unprocessed` (list of string, optional) — `message_id` of the numbers that were never processed (`FAILED` only).

## Types

### BatchStatusEventMessagesItems

- `message_id` (string, optional)
- `status` (string, optional) — `SENT`, `FAILED`, `INVALID_FORMAT`, `INVALID_SOURCE`, `OUTPUT_NOT_FOUND`, or `QUEUED_PROVIDER` when the number was still pending after the maximum wait.
- `datetime` (datetime, optional)