> ## Documentation Index
> Fetch the complete documentation index at: https://docs.documate.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Receive Documate events on your HTTPS endpoint.

Configure a webhook URL and secret in the app under **Integrations** (business defaults) or on a channel override. Documate POSTs JSON when subscribed events occur.

## Events

* `File received`
* `File completed` — when every document on the file is Ready
* `Document ready`
* `Document failed`
* `Document cancelled`

Sync extract does not send webhooks.

## Headers

| Header | Meaning |
| - | - |
| `X-Documate-Event` | Event name |
| `X-Documate-Delivery` | Delivery / event id |
| `X-Documate-Signature` | `sha256=` + lowercase hex HMAC-SHA256 of the raw body using your shared secret |
| `X-Documate-Test` | Present with value `true` on manual tests from the app only |

Always verify the signature. Do not use `X-Documate-Test` for authentication.

## Body

Webhook JSON uses **snake\_case** fields such as `event`, `event_id`, `queue_id`, `file_id`, `document_id`, `status`, `data`, `error`, and `occurred_at`.

Example (placeholders only):

```json theme={null}
{
  "event": "Document ready",
  "event_id": "document:00000000-0000-0000-0000-000000000001:document_ready",
  "queue_id": "00000000-0000-0000-0000-000000000010",
  "file_id": "00000000-0000-0000-0000-000000000020",
  "document_id": "00000000-0000-0000-0000-000000000001",
  "status": "ready",
  "document_type": "invoice",
  "data": { "invoice_number": "INV-1001" },
  "occurred_at": "2026-01-15T12:00:00Z"
}
```

See [API webhooks](/api-reference/webhooks) for signature verification samples.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.