Create Workflow
Management API 🔧
Create Workflow
Create a new verification workflow
POST
Create Workflow
ID_VERIFICATION, FACE_LIVENESS, AGE_ESTIMATION, PEP_SANCTIONS, ADVERSE_MEDIA.
Request
Headers
| Header | Required | Description |
|---|---|---|
x-api-key | Yes | Your API key |
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Workflow name (1–255 characters) |
steps | array | Yes | Ordered list of verification steps (1–10, no duplicates) |
steps[].id | string | Yes | Step identifier (see Available Steps) |
steps[].config | object | No | Step-specific configuration overrides (see Step Configuration) |
Available Steps
| Step ID | Description |
|---|---|
ID_VERIFICATION | Government ID scanning and validation |
FACE_LIVENESS | Active anti-spoofing liveness detection |
AGE_ESTIMATION | Biometric age estimation |
PEP_SANCTIONS | Politically exposed persons & sanctions screening |
ADVERSE_MEDIA | Negative press and media mention detection |
Step Configuration
Each step accepts optional configuration. If omitted, sensible defaults are applied.ID_VERIFICATION config
| Field | Type | Default | Description |
|---|---|---|---|
minimum_age | integer | 18 | Minimum accepted age |
maximum_age | integer | 51 | Maximum accepted age |
expiry_date_years | integer | 2 | Maximum years until ID expiry is rejected |
require_secondary_id | boolean | false | Require a second form of ID |
require_tertiary_id | boolean | false | Require a third form of ID |
face_front_photo_only | boolean | false | Only capture front-facing photo |
require_front_only | boolean | false | Only scan front of ID |
enable_fraud_analysis | boolean | false | Enable synchronous fraud analysis on submitted IDs. Automatically enabled when escalation_type is not none |
escalation_type | string | "none" | Escalation method when fraud risk is high. One of none, nfc-passport. Implicitly enables enable_fraud_analysis |
escalation_risk_threshold | integer | 60 | Fraud risk score (0–100) at or above which escalation is triggered. Only applies when escalation_type is not none |
FACE_LIVENESS config
| Field | Type | Default | Description |
|---|---|---|---|
confidence_threshold | integer | 70 | Liveness confidence threshold (1–100) |
AGE_ESTIMATION config
| Field | Type | Default | Description |
|---|---|---|---|
minimum_age | integer | 18 | Minimum age requirement (1–100) |
PEP_SANCTIONS / ADVERSE_MEDIA
No configuration options. These steps use default settings.Fraud Analysis & Escalation
TheID_VERIFICATION step supports optional fraud analysis and conditional escalation. When fraud analysis is enabled, submitted IDs are evaluated synchronously for tampering and fraud signals before the session completes.
Fraud analysis only — enable analysis without triggering an extra verification step:
Setting
escalation_type to a value other than none implicitly enables fraud analysis. You do not need to set enable_fraud_analysis separately.| Scenario | enable_fraud_analysis | escalation_type | Behavior |
|---|---|---|---|
| Default (no config) | false | "none" | Fraud analysis runs asynchronously, no escalation |
| Analysis only | true | "none" | Fraud analysis runs synchronously, results returned, no escalation |
| Analysis + escalation | true (implicit) | "nfc-passport" | Fraud analysis runs synchronously, escalation triggered when risk score >= threshold |
Example request
Response
201 — Created
Returns the full workflow record. The response uses the same format as Retrieve Workflow.| Field | Type | Description |
|---|---|---|
workflow | object | The created workflow record |
workflow.id | string | Unique workflow identifier |
workflow.name | string | Workflow name |
workflow.status | string | Always active for newly created workflows |
workflow.organization_id | string | Your organization ID |
workflow.created_at | string | ISO 8601 creation timestamp |
workflow.updated_at | string | ISO 8601 last-updated timestamp |
workflow.steps | array | Ordered list of steps with full resolved configuration |
Error responses
| Status | Description |
|---|---|
400 Bad Request | Invalid request body (missing name, invalid step ID, invalid config, duplicate steps) |
401 Unauthorized | Missing or invalid API key |
403 Forbidden | Sandbox API keys cannot create workflows |
429 Too Many Requests | Rate limit exceeded |