---
title: "Create Account"
method: POST
path: "/accounts"
tags: ["Accounts: General"]
---

# Create Account

`POST /accounts`

## Headers

- `LMG-Data-Privacy-Access-Principal` string, required
- `LMG-Data-Privacy-Access-Justification` string, required

## Request body

- CreateAccountRequest
  - `customer` union, required
    - CustomerRequest — An object representing the different properties of a user.
      - `firstname` string, required — A string describing the user's first name.
      - `lastname` string, required — A string describing the user's last name.
      - `gender` 'diverse' | 'female' | 'male' | 'unknown' — A category to represent a user's gender: <ul> <li><code>diverse</code> <li><code>female</code> <li><code>male</code> <li><code>unknown</code> </ul> <strong>Remember:</strong> Due to the identity verification requirements, it is important that there is a match between the user's gender as reported via the API and the user's gender as reported by the official ID.
      - `date_of_birth` string, date, required — A string describing the day of birth, like `"1964-08-13"`.
      - `place_of_birth` PlaceOfBirthRequest, required — An object representing a place of birth.
        - `city` string, required — The city/municipality of the place of birth.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing the country related to the place of birth.
      - `nationalities` string[], required — A **complete** list of ISO 3166-1 alpha-2 codes, representing each country related to a user's nationalities/citizenships. It is important for this data point to be complete.
      - `phone_number` string, required — A mobile phone number, including the country calling code.
      - `email` string, email, required — A verified email address to contact the user. This email address must match the one you have on record for the user.
      - `marital_status` 'single' | 'married' | 'unknown' — A simple category describing a user's marital status: <ul> <li><code>single</code>: The user is not married (can include divorced). <li><code>married</code>: The user is married or in a legally equivalent status (e.g. German “Eingetragene Partnerschaft”). <li><code>unknown</code>: This information is unknown/unspecified. </ul> Widowed people may pick one or the other. Which one depends on whether the former marriage still has an effect on the tax status.
      - `registered_address` Address, required — A residential address.
        - `line_1` string, required — The first line of the address. For most German addresses, this will be the street name and house number. If there is only a street name or a house number, provide that one without the other.
        - `line_2` string — The second line of the address. This field is optional, and it won't be needed for most German addresses. For care-of addresses (℅) like the following, this is likely to be the actual street name and house number: <br/> * Erika Mustermann<br/>℅ Max Müller<br/>**Mustergasse 14**<br/>12345 Musterstadt<br/>Germany
        - `postal_code` string, required — The postal code for the address.
        - `city` string, required — The city/municipality of the address.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing the country of the address.
      - `tax_residencies` TaxResidency[], required — A **complete** list of all of a user's tax residencies. It is important for this data point to be complete.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing a country considering the user one of its tax payers.
        - `tax_identification_number` string — The TIN (Tax Identification Number) related to the user within the taxation regime within `country`.
      - `employment` Employment, required — An object describing a user's employment status.
        - `status` 'apprenticeship' | 'company_owner' | 'employed' | 'managing_director' | 'public_official' | 'retired' | 'self_employed' | 'student' | 'unemployed', required — A category to represent a user's employment status: <ul> <li><code>apprenticeship</code> <li><code>company_owner</code> <li><code>employed</code> <li><code>managing_director</code> <li><code>public_official</code> <li><code>retired</code> <li><code>self_employed</code> <li><code>student</code> <li><code>unemployed</code> </ul>
        - `annual_salary` 'lt_50k_eur' | 'gte_50k_lt_75k_eur' | 'gte_75k_lt_100k_eur' | 'gte_100k_lt_150k_eur' | 'gte_150k_eur', required — A category to represent a customer's annual income: <ul> <li><code>lt_50k_eur</code>: Less than 50,000 EUR. <li><code>gte_50k_lt_75k_eur</code>: 50,000 EUR or more, but less than 75,000 EUR. <li><code>gte_75k_lt_100k_eur</code>: 75,000 EUR or more, but less than 100,000 EUR. <li><code>gte_100k_lt_150k_eur</code>: 100,000 EUR or more, but less than 150,000 EUR. <li><code>gte_150k_eur</code>: 150,000 EUR or more. </ul>
        - `sector` 'agriculture' | 'commodities' | 'construction' | 'education' | 'financial_services' | 'gambling' | 'healthcare' | 'it' | 'jewellery_trading' | 'manufacturing' | 'precious_metals_trading' | 'professional_services' | 'public_sector' | 'real_estate' | 'retail' | 'service_industry' | 'sport' | 'tourism' | 'transport' | 'used_vehicles_trading' | 'weapons_trading' | 'other', required — A category representing the industry sector related to a user's employment status. If the user's employment status is not directly linked to a sector, select `other`. <ul> <li><code>agriculture</code></li> <li><code>commodities</code></li> <li><code>construction</code></li> <li><code>education</code></li> <li><code>financial_services</code></li> <li><code>gambling</code></li> <li><code>healthcare</code></li> <li><code>it</code></li> <li><code>jewellery_trading</code></li> <li><code>manufacturing</code></li> <li><code>precious_metals_trading</code></li> <li><code>professional_services</code></li> <li><code>public_sector</code></li> <li><code>real_estate</code></li> <li><code>retail</code></li> <li><code>service_industry</code></li> <li><code>sport</code></li> <li><code>tourism</code></li> <li><code>transport</code></li> <li><code>used_vehicles_trading</code></li> <li><code>weapons_trading</code></li> <li><code>other</code></li> </ul>
    - BusinessCustomerRequest
      - `type` 'business', required — The string `"business"` is used here to identify a business account being onboarded.
      - `id` string, required — The identifier for the business to create an account for.
    - PersonCustomerRequest
      - `type` 'person', required — The string `"person"` is used here to identify a person being onboarded.
      - `id` string, required — The identifier for the person to create an account for.
  - `accepted_agreements` BrokerAppsApiEndpointsAccountsAgreementAcceptanceRequest[], required — A list of legal agreements that have been accepted by the user.
    - `agreement_id` string, required — An agreement identifier. This value identifies the agreement that a customer has accepted at a certain point in time.
    - `accepted_at` string, date-time, required — A point in time. This value specifies the point in time at which the user accepted the agreement referenced by `agreement_id`.
    - `legal_representative` string — An legal representative identifier. This value identifies the legal representative who has accepted the agreement.
  - `declaration_of_acting_on_own_account` boolean, required — An boolean value indicating whether the user has explicitly stated that they are acting on their own account and not in someone else's name.
  - `metadata` object — Optional metadata for the account as key-value pairs.

