Flow overview
Step 1 — Create a session
| Field | Type | Description |
|---|---|---|
id | string | Unique session identifier |
sessionUrl | string | URL to send the user to for verification |
externalId | string? | Your external reference ID (if provided) |
links | Array<{ url, type }> | Associated resource links |
This maps to the REST Create Session endpoint — see it for the full request/response schema and the
redirect_url callback parameters.Step 2 — Send the user to verify
Redirect the user tosession.sessionUrl. On the hosted page they:
- Upload their identity document (passport, driver’s license, national ID).
- Take a selfie for face matching.
- Complete liveness detection.
Step 3 — Handle the callback
When the user finishes (or abandons), they’re redirected to yourredirectUrl with query parameters appended:
status and reason values.
Step 4 — Retrieve results
Navigating analysis data
TheanalysisData field carries all verification results:
Resource links
Presigned URLs for accessing uploaded documents and images:Step 5 — Update session status
After reviewing the results, set the final status:VERIFIED, REJECTED, and VOIDED are valid targets. You cannot set PENDING or SUBMITTED — those are managed by the API based on user activity. See the REST Update Session Status endpoint.
Listing sessions
Pagination
data with total, hasMore, limit, and offset. See the REST List Sessions endpoint and the Sessions reference for the full types.
Session statuses
| Status | Meaning | Set by |
|---|---|---|
PENDING | Session created, user hasn’t started | API |
SUBMITTED | User completed the verification flow | API |
VERIFIED | Approved by your team | You (via updateStatus) |
REJECTED | Rejected by your team | You (via updateStatus) |
VOIDED | Cancelled / invalidated | You (via updateStatus) |