Skip to main content
Webhooks allow you to receive HTTP POST notifications when key events happen in your Klara applications. Instead of polling the API, configure a webhook endpoint and Klara will push events to you in real time.

Supported events

Payload format

All webhook payloads follow the same envelope structure:

application.opened

Fired when the end user opens their Klara portal link for the first time.

application.company_selected

Fired when the end user picks their company from the registry name search. The application’s company_name and company_number now carry the registry-validated identity.

data fields

application.stage_completed

Fired each time a stage of the application form transitions to complete — for example when the end user finishes the company details step and moves on. Use it to track progress in real time instead of polling.

data fields

stage_data

The shape depends on the stage type:
  • Content stages (e.g., company, questionnaire) carry stage_data.fields — the stage’s visible field values. Sensitive fields are excluded, same as application.submitted.
  • People stages (directors, owners, representatives) carry stage_data.people — confirmed people for that stage, each with full_name, first_name, last_name, roles, and nationality when known.
Stages can complete more than once — if the end user edits a completed stage and re-completes it, another event fires. The confirmation step does not emit stage_completed; listen for application.submitted instead.

application.submitted

Fired when the end user submits their application.

data fields

application.decision_received

Fired when a downstream provider decision is reported to Klara via the Record Decision endpoint.

data fields

webhook.test

Sent when you click Send test in the dashboard.

Configuring webhooks

  1. Go to Settings → Integrations → Webhooks in your Klara dashboard
  2. Click Add Endpoint
  3. Enter your HTTPS URL and select the events you want to receive
  4. Copy the signing secret — you’ll need it to verify payloads
You can configure up to 5 webhook endpoints per organization. Webhook URLs must use HTTPS.

Delivery & retries

Klara delivers webhooks asynchronously. If your endpoint is unavailable, delivery is retried automatically:

Auto-disable

If an endpoint fails 5 consecutive deliveries (across any events), it is automatically disabled. You must re-enable it manually from the dashboard. The failure counter resets on any successful delivery.

Verifying signatures

Every webhook includes HMAC-SHA256 signatures so you can verify payloads are genuinely from Klara. See the Webhook Signatures guide for implementation details.

Best practices

  • Respond quickly — return a 200 response before processing the event. Use a queue for heavy work.
  • Handle duplicates — use the id field for idempotency. The same event may be delivered more than once.
  • Verify signatures — always validate the X-Klara-Signature header before trusting the payload.
  • Use HTTPS — webhook URLs must use HTTPS. HTTP URLs are rejected.