Skip to main content
There are two read endpoints. Both are free and safe to poll as often as you need.

The journey steps

Which steps a verification runs, their order, and which are required come from the journey you set up with us during onboarding, so yours may differ from the example below. Drive your integration off the steps array the API returns, never a hardcoded list. GET .../data reads at any status, so you see steps fill in as the user progresses.
The steps below are an example. You set up your users’ journey with us during onboarding, so yours may differ in which steps appear, their order, and which are required.
Each step reports a status of pending, in-progress, completed, failed, or skipped. The progress object on the status response tallies the steps by status, and the counts always sum to total, so you can render a progress bar without walking the array.
Steps depend on one another (for example, editing business resets bank). If a user goes back and changes an earlier step, its dependent steps return to pending. Drive your UI off the reported status rather than assuming a step, once complete, stays complete.

The data payload

GET .../data returns each step with the data it collected and the documents gathered against it. data is a free-form object of the step’s fields; documents is the list of files that step collected, each downloadable by its document_id.
The keys inside each step’s data depend on your configured journey. See Sample verification data for a complete example and how to read data without hardcoding field names.

Documents

Documents are collected inside the hosted flow and returned under the step that gathered them in GET .../data. Two endpoints work with the files themselves.
  • GET /verifications/{user_id}/documents lists every document with its tag, kind (document or image), filename, content_type, size_bytes, and uploaded_at.
  • GET /verifications/{user_id}/documents/{document_id}/download returns a short-lived presigned download_url plus expires_in (seconds). Fetch the file promptly; do not cache the URL, request a fresh one when you need the file again.