Verification lifecycle
A verification progresses through the following states:Verification steps
During aFULL FLOW, the user moves through these operational steps:
Get verification details
Retrieve the full verification record including extracted document data and geolocation:The verification identifier is
_id. All OCR-extracted document fields live inside the data object, not at the root of the response.Extracted data fields
Lightweight status polling
GET /verifications/{id}/status is a public endpoint: it takes no Bearer token. Instead it requires the linkId query parameter, which proves the caller is the intended end user rather than anyone who guessed the verification id.
operationGuid and the resolved method, add the include parameter. linkId is still required:
List verifications
Get last 100 verifications
Verifications from the last hour
Paginated verifications
20 is the page size (max 100) and 1 is the page number.
Related verifications for the same client
GET /verifications/{id}/related returns every other verification for the same client, meaning the same company and the same externalUserId on its link, newest first.
The list is empty when the anchor verification’s link has no
externalUserId to match on.Verification images
images object: addFront, addBack, and the register array of selfie frames.
Public flow endpoints
The three endpoints below are called by the user’s device during the flow, without a token. All of them require the verification to still be attached to an active link and to be inpending or started status.
Report geolocation
Every location field travels nested inside thegeolocation object.
- Declaring a device
source(gps,wifi, orcell) withoutdeviceLatitudeanddeviceLongitude. Nothing downstream can use either half alone. - A
capturedAtmore than 24 hours from the server’s clock.
Report an error
Identify a user mid-flow
PATCH /verifications/identify covers an adaptive link created without an externalUserId. It backfills the link’s externalUserId from the supplied email and re-resolves the adaptive branch.
- Repeating the same email is always a no-op and answers 200.
- An identifier the API supplied at link creation can never be overwritten: a different email answers 409 with
identifierAlreadyBound. - An identifier this endpoint itself set, meaning one typed by the person, is freely correctable: a different email is accepted and the branch is re-resolved.
- An invalid or missing email answers 400.
Manual feedback override
If an automated result needs human review, submit feedback throughPOST /verifications/feedback:
List available feedback reasons, each returning
_id and reason. Use that _id as the reasonId:
Geolocation reference
geolocation pairs a reported location with a measure of how much to trust it. It is absent until a location has been reported, and tier is always present alongside coordinates: never a bare lat/lng.
source is inferred, not measured: the W3C Geolocation API does not expose its provider, so gps, wifi, and cell are deduced client-side from altitude, speed, and accuracy bands. Only ip and none are certain. Being client-declared, all values are falsifiable — the server-side ipDistanceKm is the cross-check.