Step 1: Create Your Endpoint
Create an HTTPS endpoint that accepts POST requests:Step 2: Register Your Webhook
signing_secret from the response - it’s only shown once!
Event Types Reference
| Event | Description |
|---|---|
document.uploaded | Document uploaded and queued for processing |
document.processing.completed | Extraction completed successfully |
document.processing.failed | Extraction failed with error |
Step 3: Test Your Webhook
Upload a document and verify your endpoint receives the notification:Security Checklist
Always verify the
X-DocIntell-Signature headerUse constant-time comparison (
hmac.compare_digest)Store the signing secret securely (not in code)
Only accept HTTPS connections
Respond quickly (< 10 seconds) and process async
Troubleshooting
Not receiving webhooks
Not receiving webhooks
- Verify your URL is publicly accessible
- Check that you’re using HTTPS
- Ensure your firewall allows incoming requests
- Confirm your webhook is active (check via GET /v1/webhooks)
Signature verification failing
Signature verification failing
- Use the raw request body, not parsed JSON
- Ensure you’re using the correct secret
- Check for encoding issues
- The header is
X-DocIntell-Signature(notX-DocIntell)
Receiving duplicate events
Receiving duplicate events
- Use the
document_idandjob_idfrom the payload to deduplicate - Store processed event IDs temporarily in Redis or database
- DocIntell guarantees at-least-once delivery