Overview and configuration
Webhooks are configured per organisation by the Adclear team during onboarding.
Delivery:
- Sent as
application/jsonviaPOST. - Treat delivery as at-least-once and best-effort. Acknowledge quickly with
2xx, then process asynchronously. - Deduplicate lifecycle events on
deliveryId. Deduplicateevaluation-completedonevaluationId.
Common lifecycle envelope
The five review lifecycle events share this envelope.evaluation-completed keeps its existing flat payload (documented below).
Lifecycle data fields
Signature verification
Every request includes anX-Webhook-Signature header: an HMAC-SHA256 hex digest of the raw request body, prefixed with sha256=. Verify it before processing the payload. Use the raw bytes, not a re-serialised object.
Headers on every webhook:
Evaluation payload reference
evaluation-completed uses the legacy payload shape below (not the lifecycle envelope). It may include routing metadata such as organizationId and workspaceId.
Example:
Recovery endpoints
If a lifecycle webhook is missed, read current authoritative state from the Public API. These endpoints return the latest state, not a replay of missed events.Endpoint requirements
For cross-cutting errors (401, 403, 429, 502), see Errors & rate limits.