Skip to main content

Authentication

All management API endpoints use your application API key. No org/app UUIDs are needed in URLs — the application is identified from your key.
Don’t have an API key yet? Register programmatically in 2 API calls.

Workflows

Workflows define what verification steps your users go through (ID scan, liveness, face match, AML screening, etc.). Each workflow is a reusable configuration you attach to sessions.
GET
List all workflows for your application. Returns each workflow’s features, thresholds, and whether it’s the default.
POST
Create a new workflow. Define which verification features to enable, set thresholds, configure accepted document types, and more.
GET
Get full details of a specific workflow, including all feature configurations and thresholds.
PATCH
Update a workflow configuration. You can modify any feature settings, thresholds, or accepted documents.
DELETE
Delete a workflow. Sessions already using this workflow are not affected.
We strongly recommend using the Business Console to create and configure workflows. The visual workflow builder provides templates, drag-and-drop feature configuration, document settings, threshold tuning, and preview — all without writing code. Use the API only for automation or programmatic management of workflows.

Quick Example: Create a Workflow

The workflow_type determines the base feature set. Individual features are then toggled with is_*_enabled flags.
Available workflow_type values: kyc, kyb, adaptive_age_verification, biometric_authentication, address_verification, questionnaire_verification, email_verification, phone_verification. For kyc workflows, ID verification is automatically included — you don’t need a separate flag for it. Use the is_*_enabled flags to add or remove optional features like face match, liveness, AML, NFC, phone, email, proof of address, Device & IP Analysis, and more. Then use the workflow when creating sessions:

Questionnaires

Custom forms you can add to verification workflows to collect additional information from users.
GET
List all questionnaires.
POST
Create a new questionnaire with custom questions, branching logic, and translations.
GET
Get questionnaire details including all questions and form structure.
PATCH
Update a questionnaire.
DELETE
Delete a questionnaire.

Users

Manage verified individuals (users) in your application. Each user is identified by a vendor_data string you provide when creating sessions.
GET
List all users for your application, including their verification status and session history.
GET
Get user details by your vendor_data identifier.
PATCH
Update user metadata.
POST
Batch delete users. Body: {"vendor_data_list": ["user-1", "user-2"]} or {"delete_all": true}. Also purges every biometric template retained for those users.

Biometric Templates

Image-free face biometric templates an opted-in application retains after deleting sessions. See Biometric templates.
GET
Paginated list with filters (vendor_data, vendor_user_uuid, status, source_type, retained_from, retained_to, ordering).
GET
Count with the same filters.
GET
One template: owning User, provenance reference, expiry, instruction, status.
DELETE
Purge one template. Returns {"uuid": "...", "outcome": "purged" | "already_purged"}.
POST
Bulk purge. Body: {"template_uuids": [...]} or {"delete_all": true} plus optional filters.

Session Operations

POST
Batch delete sessions. Requires delete:sessions. Body: {"session_numbers": ["1", "2", "3"]} or {"delete_all": true}, plus optional retain_face_embeddings, face_retention_days, face_retention_deadline, deletion_instruction, and instruction_id. Up to 20 matching sessions return 200 with a per-session face_retention_outcome; more return 202 with a deletion job.
GET
Progress and outcome counts of a bulk session deletion that returned 202.
GET
List reviews and activity log for a session.
POST
Add a review note or status change to a session.

Billing

GET
Get current credit balance and auto-refill settings.
POST
Create a Stripe checkout session to top up credits. Minimum $50.

Lists (Blocklists, Allowlists & Custom)

Manage typed lists for blocklisting, allowlisting, and custom workflow conditions. See the full Lists API documentation.
GET
List all lists for the application (blocklists, allowlists, custom).
POST
Add an entry to a list. Supports reference_session_id to auto-extract data from a session, and reference_object_uuid for traceability to transactions/users/businesses.
DELETE
Remove an entry from a list.
POST
Upload a face image to a face blocklist (base64).

Webhook Configuration

GET
Get current webhook configuration including URL, version, the secret key for verifying webhook signatures, and the application’s data-retention and biometric-template retention policy.
PATCH
Update webhook URL, version, or rotate the secret key. Set rotate_secret_key: true to generate a new webhook secret (old one immediately invalidated). Also sets the application’s retention policy: data_retention_months, and face_retention_policy (delete_with_session default, or retain_until_user_deleted) together with a required finite face_retention_days (1-3650) when retention is enabled. See Biometric template retention. Also registers allowed_return_hosts: up to 20 bare hostnames (for example app.example.com, without a scheme, port, path or wildcard) that a Digital ID wallet API verification may send the person back to over HTTPS. A new list replaces the registered one, and your application’s white-label domain is always allowed.

Complete API Endpoint Summary