> 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: inbound

POST 

Triggered when a customer sends a message to your WhatsApp number - a reply to
a broadcast, or a conversation they started. **WhatsApp only.**

Unlike the status events, `inbound` is **not** filtered by broadcast origin:
you receive replies regardless of whether the original message was sent via
the API or composed in the dashboard. There is no origin to attribute, so
`api_key` is `null`.

Inbound messages on the shared platform-default WhatsApp number are not
attributable to a single client and do not fire this event - only clients
with their own WABA receive `inbound`.

`X-Teekrr-Event: inbound`, `X-Teekrr-Channel: whatsapp`.


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

## 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)
  - `provider_message_id` (string, required)
  - `msisdn` (string, required) — The customer who sent the message.
  - `conversation_uuid` (string, required) — The thread this message belongs to.
  - `message_type` (string, required) — e.g. `text`, `image`, `video`, `document`, `audio`.
  - `received_at` (datetime, required)
  - `body` (string, optional, nullable) — Text content, when the message has any.
  - `media_url` (string, optional, nullable) — Teekrr-hosted copy of the attachment, when the message has one.
  - `contact_name` (string, optional, nullable) — The WhatsApp profile name the customer publishes.