Skip to main content

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:

  1. 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

FieldTypePresent whenDescription
event_iduuidAlwaysUnique identifier for the webhook event.
statusstringAlwaysOutcome of the check-in. One of succeeded or failed.
auth_typestringAlwaysThe method used for check-in. One of OTP, FV, APP, finger_print, Override.
hmo_idintegerAlwaysThe insurer (HMO) id associated with the enrollee.
provider_idintegerAlwaysThe provider id where the check-in was performed/attempted.
enrollee_idintegerAlwaysThe enrollee id being checked in.
occurred_atdatetimeAlwaysTimestamp representing when the outcome was produced.
checkin_idintegerOnly when status=succeededThe created check-in id.
confirmed_atdatetimeOnly when status=succeededTimestamp representing when the check-in was confirmed.
reason_codestringOnly when status=failedA machine-readable error code describing the failure.
messagestringOnly when status=failedA human-readable message describing the failure.
http_statusintegerOnly when status=failedHTTP 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"
}
}