Updating User KYC Details
The Update User API lets you add or correct a user's KYC details after the user has been created.
How updates are handled
How an update is applied depends on the user's current KYC verification status, and StraitsX handles this routing automatically:
- User update applies when the user is
verified. You are filling in or correcting details on a user who has already passed verification. Screening is not re-run unless a change requires it. - Resubmission applies when the user was
rejectedorfailed. The update is treated as a fresh submission and the user is screened again. See Proof of Address (POA) and Identity Verification (ID&V) for the resubmission rules.
Users that are pending or inactivated generally cannot be updated at this time, and both regular updates and resubmissions are rejected. As an exception, certain legacy users, those onboarded before full KYC details were captured, may still be updatable while pending. StraitsX determines this automatically, so we recommend relying on the API response.
Deciding which users to update
Before updating, check each user's kyc_verification_status from the Get User Detail API to see how the update will be handled:
verified: send the missing or corrected details through Update User.rejectedorfailed: an update is treated as a resubmission and re-screens the user. Follow the resubmission guidance in Proof of Address (POA) and Identity Verification (ID&V).pendingorinactivated: updates are generally not allowed. A legacy user (see above) may be an exception whilepending; rely on the API response to confirm.
If you have users who were created without full KYC details, you can send those details through the Update User API so StraitsX holds a complete record.
TipCall Get User Detail first and read
kyc_verification_statusfor each user. This tells you whether an update is allowed, and whether it will be a user update or a resubmission before you send it.
Updatable details
For the full list of updatable fields and their formats, see the Update User API reference.
Only the details you send are changed. Leaving a field out, or sending an empty value, leaves the current value untouched. An update cannot clear a detail back to empty.
Some details take effect immediately. A material change is a change to a detail that can affect verification or screening, such as the registration ID (passport, driver's license, etc.), country of residence, residential address, or gender. When a material change replaces an existing value, it is reviewed by our Compliance team first, and the current value stays in effect until the review is complete.
Notifications
StraitsX notifies you of changes to a user's KYC state through webhook events. Partners should rely on the
customer_kyc_status_changed event as the source of truth for a user's current KYC verification status, since the outcome of a review or screening arrives asynchronously after your request succeeds.
customer_kyc_status_changed: the user's KYC verification status changed.customer_rfi_status_changed: a Request for Information (RFI) was raised or updated for the user.customer_offboarded: the user was off-boarded, for example when name screening returns a confirmed true hit.
Flow overview
sequenceDiagram
actor Partner
participant CardsAPI as StraitsX Cards API
participant KYC as StraitsX KYC
rect rgb(235, 244, 255)
Note over Partner,KYC: Submitting an update
Partner->>CardsAPI: Update User request
alt Request validation fails
CardsAPI-->>Partner: Error (invalid request)
else Update/resubmission not allowed for this user
CardsAPI-->>Partner: Error (update/resubmission not allowed)
else Request is valid
CardsAPI->>KYC: Forward update
alt Known error (e.g. field validation)
KYC-->>CardsAPI: Error
CardsAPI-->>Partner: Error (invalid request)
else Service error or unreachable
KYC-->>CardsAPI: Service outage or unknown errors
CardsAPI-->>Partner: Error (KYC Service Error)
else Accepted
alt User update
Note over KYC: Details saved. Material changes go to review
else Resubmission
Note over KYC: Treated as resubmission. User screened again
end
CardsAPI-->>Partner: Success
end
end
end
rect rgb(235, 255, 238)
Note over KYC,Partner: Compliance outcome (arrives asynchronously)
alt Change accepted
KYC->>Partner: customer_kyc_status_changed
else Change rejected
KYC->>Partner: customer_kyc_status_changed (with reason)
else More information requested
KYC->>Partner: customer_rfi_status_changed
else Name screening true hit
KYC->>Partner: customer_offboarded
end
endUpdated 13 days ago

