Skip to content

Update a KYC level

PUT/v1/kyc/levels/{level_key}

Requires an API client bearer token.

Replaces a level's display name and/or definition (at least one). With `expect_updated_at` the write lands only if the level is still the revision the caller read (409 `level_conflict` otherwise). A definition that cannot be used is a 400 `invalid_level` carrying `problems[]`. A published policy keeps its own frozen snapshot, so editing a level never changes one. Requires Idempotency-Key and the programme_admin role.

Parameters

Path parameters

NameRequiredDescription
level_keyrequired

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

programme_idstring (uuid)required
display_namestring
definitionobject
+ show properties
screensarray of objectrequired
+ show properties
idstringrequired
titlestring
skip_if_knownboolean
fieldsarray of one ofrequired
+ show properties

One of

typed

idstringrequired
kind"typed"required
key"given_name" | "family_name" | "date_of_birth" | "nationality" | "document_number" | "document_expiry" | "document_issuing_state" | "address_line1" | "address_postcode" | "address_country"required
requiredbooleanrequired
input"text" | "dropdown" | "date"
hintstring
optionsarray of object
+ show properties
idstringrequired
valuestringrequired
labelstringrequired
visible_whenstring
patternstring
skip_if_knownboolean

block

idstringrequired
kind"block"required
block"document" | "selfie" | "proof_of_address"required

untyped

idstringrequired
kind"untyped"required
input"text" | "number" | "dropdown" | "checkbox" | "radio" | "upload"required
labelstringrequired
requiredbooleanrequired
hintstring
optionsarray of object
+ show properties
idstringrequired
valuestringrequired
labelstringrequired
visible_whenstring
patternstring
expect_updated_atstring (date-time)

Example

curl -X PUT https://api.rigid.fi/v1/kyc/levels/{level_key} \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "programme_id": "uuid"
}'

Responses

200

The updated level.

level_keystringrequired
display_namestringrequired
archived_atstring
screensintegerrequired
fieldsintegerrequired
used_byarray of stringrequired
updated_atstringrequired
definitionobjectrequired
+ show properties
screensarray of objectrequired
+ show properties
idstringrequired
titlestring
skip_if_knownboolean
fieldsarray of one ofrequired
+ show properties

One of

typed

idstringrequired
kind"typed"required
key"given_name" | "family_name" | "date_of_birth" | "nationality" | "document_number" | "document_expiry" | "document_issuing_state" | "address_line1" | "address_postcode" | "address_country"required
requiredbooleanrequired
input"text" | "dropdown" | "date"
hintstring
optionsarray of object
+ show properties
idstringrequired
valuestringrequired
labelstringrequired
visible_whenstring
patternstring
skip_if_knownboolean

block

idstringrequired
kind"block"required
block"document" | "selfie" | "proof_of_address"required

untyped

idstringrequired
kind"untyped"required
input"text" | "number" | "dropdown" | "checkbox" | "radio" | "upload"required
labelstringrequired
requiredbooleanrequired
hintstring
optionsarray of object
+ show properties
idstringrequired
valuestringrequired
labelstringrequired
visible_whenstring
patternstring
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 level with this key for this programme

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

The level changed since it was read (code `level_conflict`), or the Idempotency-Key was reused with a different payload

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
429

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

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring