For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dashboard
HomeAPI Reference
HomeAPI Reference
  • Get started
    • Welcome
    • Quick Start
  • API basics
    • Authentication
    • Conventions
    • Errors
    • Webhooks
  • Products
    • Digital Identity
    • OCR & Computer Vision
    • E-Contracting
    • OAuth Registration
    • Iframe Integration
  • SDKs
    • Flutter SDK
  • Resources
    • Support
  • Changelog
    • Changelog
Dashboard
LogoLogo
On this page
  • 1. Get an admin token
  • 2. Register a user
  • 3 – 5. Verify identity
  • Next steps
Get started

Quick Start

Make your first Vlens API call in under 5 minutes
||View as Markdown|
Was this page helpful?
Edit this page
Previous

Welcome to Vlens

Next

Authentication

Built with

This guide walks through the minimal path to register a user and verify their identity. You’ll need your ApiKey — get it from the Vlens dashboard.


1. Get an admin token

cURL
JavaScript
Python
$curl -X POST https://api.vlenseg.com/api/credentials/Login \
> -H "ApiKey: YOUR_API_KEY" \
> -H "TenancyName: YOUR_TENANT" \
> -H "Content-Type: application/json" \
> -d '{
> "tenancyName": "YOUR_TENANT",
> "userNameOrEmailAddress": "admin@yourtenant.com",
> "password": "YOUR_PASSWORD"
> }'

Response:

1{
2 "data": {
3 "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
4 "expireInSeconds": 86400,
5 "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
6 }
7}

2. Register a user

Registration is a two-step OTP flow: send OTP → validate OTP → complete registration.

cURL
JavaScript
Python
$# 2a — Send phone OTP
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/Register/StepVerifyPhone \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{"phoneNumber": "+201234567890"}'
$
$# 2b — Validate OTP (use phoneNumberOtpRequestId from above response)
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/Register/StepVerifyPhone \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "phoneNumber": "+201234567890",
> "phoneNumberOtpRequestId": "SAVED_REQUEST_ID",
> "phoneNumberOtp": "123456"
> }'
$
$# 2c — Complete registration
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/Register \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "phoneNumber": "+201234567890",
> "phoneNumberOtp": "123456",
> "phoneNumberOtpRequestId": "SAVED_REQUEST_ID"
> }'

The registration response includes data.accessToken — use this as Authorization: Bearer <token> for all verification calls.


3 – 5. Verify identity

With the user token, submit the national ID and liveness images.

cURL
JavaScript
Python
$# 3 — ID front (omit transaction_id to start a new transaction)
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/verify/id/front \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Authorization: Bearer USER_TOKEN" \
> -H "Content-Type: application/json" \
> -d '{"image": "BASE64_ID_FRONT", "getExtractedData": true}'
$
$# 4 — ID back (use transaction_id from previous response)
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/verify/id/back \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Authorization: Bearer USER_TOKEN" \
> -H "Content-Type: application/json" \
> -d '{"image": "BASE64_ID_BACK", "transaction_id": "TX_ID"}'
$
$# 5 — Liveness (3 images captured within 0.5 seconds of each other)
$curl -X POST https://api.vlenseg.com/api/DigitalIdentity/verify/liveness/multi \
> -H "ApiKey: YOUR_API_KEY" \
> -H "Authorization: Bearer USER_TOKEN" \
> -H "Content-Type: application/json" \
> -d '{
> "image": "BASE64_ID_FRONT",
> "face_1": "BASE64_FACE_1",
> "face_2": "BASE64_FACE_2",
> "face_3": "BASE64_FACE_3",
> "transaction_id": "TX_ID"
> }'

When data.isDigitalIdentityVerified is true, the user is fully verified and eligible to create contracts.


Next steps

Authentication

Token types, refresh flow, and security best practices

Digital Identity

Full guide with error handling and edge cases

E-Contracting

Create and sign FRA-compliant contracts

Error codes

Complete error reference