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

# Create customer

> Create a new customer in your Genuka store. Use this endpoint to register a customer's information — such as name, email, and phone number — so they can place orders and manage their account within your shop.



## OpenAPI

````yaml POST /2023-11/admin/customers
openapi: 3.0.3
info:
  title: Genuka V2 - API
  version: 1.0.0
  contact: {}
servers:
  - url: https://api-staging.genuka.com
  - url: https://api.genuka.com
security:
  - bearerAuth: []
tags:
  - name: Public Routes
  - name: Pages
  - name: Collections
  - name: Shops
  - name: Products
  - name: Articles
  - name: Discounts
  - name: Blogs
  - name: Company
  - name: Review
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: Private Routes
  - name: Authentication
  - name: Apps
  - name: Accounting
  - name: Addresses
  - name: Customer
  - name: Analytics
  - name: Articles1
  - name: Availabilities
  - name: API Keys
  - name: Orders
  - name: Bills
  - name: Blogs1
  - name: Calendar Events
  - name: Collections1
  - name: Company1
  - name: Customers
  - name: Deliveries
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: Discount
  - name: Domains
    description: |-
      ``` json
      {
      "domain": "",
      "company_id": ""
      }

       ```
  - name: Analytics1
  - name: Orders1
  - name: Payments
  - name: Pages1
  - name: Production
  - name: Bill of Materials
  - name: Payments1
  - name: Payments Methods
  - name: Workflows
  - name: New Folder
  - name: Wallet
  - name: Marketing
  - name: Campaigns
  - name: Templates
  - name: Products1
  - name: Product Variants
  - name: Analytics12
  - name: Services
    description: >-
      Services are "Products" that have a duration in minutes, a buffer time and
      a list of users able to provide the service.
  - name: SupplierProducts
  - name: Shops1
    description: >-
      Shops are sort of subsidiary of companies. A Company can have many Shops.
      Each shop can have 0 or more .  
        
      But all of them are properties of a Company.
  - name: Warehouses
    description: >-
      Warehouses are places where stocks are placed.


      Shop which are physical or virtual point of sales can be attached to one
      or many warehouses to take their products.
  - name: Stocks
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: Review1
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: ReviewCriterion
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: StockMovements
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: Suppliers
  - name: Treasury Accounts
    description: Comptes de trésorerie
  - name: Users
  - name: Wrapped
  - name: Returns
  - name: Webhooks
  - name: Customer Routes
  - name: Authentication1
  - name: Addresses1
  - name: Orders12
  - name: Payments12
  - name: Review12
    description: |-
      ``` json
      {
      "title": "",
      "quantity": "",
      "product_variant": "",
      "date": "",
      "company_id": "",
      "shops": []
      }

       ```
  - name: Developer Routes
  - name: Authentication12
  - name: Apps1
  - name: Apps Shortcut
  - name: Products12
    description: Developer can access a company product through its app
