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

# Update User

> Update user information. All fields are optional - only include fields that need to be updated.



## OpenAPI

````yaml /api-reference/openapi.json put /onboarding/api/v1/users/{user_id}
openapi: 3.0.0
info:
  title: Carbn Connect API
  version: 1.0.0
  description: >-
    API documentation for Carbn Connect services including user onboarding, KYC,
    wallet management, and transfers.
servers:
  - url: https://api.carbnconnect.com
    description: Production server
security:
  - ApiKeyAuth: []
paths:
  /onboarding/api/v1/users/{user_id}:
    put:
      tags:
        - User Management
      summary: Update User
      description: >-
        Update user information. All fields are optional - only include fields
        that need to be updated.
      operationId: updateUser
      parameters:
        - name: user_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Unique identifier of the user to update
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
      responses:
        '200':
          description: User updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetailsResponse'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized - API key is missing or invalid
        '404':
          description: User not found
      security:
        - ApiKeyAuth: []
components:
  schemas:
    UserUpdateRequest:
      type: object
      description: >-
        User update request - all fields are optional, only include fields that
        need to be updated
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        email_address:
          type: string
          format: email
          example: user@example.com
        phone_number:
          type: string
          example: +1XXXXXXXXXX
        user_type:
          type: string
          enum:
            - individual
          example: individual
        date_of_birth:
          type: string
          format: date
          example: YYYY-MM-DD
        consent_id:
          type: string
          format: uuid
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        metadata:
          type: string
          example: '{}'
        sharing_consent:
          type: boolean
          example: true
        identity:
          type: object
          properties:
            identity_country_code:
              type: string
              example: DEU
            identity_number:
              type: string
              example: XXXXXXXXXXXX
            identity_document_name:
              type: string
              enum:
                - national_id
                - drivers_license
                - passport
                - permanent_residency_id
              example: permanent_residency_id
            identity_document_front:
              type: string
              format: base64
              example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...
              description: >-
                Front side of identity document in data URL format
                (data:image/jpeg;base64,...)
            identity_document_back:
              type: string
              format: base64
              example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...
              description: >-
                Back side of identity document in data URL format
                (data:image/jpeg;base64,...)
        documents:
          type: array
          title: AdditionalDocuments
          description: >-
            Additional supporting documents for user onboarding. Can include
            various document types such as proof of address, source of funds,
            etc.
          minItems: 0
          items:
            type: object
            properties:
              name:
                type: string
                example: steuer_id
                description: Document name - can be any document identifier
              type:
                type: string
                enum:
                  - tax_document
                  - proof_of_account_purpose
                  - proof_of_address
                  - proof_of_individual_name_change
                  - proof_of_relationship
                  - proof_of_source_of_funds
                  - proof_of_source_of_wealth
                  - proof_of_tax_identification
                  - other
                example: tax_document
              issuing_country:
                type: string
                example: DEU
              document_number:
                type: string
                example: <string>
              document_front:
                type: string
                format: base64
                example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...
                description: >-
                  Front side of the document in data URL format
                  (data:image/jpeg;base64,...)
              document_back:
                type: string
                format: base64
                example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD...
                description: >-
                  Back side of the document in data URL format
                  (data:image/jpeg;base64,...)
        address:
          type: object
          properties:
            line1:
              type: string
              example: 123 Main Street
            city:
              type: string
              example: City Name
            sub_division:
              type: string
              example: ST
            country:
              type: string
              example: DEU
            postal_code:
              type: string
              example: '12345'
    UserDetailsResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
          description: Unique user identifier
        status:
          type: string
          enum:
            - under_review
            - active
            - rejected
            - offboarded
            - incomplete
          example: under_review
          description: >-
            Current user status. under_review: Initial status when user is
            created (default). active: User has been approved and verified.
            paused: User account is temporarily paused. rejected: User has been
            rejected during KYC process. offboarded: User has been
            removed/offboarded from the system. incomplete: User profile is
            missing required information.
        documents:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                example: national_id
                description: Document name/type
              type:
                type: string
                example: identity_front
                description: Document type
          description: List of uploaded documents (both identity and supporting documents)
          example:
            - name: national_id
              type: identity_front
            - name: national_id
              type: identity_back
            - name: steuer_id
              type: tax_document
        address:
          type: object
          properties:
            line1:
              type: string
              example: 123 Main Street
              description: Address line 1
            line2:
              type: string
              nullable: true
              example: null
              description: Address line 2 (optional)
            city:
              type: string
              example: City Name
              description: City
            country:
              type: string
              example: DEU
              description: Country code (ISO 3166-1 alpha-3)
            region:
              type: string
              nullable: true
              example: null
              description: Region (optional)
            sub_division:
              type: string
              example: ST
              description: Sub-division/state code
            postal_code:
              type: string
              example: '12345'
              description: Postal code
        first_name:
          type: string
          example: John
          description: User's first name
        last_name:
          type: string
          example: Doe
          description: User's last name
        email_address:
          type: string
          format: email
          example: user@example.com
          description: User's email address
        phone_number:
          type: string
          example: +1XXXXXXXXXX
          description: User's phone number
        date_of_birth:
          type: string
          format: date
          example: YYYY-MM-DD
          description: User's date of birth
        rejection_reasons:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                example: Your information could not be verified
                description: >-
                  Customer-facing rejection reason that can be safely shared
                  with users
              created_at:
                type: string
                format: date-time
                example: '2025-09-09T11:46:22.037Z'
                description: Timestamp when the rejection reason was recorded
              developer_reason:
                type: string
                example: ID cannot be verified against third-party databases
                description: >-
                  Internal reason for developers only (may contain sensitive
                  information)
          nullable: true
          example: null
          description: >-
            Array of rejection reason objects (only populated for rejected
            users, null otherwise). Each object contains customer-facing reason,
            timestamp, and internal developer reason.
        requirements:
          type: array
          items:
            type: string
          nullable: true
          example: null
          description: >-
            List of missing requirements for incomplete users (null when no
            requirements are missing)
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Must be included in the x-api-key header.

````