Skip to main content
Webhooks let Kori notify your server when events happen — most importantly, when an asynchronous collection settles. Register endpoints with the webhooks scope (dashboard → Developer Portal → Webhooks, or the API).

Register an endpoint

The response includes a secret once — store it securely; you’ll use it to verify signatures. You can register up to 5 endpoints per merchant.

Events

Delivery format

Kori sends a POST with a JSON body and these headers:
Body
Respond with a 2xx status quickly. Non-2xx responses count as failures.

Verify the signature

Always verify X-Kori-Signature before trusting a payload. Compute the HMAC over the raw body (not a re-serialized object) using your webhook secret.
Verify against the raw bytes of the request body. Parsing to JSON and re-stringifying changes whitespace/key order and will break the signature.

Retries and auto-disable

Failed deliveries increment a failure counter. After repeated consecutive failures, an endpoint is automatically disabled (is_active: false). Fix your endpoint and re-enable it via PUT /merchant/api/webhooks/{id}.

Test an endpoint

Send a sample test event to confirm your handler works: