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

# Create Customer



## OpenAPI

````yaml /api/openapi/v2-reference.yaml post /v2/customers
openapi: 3.0.2
info:
  title: Multi-currency Payment APIs
  description: >-
    ## Introduction

    The Multi-currency Payment API Solution provides developers with a unified
    API schema to support multiple currencies efficiently. These APIs enable
    seamless transactions for both payin and payout operations, ensuring a
    robust, reliable, and scalable payment infrastructure for businesses dealing
    with various currencies.

    ### Key Features

    - **Single API Schema**: A single schema supports all currencies in your
    account, simplifying integration and management.

    - **Payin and Payout Process**:
      - **Step 1**: Call the **Get payin method list** to retrieve the list of supported methods.
      - **Step 2**: Call the **Get payin required fields** to get specific required fields for each method.
      - **Step 3**: Create the payment using the method and required fields from the previous step.
      - **Step 4**: On the sandbox environment, you can call the **Simulate payin** to simulate the payment.

    <div class="gst-note-red">
      Please note: GST should only be set to <code>true</code> for AU Merchants for <b>AUD</b> currency only. For all other currencies, set GST to <code>false</code>.
    </div>

    This documentation provides detailed guidance for integrating these
    capabilities into your application.
  version: 2.0.0
  termsOfService: https://helloclever.co/terms
  contact:
    email: support@helloclever.co
servers:
  - url: https://api.cleverhub.co/api
    description: Sandbox Environment
  - url: https://api-merchant.helloclever.co/api
    description: Production Environment
security:
  - app-id: []
    secret-key: []
paths:
  /v2/customers:
    post:
      tags:
        - Customer
      summary: Create Customer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - email
                - first_name
                - last_name
                - phone
                - dob
                - gender
                - street
                - city
                - postal_code
                - state
                - country
                - identity
              properties:
                email:
                  type: string
                  description: Customer's email
                first_name:
                  type: string
                  description: Customer's first name
                last_name:
                  type: string
                  description: Customer's last name
                middle_name:
                  type: string
                  description: Customer's middle name
                dob:
                  type: string
                  description: Customer date of birth format 'yyyy-mm-dd'
                phone:
                  type: string
                  description: Customer's phone
                  example: +61-412345678
                gender:
                  type: string
                  example: male
                  description: Customer's Gender
                  enum:
                    - male
                    - female
                    - other
                street:
                  type: string
                  description: The primary name of an address's street.
                street2:
                  type: string
                  description: The secondary name of an address's street.
                city:
                  type: string
                  description: Name of an address's city or town.
                postal_code:
                  type: string
                  description: The address's postcode
                state:
                  type: string
                  description: >-
                    The address's state / province / country. When country is
                    US, CA, or AU, this field is required and must be a valid
                    state/province code for that country (e.g., CA for
                    California, NSW for New South Wales, ON for Ontario).
                country:
                  type: string
                  description: ISO 3166-1 alpha-2 country code.
                type:
                  type: string
                  description: >
                    Customer type. Allowed values: `individual`, `organization`.
                    If provided, must be one of the valid types. 
                  enum:
                    - individual
                    - organization
                  example: organization
                reg_no:
                  type: string
                  description: >
                    Registration number. **Required** when `type` is
                    `organization`.
                  example: '10242424'
                identity:
                  type: object
                  required:
                    - issue_country
                    - document_number
                    - issue_date
                    - expiry_date
                    - id_doc_type
                  properties:
                    issue_country:
                      type: string
                      description: ISO 3166-1 alpha-2 country code.
                    id_doc_type:
                      type: string
                      description: Type of identification document
                      enum:
                        - passport
                        - id_card
                        - driving_license
                    document_number:
                      type: string
                      description: number ID
                    issue_date:
                      type: string
                      description: Format 'yyyy-mm-dd'
                    expiry_date:
                      type: string
                      description: Format 'yyyy-mm-dd'
              example:
                email: string
                first_name: string
                last_name: string
                middle_name: string
                dob: '2024-04-16'
                gender: male
                phone: +61-1234523
                street: string
                street2: string
                city: string
                postal_code: string
                state: CA
                country: US
                type: organization
                reg_no: '10242424'
                identity:
                  issue_country: US
                  document_number: string
                  issue_date: '2024-04-16'
                  expiry_date: '2024-04-16'
                  id_doc_type: Passport
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                  email:
                    type: string
              example:
                uuid: customer_clever12234
                email: JohnDoe@mail.com
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
              example:
                errors:
                  code: REQUIRE_LOGIN
                  message: Not Authorised
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: object
                    properties:
                      amount:
                        type: string
              example:
                errors:
                  amount: can't be blank
components:
  securitySchemes:
    app-id:
      type: apiKey
      in: header
      name: app-id
      description: |
        A unique identifier assigned to each application.
    secret-key:
      type: apiKey
      in: header
      name: secret-key
      description: |
        A secure token associated with the `app-id`.

````

## Related topics

- [Create Contact](/api/contact/create-contact.md)
- [Create Static PayID](/api/aud-payid/create-static-payid.md)
- [Create KYC for Beneficiary](/api/aud-payout/create-kyc-for-beneficiary.md)
