Browse documentation
Flows

Create Verification

post/v1/flows

Create a flow. Two independent axes: - **Transport / auth** — a secret ``tnk_`` Bearer (server-to-server, full power), an operator session cookie (the dashboard's manual "New flow" path, same power as a secret key), or a publishable ``pk_`` key (browser gate: Origin-checked, rate-limited, redacted response). - **Execution mode** (``payload.mode``) — ``async`` (default) creates the flow PENDING and returns it; the caller uploads documents and calls ``/process`` to run the checks on the worker. ``sync`` runs the flow's checks inline in-request and returns the decided flow with its results. Captures the originating IP / User-Agent / iOS device headers and enriches with ipapi.co geo. Stored on ``flow.client_metadata``; surfaces as a "Device & location" panel on the dashboard.

Authentication

Send your tenant secret key as a Bearer token. Keep secret keys on your server; never ship them in browser or mobile code.

Parameters

origin
header · optional

No additional parameter description.

Request body

JSON · required

applicant
ApplicantIn

No additional field description.

datasets
AmlDataset[] | null

AML datasets for the ``aml_screen`` check (sanctions, pep, pep_rca, wanted, debarment, soe, crypto_wallets). Unset → the tenant's checks-policy default. An empty list is a 422 — omit the field to get defaults.

device
FlowDeviceIn | null

FingerprintJS evidence for the device-velocity signal. Only consulted in ``mode=sync`` when the flow runs the ``device_fingerprint`` check.

mode
"sync" | "async"

``async`` (default) creates the flow and returns it PENDING — the caller uploads documents and calls /process to run the checks on the worker. ``sync`` runs the flow's checks inline in-request and returns the decided flow with its results. ``sync`` is only valid for checks-only flows (no document/biometric checks) — any other flow is a 422.

template_slug
string | null

Slug of the flow this flow runs under. When unset, the tenant's ``default`` flow is used. The flow controls which checks run and which decision applies when no rule matches.

type
FlowType

No additional field description.

Example request

cURL
curl --request POST \
  --url 'https://api.fideralabs.com/v1/flows' \
  --header 'Authorization: Bearer $FIDERA_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "applicant": {
    "address_city": "string",
    "address_country": "string",
    "address_line1": "string",
    "address_line2": "string",
    "address_postal_code": "string",
    "address_region": "string",
    "business_name": "string",
    "consent": {
      "biometric": {},
      "policy_version": {}
    },
    "custom_attributes": {},
    "dob": "string",
    "email": "string",
    "entity_type": "individual"
  },
  "datasets": [
    "string"
  ],
  "device": {
    "confidence": {},
    "visitor_id": "string"
  },
  "mode": "async",
  "template_slug": "string",
  "type": "id_document"
}'

Responses

201Successful Response
application/json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "reason_codes": [
    "string"
  ],
  "result": "approved"
}
422Validation Error
detail
ValidationError[]

No additional field description.

Operation ID

create_verification_v1_flows_post