> For the complete documentation index, see [llms.txt](https://docs.uptiq.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.uptiq.ai/document-ai/document-ai-1/webhooks-and-integrations.md).

# Webhooks & Integrations

Webhooks fire automatically when a document extraction, classification, or generation job finishes — moving from `Pending`/`Processing` to `Processed` or `Failed`. Delivery is retried automatically with backoff, and every delivery attempt is tracked so you can monitor and manually retrigger if needed.

In the UI, deliveries are tracked on the Webhook Monitor screen, reachable from the sidebar's PLATFORM section as well as the Home dashboard's Quick Links.

<figure><img src="/files/R9AW37k3juEX2ApYn5Co" alt=""><figcaption></figcaption></figure>

| Capability             | Description                                                                                                                                                   | Limit                                                                                           |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Automatic delivery     | Fires on completion of extraction, classification, or generation jobs                                                                                         | Multi-document operations (extraction groups, ZIP archives) wait for all children before firing |
| Retry with backoff     | Failed deliveries retry automatically                                                                                                                         | Default 3 attempts, exponential backoff (30s base, 2x multiplier, capped at 8 minutes)          |
| Terminal failures      | 4xx responses are not retried                                                                                                                                 | Treated as a permanent failure for that URL                                                     |
| Stale webhook recovery | Webhooks stuck in `Processing` are retried                                                                                                                    | After 24 hours                                                                                  |
| Manual retrigger       | Re-send a delivery on demand                                                                                                                                  | —                                                                                               |
| Signed payloads        | Payloads are signed for verification                                                                                                                          | HMAC-SHA256, using the account's webhook private key                                            |
| Monitoring             | List, filter (by ID, document ID, status, or type), and paginate webhook deliveries; open a delivery for its Overview, Payload, Response, and Timeline detail | 100 items max per page (default 50)                                                             |

{% hint style="info" %}
Configure one or more HTTPS endpoints (`webhookUrls`) on your account. Every matching event is posted to all configured URLs.
{% endhint %}

{% hint style="warning" %} <mark style="color:$warning;">The Webhook Monitor's Status filter includes a</mark> <mark style="color:$warning;">**Cancelled**</mark> <mark style="color:$warning;">option that isn't part of the documented</mark> <mark style="color:$warning;">`status`</mark> <mark style="color:$warning;">enum (</mark><mark style="color:$warning;">`Pending | Processing | Processed | Failed`</mark><mark style="color:$warning;">) below.</mark>
{% endhint %}

{% hint style="info" %}
A webhook's Document ID links to that document's extraction detail page — see [Document Extraction](/document-ai/document-ai-1/document-extraction.md) for a known error state when that record can't be resolved.
{% endhint %}

### Workflow

1. **Configure** — add one or more webhook URLs to your account settings.
2. **Trigger** — a document extraction, classification, or generation job completes, moving to `Processed` or `Failed`.
3. **Deliver** — the system posts a signed payload to each configured URL, with an `eventId` for idempotency.
4. **Retry on failure** — if delivery fails with a retryable error, the system retries with exponential backoff, up to the retry limit. A 4xx response stops retries for that URL.
5. **Monitor** — view webhook delivery status, filtered by document, extraction group, or collection.
6. **Retrigger** — manually resend a delivery if needed, even after it's reached a terminal state.

### Events

Webhooks fire for job completion across these collections:

| Event source            | Fires when                                      |
| ----------------------- | ----------------------------------------------- |
| Document Extraction     | Extraction (single or multi-document) completes |
| Document Classification | Classification completes                        |
| Document Generation     | Generation job completes                        |

Frontend event labels include: `extraction`, `extraction-updated`, `processing-complete`, `processing-failed`, `document-uploaded`.

Confirmed for all four roles (Owner, Admin, Member, Viewer): read access to the Webhook Monitor. Record counts have been observed to differ across roles during a testing session — this reflects account activity accumulating over time (each classification upload triggers a webhook attempt), not per-role data scoping.

### Other Integrations

Google OAuth is supported for authentication (ID token verification). No other third-party connectors are currently available — webhooks are the primary integration surface for external systems.

### Related pages

* [Document Classification](/document-ai/document-ai-1/document-classification.md), [Document Extraction](/document-ai/document-ai-1/document-extraction.md), and [Document Generation](/document-ai/document-ai-1/document-generation.md) each emit completion events.
* [User Management](/document-ai/document-ai-1/user-management.md) covers the account settings and signing key used to verify webhook payloads.
* [Workspace](/document-ai/document-ai-1/workspace.md) gives operators a quick path into the monitor.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.uptiq.ai/document-ai/document-ai-1/webhooks-and-integrations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
