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

# User Launch Flows

> Every in-app flow you can launch a user into: the scope and target each one uses, and what to know about each.

Some Etherfuse flows run **inside the app**, not over the API: the user completes them in their browser, in a real authenticated session. You send a user into one with a **launch**: sign a short-lived [user JWT](/v2/guides/jwt-authentication#sign-a-user-jwt) carrying the flow's **`scope`**, then have the user's browser hand it to `/auth/launch` with the flow's **`target`**.

The launch *mechanism* is identical for every flow and is documented once in [JWT User Authentication](/v2/guides/jwt-authentication#launch-the-user-into-the-app). Only the `scope` and `target` change between flows; the full list is below.

## Scopes

The **`scope`** claim is required on every partner JWT and names what the user may do. It is strictly enforced: the claim cannot be omitted, and any value other than a scope listed below is rejected with [`invalid_scope`](/v2/guides/authentication-errors#invalid_scope). Ask only for the scope a user needs.

## Targets

The **`target`** is the app path the launch lands the user on. It must be one of the paths listed below, optionally with a query string (for example `?org=<org_id>`, used by Business KYB). Any other path, or an absolute URL, is rejected with [`invalid_target`](/v2/guides/authentication-errors#invalid-target), so a launch can't be redirected off-site.

## Flows

| Flow | `scope` | `target` | What the user does |
| - | - | - | - |
| [**Identity verification (KYC)**](#identity-verification) | `verification` | `/idv` | Completes KYC (identity document, liveness scan, and the required agreement signatures) in one hosted step. If you pushed data or documents over the API first ([KYC API](/v2/guides/kyc-api)) or imported a [shared session](/v2/guides/kyc-sumsub-shared-token), the customer is shown only what remains. Launch with `sub` = the customer's org id. Append `&lang=es` for Spanish. |
| [**Business KYB**](#business-kyb) | `kyb` | `/kyb` | Completes Know Your Business verification for a business: company details, registry documents, its owners' and representatives' identity checks, and the compliance questionnaires. |

A launch's JWT needs the matching `scope`, and the `target` must be the matching path.

### Identity verification

`scope: verification` · `target: /idv`

This is how a customer completes **KYC**. Launch them into `/idv` with **`sub` = the customer's org id** (the `id` you used when creating their `personal` organization). In one hosted session the customer submits a government-issued ID, completes a liveness face scan, and signs the required agreements. Etherfuse reviews the result and approves; you're notified through a [`kycUpdated`](/v2/api-reference/webhooks/kycupdated) [webhook subscription](/v2/webhooks). See [KYC WebSDK](/v2/guides/kyc-websdk) for the full walkthrough.

Append **`&lang=es`** to render the entire flow in Spanish (all UI text, scan prompts, error messages, and status screens). Omit the parameter or pass `lang=en` for English. Example: `/idv?lang=es`.

<Warning>
  **Camera access.** The face scan needs the camera. If you embed the launch in an **iframe**, the iframe element must delegate camera access with a wildcard origin: `allow="camera *; microphone *"`. The bare form (`allow="camera"`) only grants the camera to the iframe's own `src` origin, but the scan SDK uses it from a nested frame, so without the `*` the browser blocks the camera and the scan never starts. A top-level tab or popup needs nothing extra.
</Warning>

### Business KYB

`scope: kyb` · `target: /kyb`

Use to send a user into Know Your Business verification. Append `?org=<org_id>` to the target to choose which organization to verify; without it, the app uses the last organization that person selected, falling back to their first, and prompts them to create a business if they belong to none. See [KYB WebSDK](/v2/guides/kyb-websdk) for the full walkthrough.

The launch lands the user in a guided flow embedded in the app, which collects the company's details and registry documents, the identity of the people who own and represent it, and Etherfuse's compliance questionnaires. Read the business's verification status with [`GET /organization/{organizationId}/kyb`](/v2/api-reference/kyb/get-kyb-status).

<Warning>
  **Camera access.** The owner and representative identity checks need the camera, so an **iframe** embed carries the same requirement as `/idv`: `allow="camera *; microphone *"`, with the wildcard. See the warning under [Identity verification](#identity-verification) for why the bare form is not enough.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.