Docs

Quick start

Create a verification session in one call. Your user finishes it in the widget. Your backend reads the result.

Step 1: Get access

Company verification comes before live access. Write to us to start, or see the welcome credit for your first 12,000 free verifications.

Step 2: Create an API token and set allowed domains

In the dashboard, create a permanent API token and set the allowed domains for your widget. Keep the token on your server. See authentication.

Step 3: Build a scenario

In the no-code scenario editor, choose the steps, documents and countries and note the scenario identifier. Start from a template if you like.

Step 4: Create a session

curl -X POST "<API_BASE_URL>/kyc/session/create" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "<your permanent API token>",
    "schemaId": "<your scenario id>"
  }'

Replace <API_BASE_URL> with the API address provided with your access. A successful call returns the session:

{
  "sessionId": "00000000-0000-0000-0000-000000000000",
  "status": "idle",
  "schemaId": "<your scenario id>",
  "secondsToLive": 3600,
  "createdAt": "2026-01-01T10:00:00.000Z",
  "errors": [],
  "results": [
    { "type": "document", "status": "idle" },
    { "type": "selfie", "status": "idle" },
    { "type": "liveness", "status": "idle" },
    { "type": "faces", "status": "idle" }
  ]
}

Keep sessionId. Your user's uploads go against it, and /kyc/session/status reads the result back. The status is the session status; idle means the session is ready.

Step 5: Open the widget and read the result

Open the widget for the session. When the user finishes, read the status with /kyc/session/status, or receive the SESSION_COMPLETE webhook.

The six operations

All calls are POST under your API address.

OperationEndpoint
Create session/kyc/session/create
Session status/kyc/session/status
Sessions filter/kyc/sessions/filter
Change status/kyc/session/status/change
Erase personal data/kyc/session/erase
Erasure log/kyc/session/erase/log

Questions, answered plainly

Why does my call return a success code with an error inside?

An error can arrive with a successful HTTP code and an error status in the body. Read the status field of the body. See session statuses.

Where do I get the API address?

It is provided with your access. Replace the placeholder in the samples below with it.

Questions while integrating?

Write to us with the details and we will help.

Talk to us