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 rejected or failed. 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.
  • rejected or failed: 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).
  • pending or inactivated: updates are generally not allowed. A legacy user (see above) may be an exception while pending; 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.

📘

Tip

Call Get User Detail first and read kyc_verification_status for 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.

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
    end

Did this page help you?