Documentation Index
Fetch the complete documentation index at: https://docs.veridox.ai/llms.txt
Use this file to discover all available pages before exploring further.
How It Works
Webhooks let you receive automatic notifications when events occur in Veridox, such as a file analysis completing.Create a webhook configuration
An organisation owner creates a webhook configuration via the API, providing a destination URL where you want to receive events.
Store your signing secret
Veridox provisions a signing secret (format:
whsec_{32-char-alphanumeric}) and returns it once in the creation response. After that, only a prefix is shown for identification.Receive events
When events occur, Veridox sends a
POST request to your URL with:- A JSON payload in the body
- An
x-vdx-signatureheader containing an HMAC-SHA256 hex digest of the raw request body, signed with your webhook secret
Event Types
| Event type | Description |
|---|---|
file.enrichment.success | File analysis completed successfully |
file.enrichment.failed | File analysis encountered an error |
Payload Structure
When a file analysis completes successfully, Veridox delivers a payload like this:For
file.enrichment.failed events, the payload includes an error field instead of results.The
highlights field within results is only present when the `Analysis Highlights’ module is enabled for your organisation.Signature Verification
The signature is computed as:x-vdx-signature header value against your own computed HMAC. Always use a timing-safe comparison to prevent timing attacks.
- Node.js
- Python
Best Practices
Store secrets securely — the signing secret is shown once at creation time and cannot be retrieved again
Always verify signatures — validate every incoming request before processing the payload
Use timing-safe comparison — use
timingSafeEqual (Node.js) or hmac.compare_digest (Python) to prevent timing attacksReturn 2xx quickly — acknowledge receipt immediately and do heavy processing asynchronously
Only one active webhook configuration is allowed per organisation at a time. Creating a new configuration deactivates the previous one.