Skip to content

Start a KYC check

POST/v1/kyc/checks

Requires an API client bearer token.

Opens a verification case for a cardholder in `collecting`, pinned to the programme's active policy version. Requires an Idempotency-Key header. The case advances once the required applicant data and signals are in place; completion is signalled via the kyc.check.completed event. Accepts an optional `flow_key` selector (default 'default'), pinning the case to that flow's policy lineage ONCE, at creation; an unknown key 400s `unknown_flow` before any storage is touched, so the Idempotency-Key is never consumed by a rejected flow.

Parameters

Header parameters

NameRequiredDescription
Idempotency-Keyrequired

Client-chosen. An identical retry with the same key returns the stored response; reusing the key with a different payload returns 409.

Request body

cardholder_idstringrequired
programme_idstring (uuid)
level"basic" | "enhanced"
flow_keystring

Example

curl -X POST https://api.rigid.fi/v1/kyc/checks \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "cardholder_id": "string"
}'

Responses

201

Check started (pending).

idstringrequired
cardholder_idstringrequired
state"pending" | "in_review" | "passed" | "failed" | "expired"required
completed_atstring | nullrequired
created_atstringrequired
expires_atstring | nullrequired
reason_codesarray of string
awaitingarray of string
document_type"passport" | "national_id" | "residence_permit" | "driving_licence"
flow_keystringrequired
400

Validation error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
401

Authentication required

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
403

Forbidden

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

Idempotency-Key reused with a different payload

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
429

Too many KYC writes from this caller — see Retry-After

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring