Skip to content

Update a cardholder

PATCH/v1/cardholders/{id}

Requires an API client bearer token.

Updates cardholder identity fields. Requires an Idempotency-Key header and at least one field in the body. Once KYC has passed or the cardholder is attested, full_name/country lock against an actual change (422 identity_locked); email/phone stay mutable. A patch whose values already match the stored row is a no-op: 200, no write, no event. Emits cardholder.updated listing only the fields whose value actually changed.

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

full_namestring
emailstring (email)
phonestring | null
countrystring

Example

curl -X PATCH https://api.rigid.fi/v1/cardholders/{id} \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "full_name": "string",
  "email": "email",
  "phone": "string",
  "country": "string"
}'

Responses

200

The updated cardholder.

idstring (uuid)required
programme_idstring (uuid)required
full_namestringrequired
emailstringrequired
phonestring | nullrequired
countrystringrequired
kyc_state"unverified" | "pending" | "passed" | "failed" | "in_review"required
attestedbooleanrequired
attested_bystring | nullrequired
attested_atstring | nullrequired
kyc_completebooleanrequired
funding_account_idstring | nullrequired
funding_currencystring | nullrequired
created_atstringrequired
400

Validation error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
401

Authentication required

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
403

Forbidden

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
404

Cardholder not found

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

Idempotency-Key reused with a different payload

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
422

Empty patch, or full_name/country patched after KYC passed or attestation (identity_locked)

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring