> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lumx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a customer

> This endpoint creates a customer.



## OpenAPI

````yaml /openapi/api-production.yaml post /customers
openapi: 3.1.0
info:
  version: 1.0.0
  title: Lumx API
  description: >-
    A cross-border banking API with instant settlements and unmatched liquidity,
    powered by stablecoins.
servers:
  - url: https://api.lumx.io
  - url: https://api-sandbox.lumx.io
security: []
paths:
  /customers:
    post:
      tags:
        - Customers
      summary: Create a customer
      description: This endpoint creates a customer.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          application/json:
            examples:
              Business:
                $ref: '#/components/examples/CustomerRequestBusinessExample'
              Individual:
                $ref: '#/components/examples/CustomerRequestIndividualExample'
            schema:
              $ref: '#/components/schemas/CustomerRequest'
      responses:
        '201':
          description: Resource successfully created.
          content:
            application/json:
              examples:
                Business:
                  $ref: '#/components/examples/CustomerCreateBusinessExample'
                Individual:
                  $ref: '#/components/examples/CustomerCreateIndividualExample'
              schema:
                $ref: '#/components/schemas/CustomerCreateResponse'
      security:
        - apiKey: []
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: >-
        Optional UUID v4 idempotency key. If you resend the same key with a
        different request body, the API returns a 409 error. Cached responses
        include the header `X-Idempotency-Cached: true`. Keys expire after 24
        hours.
  examples:
    CustomerRequestBusinessExample:
      value:
        type: BUSINESS
        legalName: Lumx S.A
        taxId: 42.887.120/0001-00
        incorporationDate: '2020-01-01'
        country: BRA
        email: hello@lumx.io
        accounts:
          - BRL
          - USD
          - EUR
          - MXN
    CustomerRequestIndividualExample:
      value:
        type: INDIVIDUAL
        name: William Default
        taxId: 123.456.789-00
        birthDate: '1990-01-01'
        country: BRA
        email: william.default@example.com
        accounts:
          - BRL
    CustomerCreateBusinessExample:
      value:
        id: 3c90c3cc-0d44-4b50-8888-8dd25736052a
        type: BUSINESS
        legalName: Lumx S.A
        taxId: 42.887.120/0001-00
        incorporationDate: '2020-01-01'
        country: BRA
        email: hello@lumx.io
        verification:
          status: NOT_STARTED
          level: STANDARD
          link: https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44
        requirements:
          - name: INCORPORATION_ARTICLES
            status: NOT_SENT
          - name: POWER_OF_ATTORNEY
            status: NOT_SENT
          - name: DIRECTORS_REGISTRY
            status: NOT_SENT
          - name: SHAREHOLDER_REGISTRY
            status: NOT_SENT
          - name: REGULATED_ACTIVITY_DOCUMENT
            status: NOT_SENT
          - name: SIGNED_BALANCE_SHEET
            status: NOT_SENT
          - name: SIGNED_CORPORATE_STRUCTURE_CHART
            status: NOT_SENT
          - name: SIGNED_INCOME_STATEMENT
            status: NOT_SENT
          - name: ADDITIONAL_INFORMATION
            status: NOT_SENT
        accounts:
          - id: 8412f484-32fe-418f-80d1-99eb1b3ba7f3
            currency: BRL
          - id: af04e979-360a-428a-84e6-cbd8ffc4942b
            currency: USD
          - id: d06d342c-629a-4d99-a26f-34e8ea528403
            currency: EUR
          - id: 16cb802f-8521-41ad-ab6e-dc40f43c0ad3
            currency: MXN
        metadata: {}
        createdAt: '2021-01-01T00:00:00Z'
        updatedAt: '2021-01-01T00:00:00Z'
    CustomerCreateIndividualExample:
      value:
        id: 3c90c3cc-0d44-4b50-8888-8dd25736052a
        type: INDIVIDUAL
        name: William Default
        taxId: 123.456.789-00
        birthDate: '1990-01-01'
        country: BRA
        email: william.default@example.com
        verification:
          status: NOT_STARTED
          level: STANDARD
          link: https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44
        requirements:
          - name: ID_CARD
            status: NOT_SENT
          - name: PASSPORT
            status: NOT_SENT
          - name: DRIVERS_LICENSE
            status: NOT_SENT
          - name: BANK_STATEMENT
            status: NOT_SENT
          - name: INCOME_TAX_RETURN
            status: NOT_SENT
          - name: DELIVERY_RECEIPT
            status: NOT_SENT
          - name: SELFIE
            status: NOT_SENT
          - name: ADDITIONAL_INFORMATION
            status: NOT_SENT
        accounts:
          - id: 8412f484-32fe-418f-80d1-99eb1b3ba7f3
            currency: BRL
        metadata: {}
        createdAt: '2021-01-01T00:00:00Z'
        updatedAt: '2021-01-01T00:00:00Z'
  schemas:
    CustomerRequest:
      oneOf:
        - allOf:
            - $ref: '#/components/schemas/CustomerBusiness'
            - type: object
              required:
                - type
                - legalName
                - taxId
                - email
                - country
                - incorporationDate
              properties:
                accounts:
                  $ref: '#/components/schemas/CustomerRequestAccounts'
        - allOf:
            - $ref: '#/components/schemas/CustomerIndividual'
            - type: object
              required:
                - type
                - name
                - taxId
                - email
                - country
                - birthDate
              properties:
                accounts:
                  $ref: '#/components/schemas/CustomerRequestAccounts'
    CustomerCreateResponse:
      oneOf:
        - title: Business
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: 3c90c3cc-0d44-4b50-8888-8dd25736052a
            - $ref: '#/components/schemas/CustomerBusiness'
            - $ref: '#/components/schemas/CustomerCreateResponseFields'
        - title: Individual
          allOf:
            - type: object
              properties:
                id:
                  type: string
                  description: Customer's unique identifier.
                  format: uuid
                  readOnly: true
                  example: 3c90c3cc-0d44-4b50-8888-8dd25736052a
            - $ref: '#/components/schemas/CustomerIndividual'
            - $ref: '#/components/schemas/CustomerCreateResponseFields'
    CustomerBusiness:
      title: Business
      type: object
      properties:
        type:
          type: string
          description: Customer's type.
          enum:
            - BUSINESS
        legalName:
          type: string
          description: Customer's legal name.
          example: Lumx S.A
        taxId:
          type: string
          description: >-
            Customer's tax ID. It must be a valid tax ID in the country where
            the company is incorporated.
          example: 42.887.120/0001-00
        incorporationDate:
          type: string
          description: Customer's incorporation date.
          format: date
          example: '2020-01-01'
        country:
          type: string
          description: Customer's country (ISO 3166-1 alpha-3).
          example: BRA
        email:
          type: string
          description: Customer's email.
          example: hello@lumx.io
        metadata:
          type: object
          description: >-
            Optional metadata object to attach to the customer. Accepts any
            valid JSON object.
          additionalProperties: true
          example:
            externalId: biz_456
            tier: enterprise
    CustomerRequestAccounts:
      type: array
      description: >-
        Optional list of currencies for virtual fiat accounts to provision
        alongside the customer. Each provisioned account enters verification and
        becomes `ACTIVE` once approved.
      items:
        type: string
        enum:
          - BRL
          - USD
          - EUR
          - MXN
      example:
        - BRL
        - USD
        - EUR
        - MXN
    CustomerIndividual:
      title: Individual
      type: object
      properties:
        type:
          type: string
          description: Customer's type.
          enum:
            - INDIVIDUAL
          example: INDIVIDUAL
        name:
          type: string
          description: Customer's full name.
          example: William Default
        taxId:
          type: string
          description: >-
            Customer's tax ID. It must be a valid tax ID in the country where
            the customer lives.
          example: 123.456.789-00
        birthDate:
          type: string
          description: Customer's birth date.
          format: date
          example: '1990-01-01'
        country:
          type: string
          description: Customer's country (ISO 3166-1 alpha-3).
          enum:
            - BRA
          example: BRA
        email:
          type: string
          description: Customer's email.
          example: william.default@example.com
        metadata:
          type: object
          description: >-
            Optional metadata object to attach to the customer. Accepts any
            valid JSON object.
          additionalProperties: true
          example:
            externalId: usr_123
            tier: premium
    CustomerCreateResponseFields:
      type: object
      description: >-
        Customer fields returned at creation time. The `wallets` array is
        omitted because it's only available after the customer's
        `verification.status` is `APPROVED`.
      properties:
        taxId:
          description: Customer's tax ID.
        verification:
          $ref: '#/components/schemas/CustomerVerification'
        requirements:
          type: array
          description: List of document requirements for KYC/KYB verification.
          items:
            type: object
            properties:
              name:
                type: string
                description: Document requirement name.
                enum:
                  - ID_CARD
                  - PASSPORT
                  - DRIVERS_LICENSE
                  - BANK_STATEMENT
                  - INCOME_TAX_RETURN
                  - DELIVERY_RECEIPT
                  - SELFIE
                  - ADDITIONAL_INFORMATION
                  - INCORPORATION_ARTICLES
                  - POWER_OF_ATTORNEY
                  - DIRECTORS_REGISTRY
                  - SHAREHOLDER_REGISTRY
                  - REGULATED_ACTIVITY_DOCUMENT
                  - SIGNED_BALANCE_SHEET
                  - SIGNED_CORPORATE_STRUCTURE_CHART
                  - SIGNED_INCOME_STATEMENT
                example: ID_CARD
              status:
                type: string
                description: Document requirement status.
                enum:
                  - NOT_SENT
                  - PENDING
                  - APPROVED
                  - TEMPORARY_REJECTION
                  - FINAL_REJECTION
                example: NOT_SENT
          example:
            - name: ID_CARD
              status: NOT_SENT
            - name: PASSPORT
              status: NOT_SENT
            - name: BANK_STATEMENT
              status: NOT_SENT
        metadata:
          type: object
          description: >-
            Custom metadata associated with the customer. Returns an empty
            object if no metadata was provided.
          additionalProperties: true
          example:
            externalId: usr_123
            tier: premium
        createdAt:
          type: string
          description: Creation date and time (UTC).
          format: date-time
          example: '2021-01-01T00:00:00Z'
        updatedAt:
          type: string
          description: Last update date and time (UTC).
          format: date-time
          example: '2021-01-01T00:00:00Z'
    CustomerVerification:
      type: object
      description: Customer's verification.
      properties:
        status:
          type: string
          description: Verification status.
          enum:
            - NOT_STARTED
            - UNDER_VERIFICATION
            - APPROVED
            - TEMPORARY_REJECTION
            - FINAL_REJECTION
          example: NOT_STARTED
        level:
          type: string
          description: Verification level.
          enum:
            - STANDARD
          example: STANDARD
        link:
          type: string
          description: Verification link.
          example: https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: Bearer authentication header on the format `Bearer <API_KEY>`.

````