Get Started
Webhooks allow your systems to receive real-time notifications when parsing or extract events occur in your Anesya workspace.
When an event you subscribed to occurs, Anesya sends an HTTP POST request to the target URL you configured.
- Webhooks are sent as JSON payloads.
- A webhook delivery is considered successful if your server responds with a
2XXHTTP status code. - Any other status code is considered a failed delivery and is logged in your dashboard.
- You can manually replay a delivery from the dashboard.
- Navigate to Settings -> Webhooks in your Anesya dashboard.
- Click Create Webhook.
- Choose an event type.
- Enter the target URL. It must use
https://. - Save.
When a webhook is created, Anesya also generates a webhook secret. Store it securely and use it to verify webhook signatures on your side.
You can create multiple webhooks for the same event, each with a different target URL.
| Event | Description |
|---|---|
parsing.in_queue | Triggered when a parsing is queued. |
parsing.in_progress | Triggered when a parsing starts processing. |
parsing.finished | Triggered when a parsing completes successfully. |
parsing.partial_finished | Triggered when a parsing completes but one or more pages failed. |
parsing.failed | Triggered when a parsing fails. |
extract.completed | Triggered when an extract completes successfully. |
extract.failed | Triggered when an extract fails. |
Each webhook request uses this top-level JSON shape:
{
"id": "b1eaea1a-ee96-4f7d-a2cb-dbadff2da584",
"event": "extract.completed",
"timestamp": "2026-04-22T10:15:26.123456+00:00",
"data": {}
}The data object depends on the event type.
For extract events, data contains the serialized extract resource:
{
"id": "b1eaea1a-ee96-4f7d-a2cb-dbadff2da584",
"event": "extract.completed",
"timestamp": "2026-04-22T10:15:26.123456+00:00",
"data": {
"id": "dac926a0-d0f9-47f0-9678-bb9a562475af",
"document_name": "invoice.pdf",
"parsing": "ca989d38-2ac0-4abe-82ff-fc46350309f5",
"schema": "6c6ec37c-d103-4609-82e9-3cd4b8ccf32b",
"status": "FINISHED",
"result": {
"invoice_number": "SFO0602FAC06611"
},
"error": null,
"created_at": "2026-04-22T10:14:58.704355+00:00",
"updated_at": "2026-04-22T10:15:26.104212+00:00"
}
}For parsing events, data contains the serialized parsing resource:
{
"id": "b1eaea1a-ee96-4f7d-a2cb-dbadff2da584",
"event": "parsing.finished",
"timestamp": "2026-04-22T10:15:26.123456+00:00",
"data": {
"id": "6ea6f966-dacd-49fb-bbb6-112233445566",
"document": {
"id": "ef592bd9-25ea-448f-8809-b37124cc7bef",
"filename": "invoice.pdf",
"file_url": "/front/documents/ef592bd9-25ea-448f-8809-b37124cc7bef/download/",
"metadata": {
"source": "api"
},
"page_count": 2,
"created_at": "2026-04-22T10:10:00+00:00",
"updated_at": "2026-04-22T10:10:00+00:00"
},
"picture_description_enabled": false,
"table_verification_enabled": false,
"model": "PIGALLE",
"pictures": [],
"ocr_content": [],
"markdown_content": "# Invoice",
"pages_total": 2,
"pages_success": 2,
"pages_failed": 0,
"status": "FINISHED",
"metadata": {
"source": "api"
},
"error": null,
"created_at": "2026-04-22T10:10:02+00:00",
"updated_at": "2026-04-22T10:10:20+00:00"
}
}Content-Type: application/json
X-Anesya-Webhook-Id: b1eaea1a-ee96-4f7d-a2cb-dbadff2da584
X-Anesya-Webhook-Delivery-Id: 7f6f2b16-4e2f-4a2f-b01a-91cc06bc0b1b
X-Anesya-Webhook-Timestamp: 1776852926
X-Anesya-Webhook-Signature: v1=9a8f4d5b...
User-Agent: Anesya-WebhookBot/1.0The signature is an HMAC SHA-256 over:
delivery_id + "." + timestamp + "." + raw_request_bodyUse the webhook secret returned at creation time to verify X-Anesya-Webhook-Signature.
- Your endpoint must return a
2XXHTTP status to confirm successful receipt. - Failed deliveries are stored in your dashboard with the response status and response body.
- You can manually replay a delivery from its webhook record.
- We recommend logging incoming deliveries on your side for traceability.
- Verify
X-Anesya-Webhook-Signaturewith your webhook secret before trusting the payload. - Validate the timestamp and reject old deliveries if needed.
- Store
X-Anesya-Webhook-Delivery-Idto make your consumer idempotent. - Avoid executing critical actions blindly.
- Only expose webhook endpoints over
HTTPS.
You can monitor webhook deliveries directly in your dashboard:
- view the delivery history
- inspect payloads, headers, response status, and response body
- check success or failure state
- replay a delivery from an existing webhook record
If you encounter issues with webhooks, contact us at support@anesya.app.