Skip to main content

Webhooks

Sync verify() is enough for most apps. Use webhooks to push the same decision to another service.

Setup

  1. Dashboard → Integrate → Webhooks
  2. Add an HTTPS URL (test or live)
  3. Copy the signing secret (whsec_…) once
  4. Subscribe to verification.completed
Fires after a successful server POST /v2/verify for matching environment keys.

Envelope

data.object matches the verify() response.

Signature

Also sent: X-Keverd-Event, X-Keverd-Delivery. Signed string: {t}.{raw_request_body}
HMAC-SHA256 with whsec_…, hex digest. Reject if timestamp older than 300 seconds.
Verify the signature against the raw body. Do not parse JSON before verifying.
Use constructEvent / construct_event in the Node, Python, or PHP SDKs.