Skip to content

Attach applicant data to a KYC check

POST/v1/kyc/checks/{id}/submissions

Requires an API client bearer token.

Attaches applicant data to a collecting case. Data is stored under purpose-bound custody and referenced by token. The case advances to evaluation once the programme's policy has the inputs it requires. Callable by `user` or `admin` callers, which includes API clients (OAuth2 client-credentials) — programme-manager integrations are the intended, API-only intake path.

Parameters

Path parameters

NameRequiredDescription
idrequired

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

given_namestring
family_namestring
date_of_birthstring
nationalitystring
document_type"passport" | "national_id" | "residence_permit" | "driving_licence"
document_numberstring
document_expirystring
document_issuing_statestring
document_mrzstring
address_line1string
address_postcodestring
address_countrystring

Example

curl -X POST https://api.rigid.fi/v1/kyc/checks/{id}/submissions \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "given_name": "string",
  "family_name": "string",
  "date_of_birth": "string",
  "nationality": "string",
  "document_type": "passport",
  "document_number": "string"
}'

Responses

200

Submission accepted.

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
404

No such check

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

The case was updated concurrently; retry the submission

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