paths:
  /2023-11/admin/customers:
    post:
      tags:
        - Private Routes
        - Customers
      summary: Create
      description: Create
      operationId: create4
      parameters:
        - name: x-company
          in: header
          schema:
            type: string
            example: '{{companyId}}'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                company_id:
                  type: string
                  example: 01hqydxwtxdj3kmzp3bz7jk73g
                first_name:
                  type: string
                  example: Test
                last_name:
                  type: string
                  example: Test W
                medias:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        example: profile.jpg
                      src:
                        type: string
                        example: https://genuka.com/logo.png
                  example:
                    - name: profile.jpg
                      src: https://genuka.com/logo.png
                tags:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        example: tag 1
                  example:
                    - name: tag 1
            examples:
              Create:
                value:
                  company_id: 01hqydxwtxdj3kmzp3bz7jk73g
                  first_name: Test
                  last_name: Test W
                  medias:
                    - name: profile.jpg
                      src: https://genuka.com/logo.png
                  tags:
                    - name: tag 1
      responses:
        '200':
          description: 200 OK
          headers:
            Cache-Control:
              schema:
                type: string
                example: no-cache, private
            Connection:
              schema:
                type: string
                example: keep-alive
            Content-Encoding:
              schema:
                type: string
                example: gzip
            Date:
              schema:
                type: string
                example: Thu, 09 Oct 2025 13:37:20 GMT
            Server:
              schema:
                type: string
                example: nginx/1.18.0 (Ubuntu)
            Transfer-Encoding:
              schema:
                type: string
                example: chunked
            Vary:
              schema:
                type: string
                example: Origin
            X-RateLimit-Limit:
              schema:
                type: string
                example: '6000'
            X-RateLimit-Remaining:
              schema:
                type: string
                example: '5999'
          content:
            application/json:
              schema:
                type: object
                properties:
                  birthdate:
                    nullable: true
                    example: null
                  company_id:
                    type: string
                    example: 01k7464hqksr4f99rp3ff7x2jz
                  company_name:
                    nullable: true
                    example: null
                  created_at:
                    type: string
                    example: '2025-10-09T13:37:12.000000Z'
                  custom_fields:
                    type: array
                    items: {}
                    example: []
                  default_address:
                    nullable: true
                    example: null
                  deleted_at:
                    nullable: true
                    example: null
                  email:
                    type: string
                    example: test+3@genuka.com
                  first_name:
                    type: string
                    example: Test
                  gender:
                    nullable: true
                    example: null
                  id:
                    type: string
                    example: 01k74k19r8cc6ksb89a1fnh6md
                  last_activity:
                    nullable: true
                    example: null
                  last_name:
                    type: string
                    example: Test W
                  medias:
                    type: array
                    items:
                      type: object
                      properties:
                        collection_name:
                          type: string
                          example: default
                        created_at:
                          type: string
                          example: '2025-10-09T13:37:13.000000Z'
                        file_name:
                          type: string
                          example: logo.png
                        id:
                          type: number
                          example: 81
                        large:
                          type: string
                          example: >-
                            https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-large.jpg
                        link:
                          type: string
                          example: >-
                            https://cdn.genuka.com/preprod_api_genuka/81/logo.png
                        micro:
                          type: string
                          example: >-
                            https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-micro.jpg
                        mime_type:
                          type: string
                          example: image/png
                        size:
                          type: number
                          example: 10830
                        thumb:
                          type: string
                          example: >-
                            https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-thumb.jpg
                        updated_at:
                          type: string
                          example: '2025-10-09T13:37:19.000000Z'
                    example:
                      - collection_name: default
                        created_at: '2025-10-09T13:37:13.000000Z'
                        file_name: logo.png
                        id: 81
                        large: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-large.jpg
                        link: https://cdn.genuka.com/preprod_api_genuka/81/logo.png
                        micro: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-micro.jpg
                        mime_type: image/png
                        size: 10830
                        thumb: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-thumb.jpg
                        updated_at: '2025-10-09T13:37:19.000000Z'
                  metadata:
                    type: object
                    properties:
                      matchingMediaIds:
                        type: array
                        items: {}
                        example: []
                  phone:
                    type: string
                    example: +237 67812094
                  preferred_language:
                    nullable: true
                    example: null
                  registration_number:
                    nullable: true
                    example: null
                  tax_number:
                    nullable: true
                    example: null
                  type:
                    type: string
                    example: individual
                  updated_at:
                    type: string
                    example: '2025-10-09T13:37:19.000000Z'
              examples:
                200 OK:
                  value:
                    birthdate: null
                    company_id: 01k7464hqksr4f99rp3ff7x2jz
                    company_name: null
                    created_at: '2025-10-09T13:37:12.000000Z'
                    custom_fields: []
                    default_address: null
                    deleted_at: null
                    email: test+3@genuka.com
                    first_name: Test
                    gender: null
                    id: 01k74k19r8cc6ksb89a1fnh6md
                    last_activity: null
                    last_name: Test W
                    medias:
                      - collection_name: default
                        created_at: '2025-10-09T13:37:13.000000Z'
                        file_name: logo.png
                        id: 81
                        large: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-large.jpg
                        link: https://cdn.genuka.com/preprod_api_genuka/81/logo.png
                        micro: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-micro.jpg
                        mime_type: image/png
                        size: 10830
                        thumb: >-
                          https://cdn.genuka.com/preprod_api_genuka/81/conversions/logo-thumb.jpg
                        updated_at: '2025-10-09T13:37:19.000000Z'
                    metadata:
                      matchingMediaIds: []
                    phone: +237 67812094
                    preferred_language: null
                    registration_number: null
                    tax_number: null
                    type: individual
                    updated_at: '2025-10-09T13:37:19.000000Z'
        '400':
          description: '400'
          headers:
            Cache-Control:
              schema:
                type: string
                example: no-cache, private
            Connection:
              schema:
                type: string
                example: keep-alive
            Date:
              schema:
                type: string
                example: Thu, 09 Oct 2025 13:37:47 GMT
            Server:
              schema:
                type: string
                example: nginx/1.18.0 (Ubuntu)
            Transfer-Encoding:
              schema:
                type: string
                example: chunked
            Vary:
              schema:
                type: string
                example: Origin
            X-RateLimit-Limit:
              schema:
                type: string
                example: '6000'
            X-RateLimit-Remaining:
              schema:
                type: string
                example: '5998'
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: object
                    properties:
                      email:
                        type: array
                        items:
                          type: string
                          example: >-
                            The email field is required when phone is not
                            present.
                        example:
                          - >-
                            The email field is required when phone is not
                            present.
                      phone:
                        type: array
                        items:
                          type: string
                          example: >-
                            The phone field is required when email is not
                            present.
                        example:
                          - >-
                            The phone field is required when email is not
                            present.
                  message:
                    type: string
                    example: The email field is required when phone is not present.
              examples:
                '400':
                  value:
                    errors:
                      email:
                        - The email field is required when phone is not present.
                      phone:
                        - The phone field is required when email is not present.
                    message: The email field is required when phone is not present.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````