Correct the personal data of a cardholder that has not been approved yet
and — when it is in submission_failed — resubmit it in one call.
Use this when the provider rejected the submission because of the data
itself (a mistyped ID number, a phone already used by another
cardholder, a non-ASCII address). The description field of the
cardholder carries the reason.
Only the fields present in the body are changed; everything else is
kept. The values are written to the linked user's meta — the source
of truth the submission rebuilds from — so a later
POST /v1/users/{id}/cardholder sees the same corrected data.
Allowed while the cardholder is in submission_failed, reject,
rejected_by_admin or pending_review. An approved cardholder
(pass_audit) or one under review at the provider cannot be edited.
For submission_failed the submission workflow is started again right
away (same as POST /v1/cardholders/{id}/retry) and the response comes
back with status wait_audit; the provider's decision arrives through
the usual cardholder webhook. In the other statuses the data is stored
and the cardholder keeps its status — submit it with
POST /v1/cardholders/{id}/submit once it is reviewed.
KYC documents are not part of this call: re-upload them with
POST /v1/users/{id}/kyc/documents (the newest non-rejected document
per slot is used) before resubmitting.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id |
path | string |
yes |
Request body
application/json
· CardholderUpdateRequest
· required
| Field | Type | Required | Description |
|---|---|---|---|
accountPurpose |
string |
no | |
address |
string |
no | Letters, digits, hyphens and spaces only (no commas or other punctuation); max 40 chars; ASCII. |
annualSalary |
string |
no | |
birthday |
string |
no | YYYY-MM-DD. |
country |
string |
no | Country code, see /v1/cardholders/regions. |
email |
string |
no | Max 50 chars. |
expectedMonthlyVolume |
string |
no | |
firstName |
string |
no | Latin letters, space, hyphen, apostrophe and period only; max 40 chars. TEST/MOCK/SANDBOX are rejected. |
gender |
string |
no | M or F (B2C). |
idExpiryDate |
string |
no | YYYY-MM-DD. Must not be earlier than idIssueDate. |
idIssueDate |
string |
no | YYYY-MM-DD. Required for B2C. |
idNo |
string |
no | |
idType |
string |
no | PASSPORT, DLN, HK_HKID or GOVERNMENT_ISSUED_ID_CARD. |
lastName |
string |
no | Same rules as firstName. |
nationality |
string |
no | Country code, see /v1/cardholders/regions. |
occupation |
string |
no | Occupation code, see /v1/cardholders/occupations. |
phone |
string |
no | Digits only, 7-15 digits, no country code; must be a mobile number. |
phoneCode |
string |
no | "+" and 1-4 digits, e.g. "+372". |
postCode |
string |
no | Letters and digits only, max 15 chars; spaces are stripped. |
town |
string |
no | City code, see /v1/cardholders/cities. |
Responses
| Status | Body | Description |
|---|---|---|
200 |
CardholderResponse |
Cardholder updated (and resubmitted when it was |
400 |
Error |
Invalid or empty body, or the resulting data fails validation. |
404 |
Error |
Cardholder not found. |
409 |
Error |
Cardholder is in a status that cannot be edited, or has no linked user. |
Specification
This page is generated from the OpenAPI specification, which remains the authoritative machine-readable source.