Skip to content

Why is my webhook not firing?

Your endpoint is registered but your receiver is silent. Webhooks deliver over HTTPS as signed POSTs, so a silent receiver almost always traces to one of the causes below.

  • You added a webhook endpoint in Developers → Webhooks and selected events, but your receiver never fires.
  • Verifications complete in the console but your application never reacts.

A delivery only fires on a real state transition. Confirm the triggering event occurred:

  • Open the applicant in the console at Applicants and confirm the status is one that produces a delivery: completed, cancelled, or manual_review_requested. The expired and skipped_by_applicant event types are reserved and accepted on a subscription but do not produce deliveries — do not wait on one. See Create a webhook endpoint.
  • Inspect the activity log at Activity for the matching kyc.session.* row.

If no such event happened, there is nothing to deliver. See Why was a verification declined? if the outcome was unexpected.

Open Developers → Webhooks, click into the subscription, and read the delivery history. Each attempt shows its HTTP status, attempt count, and timestamp, and the subscription shows last_failure_at. Use the status your receiver returned to narrow it down:

  • 401 / 403: your receiver rejected the signature. Verify against the raw request body. See Verify webhook signatures.
  • 404: the receiver URL has moved. Edit the subscription and update the URL.
  • Timeouts / TLS / connection errors: the endpoint is unreachable. Check DNS, certificate, and firewall.

Re-drive any failed delivery with Replay. See Replay and troubleshoot webhook deliveries.

  • Wrong mode. Endpoints are per mode: a test-mode endpoint receives only test-mode events, and live only live. Confirm the endpoint is registered in the same mode the verification ran in. See Modes and regions.
  • Event not subscribed. Confirm the subscription includes the event type you expect.
  • Subscription inactive. Confirm the subscription is still active.
  • Plain HTTP URL. Only https:// endpoints are accepted.

Confirm the verification reached a webhook-eligible state in the activity log and that the subscription is active in the right mode. If deliveries still are not arriving while the receiver is healthy, replay a delivery from the subscription detail page to re-test the path.