---
title: "Create business customer"
method: POST
path: "/onboarding/v1/applications"
tags: ["Onboarding"]
---

# Create business customer

`POST /onboarding/v1/applications`

## Request

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

Creates a business customer onboarding application in a single request. Submit company details, associates, and business profile together. BVNK enriches the submission and routes it to the onboarding orchestrator.

Jurisdiction guidance:
- EU flows require associate nationality, birth country, and biometric/selfie evidence.
- US flows require US tax identifiers where applicable and may require additional fields for control persons.
- `stateCode` for US addresses is planned for a future release and is not yet enforced.

Onboarding completes automatically once required company documents, associate identification documents, required questionnaires, and assigned agreements are all submitted and accepted for processing.

## Request body

- CreateBusinessCustomerOnboardingRequest: Create request for a business customer onboarding application.
  - `onboardingType` 'EMBEDDED', required: Onboarding mode. Must be `EMBEDDED` for the onboarding of your customers.
  - `embeddedPartnerCustomer` EmbeddedPartnerCustomerOnboardingPayload, required: Customer payload containing company details, associates, and product use case.
    - `partnerAccountReference` string, required: Unique reference for this customer in your platform.
    - `company` CustomerOnboardingCompany, required: Business entity details for customer onboarding.
      - `name` string, required: Legal name of the business entity.
      - `entityType` 'CORPORATION' | 'LIMITED_LIABILITY_COMPANY' | 'PUBLICLY_LISTED_COMPANY' | 'SOLE_PROPRIETOR' | 'PARTNERSHIP' | 'TRUST' | 'PRIVATE_FOUNDATION' | 'CHARITY' | 'NON_PROFIT_ORGANIZATION' | 'PUBLIC_AGENCIES_OR_AUTHORITIES' | 'OTHER', required: Legal entity type of the business.
      - `taxNumber` string, required: Tax identification number (for example EIN in the US, VAT or national tax ID in the EU).
      - `registrationNumber` string, required: Business registration number (for example HRB in Germany or Companies House number in the UK).
      - `incorporationDate` string, date, required: Date of incorporation in `YYYY-MM-DD` format.
      - `address` CustomerOnboardingAddress, required: Address details. `stateCode` is planned for future mandatory use in US addresses.
        - `addressLine1` string, required: Street address line 1.
        - `city` string, required: City.
        - `postalCode` string, required: Postcode or ZIP code.
        - `countryCode` string, required: ISO 3166-1 alpha-2 country code.
        - `stateCode` string: US state code.
      - `businessProfile` CustomerOnboardingBusinessProfile, required: Business context, CDD data, and nature-of-business information.
        - `description` string, required: Brief description of the business and its activities.
        - `naicsCode` string, required: 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.
        - `monthlyExpectedVolumes` 'UNDER_100K' | 'FROM_100K_TO_1M' | 'FROM_1M_TO_10M' | 'FROM_10M_TO_100M' | 'OVER_100M', required: Expected monthly transaction volume range.
        - `website` string, uri, required: Primary business website URL.
        - `customerTypes` 'Both' | 'Individuals' | 'Businesses', required: Types of customers served.
        - `prohibitedJurisdictionsExposure` boolean, required: Flag showing whether the business has exposure to prohibited jurisdictions per BVNK risk appetite.
        - `annualIncomingTransactionValue` string, required: Estimated annual incoming transaction value in USD equivalent, expressed as numeric string.
        - `annualOutgoingTransactionValue` string, required: Estimated annual outgoing transaction value in USD equivalent, expressed as numeric string.
        - `jurisdictionalPortfolioDistribution` CustomerOnboardingJurisdictionDistribution[], required: Jurisdictions representing 25% or more of portfolio distribution.
          - `country` string, required: ISO 3166-1 alpha-2 country code.
          - `percentage` number, double, required: Percentage allocation for the jurisdiction.
        - `isRegulated` boolean, required: Indicates whether the business holds a regulatory licence.
        - `sourceOfFunds` 'COMMERCIAL_ACTIVITIES' | 'SHAREHOLDER_CAPITAL' | 'VENTURE_CAPITAL' | 'SALE_OF_ASSETS' | 'CRYPTO_FUNDRAISING' | 'CRYPTO_TRADING_REVENUE' | 'CORPORATE_LOANS' | 'OTHER', required: Primary source of funds. Documentary evidence may be requested during compliance review.
        - `intendedUseOfAccount` 'SUPPLIER_VENDOR_PAYMENTS' | 'INTERCOMPANY_TRANSFER' | 'PAYROLL' | 'CUSTOMER_PAYMENTS_RECEIVED' | 'CUSTOMER_PAYOUTS_REFUNDS_SETTLEMENTS' | 'OPERATING_EXPENSES' | 'DIVIDEND_PROFIT_DISTRIBUTIONS' | 'LOAN_REPAYMENT_FINANCIAL_ACTIVITIES', required: Intended use of the BVNK account.
      - `associates` CustomerOnboardingAssociate[], required: Associated natural persons connected to the business. At least one associate is required.
        - `person` CustomerOnboardingAssociatePerson, required: Natural person details for an associate.
          - `firstName` string, required: First name matching the government-issued ID.
          - `lastName` string, required: Last name matching the government-issued ID.
          - `dateOfBirth` string, date, required: Date of birth in the `YYYY-MM-DD` format.
          - `nationality` string: ISO 3166-1 alpha-2 nationality. Required in EU and conditional in US.
          - `birthCountryCode` string: ISO 3166-1 alpha-2 country of birth. Required in EU and conditional in US.
          - `address` CustomerOnboardingAddress, required: Address details. `stateCode` is planned for future mandatory use in US addresses.
            - `addressLine1` string, required: Street address line 1.
            - `city` string, required: City.
            - `postalCode` string, required: Postcode or ZIP code.
            - `countryCode` string, required: ISO 3166-1 alpha-2 country code.
            - `stateCode` string: US state code.
          - `contactInfo` object, required
            - `emailAddress` string, email, required: Email used for verification flow invitations.
          - `taxIdentification` CustomerOnboardingTaxIdentification
            - `number` string: Tax identification number.
            - `taxResidenceCountryCode` string: ISO 3166-1 alpha-2 tax residence country code. Required when `taxIdentification.number` is provided.
          - `position` string, required: Role or title at the company.
        - `titles` string[], required: Roles assigned to the associate. At least one title is required. - `BUSINESS_OWNER`: Ultimate Beneficial Owner - `SIGNATORY`: authorised signatories, individuals officially empowered by an organization
        - `ownership` CustomerOnboardingOwnership
          - `percentage` number, double: Ownership percentage.
          - `type` 'DIRECT' | 'INDIRECT': Ownership type. Required when `ownership.percentage` is provided.
    - `useCase` 'STABLECOIN_PAYOUTS' | 'EMBEDDED_STABLECOIN_WALLETS' | 'EMBEDDED_FIAT_ACCOUNTS', required: Product use case for this customer.
    - `externalReference` string, required: Your internal reference identifier for this customer.
    - `attestation` RelianceAttestation: 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.
    - `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

## Response `200`

Onboarding application created successfully

- CreateBusinessCustomerOnboardingResponse
  - `id` string, uuid, required: Onboarding application ID used in subsequent onboarding API calls. Save this value for further use.
  - `status` 'NOT_STARTED' | 'IN_PROGRESS' | 'SUBMITTED' | 'REQUIRED_ACTIONS' | 'APPROVED' | 'REJECTED' | 'SUSPENDED', required: Initial onboarding status.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

## Changes

- **2026-11-06** `c386d436bf2c`: 1 warning
  - removed the request property `embeddedPartnerCustomer/company/businessOperationsStartDate`
- **2026-06-16** `97d6c0d2fe2e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/onboarding/v1/applications/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)
