> ## 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.

# Create Account

> Create an account and draft KYB application with company profile data

Accounts represent the Platform end customers you onboard under your Platform customer. Account creation starts a draft KYB application: business details and optional associated persons are captured first, while company documents are uploaded separately via the Documents endpoints. Verification review does not begin at Create Account — complete the requirements returned by Get Account, and Hop starts verification review automatically. Account routes are customer-scoped (`/customers/{customer_id}/accounts`); the `{customer_id}` must be your own customer id.

Creates an account and draft KYB application with company profile data. The call is idempotent on (customer, `Idempotency-Key`); re-using the same key returns the existing account instead of creating a duplicate. Company documents are not accepted in this request; upload them afterwards with Upload Account Document.

### Enums

| Enum                            | Values                                                                 |
| ------------------------------- | ---------------------------------------------------------------------- |
| `type` (AccountKycType)         | `individual`, `business`                                               |
| `kyc_status` (AccountKycStatus) | `not_started`, `under_review`, `action_needed`, `approved`, `rejected` |

## Path Parameters

<ParamField path="customer_id" type="string" required>
  Platform customer id (e.g. `cus_x7k2m9p4q1w8e5r3t6y0u2i4`).
</ParamField>

## Headers

<ParamField header="Idempotency-Key" type="string" required>
  Unique key for this create. Re-using a key for the same customer returns the previously created account.
</ParamField>

## Request Body

<ParamField body="type" type="enum" required>
  Entity type: `individual` or `business`.
</ParamField>

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

<ParamField body="business_type" type="string" required>
  Business structure (e.g. `private_limited_company`, `corporation`, `partnership`, `llc`). Free-form string; not restricted to a fixed enum yet.
</ParamField>

<ParamField body="business_industry" type="string[]" required>
  Industry classifications used for verification and risk review.
</ParamField>

<ParamField body="business_registration_number" type="string" required>
  Business registration number issued by the country of incorporation. Max 100 characters.
</ParamField>

<ParamField body="registered_address" type="Address" required>
  Registered legal address of the business. The Address object is shared: it is used for KYB addresses, associated-person residential addresses, beneficiary addresses, bank addresses, and correspondent-bank addresses.

  <Expandable title="child attributes">
    <ParamField body="address_line" type="string" required>
      Street address line.
    </ParamField>

    <ParamField body="city" type="string" required>
      City name. Maximum 100 characters.
    </ParamField>

    <ParamField body="region" type="string" required>
      State, province, or region. Maximum 100 characters.
    </ParamField>

    <ParamField body="postal_code" type="string" required>
      Postal or ZIP code. Maximum 20 characters.
    </ParamField>

    <ParamField body="country" type="string" required>
      Country code string. Send an ISO 3166-1 alpha-2 value; the shared Address schema does not enforce its length.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="operating_address_same_as_registered" type="boolean" default="true">
  Whether the operating address is the same as `registered_address`. Defaults to `true` when omitted. When `false`, `operating_address` is required.
</ParamField>

<ParamField body="operating_address" type="Address | null">
  Conditional. Operating address. Required when `operating_address_same_as_registered` is `false`; otherwise use `null`. Same shape as `registered_address`.
</ParamField>

<ParamField body="tax_identification_number" type="string">
  Tax ID / TIN / UEN. Optional — provide only when it differs from `business_registration_number`.
</ParamField>

<ParamField body="incorporation_date" type="date" required>
  Date of incorporation, ISO 8601 (e.g. `2018-04-01`).
</ParamField>

<ParamField body="jurisdiction_of_incorporation" type="string | null">
  Optional override for the incorporation country (ISO 3166-1 alpha-2). Defaults to `registered_address.country`; send only when the incorporation country differs from the registered address country.
</ParamField>

<ParamField body="business_description" type="string | null">
  Conditional. Free-text description of the business. Required when `website` is not provided.
</ParamField>

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

<ParamField body="website" type="string | null">
  Conditional. Business website. At least one of `website` or `business_description` must be provided; when the business has no website, `business_description` is required.
</ParamField>

<ParamField body="source_of_funds" type="string[]" required>
  Sources of funds (e.g. revenues, investor funds, loan, personal savings, sale of business or real estate, investments, other). At least one value.
</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[]" required>
  Purposes of the account (e.g. payments to vendors, suppliers, customers, utilities, tax, inter-company transfers, receipts from clients or government). At least one value.
</ParamField>

<ParamField body="associated_persons" type="object[] | null">
  Optional inline UBOs, directors, control persons, partners, and authorized signers. Same shape as the create body in the Associated Persons section; persons can also be added later via the dedicated endpoints.
</ParamField>

## Response

Returns 200 with the new account's `id` and initial onboarding status. KYB review does not start until the requirements returned by Get Account are complete; Hop then starts verification review automatically.

<Note>
  Supporting documents are supplied after the account is created: entity (business) documents via Upload Account Document, and each associated person's identity documents inside their Verification Session.
</Note>

<ResponseField name="id" type="string">
  Account id (e.g. `acct_3mnq7c1e6a2b4f3c9b8d2e5a`).
</ResponseField>

<ResponseField name="kyc_status" type="enum">
  Initial verification status. Newly created accounts start as `not_started`.
</ResponseField>

<RequestExample>
  ```json Request theme={null}
  {
    "type": "business",
    "business_legal_name": "Acme Pte Ltd",
    "business_type": "private_limited_company",
    "business_industry": ["software"],
    "business_registration_number": "200912345A",
    "registered_address": {
      "address_line": "1 Raffles Place",
      "city": "Singapore",
      "region": "Central Region",
      "postal_code": "048616",
      "country": "SG"
    },
    "operating_address_same_as_registered": true,
    "operating_address": null,
    "tax_identification_number": "200912345A",
    "incorporation_date": "2018-03-12",
    "website": "https://acme.example",
    "business_description": null,
    "source_of_funds": ["business_revenue"],
    "purpose_of_account": ["payments_to_vendors", "receipts_from_clients"],
    "expected_deposit_transaction_volume": "10k_50k_usd",
    "expected_withdrawal_transaction_volume": "10k_50k_usd"
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
    "kyc_status": "not_started"
  }
  ```
</ResponseExample>
