# Verification links

The **Verification links** section creates, manages, and tracks the links that users open to start verification. A verification link is the primary way to initiate a verification session for an end user.

## Creating a link [#creating-a-link]

To create a new verification link, click **"Create link"** and set the following parameters:

- **Flow** — the verification flow used when a session is created via the link.
- **Expiry** — the time interval during which the link stays active. After it expires, the link becomes invalid.
- **External user ID** (optional) — the user identifier in your system (`external_user_id`) used to bind the session to a specific applicant.
- **Locale** (optional) — language settings for the verification UI.
- **Redirect URL** (optional) — the address the user is redirected to after verification finishes (for example, `https://myapp.com/dashboard`).

After creation, the system generates:

- **Link URL** — the full address with a token to share with the user.
- **Short code** — used as an alternative entry point if needed.

You can deliver the generated link to the user through any convenient channel: email, SMS, or your application's user portal.

### Redirect URL [#redirect-url]

The `redirect_url` parameter sets the address the user is redirected to after verification finishes. The completion-screen behaviour (a click-through button or an automatic redirect) is configured in the flow settings — see [Flows — redirect settings](/en/admin/flows#redirect-settings).

If `redirect_url` is not set, the completion screen is shown without redirect controls.

### Creating links via API [#creating-links-via-api]

Verification links can be created programmatically through the Tenant API, which lets you wire link issuance into your application's business processes (for example, from a CRM):

API operations:

- `POST /v1/kyc/verification-links`

## Link list [#link-list]

The link registry shows the following data:

| Field             | Description                                |
| ----------------- | ------------------------------------------ |
| **ID**            | The unique link identifier                 |
| **Flow**          | The flow bound to the link                 |
| **Status**        | Active, used, or revoked                   |
| **Expiry**        | Date and time when the link expires        |
| **Created at**    | Date and time the link was generated       |

The detail view shows the full URL, usage information (date, device — when available), and the bound session.

## Revoking a link [#revoking-a-link]

To invalidate a link (issued by mistake, verification cancelled, conditions changed):

1. Find the link in the list.
2. Click **"Revoke"**.
3. Confirm the action.

After revocation, opening the link does not create a session — the user sees a notice that the link is invalid.

## QR code [#qr-code]

A QR code can be generated for every active link. QR codes help when the user wants to continue verification on a mobile device. Scanning the code with the smartphone camera takes the user to the verification UI.

QR-code generation is available both in the admin panel and through the Tenant API:

API operations:

- `GET /v1/kyc/verification-links/{id}/qr`

## Additional admin-panel actions [#additional-admin-panel-actions]

Besides the standard actions (create, revoke, QR), the admin panel provides:

- **Duplicate link** — creates a copy of an existing link with the same parameters (flow, expiry, locale) but a new token. Useful for re-sending to the same users with a fresh expiry.
- **Bulk actions** — perform actions (for example, revocation) on a set of links at once: select rows in the table and pick an action from the context menu.
- **Send link via email / SMS** — send the link directly to the applicant from the admin panel through the chosen channel. No need to copy the URL and craft a message manually. The available channel depends on tenant settings (a configured SMS provider, corporate SMTP).
