Skip to main content
Webhooks deliver Adclear events to your endpoint as soon as they happen, so you do not have to poll. You provide an HTTPS URL during onboarding and receive a shared secret for verifying that requests genuinely came from Adclear.

Overview and configuration

Webhooks are configured per organisation by the Adclear team during onboarding. Delivery:
  • Sent as application/json via POST.
  • Treat delivery as at-least-once and best-effort. Acknowledge quickly with 2xx, then process asynchronously.
  • Deduplicate lifecycle events on deliveryId. Deduplicate evaluation-completed on evaluationId.

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 an X-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:
If an evaluation webhook does not arrive, fall back to polling the evaluation.

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.