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

# Overview

> Choose how to initialize Argyle Link.

Argyle Link can be embedded in your application or launched as a hosted session URL. Choose the frontend integration based on where Link will run, then choose the authentication path based on the backend workflow your implementation uses.

## Choose how to integrate

<CardGroup cols={3}>
  <Card title="Web SDK" icon="window" href="/link/initialization/web">
    Embed Link in a browser with the Web SDK.
  </Card>

  <Card title="Mobile SDKs" icon="mobile-screen" href="/link/initialization/mobile-sdks">
    Embed Link with the iOS, Android, React Native, or Flutter SDKs.
  </Card>

  <Card title="Hosted Link" icon="arrow-up-right-from-square" href="/link/initialization/hosted-link">
    Launch a session URL directly in a browser or secure mobile browser context.
  </Card>
</CardGroup>

## Choose an authentication path

The backend workflow determines which value your frontend uses to start Link.

| Backend workflow             | Frontend value                        | Use with                                                                               |
| ---------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------- |
| Direct embedded Link         | `userToken` and `sandbox`             | [Web SDK](/link/initialization/web) or [Mobile SDKs](/link/initialization/mobile-sdks) |
| Payroll verification session | Session `link` used as `connectUrl`   | [Web SDK](/link/initialization/web) or [Mobile SDKs](/link/initialization/mobile-sdks) |
| Payroll verification session | Session `link` launched directly      | [Hosted Link](/link/initialization/hosted-link)                                        |
| Banking verification session | Session `link` passed as `connectURL` | Banking SDK                                                                            |

For direct embedded Link implementations, create a new user or refresh an existing user's token on your server, then initialize embedded Link with the returned `user_token`.

For verification implementations, create a session via [`POST /v2/sessions`](/api-reference/verifications/create-a-session). The response includes a `link` URL. For payroll sessions, pass that URL as `connectUrl` in an embedded Link SDK initialization, or launch it directly as Hosted Link. For banking sessions, pass the URL via the [banking SDK](/api-reference/verifications-guide#banking) as `connectURL`.

<Note>
  User tokens and session links both expire after one hour. Create a fresh user token before initializing Link with `userToken`, or create a new session link for an active verification before initializing Link with `connectUrl`, launching Hosted Link, or launching the banking SDK.
</Note>

## Required initialization parameters

Use either the `connectUrl` path or the `userToken` path. Do not pass both in the same Link initialization.

| Parameter    | Type    | Required when                                                  | Description                                                                                                                                                                                                                                                                                 |
| ------------ | ------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `connectUrl` | string  | Initializing embedded Link from a payroll verification session | The session `link` URL returned when [creating a payroll session](/api-reference/verifications/create-a-session). Link's environment is encoded in the URL and does not need to be set with `sandbox`. For banking sessions, pass the session `link` as the banking SDK `connectURL` value. |
| `userToken`  | string  | Initializing embedded Link through the user token flow         | Token used to identify and authenticate users. See [User Tokens](/link/user-tokens).                                                                                                                                                                                                        |
| `sandbox`    | boolean | Initializing embedded Link through the user token flow         | Determines Link's environment: `true` for Sandbox, `false` for Production.                                                                                                                                                                                                                  |

## Optional initialization parameters

<Info>
  `flowId`, `items`, and `language` can also be provided in the [verification session request](/api-reference/verifications-guide#create-a-connection-session).
</Info>

<Info>
  Flow IDs are not environment-specific: the same Flow ID applies consistent behavior across both Sandbox and Production.
</Info>

<table>
  <thead>
    <tr>
      <th>Parameter</th>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><code>flowId</code></td>
      <td>string</td>

      <td>
        ID used to <a href="/console/flows/embedded-experiences">customize</a> the Link flow. Saved Flow IDs can be found in the <a href="https://console.argyle.com/flows" target="_blank">Flows</a> section of Console.
      </td>
    </tr>

    <tr>
      <td><code>items</code></td>
      <td>array of strings</td>
      <td>Limits Link to the provided Items. Providing one Item skips Link search and opens that Item's login screen. Providing multiple Items shows only those Items.</td>
    </tr>

    <tr>
      <td><code>accountId</code></td>
      <td>string</td>
      <td>Used for <a href="/workflows/account-connections#direct-login">direct logins</a> to an account that the user has previously connected or attempted to connect.</td>
    </tr>

    <tr>
      <td><code>\<Callback Name></code></td>
      <td>string</td>
      <td><a href="/link/reference/callbacks">Callbacks</a> are activated by specific events in embedded Link, such as account connection, errors, closure, and token expiration. Hosted Link does not support callbacks.</td>
    </tr>

    <tr>
      <td><code>language</code></td>
      <td>string</td>

      <td>
        Sets the display language in Link.

        <ul>
          <li><code>EN</code> and <code>ES</code> are available across all platforms and employers</li>
          <li><code>RU</code> and <code>ZH</code> currently limited to <a href="/overview/data-structure/items#types-of-items">gig platforms</a></li>
          <li>Can be used in combination with other optional initialization parameters including <code>flowId</code></li>
          <li>Certain platform-generated messages, such as multi-factor authentication prompts, will be shown as-received and depend on the user's language preferences selected within their platform's settings.</li>
          <li>In Console, you can test Spanish in Sandbox mode by changing the <strong>Language</strong> dropdown when previewing an <strong>Embedded Experiences</strong> Link Flow.</li>
        </ul>

        <Note>
          <strong>Possible values</strong>: <code>EN</code> (English), <code>ES</code> (Spanish), <code>RU</code> (Russian), <code>ZH</code> (Chinese).<br /><em>\*Flutter uses lowercase <code>en</code>, <code>es</code>, <code>ru</code>, <code>zh</code>.</em>
        </Note>
      </td>
    </tr>
  </tbody>
</table>

## Next steps

* Use [Web SDK](/link/initialization/web) for browser-based embedded Link.
* Use [Mobile SDKs](/link/initialization/mobile-sdks) for native or cross-platform mobile SDK setup.
* Use [Hosted Link](/link/initialization/hosted-link) when you want to launch a session URL directly.
