Skip to main content
This guide walks through setting up webhooks to receive real-time notifications for document lifecycle events.

Step 1: Create Your Endpoint

Create an HTTPS endpoint that accepts POST requests:

Step 2: Register Your Webhook

Save the signing_secret from the response - it’s only shown once!

Event Types Reference

Step 3: Test Your Webhook

Upload a document and verify your endpoint receives the notification:

Security Checklist

Always verify the X-DocIntell-Signature header
Use 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

  • 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)
  • 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 (not X-DocIntell)
  • Use the document_id and job_id from the payload to deduplicate
  • Store processed event IDs temporarily in Redis or database
  • DocIntell guarantees at-least-once delivery