> For the complete documentation index, see [llms.txt](https://api-docs.visadoc.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.visadoc.co/use-cases/white-label-flow.md).

# White-label Flow

**One line:** Own the entire traveller journey in your UI; VisaDoc runs verification and submission behind it.

**Best for:** Partners who need total brand control and are prepared to handle traveller PII, including documents.

## Flow

```mermaid
sequenceDiagram
  participant You
  participant VisaDoc
  You->>VisaDoc: assessment → applicant → application
  Note over VisaDoc: Document slots scaffolded automatically
  You->>VisaDoc: POST /documents/search (by application_id)
  VisaDoc-->>You: document slots
  You->>VisaDoc: POST /documents/{id}/upload (file)
  loop until resolved
    You->>VisaDoc: GET /documents/{id}
    VisaDoc-->>You: status / cross_check_passed / issues / data
  end
  You->>VisaDoc: GET /applications/{id} (track status)
```

1. Assessment → applicant → application, as in the [handoff pattern](/use-cases/assessment-driven-handoff.md) (see its field note for the `applications/new` IDs, including `access_ids`).
2. Documents are scaffolded automatically on the case. List them with `POST /documents/search` (`{ filters: { application_id } }`). Each slot has a `title`, `description`, `example`, `category` and `required` flag, and starts in status `Required`.
3. `POST /documents/{document_id}/upload` for each slot you collect (`multipart/form-data`, field `file`). The `Issued Visa` slot is filled at the end of the process, not up front.
4. Poll `GET /documents/{document_id}` until it is verified or in `Error`. On `Error`, show the traveller `error_notes` / `issues` and upload a corrected file. `cross_check_passed` tells you whether the document is consistent with the case's other documents.
5. Track the case with `GET /applications/{application_id}` and drive your UI off `status`. After `Decision Made`, [read the outcome](/statuses.md#reading-the-outcome).

**Consider:** All PII, including documents, passes through your product, so apply your own DPA posture accordingly. Document verification is asynchronous, so treat the immediate upload response as provisional.

**Endpoints:** assessment / applicant / application, `POST /documents/search`, `GET|POST /documents/{document_id}[/upload]`, `GET /applications/{application_id}`.
