---
title: "Create customer account"
method: POST
path: "/accounts"
tags: ["Customer Accounts (MTA)"]
---

# Create customer account

`POST /accounts`

Creates a new customer account. The pair (`participant_code`, `account_label`) is unique per participant and is used as idempotency check rather than `X-Request-Id`; submitting the same pair a second time returns an error rather than creating a duplicate.

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Request body

- union
  - object — The `individual` account type is for accounts owned by an individual. This is the most common account type and is suitable for most use cases.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'individual', required — The account type associated with the account
    - `tenants` string[] — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — The `business` account type is for accounts owned by a business entity. This type is suitable for organizations and companies.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'business', required — The account type associated with the account
    - `tenants` string[], required — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — The `jtic` account type is for accounts owned by multiple individuals. This type is suitable for shared ownership scenarios.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'jtic', required — The account type associated with the account
    - `tenants` string[], required — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — The `jtwros` account type is for jointly-owned accounts where ownership passes to the surviving tenant(s) upon death of another.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'jtwros', required — The account type associated with the account
    - `tenants` string[], required — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — The `trust` account type is for accounts owned by a trust entity. This type is suitable for managing assets on behalf of beneficiaries.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'trust', required — The account type associated with the account
    - `tenants` string[], required — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — The `utma` account type is for accounts owned by a UTMA entity. This type is suitable for managing assets on behalf of beneficiaries.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean, required — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'utma', required — The account type associated with the account
    - `tenants` string[], required — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.
  - object — All accepted fields for creating a customer account. The `type` field determines which fields are required.
    - `participant_code` string, required — The `participant_code` is the primary account holder.
    - `account_label` string, required — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `prefunded` boolean — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold', required — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `type` 'individual' | 'business' | 'jtic' | 'jtwros' | 'trust' | 'utma', required — The account type associated with the account
    - `tenants` string[] — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.

## Response `202`

Creating a customer account is an asynchronous process that does several operations in the background after the response is returned. 
 Customers are advised to listen to the `customer_account_status_changed` webhook event to be notified when the account is active and ready to use.

- CustomerAccountResponse
  - `message` object
    - `zrn` string — The unique zerohash Account Identifier.
    - `participant_code` string — The `participant_code` is the primary account holder.
    - `platform_code` string — The code of the platform associated with the newly created account.
    - `prefunded` boolean — Indicates whether the participant is using a prefunded model, or using the plaform float funding model to fund buy trades. - If `true`, the participant is prefunding their account and will be responsible for ensuring they have sufficient balance in their account to cover trades. - If `false`, the platform will fund trades from their float balance at zerohash, on behalf of the participant and settle at the end of the day.
    - `account_label` string — The platform-dictated account label for the participants account. Accounts labels created for the same participant must have a different `account_label` value, and all maintain an individual balance.
    - `account_group` string — The group that the account is a part of
    - `type` 'individual' | 'business' | 'jtic' | 'jtwros' | 'trust' | 'utma' — The account type associated with the account
    - `tier` 'lite' | 'pro' | 'bronze' | 'silver' | 'gold' — The account `tier` associated with the account with regards to the commission structure defined by the platform. The specific tier values available depend on the platform configuration.
    - `status` 'open' | 'locked' | 'withdraw_locked' | 'divesting' | 'closed' — The status of the customer account
    - `tenants` string[] — Tenants are the second owners of the account and have the same permissions as the primary account holder. Each tenant must be an onboarded participant to zerohash and not the same as the primary account holder.
    - `financial_advisors` string[] — The Financial Advisors of the participant which must be an onboarded participant to zerohash and not the same as the primary account holder.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
