# Using Webhooks

Source: https://www.digiparser.com/docs/guides/integrations/using-webhooks

Integrations

# Using Webhooks

Send extracted data to other systems via webhooks

Copy MarkdownOpen

# [Using Webhooks](#using-webhooks)

Feedback

**Webhooks** let you send extracted data to **your own URLs** when a document is processed. You add one or more **webhook endpoint URLs** in Integrations. DigiParser then **POST**s the data to those URLs in **JSON** format. Use this to feed your own apps, databases, or workflows.

## [Where to set it up](#where-to-set-it-up)

Feedback

1.  Open your parser and go to **Settings -> Integrations**.
2.  Under **Available Integrations**, click **Webhook**.
3.  It appears under **Added Integrations**. Expand it to add and configure **endpoints**.

app.digiparser.com![Integrations with Webhook added and endpoint cards](https://documents.digiparser.com/docs/screenshots/2026-07-23/webhook-export-endpoint-form-clean.png?sig=2cc78bd45a115330f5f3cfe4ad084b71baf7fe60bfe7179ed9cd0df783b19125)

## [How to configure](#how-to-configure)

### [Add endpoints](#1-add-endpoints)

*   Click **Add Your First Endpoint** (or **Add another endpoint** if you already have some).
*   Enter the **URL** that should receive the data (e.g. `https://your-server.com/webhook`). Use **HTTPS** when you can.
*   You can give each endpoint an optional **name** (e.g. "Production server") so you can tell them apart in the list.

You can add **multiple** endpoints. Each processed document is sent to **all** of them.

### [Save](#2-save)

Click **Save Changes**. From then on, when a document is **processed**, the extracted data is sent to each endpoint as a **JSON** payload.

## [What is sent](#what-is-sent)

Feedback

DigiParser sends a **JSON** request with the event name, document ID, extracted fields and tables, and document details:

```
{
  "event": "document.exported",
  "data": {
    "id": "doc_123",
    "extracted_data": {
      "Invoice Number": "INV-001",
      "Total": 1234.56,
      "Line Items": [
        {
          "Description": "Consulting",
          "Amount": 1234.56
        }
      ]
    },
    "metadata": {
      "id": "doc_123",
      "name": "invoice.pdf",
      "url": "https://app.digiparser.com/...",
      "status": "processed",
      "isProcessed": true,
      "isFailed": false,
      "thumbnail": null,
      "createdAt": "2026-07-24T09:30:00.000Z",
      "updatedAt": "2026-07-24T09:31:00.000Z",
      "assignee": "",
      "pageCount": 1,
      "isApproved": true,
      "ocrText": "",
      "markdownUrl": "https://documents.digiparser.com/.../document.md",
      "event": "document.exported",
      "teamId": "team_123",
      "teamSlug": "acme",
      "parserId": "parser_123",
      "workflowId": "workflow_123"
    }
  }
}
```

Feedback

The fields inside `extracted_data` match your parser. Values may be text, numbers, true/false values, lists, or table rows. Empty extracted values are sent as empty strings. If Markdown parsing is enabled, `metadata.markdownUrl` contains a temporary link to the stored Markdown file.

Feedback

See the [Webhook API reference](/docs/api/webhooks) for the complete payload notes.

## [When data is sent](#when-data-is-sent)

Feedback

Data is sent **when a document is processed** (after extraction).

Feedback

If you use **Reviews & Approvals** and a reviewer is assigned, webhooks wait until the document is **approved**. If no reviewer is assigned, webhooks are sent immediately after processing.

## [Tips](#tips)

Feedback

*   Your endpoint should respond quickly (e.g. **200 OK**). If you need to do slow work, save the payload and process it later.
*   Use **HTTPS** and ensure your server is reachable from the internet so DigiParser can deliver.
*   Use **multiple endpoints** to send the same data to different systems (e.g. your app and a logging service).

## [Verifying webhooks](#verifying-webhooks)

Feedback

Every webhook request is sent through our provider (Svix) and includes headers you can use to make sure the request is genuine:

Feedback

*   `svix-id` - unique message identifier
*   `svix-timestamp` - when the message was created
*   `svix-signature` - HMAC signature of the request body

Feedback

On your server you can use the **signing secret** (shown next to each endpoint in the Webhook export settings) together with these headers to verify that:

Feedback

*   the request really came from DigiParser, and
*   the payload was not modified in transit.

Feedback

See [How to verify webhooks](/docs/guides/integrations/verifying-webhooks) for a short step-by-step guide and code examples you can hand to a developer.

## [Troubleshooting](#troubleshooting)

Feedback

*   **No data received** - Check the URL is correct, uses HTTPS if required, and is publicly reachable. Check your server logs for incoming requests.
*   **Errors or timeouts** - Your server may be slow or returning errors. Respond with **200** as soon as you've accepted the payload.

## [Next steps](#next-steps)

Feedback

*   [Integrations Overview](/docs/guides/integrations/overview) - Other import and export options
*   [API Access](/docs/guides/integrations/api-access) - Use the Process API
*   [Setting Up Zapier](/docs/guides/integrations/setting-up-zapier) - Connect 1000+ apps via Zapier

How is this guide?

GoodBad

[

Custom Code Export

Run JavaScript after document processing to send data through one or more API calls

](/docs/guides/integrations/custom-code-export)[

Verifying webhooks

Make sure webhook requests really come from DigiParser.

](/docs/guides/integrations/verifying-webhooks)