> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.hopnow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Account

> Update KYB-mutable fields on an account

Updates KYB-mutable fields on the account. This endpoint never uploads company documents; use Upload Account Document for company evidence. Some changes apply immediately while material KYB changes require compliance review before they become approved data.

<Warning>
  Updates are blocked once `kyc_status` is terminal (`approved` or `rejected`). Attempting to patch a terminal account returns a 422 business-rule error.
</Warning>

<Note>
  **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.
</Note>

## Path Parameters

<ParamField path="customer_id" type="string" required>
  Platform customer id.
</ParamField>

<ParamField path="account_id" type="string" required>
  Account id.
</ParamField>

## Request Body

All fields are optional; omitted fields are left untouched.

<ParamField body="display_name" type="string">
  Account display name. Max 255 characters.
</ParamField>

<ParamField body="contact_email" type="string">
  Primary contact email.
</ParamField>

<ParamField body="business_legal_name" type="string">
  Legal name of the business. Max 255 characters.
</ParamField>

<ParamField body="business_type" type="enum">
  Business structure (see `business_type` on Create Account).
</ParamField>

<ParamField body="business_industry" type="string[]">
  Industry classifications.
</ParamField>

<ParamField body="business_registration_number" type="string">
  Business registration number. Material changes require compliance review.
</ParamField>

<ParamField body="registered_address" type="Address">
  Registered legal address (see the Address object on Create Account).
</ParamField>

<ParamField body="operating_address_same_as_registered" type="boolean">
  Set to `true` when the operating address matches the registered address.
</ParamField>

<ParamField body="operating_address" type="Address | null">
  Operating address. Required when `operating_address_same_as_registered` is changed to `false`.
</ParamField>

<ParamField body="tax_identification_number" type="string">
  Tax identification number. Keep separate from `business_registration_number` unless a country-specific compliance rule says otherwise.
</ParamField>

<ParamField body="incorporation_date" type="date">
  Date of incorporation, ISO 8601.
</ParamField>

<ParamField body="jurisdiction_of_incorporation" type="string" deprecated>
  Deprecated. Use `country_code` instead.
</ParamField>

<ParamField body="business_description" type="string">
  Business description. Required when `website` is not provided.
</ParamField>

<ParamField body="email" type="string">
  Primary business contact email.
</ParamField>

<ParamField body="website" type="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.
</ParamField>

<ParamField body="source_of_funds" type="string[] | null">
  Configured source-of-funds options.
</ParamField>

<ParamField body="expected_deposit_transaction_volume" type="string | null">
  Expected monthly deposit volume bucket.
</ParamField>

<ParamField body="expected_withdrawal_transaction_volume" type="string | null">
  Expected monthly withdrawal volume bucket.
</ParamField>

<ParamField body="purpose_of_account" type="string[] | null">
  Purposes of the account (replaces the stored list when provided). Values come from the configured purpose-of-account options.
</ParamField>

## Response

Returns the updated account object.

<ResponseField name="object" type="string">
  Always `account`.
</ResponseField>

<ResponseField name="id" type="string">
  Account id.
</ResponseField>

<ResponseField name="customer_id" type="string">
  Platform customer id.
</ResponseField>

<ResponseField name="type" type="enum | null">
  Entity type: `individual` or `business`.
</ResponseField>

<ResponseField name="kyc_status" type="enum | null">
  Verification status: `not_started`, `under_review`, `action_needed`, `approved`, or `rejected`.
</ResponseField>

<ResponseField name="display_name" type="string | null">
  Account display name.
</ResponseField>

<ResponseField name="contact_email" type="string | null">
  Primary contact email.
</ResponseField>

<ResponseField name="country_code" type="string | null">
  ISO 3166-1 alpha-2 country code.
</ResponseField>

<ResponseField name="rejection_reasons" type="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.
</ResponseField>

<ResponseField name="created" type="string">
  ISO 8601 timestamp when created.
</ResponseField>

<ResponseField name="updated" type="string">
  ISO 8601 timestamp when last updated.
</ResponseField>

<ResponseField name="created_by" type="string | null">
  Actor that created the account.
</ResponseField>

<ResponseField name="updated_by" type="string | null">
  Actor that last updated the account.
</ResponseField>

<RequestExample>
  ```json Request theme={null}
  {
    "display_name": "Acme Group Pte Ltd",
    "website": "https://acme-group.example",
    "expected_deposit_transaction_volume": "10k_50k_usd",
    "expected_withdrawal_transaction_volume": "10k_50k_usd"
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "account",
    "id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
    "customer_id": "cus_x7k2m9p4q1w8e5r3t6y0u2i4",
    "type": "business",
    "kyc_status": "under_review",
    "display_name": "Acme Group GmbH",
    "contact_email": "ops@acme.example",
    "country_code": "DE",
    "rejection_reasons": null,
    "created": "2026-05-01T10:00:00Z",
    "updated": "2026-05-06T11:20:00Z",
    "created_by": "ak_x7k2m9p4q1w8e5r3t6y0u2i4",
    "updated_by": "ak_x7k2m9p4q1w8e5r3t6y0u2i4"
  }
  ```
</ResponseExample>
