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

# Create Individual Customer

> Create a new individual customer with verification details, basic info, address, and financial profile.

> [!NOTE]
>
> Only English (Latin) characters are allowed as inputs for all fields. If any field contains non-ASCII characters, provide a transliterated (Latin) value in the corresponding `_en` field (e.g., `first_name_en`, `street_line_1_en`).

## Important Requirements

* **Email Address**: Must be all lowercase or you will receive a validation error
* **RELIANCE Verification**: If you attempt to use `RELIANCE` verification type but it's not enabled for your client, you will receive a 423 error with message: "RELIANCE is not available for your client"
* **Address country**: `address.country` must match `basic_info.country_of_residence`
* **Reference Data**: `occupation_id`, `purpose_id`, and `source_of_fund_ids` are integer foreign keys. Fetch valid values from [List Occupations](https://docs.engagexpay.com/api-reference/catalogue/list-occupations), [List Account Purposes](https://docs.engagexpay.com/api-reference/catalogue/list-account-purposes), and [List Source of Funds](https://docs.engagexpay.com/api-reference/catalogue/list-source-of-funds)
* **subdivision\_code**: Pass the ISO 3166-2 code. For example for CA, pass US-CA.


## OpenAPI

````yaml POST /v2/customers/individual
openapi: 3.1.0
info:
  title: EngageXPay API
  version: 1.0.0
  description: >-
    A simple API specification for EngageXPay, a financial services platform
    that provides a range of banking and payment solutions for businesses and
    individuals. This API allows developers to integrate EngageXPay's services
    into their applications, enabling functionalities such as customer
    management, transaction processing, and access to financial data.
servers:
  - url: https://sandbox.api.engagexpay.com
    description: Sandbox server
  - url: https://api.engagexpay.com
    description: Production server
security: []
tags:
  - name: Authentication
    description: A modified OAuth 2.0 Client Credential Flow
  - name: Customers
    description: Customer management and document upload operations
  - name: Balances
    description: Retrieve wallet balance information
  - name: Catalogue
    description: |
      A set of endpoints to retrieve contextual data to assemble requests
      to EngageXPay's API
  - name: Beneficiaries
    description: Manage beneficiary accounts for payments and transfers
  - name: Transactions
    description: Transaction history and management for beneficiaries
  - name: Virtual Accounts
    description: Create and manage virtual accounts for USD to USDC conversions
  - name: Fees & FX Rates
    description: Retrieve fees and foreign exchange rates
paths:
  /v2/customers/individual:
    post:
      tags:
        - Customers
      summary: Create Individual Customer
      description: >-
        Create a new individual customer with verification details, basic info,
        address, and financial profile.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIndividualCustomerV2Input'
            example:
              verification_type: STANDARD
              basic_info:
                first_name: Maria
                middle_name: Elena
                last_name: Garcia
                dob: '1990-04-15'
                email: maria.garcia@example.com
                phone: '+14155552671'
                country_of_residence: USA
                primary_nationality: USA
                secondary_nationality: MEX
                gender: FEMALE
                tax_info:
                  - country_code: USA
                    document_type: SSN
                    document_id: 123-45-6789
              address:
                street_line_1: 123 Market Street
                street_line_2: Apt 4B
                city: San Francisco
                subdivision_code: US-CA
                postal_code: '94103'
                country: USA
              financial_profile:
                employment_status: EMPLOYED
                occupation_id: 42
                purpose_id: 3
                purpose_remarks: Personal remittances to family
                source_of_funds_description: Monthly salary from employment
                source_of_fund_ids:
                  - 1
                  - 5
                monthly_volume_usd: 5000
              meta_data:
                reference: client-ref-abc-001
      responses:
        '200':
          description: Individual customer created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      customer_id:
                        type: string
                        format: uuid
                        example: 0ca13984-63f3-45d7-99a7-52b9133f0259
                      tos_policies_url:
                        type: string
                        format: uri
                        description: >-
                          URL for the customer to accept Terms of Service. Parse
                          the tos_policies_value query parameter for later use.
                        example: >-
                          https://app.engagexpay.com/orchestration-customer-tos?customer_id=0ca13984-63f3-45d7-99a7-52b9133f0259&tos_policies_value=7e8873f7-519b-43d7-9565-c81befc52dd6
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '422':
          $ref: '#/components/responses/ValidationError'
        '423':
          description: Locked. RELIANCE verification is not available for your client.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: RELIANCE is not available for your client
      security:
        - bearerAuth: []
components:
  schemas:
    CreateIndividualCustomerV2Input:
      type: object
      required:
        - verification_type
        - basic_info
        - address
        - financial_profile
      properties:
        verification_type:
          type: string
          enum:
            - STANDARD
            - RELIANCE
          example: STANDARD
        basic_info:
          $ref: '#/components/schemas/V2IndividualBasicInfo'
        address:
          type: object
          required:
            - street_line_1
            - city
            - subdivision_code
            - postal_code
            - country
          properties:
            street_line_1:
              type: string
              example: 123 Market Street
            street_line_1_en:
              type: string
              description: >-
                English transliteration. Required if street_line_1 contains
                non-ASCII characters.
              example: 123 Market Street
            street_line_2:
              type: string
              example: Apt 4B
            street_line_2_en:
              type: string
              description: >-
                English transliteration. Required if street_line_2 contains
                non-ASCII characters.
              example: Apt 4B
            city:
              type: string
              example: San Francisco
            subdivision_code:
              type: string
              description: ISO 3166-2 subdivision code (e.g. US-CA).
              example: US-CA
            postal_code:
              type: string
              example: '94103'
            country:
              $ref: '#/components/schemas/CountryCode'
        financial_profile:
          type: object
          required:
            - employment_status
            - occupation_id
            - purpose_id
            - source_of_fund_ids
            - monthly_volume_usd
          properties:
            employment_status:
              type: string
              enum:
                - EMPLOYED
                - SELF_EMPLOYED
                - RETIRED
                - STUDENT
                - UNEMPLOYED
              description: Employment status of the individual.
              example: EMPLOYED
            occupation_id:
              type: integer
              description: >-
                Occupation. FK to occupations reference table. Fetch valid
                values from GET /v1/occupations?type=INDIVIDUAL.
              example: 42
            purpose_id:
              type: integer
              description: >-
                Account purpose. FK to purposes reference table. Fetch valid
                values from GET /v1/purposes?type=INDIVIDUAL.
              example: 3
            purpose_remarks:
              type: string
              example: Personal remittances to family
            source_of_fund_ids:
              type: array
              minItems: 1
              items:
                type: integer
              description: >-
                Source(s) of funds. FK array to source_of_funds reference table.
                Fetch valid values from GET /v1/source-of-funds?type=INDIVIDUAL.
              example:
                - 1
                - 5
            source_of_funds_description:
              type: string
              example: Monthly salary from employment
            monthly_volume_usd:
              type: integer
              minimum: 0
              example: 5000
        meta_data:
          type: object
          additionalProperties: true
          example:
            reference: client-ref-abc-001
    V2IndividualBasicInfo:
      type: object
      required:
        - first_name
        - last_name
        - dob
        - email
        - phone
        - country_of_residence
        - primary_nationality
        - gender
        - tax_info
      properties:
        first_name:
          type: string
          example: Maria
        first_name_en:
          type: string
          description: >-
            `Conditionally required.` English transliteration of first_name.
            Required if first_name contains non-ASCII characters.
          example: Maria
        middle_name:
          type: string
          example: Elena
        middle_name_en:
          type: string
          description: >-
            `Conditionally required.` English transliteration of middle_name.
            Required if middle_name contains non-ASCII characters.
          example: Elena
        last_name:
          type: string
          example: Garcia
        last_name_en:
          type: string
          description: >-
            `Conditionally required.` English transliteration of last_name.
            Required if last_name contains non-ASCII characters.
          example: Garcia
        dob:
          type: string
          format: date
          description: >-
            Date of birth in YYYY-MM-DD format. Age must be between 18 and 120
            years.
          example: '1990-04-15'
        email:
          type: string
          format: email
          description: Must be all lowercase.
          example: maria.garcia@example.com
        phone:
          type: string
          description: E.164 format.
          example: '+14155552671'
        country_of_residence:
          $ref: '#/components/schemas/CountryCode'
        primary_nationality:
          $ref: '#/components/schemas/CountryCode'
        secondary_nationality:
          $ref: '#/components/schemas/CountryCode'
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
          example: FEMALE
        tax_info:
          type: array
          minItems: 1
          description: >-
            Tax identification documents. Each entry must have a unique
            document_id.
          items:
            type: object
            required:
              - country_code
              - document_type
              - document_id
            properties:
              country_code:
                $ref: '#/components/schemas/CountryCode'
              document_type:
                type: string
                description: Tax document type (e.g. SSN, TIN).
                example: SSN
              document_id:
                type: string
                example: 123-45-6789
    CountryCode:
      type: string
      description: ISO 3166-1 alpha-3 country code
      example: USA
      enum:
        - AFG
        - ALB
        - DZA
        - ASM
        - AND
        - AGO
        - AIA
        - ATA
        - ATG
        - ARG
        - ARM
        - ABW
        - AUS
        - AUT
        - AZE
        - BHS
        - BHR
        - BGD
        - BRB
        - BLR
        - BEL
        - BLZ
        - BEN
        - BMU
        - BTN
        - BOL
        - BES
        - BIH
        - BWA
        - BVT
        - BRA
        - IOT
        - BRN
        - BGR
        - BFA
        - BDI
        - CPV
        - KHM
        - CMR
        - CAN
        - CYM
        - CAF
        - TCD
        - CHL
        - CHN
        - CXR
        - CCK
        - COL
        - COM
        - COD
        - COG
        - COK
        - CRI
        - HRV
        - CUB
        - CUW
        - CYP
        - CZE
        - CIV
        - DNK
        - DJI
        - DMA
        - DOM
        - ECU
        - EGY
        - SLV
        - GNQ
        - ERI
        - EST
        - SWZ
        - ETH
        - FLK
        - FRO
        - FJI
        - FIN
        - FRA
        - GUF
        - PYF
        - ATF
        - GAB
        - GMB
        - GEO
        - DEU
        - GHA
        - GIB
        - GRC
        - GRL
        - GRD
        - GLP
        - GUM
        - GTM
        - GGY
        - GIN
        - GNB
        - GUY
        - HTI
        - HMD
        - VAT
        - HND
        - HKG
        - HUN
        - ISL
        - IND
        - IDN
        - IRN
        - IRQ
        - IRL
        - IMN
        - ISR
        - ITA
        - JAM
        - JPN
        - JEY
        - JOR
        - KAZ
        - KEN
        - KIR
        - PRK
        - KOR
        - KWT
        - KGZ
        - LAO
        - LVA
        - LBN
        - LSO
        - LBR
        - LBY
        - LIE
        - LTU
        - LUX
        - MAC
        - MDG
        - MWI
        - MYS
        - MDV
        - MLI
        - MLT
        - MHL
        - MTQ
        - MRT
        - MUS
        - MYT
        - MEX
        - FSM
        - MDA
        - MCO
        - MNG
        - MNE
        - MSR
        - MAR
        - MOZ
        - MMR
        - NAM
        - NRU
        - NPL
        - NLD
        - NCL
        - NZL
        - NIC
        - NER
        - NGA
        - NIU
        - NFK
        - MNP
        - NOR
        - OMN
        - PAK
        - PLW
        - PSE
        - PAN
        - PNG
        - PRY
        - PER
        - PHL
        - PCN
        - POL
        - PRT
        - PRI
        - QAT
        - MKD
        - ROU
        - RUS
        - RWA
        - REU
        - BLM
        - SHN
        - KNA
        - LCA
        - MAF
        - SPM
        - VCT
        - WSM
        - SMR
        - STP
        - SAU
        - SEN
        - SRB
        - SYC
        - SLE
        - SGP
        - SXM
        - SVK
        - SVN
        - SLB
        - SOM
        - ZAF
        - SGS
        - SSD
        - ESP
        - LKA
        - SDN
        - SUR
        - SJM
        - SWE
        - CHE
        - SYR
        - TWN
        - TJK
        - TZA
        - THA
        - TLS
        - TGO
        - TKL
        - TON
        - TTO
        - TUN
        - TUR
        - TKM
        - TCA
        - TUV
        - UGA
        - UKR
        - ARE
        - GBR
        - UMI
        - USA
        - URY
        - UZB
        - VUT
        - VEN
        - VNM
        - VGB
        - VIR
        - WLF
        - ESH
        - YEM
        - ZMB
        - ZWE
        - ALA
  responses:
    AuthenticationError:
      description: Authentication failed due to invalid credentials
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Authentication failed
    ValidationError:
      description: Failed due to a formatting error.
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
              errors:
                type: array
                items:
                  type: object
                  additionalProperties:
                    type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer token authentication. Obtain token from [Issue a
        Token](https://docs.engagexpay.com/api-reference/authentication/issue-a-token)
        endpoint

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.