Skip to main content
PATCH
Updates verification-mutable fields on the account. type is required and must match the account’s stored type — it selects which field group applies: KYB fields for businesses, the KYC profile for individuals. This endpoint never uploads documents; business evidence goes through Upload Account Document, and individual identity documents are captured in the hosted verification session. Some changes apply immediately while material changes require compliance review before they become approved data.
Updates are blocked once kyc_status is terminal (approved or rejected). Attempting to patch a terminal account returns a 422 business-rule error.
Update policy: contact/display corrections and unsubmitted draft fields can apply immediately. Legal name, business type, country of incorporation, registration number, tax identification number, operating address, and ownership-structure changes should be treated as compliance-reviewed changes and surfaced as pending requirements until approved.

Path Parameters

string
required
Platform customer id.
string
required
Account id.

Request Body

type is required; all data fields are optional and omitted fields are left untouched.
enum
required
Entity type: business or individual. Must match the account’s stored type — a mismatch is rejected with 422. Selects which field group below applies.

Business fields — type: "business"

string
Account display name. Max 255 characters.
string
Primary contact email.
Legal name of the business. Max 255 characters.
enum
Business structure (see business_type on Create Account).
enum[]
Industry classifications. Each item must be one of: Broker Dealer, Commodities Firm, Exchange, Family Office, Hedge Fund, Investment Advisor/Asset Manager, Loan/Finance Company, OTC Desk / Market Maker, Private Equity Fund, Special Purpose Vehicle, Third Party Payment Processor, Wealth Holding Vehicle, E-commerce Merchant, Marketplace Merchant, Gig Economy Platform, or Operating Company (Other). Wealth Holding Vehicle, E-commerce Merchant, and Marketplace Merchant are three separate values.
string
Business registration number. Material changes require compliance review.
Address
Registered legal address (see the Address object on Create Account).
boolean
Set to true when the operating address matches the registered address.
Address | null
Operating address. Required when operating_address_same_as_registered is changed to false.
string
Tax identification number. Keep separate from business_registration_number unless a country-specific compliance rule says otherwise.
date
Date of incorporation, ISO 8601.
string
deprecated
Deprecated. Use country_code instead.
string
Business description. Required when website is not provided.
string
Primary business contact email.
string
Business website URL. Optional; if omitted, business_description is required. The merged account state must keep at least one of website / business_description, and an operating_address when operating_address_same_as_registered is false; violating patches are rejected with 422.
string[] | null
Configured source-of-funds options.
string | null
Expected monthly deposit volume bucket.
string | null
Expected monthly withdrawal volume bucket.
string[] | null
Purposes of the account (replaces the stored list when provided). Values come from the configured purpose-of-account options.

Individual fields — type: "individual"

All optional; unknown fields are rejected with 422. Identity fields — names, date_of_birth, place_of_birth, document_number, nationality, address, phone_number, and tax_identification — are editable in two windows: from create until the account holder submits their documents in the hosted session, and again after a check comes back as retryable — until they re-submit in a fresh session. They are locked while the check is in review and once it has passed, and they cannot be cleared (null and empty strings are rejected). The window follows the identity check itself, not the account’s kyc_status: during a retry the account stays under_review, and an account that is action_needed for a document request still has its identity fields locked. Watch associated_persons[].verification_status and its rejection_reasons for the retryable state. The remaining fields (email, description, cdd, reference) stay editable until the account reaches a terminal status. The merged profile is re-validated against the Create Account rules (ISO country codes, E.164 phone format, enum sets); violations return 422 with field details.
string
Legal first name. Max 100 characters.
string
Middle name. Max 100 characters.
string
Legal last name. Max 100 characters.
string
Email address of the account holder.
string
Phone number in E.164 international format (e.g. +6591234567).
string
Additional notes or a description of this individual customer. Max 255 characters.
date
Date of birth, ISO 8601.
string
Place of birth (city or locality). Max 255 characters.
string
Government-issued photo identification document number. Max 255 characters.
string
Nationality, ISO 3166-1 alpha-2 (validated).
Address
Residential address. Same shared Address shape as on Create Account; country must be a valid ISO 3166-1 alpha-2 code.
object
Tax identification details — replaces the stored block when provided. Same shape as on Create Account (number, tax_residence_country_code).
object
Customer Due Diligence details — whole-block replace when provided. Same closed-set enums as on Create Account (employment_status, source_of_funds, intended_use_of_account, expected_monthly_volume).
string
Client-defined reference in an external system. Stored and echoed back; not a lookup key. Max 255 characters.

Response

Returns the updated account object.
string
Always account.
string
Account id.
string
Platform customer id.
enum | null
Entity type: individual or business.
enum | null
Verification status: not_started, under_review, action_needed, approved, or rejected.
string | null
Account display name.
string | null
Primary contact email.
string | null
ISO 3166-1 alpha-2 country code.
object[] | null
Populated only when kyc_status is rejected; each entry has a user-safe reason and a developer_reason for your integration logic (not for end-customer display). Null otherwise.
string
ISO 8601 timestamp when created.
string
ISO 8601 timestamp when last updated.
string | null
Actor that created the account.
string | null
Actor that last updated the account.