PARSERGet Started

PARSER GUIDES

Webhooks

Receive document.exported events and payload structure

Webhooks send extracted data to your URLs when a document is processed.

Webhooks are configured on parsers. Document classifiers route files to parsers; after the target parser finishes extraction, that parser's webhook settings apply.

Setting up webhooks

1. Open your parser and go to Settings -> Integrations.

2. Under Available Integrations, click Webhook.

3. Expand Webhook export, add one or more endpoint URLs, then click Save.

Screenshot placeholderguide-api-webhooks-01-webhook-export-endpoint-form-clean-5ca12673.webpRequired PARSER view: Integrations with Webhook export and endpoint URL fieldFuture alt text: Integrations with Webhook export and endpoint URL field

Event type: document.exported

Triggered when a document has been extracted, post-processed, and (if reviews are enabled) approved. Requests are delivered by Svix. The request body is JSON with this shape:

{
  "event": "document.exported",
  "data": {
    "id": "doc_123",
    "extracted_data": {
      "Invoice Number": "INV-001",
      "Total": 1234.56,
      "Invoice Date": "2026-07-24",
      "Paid": false,
      "Line Items": [
        {
          "Description": "Consulting",
          "Amount": 1234.56
        }
      ]
    },
    "metadata": {
      "id": "doc_123",
      "name": "invoice.pdf",
      "url": "https://app.PARSER.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.PARSER.com/.../document.md",
      "event": "document.exported",
      "teamId": "team_123",
      "teamSlug": "acme-co",
      "parserId": "parser_123",
      "workflowId": "workflow_123"
    }
  }
}
  • event - Always document.exported for this webhook.
  • data.id - The PARSER document ID.
  • data.extracted\_data - Your parser's fields and tables. Values keep their JSON type: text, numbers, booleans, arrays, and table-row objects. Null extracted values are converted to empty strings.
  • data.metadata - Document state and context. createdAt and updatedAt are ISO timestamps when available. Nullable values such as thumbnail, pageCount, isApproved, and markdownUrl may be null. When Markdown parsing is enabled, markdownUrl is a temporary URL for the stored .md file.

Do not read extracted_data or metadata from the top level. Both are nested inside data.

Webhook security

Signature verification

Each request includes Svix headers you can use to verify it came from PARSER and was not modified:

svix-id: ...
svix-timestamp: ...
svix-signature: ...

Use these with the signing secret shown for each endpoint in the Webhook export settings. See How to verify webhooks for details and code samples.

HTTPS

Webhook URLs must use HTTPS.

Testing webhooks

In Settings -> Integrations -> Webhook export, expand an endpoint and use Send test webhook to send a sample payload to your URL.

MCP ServerConnect AI agents to PARSER using the remote MCP serverOpen guide → Upload Files to Parser or Classifier POSTUpload one or more files to either a parser or a document classifier. Provide exactly one target: - \parserId\ to extract data with that parser. - \classifierId\ to classify and route documents to configured target parsers. Classifier uploads return routing status for each document. Classifiers do not extract data themselves; routed documents are extracted by the target parsers.Open guide →