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

# Update Customer

> 
      Updates an existing customer with optional KYC verification.
      
      **KYC Validation Rules:**
      - If run_kyc_check is true, the following fields are required: address, postal_code, state, city, kyc_metadata
      - If any of these fields (address, postal_code, state, city, kyc_metadata) are provided, run_kyc_check must be set to true
      - If run_kyc_check is false, none of the KYC fields should be provided
      - All fields are optional; only provide the fields you want to update
    



## OpenAPI

````yaml /novacrust-open-api-v2.yaml patch /api/v1/business/open/customer/{uuid}
openapi: 3.0.0
info:
  title: Open-API
  description: The http Integration API description
  version: '1.0'
  contact: {}
servers:
  - url: http://localhost:3050
    description: Local environment
  - url: https://api-staging.novacrust.com
    description: Staging environment
  - url: https://api-dev.novacrust.com
    description: Develop environment
security:
  - api-key: []
tags:
  - name: Customer
    description: ''
  - name: Payout Methods
    description: ''
  - name: Beneficiary
    description: ''
  - name: Payout
    description: ''
  - name: Transactions
    description: ''
  - name: Buy Gift Card
    description: ''
  - name: Sell Gift Card
    description: ''
  - name: Miscellaneous
    description: ''
paths:
  /api/v1/business/open/customer/{uuid}:
    patch:
      tags:
        - Customer
      summary: Update Customer
      description: |2-

              Updates an existing customer with optional KYC verification.
              
              **KYC Validation Rules:**
              - If run_kyc_check is true, the following fields are required: address, postal_code, state, city, kyc_metadata
              - If any of these fields (address, postal_code, state, city, kyc_metadata) are provided, run_kyc_check must be set to true
              - If run_kyc_check is false, none of the KYC fields should be provided
              - All fields are optional; only provide the fields you want to update
            
      operationId: update
      parameters:
        - name: uuid
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenApiUpdateCustomerDto'
            examples:
              withKyc:
                summary: Update customer with KYC
                description: Example with KYC verification enabled
                value:
                  first_name: John
                  last_name: Doe
                  email: john.doe@example.com
                  phone_number: '+1234567890'
                  country: USA
                  customer_type: INDIVIDUAL
                  run_kyc_check: true
                  address: 123 Main St
                  postal_code: '12345'
                  state: California
                  city: Los Angeles
                  kyc_metadata:
                    id_type: NIGERIAN_BVN_VERIFICATION
                    bvn: '22222222222222'
                    selfie_image: https://image.com
              withoutKyc:
                summary: Update customer without KYC
                description: Example without KYC verification - only update basic fields
                value:
                  first_name: Jane
                  last_name: Smith
                  email: jane.smith@example.com
                  phone_number: '+1987654321'
                  country: USA
              partial:
                summary: Partial update
                description: Update only specific fields
                value:
                  email: newemail@example.com
                  phone_number: '+1555555555'
      responses:
        '200':
          description: Customer updated successfully
        '400':
          description: Validation error or invalid customer UUID
          content:
            application/json:
              schema:
                example:
                  statusCode: 400
                  message:
                    - Invalid customer uuid
                    - Address is required when KYC check is enabled
                    - >-
                      run_kyc_check must be true when address, postal_code,
                      state, city, or kyc_metadata are provided
                  error: Bad Request
        '404':
          description: Customer not found
components:
  schemas:
    OpenApiUpdateCustomerDto:
      type: object
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        email:
          type: string
          format: email
          example: john.doe@example.com
        phone_number:
          type: string
          pattern: /^\+?[1-9]\d{1,14}$/
          description: Phone number of the business
        country:
          type: string
          example: USA
        address:
          type: string
          example: 123 Main St
          description: Street address. Required when run_kyc_check is true.
        postal_code:
          type: string
          example: '12345'
          description: Postal/ZIP code. Required when run_kyc_check is true.
        customer_type:
          enum:
            - INDIVIDUAL
            - BUSINESS
          type: string
        state:
          type: string
          example: California
          description: State/Province. Required when run_kyc_check is true.
        city:
          type: string
          example: Los Angeles
          description: City name. Required when run_kyc_check is true.
        kyc_metadata:
          type: object
          example:
            id_type: NIGERIAN_BVN_VERIFICATION
            bvn: '22222222222222'
            selfie_image: https://image.com
          description: KYC verification metadata. Required when run_kyc_check is true.
        run_kyc_check:
          type: boolean
          example: true
          description: Whether to run KYC verification.
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: authorization

````

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