## Response `201`

Successful Response

- CustomerAccountResponse
  - `id` string, required — A value identifiying the individual user's account.
  - `cash_account` BankAccountResponse — An object representing a bank account.
    - `iban` string, required — An IBAN (International Bank Account Number) according to ISO 13616-1:2020.
    - `bic` string, required — A BIC (Business Identifier Code) according to ISO 9362.
    - `name` string — The name of the bank managing the bank account.
  - `customer` union, required — The customer associated with the account. Returns full customer details by default, or a simplified PersonCustomerResponse when the `person_customer` query parameter is `true`. **Warning:** The `person_customer` parameter will be **deprecated in a future version** of this API. Once deprecated, all responses will behave as if `person_customer=true`.
    - CustomerResponse — An object describing the user associated to an account.
      - `id` string — A value identifiying the individual account owner.
      - `firstname` string, required — A string describing the user's first name.
      - `lastname` string, required — A string describing the user's lastname.
      - `gender` 'diverse' | 'female' | 'male' | 'unknown' — A category to represent a user's gender: <ul> <li><code>diverse</code> <li><code>female</code> <li><code>male</code> <li><code>unknown</code> </ul> <strong>Remember:</strong> Due to the identity verification requirements, it is important that there is a match between the user's gender as reported via the API and the user's gender as reported by the official ID.
      - `date_of_birth` string, date, required — A string describing the day of birth, like "1964-08-13".
      - `place_of_birth` PlaceOfBirthRequest, required — An object representing a place of birth.
        - `city` string, required — The city/municipality of the place of birth.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing the country related to the place of birth.
      - `nationalities` string[], required — The list of nationalities registered for a user.
      - `phone_number` string, required — A user's phone number, including the country calling code.
      - `email` string, required — A user's email address.
      - `marital_status` 'single' | 'married' | 'unknown' — A simple category describing a user's marital status: <ul> <li><code>single</code>: The user is not married (can include divorced). <li><code>married</code>: The user is married or in a legally equivalent status (e.g. German “Eingetragene Partnerschaft”). <li><code>unknown</code>: This information is unknown/unspecified. </ul> Widowed people may pick one or the other. Which one depends on whether the former marriage still has an effect on the tax status.
      - `registered_address` Address, required — A residential address.
        - `line_1` string, required — The first line of the address. For most German addresses, this will be the street name and house number. If there is only a street name or a house number, provide that one without the other.
        - `line_2` string — The second line of the address. This field is optional, and it won't be needed for most German addresses. For care-of addresses (℅) like the following, this is likely to be the actual street name and house number: <br/> * Erika Mustermann<br/>℅ Max Müller<br/>**Mustergasse 14**<br/>12345 Musterstadt<br/>Germany
        - `postal_code` string, required — The postal code for the address.
        - `city` string, required — The city/municipality of the address.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing the country of the address.
      - `tax_residencies` TaxResidency[], required — List of tax residencies.
        - `country` string, required — An ISO 3166-1 alpha-2 code, representing a country considering the user one of its tax payers.
        - `tax_identification_number` string — The TIN (Tax Identification Number) related to the user within the taxation regime within `country`.
      - `employment` Employment, required — An object describing a user's employment status.
        - `status` 'apprenticeship' | 'company_owner' | 'employed' | 'managing_director' | 'public_official' | 'retired' | 'self_employed' | 'student' | 'unemployed', required — A category to represent a user's employment status: <ul> <li><code>apprenticeship</code> <li><code>company_owner</code> <li><code>employed</code> <li><code>managing_director</code> <li><code>public_official</code> <li><code>retired</code> <li><code>self_employed</code> <li><code>student</code> <li><code>unemployed</code> </ul>
        - `annual_salary` 'lt_50k_eur' | 'gte_50k_lt_75k_eur' | 'gte_75k_lt_100k_eur' | 'gte_100k_lt_150k_eur' | 'gte_150k_eur', required — A category to represent a customer's annual income: <ul> <li><code>lt_50k_eur</code>: Less than 50,000 EUR. <li><code>gte_50k_lt_75k_eur</code>: 50,000 EUR or more, but less than 75,000 EUR. <li><code>gte_75k_lt_100k_eur</code>: 75,000 EUR or more, but less than 100,000 EUR. <li><code>gte_100k_lt_150k_eur</code>: 100,000 EUR or more, but less than 150,000 EUR. <li><code>gte_150k_eur</code>: 150,000 EUR or more. </ul>
        - `sector` 'agriculture' | 'commodities' | 'construction' | 'education' | 'financial_services' | 'gambling' | 'healthcare' | 'it' | 'jewellery_trading' | 'manufacturing' | 'precious_metals_trading' | 'professional_services' | 'public_sector' | 'real_estate' | 'retail' | 'service_industry' | 'sport' | 'tourism' | 'transport' | 'used_vehicles_trading' | 'weapons_trading' | 'other', required — A category representing the industry sector related to a user's employment status. If the user's employment status is not directly linked to a sector, select `other`. <ul> <li><code>agriculture</code></li> <li><code>commodities</code></li> <li><code>construction</code></li> <li><code>education</code></li> <li><code>financial_services</code></li> <li><code>gambling</code></li> <li><code>healthcare</code></li> <li><code>it</code></li> <li><code>jewellery_trading</code></li> <li><code>manufacturing</code></li> <li><code>precious_metals_trading</code></li> <li><code>professional_services</code></li> <li><code>public_sector</code></li> <li><code>real_estate</code></li> <li><code>retail</code></li> <li><code>service_industry</code></li> <li><code>sport</code></li> <li><code>tourism</code></li> <li><code>transport</code></li> <li><code>used_vehicles_trading</code></li> <li><code>weapons_trading</code></li> <li><code>other</code></li> </ul>
    - PersonCustomerResponse — A simplified object containing only the person customer type and identifier. This response is returned when the `person_customer` query parameter is set to `true` on the GET /accounts/{account_id} endpoint. **Warning:** The `person_customer` parameter will be **deprecated in a future version** of this API. Once deprecated, all responses will behave as if `person_customer=true`.
      - `type` 'person', required — The customer type discriminator. Always set to "person" for person customers.
      - `id` string, required — The unique identifier for the person customer. **Deprecated:** Use the `person` field instead. This field will be removed in a future version.
      - `person` string, required — The unique identifier for the person customer.
    - BusinessCustomerResponse
      - `type` 'business', required — The string `"business"` is used here to identify a business account being onboarded.
      - `id` string, required — The identifier for the business owning an account. **Deprecated:** Use the `business` field instead. This field will be removed in a future version.
      - `business` string, required — The identifier for the business owning an account.
  - `declaration_of_acting_on_own_account` boolean, required — An boolean value indicating whether the user has explicitly stated that they are acting on their own account and not in someone else's name.
  - `history` StatusChangeCustomerAccountStatus[], required — A history of the status changes for the user's account.
    - `status` 'closed' | 'created' | 'opened' | 'rejected', required — A category representing the status of a user's account. <ul> <li><code>closed</code> <li><code>created</code> <li><code>opened</code> <li><code>rejected</code> </ul> <strong>NOTE:</strong> This list is not final yet, there will be more values added later.
    - `timestamp` string, date-time, required — The timestamp of the event. It represents the point in time at which the account was updated.
  - `reference_account` BankAccountResponse — An object representing a bank account.
    - `iban` string, required — An IBAN (International Bank Account Number) according to ISO 13616-1:2020.
    - `bic` string, required — A BIC (Business Identifier Code) according to ISO 9362.
    - `name` string — The name of the bank managing the bank account.
  - `securities_account` BrokerAppsApiEndpointsAccountsSecuritiesAccountResponse — An object representing the account information for the customer's securities account.
    - `number` string, required — A string representing the account number for the securities account.
  - `status` 'closed' | 'created' | 'opened' | 'rejected', required — A category representing the status of a user's account. <ul> <li><code>closed</code> <li><code>created</code> <li><code>opened</code> <li><code>rejected</code> </ul> <strong>NOTE:</strong> This list is not final yet, there will be more values added later.
  - `metadata` object — Optional metadata for the account as key-value pairs.
  - `agreements` AcceptedAgreementResponse[] — A list of agreements that have been signed and currently valid for this account.
    - `agreement` string, required — An agreement identifier. This value identifies the agreement that a customer has accepted.
    - `accepted_at` string, date-time, required — A point in time. This value specifies the point in time at which the agreement was accepted.
    - `person` string, required — A person identifier. This value identifies the person who accepted the agreement (either customer or legal representative).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `5XX` — Server Error

---

[API](https://skmtc.net/lemon/apis/lemon-markets-brokerage-api.md) · [All operations](https://skmtc.net/lemon/apis/lemon-markets-brokerage-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lemon/lemon-markets-brokerage-api/versions/3c8cfd3a96c9/schema)
