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

# Identity Link plans

> Compare the Basic, Premium and Pro plans of VU Identity Link: verification quota, link and data windows, branding, API access, location precision and hosting.

Every plan runs the same engine: real-time document capture and real-time face biometrics with anti-spoofing. What changes is **how many verifications you get, how long the data lives, and how much of the product you can shape** — starting with whether you can call the API at all.

<CardGroup cols={3}>
  <Card title="Basic" icon="seedling" href="https://identity.vu-one.com/signup">
    **0.00 USD**

    * **10 (monthly)** · Number of verifications
    * Real time Biometric verification
    * Real time ID verification
    * **30 minutes** · Customer link expiration time
    * **30 minutes** · Customer data expiration time
    * **Name only** · Customization (Name - Logo - Color)
    * **IP only** · Customer location precision
    * **SaaS** · Hosting

    **Get started →**
  </Card>

  <Card title="Premium" icon="bolt" href="https://identity.vu-one.com/signup">
    **USD 49.99 / mo**

    * **100 (monthly)** · Number of verifications
    * Real time Biometric verification
    * Real time ID verification
    * **2 months (max)** · Customer link expiration time
    * **1 week** · Customer data expiration time
    * **Full** · Customization (Name - Logo - Color)
    * **Yes** · API access
    * **Configurable** · Customer location precision
    * **SaaS** · Hosting

    **Get started →**
  </Card>

  <Card title="Pro" icon="building" href="https://www.vusecurity.com/contacto">
    **Custom**

    * **Whatever you need** · Number of verifications
    * Real time Biometric verification
    * Real time ID verification
    * **Custom** · Customer link expiration time
    * **Custom** · Customer data expiration time
    * **Full** · Customization (Name - Logo - Color)
    * **Yes** · API access
    * **Configurable** · Customer location precision
    * **Custom options** · Hosting

    **Contact us! →**
  </Card>
</CardGroup>

## Side by side

| Feature | Basic | Premium | Pro |
| - | - | - | - |
| Price | 0.00 USD | USD 49.99 / mo | Custom |
| Number of verifications | 10 (monthly) | 100 (monthly) | Whatever you need |
| Real time Biometric verification | Yes | Yes | Yes |
| Real time ID verification | Yes | Yes | Yes |
| Customer link expiration time | 30 minutes | 2 months (max) | Custom |
| Customer data expiration time | 30 minutes | 1 week | Custom |
| Customization (Name - Logo - Color) | Name only | Full | Full |
| API access | No | Yes | Yes |
| Customer location precision | IP only | Configurable | Configurable |
| Hosting | SaaS | SaaS | Custom options |

<Warning>
  **API access is the dividing line.** On Basic, `POST /oauth/token` answers `401 invalid_client` with the message *"User must have Premium or Pro plan"*. Every page in this section assumes Premium or Pro.
</Warning>

## Which plan fits

```mermaid theme={null}
flowchart TD
    Q1{"Do you need to call the API?"}
    Q1 -->|No| Q2{"More than 10 verifications a month?"}
    Q1 -->|Yes| Q3{"Over 100 a month, a data window past 1 week,<br/>or your own servers?"}
    Q2 -->|No| BASIC["Basic — 0.00 USD"]
    Q2 -->|Yes| PREMIUM["Premium — USD 49.99 / mo"]
    Q3 -->|No| PREMIUM
    Q3 -->|Yes| PRO["Pro — custom"]
```

## The verification counter

The counter is checked before a link is created, so a full quota stops the link, not the person mid-flow.

| Plan | Window counted | Limit |
| - | - | - |
| Basic | The calendar month, from the 1st | 10 |
| Premium | Your billing month — the month that ends on your renewal date | 100 |
| Pro | The whole contracted period, from start date to end date | The quota agreed with VU |

When the quota is full, `POST /links` answers `409` with reason `maxReached` and no link is created. On Premium and Pro, a plan whose end date has passed answers `409 planExpired` instead — a distinct case worth handling separately in your code.

<Note>
  Pro counts against the **whole contracted period**, not per month. A 12-month Pro contract for 12,000 verifications lets you spend them at any pace.
</Note>

## The two clocks

This is the part the pricing table cannot show. Each verification carries a single `expiresAt`, stamped **once**, when the verification is created. It is the **sum** of both settings:

```text theme={null}
expiresAt = creation time + customer link expiration time + customer data expiration time
```

| Plan | Link window | Data window | Total data lifetime |
| - | - | - | - |
| Basic | 30 minutes, fixed | 30 minutes, fixed | **1 hour** |
| Premium | 30 minutes, 1 day, 1 week or 60 days | 30 minutes, 1 day or 1 week | **up to 67 days** |
| Pro | Any value VU sets for you | Any value VU sets for you | Custom |

