# Webhook payloads

**POST** `{configured webhook URL}`

Endpoint shape implemented by external webhook receivers. Return any 2xx response after accepting an event.

Authentication: standardWebhooks
Authorization: External receiver endpoint shape for webhook events.

## Parameters

- `webhook-id` (header string, required) - Stable event identifier. Deduplicate deliveries with this value.
- `webhook-timestamp` (header integer, required) - Unix timestamp in seconds for the delivery attempt. Reject stale timestamps to prevent replay.
- `webhook-signature` (header string, required) - Standard Webhooks signature header. Verify it against `webhook-id`, `webhook-timestamp`, and the exact raw request body.

## Request body

- `application/json`: `WebhookPayload` required.

## Payload variants

- `contact.created` (ContactCreatedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `contact.updated` (ContactUpdatedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `contact.archived` (ContactArchivedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `conversation.started` (ConversationStartedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `conversation.updated` (ConversationUpdatedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `conversation.closed` (ConversationClosedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `message.created` (MessageCreatedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.
- `message.updated` (MessageUpdatedWebhookEvent) Required fields: `id`, `type`, `timestamp`, `data`.

## Responses

- `2XX`: Event accepted
