---
title: "Create customer"
method: POST
path: "/platform/v1/customers"
tags: ["Customers"]
---

# Create customer

`POST /platform/v1/customers`

## Request

- Base URL: `https://api.sandbox.bvnk.com`
- URL: `https://api.sandbox.bvnk.com/platform/v1/customers`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/docs/platform/v1/customers/post.ts> (a function with typed inputs; its response is checked against the schema)

:::warning
Before calling this endpoint, make sure you are not onboarding customers from restricted jurisdictions. For more information, see [BVNK Acceptable Use Policy](https://help.bvnk.com/hc/en-us/articles/11100445499666-BVNK-Acceptable-Use-Policy-Financial-Crime).
:::

:::info Customers API v2
The [new customer onboarding flow](../../../get-started/create-embedded-partner-customer/create-customers-com) is recommended for all new integrations.

If you already have an existing integration with Customers API v1, you can continue using it. BVNK will continue to support this API going forward.
:::

Creates an Embedded Partner Customer account. The customer can be 'Individual' or 'Company'.

:::info Tax self-certification
You can send the customer's tax self-certification in this request. The tax fields are optional for now. BVNK will give partners notice before they become mandatory.

Tax fields are not accepted for the Nested model.
:::

## Headers

- `X-Idempotency-Key` string, uuid, required

## Request body

- union
  - CreateCompanyCustomerRequest
    - `type` 'company', required
    - `company` CreateCorporateCustomer, required
      - `name` string, required: Legal name of the company.
      - `description` string: Optional description or short bio of the company.
      - `entityType` 'LIMITED_LIABILITY_COMPANY' | 'PUBLICLY_LISTED_COMPANY' | 'SOLE_PROPRIETOR' | 'PARTNERSHIP' | 'CORPORATION' | 'TRUST' | 'PRIVATE_FOUNDATION' | 'CHARITY' | 'NON_PROFIT_ORGANIZATION' | 'PUBLIC_AGENCIES_OR_AUTHORITIES', required: Business entity type.
      - `taxResidenceCountryCode` string: **Deprecated**. 2-letter code of the country of the company's tax residence, in the ISO 3166-1 alpha-2 format. Must be a country supported by BVNK. If you omit it and send `taxResidences`, BVNK derives it from them: the residence whose `tin` matches `taxNumber`, or, if you omit `taxNumber` too, the residence with a `tin` in the registered `address` country, otherwise the first residence with a `tin`. If you send it together with `taxResidences`, it must be one of their countries.
      - `taxNumber` string: Tax number of the USA-based company. **Required for the USA customers**. If you omit it and send `taxResidences`, BVNK takes the `tin` of the residence for `taxResidenceCountryCode`. If you omit both, BVNK derives them from the same residence, as described for `taxResidenceCountryCode`. A derived value is validated as if you had sent it. If you send it together with `taxResidences`, it must match the `tin` of the residence for `taxResidenceCountryCode`.
      - `taxResidences` TaxResidence[]: Every country where the company is resident for tax purposes, as the complete set. Each country can appear only once. Optional. If you send it, also send `crsClassification`, `carfClassification`, and `taxDeclaration`, otherwise the request fails with `400`.
        - `country` string, required: 2-letter code of the country of tax residence, in the ISO 3166-1 alpha-2 format. Must be a country supported by BVNK.
        - `tin` string: Tax identification number (TIN) issued by this country. Send either `tin` or `noTinReason`, not both. Placeholder values are rejected, for example `NONE`, `UNKNOWN`, `N/A`, all zeros such as `0000`, repeated characters, sequential digits such as `1234`, and values shorter than 4 characters.
        - `noTinReason` 'NOT_ISSUED' | 'UNABLE_TO_OBTAIN' | 'NOT_REQUIRED': Why there is no TIN for this country. Send either `tin` or `noTinReason`, not both. - `NOT_ISSUED`: The country does not issue TINs - `UNABLE_TO_OBTAIN`: The holder cannot obtain a TIN. `noTinExplanation` is required - `NOT_REQUIRED`: The country's domestic law does not require a TIN
        - `noTinExplanation` string: Why the holder cannot obtain a TIN. Required when `noTinReason` is `UNABLE_TO_OBTAIN`.
      - `countryOfIncorporation` string: 2-letter code of the country where the company was incorporated or organised, in the ISO 3166-1 alpha-2 format. Must be a country supported by BVNK. Accepted only together with `taxResidences`. If you omit it, BVNK uses the country of the registered `address`.
      - `crsClassification` 'ACTIVE_NFE' | 'PASSIVE_NFE' | 'FI_OTHER' | 'PMIE_PARTICIPATING' | 'PMIE_NON_PARTICIPATING': Classification of the company under the OECD Common Reporting Standard (CRS), as given in the customer's tax self-certification. `NFE` stands for non-financial entity, `FI` for financial institution, and `PMIE` for professionally managed investment entity. Required when you send `taxResidences`, and accepted only with them. If the value is `PASSIVE_NFE` or `PMIE_NON_PARTICIPATING`, at least one associate must have a controlling person role and `taxResidences`. The role can be derived, see the associate's `controllingPersonRole`.
      - `carfClassification` 'EXCLUDED_FI' | 'EXCLUDED_GOVERNMENT' | 'EXCLUDED_LISTED_PMIE' | 'EXCLUDED_LISTED' | 'ACTIVE_ENTITY' | 'OTHER_ENTITY': Classification of the company under the OECD Crypto-Asset Reporting Framework (CARF), as given in the customer's tax self-certification. Required when you send `taxResidences`, and accepted only with them. If the value is `OTHER_ENTITY`, at least one associate must have a controlling person role and `taxResidences`. The role can be derived, see the associate's `controllingPersonRole`.
      - `taxDeclaration` CompanyTaxDeclaration
        - `acceptedAt` string, date-time, required: Date and time when the customer accepted the tax declaration, in the ISO-8601 format. Must not be in the future.
        - `signatory` object, required: The person who signs the tax declaration on behalf of the company.
          - `fullName` string, required: Full name of the signatory.
          - `capacity` 'DIRECTOR' | 'OWNER_OR_SHAREHOLDER' | 'AUTHORISED_SIGNATORY', required: Capacity in which the signatory signs the tax declaration on behalf of the company. - `DIRECTOR`: Director of the company - `OWNER_OR_SHAREHOLDER`: Owner or shareholder of the company - `AUTHORISED_SIGNATORY`: Person authorised to sign on behalf of the company
      - `registrationNumber` string, required: Official company registration number.
      - `industryReference` string, uuid, required: Industry reference in the UUID format. See the full list on the [Industry References](../../../references/industry-references/#list-of-references) page. If you cannot find the industry you are looking for, specify `industryNaicsCode` or `industryNaceCode` instead.
      - `industryNaceCode` integer: Code from the Nomenclature of Economic Activities (NACE). Applicable to companies based in EU and EEA. See the full list on the [Industry References](../../../references/industry-references/#list-of-references) page. At least one of `industryReference`, `industryNaicsCode`, or `industryNaceCode` must be provided.
      - `industryNaicsCode` integer: Code from the North American Industry Classification System (NAICS). Applicable to companies based in the US and Mexico. See the full list on the [Industry References](../../../references/industry-references/#list-of-references) page. At least one of `industryReference`, `industryNaicsCode`, or `industryNaceCode` must be provided.
      - `monthlyExpectedVolumesReference` string, uuid, required: Monthly expected volumes reference in the UUID format. See the full list [here](https://docs.bvnk.com/bvnk/references/monthly-expected-volumes).
      - `sourceOfFunds` 'COMMERCIAL_ACTIVITIES' | 'SHAREHOLDER_CAPITAL' | 'VENTURE_CAPITAL' | 'SALE_OF_ASSETS' | 'CRYPTO_FUNDRAISING' | 'CRYPTO_TRADING_REVENUE' | 'CORPORATE_LOANS' | 'OTHER': Business's source of funds. Optional, but providing it upfront reduces compliance follow-up questions for BVNK-Managed onboarding. - `COMMERCIAL_ACTIVITIES`: Revenue from commercial activities - `SHAREHOLDER_CAPITAL`: Shareholder capital contributions - `VENTURE_CAPITAL`: Venture capital funding - `SALE_OF_ASSETS`: Proceeds from sale of assets - `CRYPTO_FUNDRAISING`: Crypto fundraising proceeds - `CRYPTO_TRADING_REVENUE`: Revenue from crypto trading - `CORPORATE_LOANS`: Corporate loans - `OTHER`: Other sources
      - `intendedUseOfAccount` 'SUPPLIER_VENDOR_PAYMENTS' | 'INTERCOMPANY_TRANSFERS' | 'PAYROLL' | 'CUSTOMER_PAYMENTS_RECEIVED' | 'CUSTOMER_PAYOUTS_REFUNDS_SETTLEMENTS' | 'OPERATING_EXPENSES' | 'DIVIDEND_PROFIT_DISTRIBUTIONS' | 'LOAN_REPAYMENT_FINANCIAL_ACTIVITIES': Purpose of the business account. Optional, but providing it upfront reduces compliance follow-up questions for BVNK-Managed onboarding. - `SUPPLIER_VENDOR_PAYMENTS`: Supplier and vendor payments - `INTERCOMPANY_TRANSFERS`: Intercompany transfers - `PAYROLL`: Payroll - `CUSTOMER_PAYMENTS_RECEIVED`: Customer payments received - `CUSTOMER_PAYOUTS_REFUNDS_SETTLEMENTS`: Customer payouts, refunds, and settlements - `OPERATING_EXPENSES`: Operating expenses - `DIVIDEND_PROFIT_DISTRIBUTIONS`: Dividend and profit distributions - `LOAN_REPAYMENT_FINANCIAL_ACTIVITIES`: Loan repayment and financial activities
      - `address` AddressV2, required
        - `addressLine1` string, required: Main address
        - `addressLine2` string: Apartment numbers or suite number
        - `postalCode` string, required: Postal code
        - `city` string, required: City
        - `countryCode` string, required: 2-letter country code in the ISO 3166-1 alpha-2 format.
        - `country` string: Country of residence
        - `stateCode` string: 2-letter state code. **Required for US customers**.
      - `cdd` CorporateCdd: Customer Due Diligence details for corporate customers.
        - `pepStatus` 'NOT_PEP' | 'FORMER_PEP_2_YEARS' | 'FORMER_PEP_OLDER' | 'DOMESTIC_PEP' | 'FOREIGN_PEP' | 'CLOSE_ASSOCIATES' | 'FAMILY_MEMBERS', required: Politically Exposed Person status: - `NOT_PEP`: Not a PEP - `FORMER_PEP_2_YEARS`: Former or inactive PEP (within 2 years) - `FORMER_PEP_OLDER`: Former or inactive PEP (older than 2 years) - `DOMESTIC_PEP`: Domestic PEP - `FOREIGN_PEP`: Foreign PEP - `CLOSE_ASSOCIATES`: Close associates - `FAMILY_MEMBERS`: Family members
        - `intendedUseOfAccount` 'SUPPLIER_VENDOR_PAYMENTS' | 'PAYROLL' | 'CUSTOMER_PAYMENTS_RECEIVED' | 'CUSTOMER_PAYOUTS_REFUNDS_SETTLEMENTS' | 'OPERATING_EXPENSES' | 'DIVIDEND_PROFIT_DISTRIBUTIONS' | 'LOAN_REPAYMENT_FINANCIAL_ACTIVITIES' | 'INTERCOMPANY_TRANSFER', required: Purpose of the account: - `SUPPLIER_VENDOR_PAYMENTS`: Supplier and vendor payments. For the Partner-managed customer onboarding only - `PAYROLL`: Payroll and salary payments - `CUSTOMER_PAYMENTS_RECEIVED`: Customer payments received. For the Partner-managed customer onboarding only - `CUSTOMER_PAYOUTS_REFUNDS_SETTLEMENTS`: Customer payouts, refunds, and settlements. For the Partner-managed customer onboarding only - `OPERATING_EXPENSES`: Operating expenses. For the Partner-managed customer onboarding only - `DIVIDEND_PROFIT_DISTRIBUTIONS`: Dividend and profit distributions. For the Partner-managed customer onboarding only - `LOAN_REPAYMENT_FINANCIAL_ACTIVITIES`: Loan repayment and financial activities. For the Partner-managed customer onboarding only - `INTERCOMPANY_TRANSFER`: Intercompany transfers. For the Partner-managed customer onboarding only
        - `expectedMonthlyVolume` object, required: Expected monthly volume
          - `amount` string, required: Expected monthly volume amount
          - `currency` string: Currency (USD or EUR)
      - `operationalAddress` AddressV2
        - `addressLine1` string, required: Main address
        - `addressLine2` string: Apartment numbers or suite number
        - `postalCode` string, required: Postal code
        - `city` string, required: City
        - `countryCode` string, required: 2-letter country code in the ISO 3166-1 alpha-2 format.
        - `country` string: Country of residence
        - `stateCode` string: 2-letter state code. **Required for US customers**.
      - `incorporationDate` string, date: Incorporation date of the company in the ISO-8601 format.
      - `website` string, url: Website URL of the company.
      - `associates` object[], required
        - `person` object, required
          - `firstName` string, required: First name of the Associate person.
          - `lastName` string, required: Last name of the Associate person.
          - `dateOfBirth` string, date, required: Date of birth in the ISO-8601 format.
          - `birthCountryCode` string: 2-letter birth country code in the ISO 3166-1 alpha-2 format. Required when the associate sends `taxResidences`, and optional otherwise.
          - `placeOfBirth` string: Place of birth of the Associate person, for example the city. Required when the associate sends `taxResidences`, and optional otherwise.
          - `nationality` string: 2-letter nationality code in the ISO 3166-1 alpha-2 format.
          - `address` AddressV2, required
            - `addressLine1` string, required: Main address
            - `addressLine2` string: Apartment numbers or suite number
            - `postalCode` string, required: Postal code
            - `city` string, required: City
            - `countryCode` string, required: 2-letter country code in the ISO 3166-1 alpha-2 format.
            - `country` string: Country of residence
            - `stateCode` string: 2-letter state code. **Required for US customers**.
          - `contactInfo` object, required
            - `emailAddress` string, email: Email address.
            - `phoneNumber` string: Phone number.
          - `taxIdentification` object: Tax identification details. If you omit it and the associate sends `taxResidences`, BVNK derives it from them: the US residence for a US national or US resident, otherwise the residence in the `address` country, otherwise the first residence with a `tin`.
            - `number` string, required: SSN/ITIN for US, tax number for rest of the world
            - `taxResidenceCountryCode` string, required: Tax residency country ISO 2-letter code
          - `estimatedYearlyIncome` 'INCOME_0_TO_50K' | 'INCOME_50K_TO_100K' | 'INCOME_100K_TO_250K' | 'INCOME_250K_TO_500K' | 'INCOME_500K_TO_750K' | 'INCOME_750K_TO_1M' | 'INCOME_ABOVE_1M': Estimated yearly income range of the associate. Mandatory for associates with the `BUSINESS_OWNER` title when onboarding customers from the US states that do not require money transmitter license (MTL). The non-MTL states are **not** listed in [What licenses registrations does BVNK and BVNK's Partners have](https://help.bvnk.com/hc/en-us/articles/11094354781074-What-licenses-registrations-does-BVNK-and-BVNK-s-Partners-have). - `INCOME_0_TO_50K`: 0 to 50,000 USD - `INCOME_50K_TO_100K`: 50,000 to 100,000 USD - `INCOME_100K_TO_250K`: 100,000 to 250,000 USD - `INCOME_250K_TO_500K`: 250,000 to 500,000 USD - `INCOME_500K_TO_750K`: 500,000 to 750,000 USD - `INCOME_750K_TO_1M`: 750,000 to 1,000,000 USD - `INCOME_ABOVE_1M`: Above 1,000,000 USD
          - `reliance` Reliance: Additional fields for the Partner-managed customer onboarding.
            - `identityDocumentMetadata` object, required: Details of the ID document that you have already verified. Used under the Partner-managed model. See [Individual Requirements](https://docs.bvnk.com/bvnk/get-started/compliance-requirements/compliance-requirements-for-individuals2) section for the supported documents.
              - …
            - `biometricLiveness` object, required: **EU Only**. Timestamps for liveness checks performed on your side.
              - …
            - `addressVerification` object, required: The method you used to verify the residential address of the Customer. Used under the Partner-managed model.
              - …
        - `titles` string[]: Job title or position
        - `ownership` object: Ownership details for the associate.
          - `type` 'DIRECT' | 'INDIRECT': Ownership type. - DIRECT: The associate has a direct, immediate ownership stake or relationship with the company. - INDIRECT: The associate's ownership or control flows through one or more intermediary entities.
          - `percentage` number: Ownership percentage.
        - `controllingPersonRole` 'LP_OWNERSHIP' | 'LP_OTHER_MEANS' | 'LP_SENIOR_MANAGING_OFFICIAL' | 'TRUST_SETTLOR' | 'TRUST_TRUSTEE' | 'TRUST_PROTECTOR' | 'TRUST_BENEFICIARY' | 'TRUST_OTHER' | 'ARR_SETTLOR_EQ' | 'ARR_TRUSTEE_EQ' | 'ARR_PROTECTOR_EQ' | 'ARR_BENEFICIARY_EQ' | 'ARR_OTHER_EQ': Type of controlling person under the OECD CRS and CARF, as given in the customer's tax self-certification. - `LP_OWNERSHIP`: Legal person, control by ownership - `LP_OTHER_MEANS`: Legal person, control by other means - `LP_SENIOR_MANAGING_OFFICIAL`: Legal person, senior managing official - `TRUST_SETTLOR`: Trust, settlor - `TRUST_TRUSTEE`: Trust, trustee - `TRUST_PROTECTOR`: Trust, protector - `TRUST_BENEFICIARY`: Trust, beneficiary - `TRUST_OTHER`: Trust, other - `ARR_SETTLOR_EQ`: Legal arrangement other than a trust, settlor-equivalent - `ARR_TRUSTEE_EQ`: Legal arrangement other than a trust, trustee-equivalent - `ARR_PROTECTOR_EQ`: Legal arrangement other than a trust, protector-equivalent - `ARR_BENEFICIARY_EQ`: Legal arrangement other than a trust, beneficiary-equivalent - `ARR_OTHER_EQ`: Legal arrangement other than a trust, other-equivalent Optional, and accepted only together with `taxResidences`. If you omit it, BVNK derives it: a `BUSINESS_OWNER` with `ownership.percentage` of 25 or more gets `LP_OWNERSHIP`, and a `DIRECTOR` gets `LP_SENIOR_MANAGING_OFFICIAL`, but only when no associate owns 25% or more.
        - `taxResidences` TaxResidence[]: Every country where the associate is resident for tax purposes, as the complete set. Each country can appear only once. Optional, except that at least one associate must send it, and have a controlling person role, when the company's `crsClassification` is `PASSIVE_NFE` or `PMIE_NON_PARTICIPATING`, or its `carfClassification` is `OTHER_ENTITY`. If you send it, also send `taxDeclaration`, `person.birthCountryCode`, and `person.placeOfBirth`, otherwise the request fails with `400`. If you omit `person.taxIdentification`, BVNK derives it from these residences.
          - `country` string, required: 2-letter code of the country of tax residence, in the ISO 3166-1 alpha-2 format. Must be a country supported by BVNK.
          - `tin` string: Tax identification number (TIN) issued by this country. Send either `tin` or `noTinReason`, not both. Placeholder values are rejected, for example `NONE`, `UNKNOWN`, `N/A`, all zeros such as `0000`, repeated characters, sequential digits such as `1234`, and values shorter than 4 characters.
          - `noTinReason` 'NOT_ISSUED' | 'UNABLE_TO_OBTAIN' | 'NOT_REQUIRED': Why there is no TIN for this country. Send either `tin` or `noTinReason`, not both. - `NOT_ISSUED`: The country does not issue TINs - `UNABLE_TO_OBTAIN`: The holder cannot obtain a TIN. `noTinExplanation` is required - `NOT_REQUIRED`: The country's domestic law does not require a TIN
          - `noTinExplanation` string: Why the holder cannot obtain a TIN. Required when `noTinReason` is `UNABLE_TO_OBTAIN`.
        - `taxDeclaration` TaxDeclaration
          - `acceptedAt` string, date-time, required: Date and time when the customer accepted the tax declaration, in the ISO-8601 format. Must not be in the future.
      - `reliance` CorporateReliance: Additional fields for the Partner-managed customer onboarding for corporate customers. Incorporation, Address, and SoF are handled via /documents in Step 3.
        - `attestation` RelianceAttestation, required: Additional fields for the Partner-managed customer onboarding for corporate customers. Risk score levels and EDD completion status for customer attestation.
          - `riskScore` 'LOW' | 'MEDIUM' | 'HIGH', required: Risk score levels. Used under the Partner-managed model. - `LOW`: Low risk - `MEDIUM`: Medium risk - `HIGH`: High risk
          - `eddCompleted` true | false, required: Indicates if you have already performed Enhanced Due Diligence (EDD). BVNK doesn't verify customer attestations within this flow, so make sure you have completed the EDD.
      - `isRegulated` boolean: Whether the company is regulated by a financial authority. If `true`, `regulatorInformation` is required. Mandatory for the onboarding of customers from the US states that do not require money transmitter license (MTL). The non-MTL states are **not** listed in [What licenses registrations does BVNK and BVNK's Partners have](https://help.bvnk.com/hc/en-us/articles/11094354781074-What-licenses-registrations-does-BVNK-and-BVNK-s-Partners-have).
      - `regulatorInformation` RegulatorInformation: Regulator details. Required when `isRegulated` is `true`.
        - `regulatorName` string, required: Name of the financial regulator overseeing the company.
        - `regulatorJurisdiction` string, required: Jurisdiction of the regulator.
      - `isPubliclyListed` boolean: Whether the company is publicly listed on a stock exchange. If `true`, `publicInformation` is required. Mandatory for the onboarding of customers from the US states that do not require money transmitter license (MTL). The non-MTL states are **not** listed in [What licenses registrations does BVNK and BVNK's Partners have](https://help.bvnk.com/hc/en-us/articles/11094354781074-What-licenses-registrations-does-BVNK-and-BVNK-s-Partners-have).
      - `publicInformation` PublicInformation: Public listing details. Required when `isPubliclyListed` is `true`.
        - `listedExchange` string, required: Name of the stock exchange where the company is listed.
        - `tickerSymbol` string, required: The company's ticker symbol on the exchange.
    - `signedAgreementSessionReference` string, required: Agreement acceptance reference. See [Prepare Customer Agreements](https://docs.bvnk.com/bvnk/get-started/create-embedded-partner-customer/signing-customer-agreements)
  - CreateIndividualCustomerRequest
    - `type` 'individual', required
    - `individual` CreateIndividualCustomer, required
      - `description` string, required: Enter additional notes or description of this individual customer. This field can include relevant background information, special requirements, customer preferences, account purpose, or any other details that may be helpful for future reference.
      - `firstName` string, required: First name.
      - `lastName` string, required: Last name.
      - `dateOfBirth` string, date, required: Date of birth in YYYY-MM-DD format.
      - `nationality` string, required: Nationality (ISO 2-letter code). *Required for EU customers*.
      - `birthCountryCode` string, required: Birth country code (ISO 2-letter code). *Required for EU customers* and when you send `taxResidences`.
      - `placeOfBirth` string: Place of birth, for example the city. Required when you send `taxResidences`, and optional otherwise.
      - `emailAddress` string, email, required: Email address.
      - `phoneNumber` string: Phone number. Optional.
      - `address` object, required
        - `addressLine1` string, required: Main address
        - `addressLine2` string: Apartment numbers or suite number
        - `postalCode` string, required: Postal code
        - `city` string, required: City
        - `countryCode` string, required: 2-letter country code in the ISO 3166-1 alpha-2 format.
        - `country` string: Country of residence
        - `stateCode` string: State code. **Required for US customers**
      - `taxIdentification` object: Tax identification details. **Required for USA residents** unless you send `taxResidences`. If you omit it and send `taxResidences`, BVNK derives it from them: the US residence for a US national or US resident, otherwise the residence in the `address` country, otherwise the first residence with a `tin`. A derived value is validated as if you had sent it. If you send it together with `taxResidences`, `taxResidenceCountryCode` must be one of their countries and `number` must match its `tin`.
        - `number` string, required: SSN/ITIN for US, tax number for rest of the world
        - `taxResidenceCountryCode` string, required: Tax residency country ISO 2-letter code
      - `taxResidences` TaxResidence[]: Every country where the customer is resident for tax purposes, as the complete set. Each country can appear only once. Optional. If you send it, also send `taxDeclaration`, `birthCountryCode`, and `placeOfBirth`, otherwise the request fails with `400`. If you omit `taxIdentification`, BVNK derives it from these residences.
        - `country` string, required: 2-letter code of the country of tax residence, in the ISO 3166-1 alpha-2 format. Must be a country supported by BVNK.
        - `tin` string: Tax identification number (TIN) issued by this country. Send either `tin` or `noTinReason`, not both. Placeholder values are rejected, for example `NONE`, `UNKNOWN`, `N/A`, all zeros such as `0000`, repeated characters, sequential digits such as `1234`, and values shorter than 4 characters.
        - `noTinReason` 'NOT_ISSUED' | 'UNABLE_TO_OBTAIN' | 'NOT_REQUIRED': Why there is no TIN for this country. Send either `tin` or `noTinReason`, not both. - `NOT_ISSUED`: The country does not issue TINs - `UNABLE_TO_OBTAIN`: The holder cannot obtain a TIN. `noTinExplanation` is required - `NOT_REQUIRED`: The country's domestic law does not require a TIN
        - `noTinExplanation` string: Why the holder cannot obtain a TIN. Required when `noTinReason` is `UNABLE_TO_OBTAIN`.
      - `taxDeclaration` TaxDeclaration
        - `acceptedAt` string, date-time, required: Date and time when the customer accepted the tax declaration, in the ISO-8601 format. Must not be in the future.
      - `cdd` object, required: Customer Due Diligence details
        - `employmentStatus` 'SELF_EMPLOYED' | 'SALARIED' | 'UNEMPLOYED' | 'RETIRED' | 'STUDENT', required: Employment status: - `SELF_EMPLOYED`: Self employed and freelancer - `SALARIED`: Salaried - `UNEMPLOYED`: Unemployed - `RETIRED`: Retired - `STUDENT`: Student
        - `sourceOfFunds` 'SALARY' | 'PENSION' | 'SAVINGS' | 'SELF_EMPLOYMENT' | 'CRYPTO_TRADING' | 'GAMBLING' | 'REAL_ESTATE' | 'GIFT' | 'STUDENT_LOAN', required: Source of funds: - `SALARY`: Salary and employment income - `PENSION`: Pension and retirement income - `SAVINGS`: Savings and investments - `SELF_EMPLOYMENT`: Self employment and business income - `CRYPTO_TRADING`: Crypto trading - `GAMBLING`: Gambling and lottery winnings - `REAL_ESTATE`: Real estate sales - `GIFT`: Gifts - `STUDENT_LOAN`: Student Loan
        - `pepStatus` 'NOT_PEP' | 'FORMER_PEP_2_YEARS' | 'FORMER_PEP_OLDER' | 'DOMESTIC_PEP' | 'FOREIGN_PEP' | 'CLOSE_ASSOCIATES' | 'FAMILY_MEMBERS', required: Politically Exposed Person status: - `NOT_PEP`: Not a PEP - `FORMER_PEP_2_YEARS`: Former or inactive PEP (within 2 years) - `FORMER_PEP_OLDER`: Former or inactive PEP (older than 2 years) - `DOMESTIC_PEP`: Domestic PEP - `FOREIGN_PEP`: Foreign PEP - `CLOSE_ASSOCIATES`: Close associates - `FAMILY_MEMBERS`: Family members
        - `intendedUseOfAccount` 'TRANSFERS_OWN_WALLET' | 'TRANSFERS_FAMILY_FRIENDS' | 'INVESTMENTS' | 'GOODS_SERVICES' | 'DONATIONS', required: Purpose of the account: - `TRANSFERS_OWN_WALLET`: Transfers to or from own wallet including bank accounts - `TRANSFERS_FAMILY_FRIENDS`: Transfers to or from family and friends - `INVESTMENTS`: Investments - `GOODS_SERVICES`: Purchases of goods and services - `DONATIONS`: Donations
        - `expectedMonthlyVolume` object, required: Expected monthly volume
          - `amount` string, required: Expected monthly volume amount
          - `currency` string: Currency (USD or EUR)
        - `estimatedYearlyIncome` 'INCOME_0_TO_50K' | 'INCOME_50K_TO_100K' | 'INCOME_100K_TO_250K' | 'INCOME_250K_TO_500K' | 'INCOME_500K_TO_750K' | 'INCOME_750K_TO_1M' | 'INCOME_ABOVE_1M': Estimated yearly income range. **Mandatory for US residents under the Partner-managed model**. - `INCOME_0_TO_50K`: 0 to 50,000 USD - `INCOME_50K_TO_100K`: 50,000 to 100,000 USD - `INCOME_100K_TO_250K`: 100,000 to 250,000 USD - `INCOME_250K_TO_500K`: 250,000 to 500,000 USD - `INCOME_500K_TO_750K`: 500,000 to 750,000 USD - `INCOME_750K_TO_1M`: 750,000 to 1,000,000 USD - `INCOME_ABOVE_1M`: Above 1,000,000 USD
        - `employmentIndustrySector` 'INVESTMENT' | 'HEDGE_FUND' | 'MONEY_SERVICE_BUSINESS' | 'STO_ISSUER' | 'PRECIOUS_METALS' | 'NON_PROFIT' | 'REGISTERED_INVESTMENT_ADVISOR' | 'AGRICULTURE_FORESTRY_FISHING_HUNTING' | 'MINING' | 'UTILITIES' | 'CONSTRUCTION' | 'MANUFACTURING' | 'WHOLESALE_TRADE' | 'RETAIL_TRADE' | 'TRANSPORTATION_WAREHOUSING' | 'INFORMATION' | 'FINANCE_INSURANCE' | 'REAL_ESTATE_RENTAL_LEASING' | 'PROFESSIONAL_SCIENTIFIC_TECHNICAL_SERVICES' | 'MANAGEMENT_OF_COMPANIES_ENTERPRISES' | 'ADMINISTRATIVE_SUPPORT_WASTE_MANAGEMENT_REMEDIATION_SERVICES' | 'EDUCATIONAL_SERVICES' | 'HEALTH_CARE_SOCIAL_ASSISTANCE' | 'ARTS_ENTERTAINMENT_RECREATION' | 'ACCOMMODATION_FOOD_SERVICES' | 'OTHER_SERVICES' | 'PUBLIC_ADMINISTRATION' | 'NOT_CLASSIFIED' | 'ADULT_ENTERTAINMENT' | 'AUCTIONS' | 'AUTOMOBILES' | 'BLOCKCHAIN' | 'CRYPTO' | 'DRUGS' | 'EXPORT_IMPORT' | 'E_COMMERCE' | 'FINANCIAL_INSTITUTION' | 'GAMBLING' | 'INSURANCE' | 'MARKET_MAKER' | 'SHELL_BANK' | 'TRAVEL_TRANSPORT' | 'WEAPONS': Employment industry sector. **Required if your customers are individuals domiciled in a US state**.
      - `reliance` Reliance: Additional fields for the Partner-managed customer onboarding.
        - `identityDocumentMetadata` object, required: Details of the ID document that you have already verified. Used under the Partner-managed model. See [Individual Requirements](https://docs.bvnk.com/bvnk/get-started/compliance-requirements/compliance-requirements-for-individuals2) section for the supported documents.
          - `type` 'PASSPORT' | 'ID_CARD' | 'DRIVERS' | 'RESIDENCE_PERMIT' | 'OTHER', required: Type of the identity document. Used under the Partner-managed model. - `PASSPORT`: Passport - `ID_CARD`: National ID card - `DRIVERS`: Driver's licence - `RESIDENCE_PERMIT`: Residence permit - `OTHER`: Other government-issued ID
          - `number` string, required: Identity document number.
          - `expiryDate` string, date: Expiry date of the identity document. Required for all documents, except documents of the type `ID_CARD` and `OTHER`.
          - `issueDate` string, date: Issue date of the identity document.
          - `issuingCountryCode` string, required: ISO 3166-1 alpha-2 country code of the issuing country.
          - `kycTimestamp` string, date-time, required: Timestamp of the KYC identity verification.
        - `biometricLiveness` object, required: **EU Only**. Timestamps for liveness checks performed on your side.
          - `livenessTimestamp` string, date-time, required: Timestamp of the biometric liveness check.
        - `addressVerification` object, required: The method you used to verify the residential address of the Customer. Used under the Partner-managed model.
          - `type` 'DOC' | 'NON_DOC', required: Proof of Address type. Used under the Partner-managed model. - `DOC`: Verified by a document - `NON_DOC`: Verified via a database or registry
    - `signedAgreementSessionReference` string, required: Agreement acceptance reference. See [Prepare Customer Agreements](https://docs.bvnk.com/bvnk/get-started/create-embedded-partner-customer/signing-customer-agreements)

## Response `202`

Successful operation

- CustomerReferenceAndStatus
  - `reference` string, uuid, required: Unique identifier for the customer.
  - `status` 'INFO_REQUIRED' | 'PENDING' | 'VERIFIED' | 'REJECTED', required: Current status of the customer. - `INFO_REQUIRED`: Customer information is needed for verification. A related questionnaire code is included in the response. - `PENDING`: Pending customer verification. - `VERIFIED`: Customer has been verified. - `REJECTED`: Verification has been unsuccessful.

## Other responses

- `400`: Bad request

## Changes

- **2026-11-06** `c386d436bf2c`: 2 breaking, 2 warning, 20 info
  - removed the enum value `NOT_PROVIDED` of the request property `anyOf[#/components/schemas/CreateIndividualCustomerRequest]/individual/cdd/employmentStatus`
  - the `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/taxResidenceCountryCode` request property's minLength was increased from `0` to `2`
  - removed the request property `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/businessOperationsStartDate`
  - added the new `INFO_REQUIRED` enum value to the `status` response property for the response status `202`
  - …20 more
- **2026-06-16** `97d6c0d2fe2e`: 4 breaking, 3 warning, 13 info
  - removed the enum value `CUSTOMER_COLLECTIONS` of the request property `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/cdd/intendedUseOfAccount`
  - removed the enum value `INTERCOMPANY_TRANSFERS` of the request property `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/cdd/intendedUseOfAccount`
  - removed the enum value `TREASURY_MANAGEMENT` of the request property `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/cdd/intendedUseOfAccount`
  - removed the enum value `VENDOR_PAYMENTS` of the request property `anyOf[#/components/schemas/CreateCompanyCustomerRequest]/company/cdd/intendedUseOfAccount`
  - …16 more

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/platform/v1/customers/post.md)

---

[API](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints.md) - [All operations](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/revisions/c386d436bf2c?raw)