<Warning>
  Read those two rows of the pricing table as one sum. A Basic link is unusable after 30 minutes, but its verification data stays readable for **60 minutes** from creation. A Premium account on the longest settings reaches 60 + 7 = **67 days**.
</Warning>

## When the window closes

Expiry governs access. You never wait for a cleanup job for the data to stop being served.

| Surface | Answer after `expiresAt` |
| - | - |
| `GET /verifications/{id}` | `410 Gone`, carrying `status` and `expiresAt` |
| `GET /verifications/{id}/images` | `404` |
| `GET /verifications/{id}/status` | Still answers — the status string only, no personal data |
| Dashboard | Still listed as a reference, marked **Expired**, with the customer-data button disabled |

Afterwards a daily job anonymizes the record: the personal fields become SHA-256 hashes and the images are deleted. From that point the verification answers `404`, exactly as if it had never existed.

The row itself is removed later, on a schedule that depends on your plan:

| Plan | Record removal |
| - | - |
| Basic | Rolling: records older than 365 days |
| Premium | Nothing is removed during your first year. After that, only records from before that first anniversary are removed — everything newer stays |
| Pro | Not removed while the contract is alive |

## Branding

| Plan | What you control |
| - | - |
| Basic | The company name only. The color is fixed at `#666666` and the logo stays empty — a logo upload answers `405` |
| Premium, Pro | Name, logo and color, applied to the verification screens your customer sees |

Downgrading resets branding at the source: the color returns to `#666666`, the logo is cleared, and both windows drop back to 30 minutes.

## Customer location precision

Every verification records the precision of whatever location was available. The plan decides whether you may ask the customer's browser for a precise one.

| Plan | Policy |
| - | - |
| Basic | Fixed at *never ask*. The location comes from the IP — coarse at best |
| Premium, Pro | Configurable: **don't ask**, **suggest** (asked once, declining continues over IP so nobody is blocked), or **enforce** (required before any capture) |

The policy actually applied is recorded on each verification, so a result is always evidence of what the person was subjected to.

## Beyond the table

Two behaviors are shaped by your plan even though the pricing grid does not list them.

<AccordionGroup>
  <Accordion title="Device hand-off is a paid setting" icon="mobile-screen">
    Hand-off lets a session that started on a desktop continue on the customer's phone. The mode — **never**, **suggest** or **require** — can only be changed on Premium and Pro. A Basic account keeps whatever mode it already had, read-only.
  </Accordion>

  <Accordion title="Adaptive flow reuses only data you still hold" icon="user-check">
    Adaptive flow lets a returning customer verify with a selfie instead of a second document scan. The previous verification qualifies only while it is successful, not anonymized, and **still inside its own `expiresAt`**.

    That makes the reuse window your data window. On Basic, a customer is only "returning" for 60 minutes, so adaptive flow is of little practical use there. On Premium at the longest settings the window reaches 67 days, and on Pro it is whatever VU configured.
  </Accordion>
</AccordionGroup>

## Changing plan

<CardGroup cols={2}>
  <Card title="Basic to Premium" icon="credit-card">
    Self-serve, from the **Plans** screen inside the app. It is a monthly subscription; your quota and windows apply from the moment the subscription starts.
  </Card>

  <Card title="Premium to Pro" icon="headset">
    Arranged with VU. Support provisions the account with your agreed quota, your link window, your data window, and the start and end dates of the contract.
  </Card>
</CardGroup>

What support can tune on Pro, in minutes rather than fixed options: the customer link expiration time, the customer data expiration time, the verification quota, and the contract window. Hosting is agreed separately — Pro is the only plan that can run somewhere other than the shared SaaS.

<Note>
  Upgrading from Basic or Premium to Pro carries your **unused verifications** across: they are added to the new quota rather than discarded.
</Note>

<Tip>
  In the API, the three plans are the values `free`, `premium` and `commercial`. The product calls them **Basic**, **Premium** and **Pro** — same three tiers, different vocabulary.
</Tip>

***

(\*) The data will be kept as long as the contractual relationship exists or as long as the legal retention periods require it.


## Related topics

- [Identity Link Webhooks: Verification Lifecycle Events](/en/identity-link/webhooks.md)
- [Identity Link API Changelog](/en/identity-link/changelog.md)
- [Identity Link API: Integration Guide](/en/identity-link/introduction.md)
- [VU Technical Documentation](/en/index.md)
- [Identity Link API Error Codes and Responses](/en/identity-link/errors.md)


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