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

# Event: sent

POST 

Triggered when the provider has accepted the message and handed it off toward
the recipient. **WhatsApp only** - the SMS channel does not emit `sent`, and
the email channel emits no webhooks at all.

## Headers Teekrr sends

| Header               | Value                                                                               |
| -------------------- | ----------------------------------------------------------------------------------- |
| `Content-Type`       | `application/json`                                                                  |
| `X-Teekrr-Signature` | `t=<unix seconds>,v1=<HMAC-SHA256 hex>` - see the [Webhooks guide](/webhooks-guide) |
| `X-Teekrr-Event`     | `sent`                                                                              |
| `X-Teekrr-Channel`   | `whatsapp`                                                                          |

Reference: https://docs.teekrr.com/api-reference/webhooks/webhook-sent

## Request

### Payload

- `event` (enum, required)
  - Allowed values: `sent`, `delivered`, `read`, `failed`, `inbound`
- `channel` (enum, required)
  - Allowed values: `sms`, `whatsapp`, `email`
- `api_key` (object, required) — The API key whose broadcast produced this event, so a consumer whose several keys point at one endpoint can tell them apart. `null` for a dashboard-composed send or an unattributable message.
  - `uuid` (string, optional)
  - `name` (string, optional)
- `timestamp` (datetime, required) — When Teekrr built the payload (ISO 8601, UTC).
- `data` (object, required) — Payload shape for `sent` / `delivered` / `read` / `failed` on the **whatsapp** channel.
  - `provider_message_id` (string, required) — The provider's message identifier for this recipient.
  - `msisdn` (string, required)
  - `status` (enum, required) — The Teekrr message status this event corresponds to.
    - Allowed values: `sent`, `delivered`, `read`, `failed`
  - `broadcast_uuid` (string, optional, nullable) — The broadcast this message belonged to; `null` for a message with no broadcast.