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.
Symptoms
Section titled “Symptoms”- 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.
First, confirm an event actually happened
Section titled “First, confirm an event actually happened”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, ormanual_review_requested. Theexpiredandskipped_by_applicantevent 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.
Then, read the delivery history
Section titled “Then, read the delivery history”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.
Common setup mistakes
Section titled “Common setup mistakes”- 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.
Still stuck?
Section titled “Still stuck?”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.