> ## Documentation Index
> Fetch the complete documentation index at: https://docs.verify.privue.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reading results

> Status versus data, the journey steps, and downloading documents.

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

| Endpoint                                    | Use it for                                                                             |
| ------------------------------------------- | -------------------------------------------------------------------------------------- |
| `GET /verifications/{verification_id}`      | Status and per-step progress. This is your polling loop.                               |
| `GET /verifications/{verification_id}/data` | The collected data: per-step detail and uploaded documents. Partial before completion. |

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

<Info>
  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.
</Info>

| Key         | Title             | Required |
| ----------- | ----------------- | -------- |
| `consent`   | Consent           | Yes      |
| `identity`  | Identity          | Yes      |
| `business`  | Business details  | Yes      |
| `bank`      | Bank account      | Yes      |
| `documents` | Documents         | No       |
| `review`    | Review and submit | Yes      |

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.

<Note>
  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.
</Note>

## 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`.

<Note>
  The keys inside each step's `data` depend on your configured journey. See
  [Sample verification data](/sample-verification-data) for a complete example and how to read `data`
  without hardcoding field names.
</Note>

## 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/{verification_id}/documents` lists every document with its `tag`, `kind`
  (`document` or `image`), `filename`, `content_type`, `size_bytes`, and `uploaded_at`.
* `GET /verifications/{verification_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.
