> For the complete documentation index, see [llms.txt](https://docs.1kosmos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.1kosmos.com/identity-verification/verification-methods/web-to-mobile-handoff.md).

# Web-to-Mobile Handoff

Let users start verification on desktop and seamlessly continue on their phone no manual link copying.

***

Most desktops and laptops don't have a camera that's good enough to capture an ID document  and most users would rather not hold their license up to a webcam anyway. 1Kosmos's **web-to-mobile handoff** lets the user start a verification on whatever device they signed up on, and seamlessly move to their phone for the capture step.

The user never has to copy a link, type a code, or find the SMS app.

### How it works

{% stepper %}
{% step %}

#### User starts on desktop

They click your "Verify your identity" CTA. Their browser opens the session URL on the desktop.&#x20;
{% endstep %}

{% step %}

#### 1Kosmos checks camera capability

The session detects the desktop browser doesn't meet the minimum camera resolution (1080×1920) — or simply isn't a camera-capable form factor.
{% endstep %}

{% step %}

#### A QR code appears

The desktop UI displays a QR code with a one-time, session-bound handoff URL.

The session is **not yet started** on the mobile side it's just an invitation to continue.
{% endstep %}

{% step %}

#### User scans the QR with their phone

The same session same `sessionId`, same flow, same expiry opens on mobile. The desktop UI updates in real time to show "Verification in progress on mobile…
{% endstep %}

{% step %}

#### User completes capture on mobile

Document scan and selfie are captured on the phone. On completion, the desktop UI advances to the result screen.
{% endstep %}
{% endstepper %}

#### When it triggers

The QR handoff is offered automatically when any of these is true:

* No camera is detected on the desktop browser.
* The desktop camera resolution is below the 1080×1920 minimum.
* The user explicitly clicks "Continue on phone" on the start screen.

If the desktop camera *is* adequate (some laptops have very good ones), the user can continue on desktop. The QR option is still shown as an opt-in alternative.

#### Session continuity guarantees

* The `sessionId`, expiry, and result are shared across desktop and mobile. There's no second session created on handoff.
* The result is delivered to **both** browser contexts. Whichever the user closes first, the other still receives the update.
* Handoff URLs are bound to a single session and become invalid after first use.

#### Edge cases

* **User abandons on mobile.** The desktop UI continues to wait until the session's `from_session_start` expiry. After that, the session moves to `abandoned`.
* **User reopens the QR after using it.** The handoff URL has already been consumed; the user is shown a "this link has expired" screen with a button to start over.
* **Two devices race the handoff.** The first successful capture wins; subsequent submissions are rejected with `session_already_terminal`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.1kosmos.com/identity-verification/verification-methods/web-to-mobile-handoff.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
