For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

1

User starts on desktop

They click your "Verify your identity" CTA. Their browser opens the session URL on the desktop.

2

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.

3

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.

4

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…

5

User completes capture on mobile

Document scan and selfie are captured on the phone. On completion, the desktop UI advances to the result screen.

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.

Last updated

Was this helpful?