Webhook for Check-ins
Webhooks enable you to receive data to a specific URL whenever certain actions are performed on your integration. Each action is referred to as an event.
A webhook URL is an endpoint on your server where you can receive notifications about such events.
To setup your webhook URL
- Login to the settings page of your organization's account on the web platform
- Go to Developer Access, where you can specify your webhook URL.
Events
Possible types of events to expect are below:
checkin.outcome
checkin.outcome
This event is triggered when a check-in attempt completes with an outcome (success or failure). It applies to all supported check-in methods, including:
- OTP
- Facial verification
- Geo (enrollee app)
- Fingerprint
- Override
Payload structure
The payload sent to your webhook URL is a JSON object with the following structure:
JSON
{
"event": "checkin.outcome",
"name": "checkin.outcome",
"data": {
"event_id": "{uuid}",
"status": "succeeded|failed",
"auth_type": "OTP|FV|APP|finger_print|Override",
"hmo_id": "{integer}",
"provider_id": "{integer}",
"enrollee_id": "{integer}",
"checkin_id": "{integer|null}",
"confirmed_at": "{datetime|null}",
"reason_code": "{string|null}",
"message": "{string|null}",
"http_status": "{integer|null}",
"occurred_at": "{datetime}"
}
}
Field notes
| Field | Type | Present when | Description |
|---|---|---|---|
event_id | uuid | Always | Unique identifier for the webhook event. |
status | string | Always | Outcome of the check-in. One of succeeded or failed. |
auth_type | string | Always | The method used for check-in. One of OTP, FV, APP, finger_print, Override. |
hmo_id | integer | Always | The insurer (HMO) id associated with the enrollee. |
provider_id | integer | Always | The provider id where the check-in was performed/attempted. |
enrollee_id | integer | Always | The enrollee id being checked in. |
occurred_at | datetime | Always | Timestamp representing when the outcome was produced. |
checkin_id | integer | Only when status=succeeded | The created check-in id. |
confirmed_at | datetime | Only when status=succeeded | Timestamp representing when the check-in was confirmed. |
reason_code | string | Only when status=failed | A machine-readable error code describing the failure. |
message | string | Only when status=failed | A human-readable message describing the failure. |
http_status | integer | Only when status=failed | HTTP status code associated with the failure. |
Example (success)
JSON
{
"event": "checkin.outcome",
"name": "checkin.outcome",
"data": {
"event_id": "0f3a12b8-0f3f-4d5c-8df0-8c2a5b1f1c44",
"status": "succeeded",
"auth_type": "OTP",
"hmo_id": 1,
"provider_id": 10,
"enrollee_id": 1346,
"checkin_id": 98765,
"confirmed_at": "2026-01-27T14:40:10.000000Z",
"reason_code": null,
"message": null,
"http_status": null,
"occurred_at": "2026-01-27T14:40:10.123456Z"
}
}
Example (failure)
JSON
{
"event": "checkin.outcome",
"name": "checkin.outcome",
"data": {
"event_id": "199becd6-f3fe-47ad-9619-7351767c1a09",
"status": "failed",
"auth_type": "FV",
"hmo_id": 1,
"provider_id": 1,
"enrollee_id": 1346,
"checkin_id": null,
"confirmed_at": null,
"reason_code": "FACE_MATCH_ERROR",
"message": "Invalid image parameters. Ensure that image has a detectable face.",
"http_status": 400,
"occurred_at": "2026-01-27T14:37:44.923720Z"
}
}