Skip to main content
Pass webhook_url on submit. It must be a public http(s) URL; private and loopback hosts are rejected with a 400. Redirects are not followed. When the check reaches a terminal status, we POST once (with retries on transport / 5xx errors). If delivery fails, webhook_error on the check describes why:
type is document_check.{status}: either completed or failed.

Guarantees

  • Delivery is at-least-once. Handlers must be idempotent on data.id.
  • We stop retrying on 4xx (your endpoint rejected the payload) and on 3xx (redirects).
  • Already-delivered checks are not re-posted on Celery retry.
  • Transport failures and 5xx responses are retried with backoff. After retries are exhausted, webhook_error is set and we stop.

Local testing

Use a public HTTPS tunnel (ngrok, Cloudflare Tunnel) pointed at your local receiver.