Skip to main content
POST
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

Path Parameters

string
required
Platform customer id (e.g. cus_x7k2m9p4q1w8e5r3t6y0u2i4).

Headers

string
required
Unique key for this create. Re-using a key for the same customer returns the previously created account.

Request Body

enum
required
Entity type: individual or business.
Legal name of the business. Max 255 characters.
string
required
Business structure (e.g. private_limited_company, corporation, partnership, llc). Free-form string; not restricted to a fixed enum yet.
string[]
required
Industry classifications used for verification and risk review.
string
required
Business registration number issued by the country of incorporation. Max 100 characters.
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.
boolean
default:"true"
Whether the operating address is the same as registered_address. Defaults to true when omitted. When false, operating_address is required.
Address | null
Conditional. Operating address. Required when operating_address_same_as_registered is false; otherwise use null. Same shape as registered_address.
string
Tax ID / TIN / UEN. Optional — provide only when it differs from business_registration_number.
date
required
Date of incorporation, ISO 8601 (e.g. 2018-04-01).
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.
string | null
Conditional. Free-text description of the business. Required when website is not provided.
string | null
Primary business contact email.
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.
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.
string | null
Expected monthly deposit volume bucket.
string | null
Expected monthly withdrawal volume bucket.
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.
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.

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.
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.
string
Account id (e.g. acct_3mnq7c1e6a2b4f3c9b8d2e5a).
enum
Initial verification status. Newly created accounts start as not_started.