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

# Update a customer



## OpenAPI

````yaml /openapi/customer-20260203.json patch /accounts/customers/{customerId}
openapi: 3.1.0
info:
  title: CUSTOMER
  termsOfService: urn:tos
  license:
    name: Apache 2.0
    url: https://springdoc.org
  version: '2026-02-03'
  description: ''
servers:
  - url: https://api-sb.meld.io
    description: Meld API sandbox
  - url: https://api.meld.io
    description: Meld API production
security: []
tags:
  - name: Virtual Account
    description: ''
  - name: Customers
paths:
  /accounts/customers/{customerId}:
    patch:
      tags:
        - Customers
      summary: Update a customer
      operationId: accounts-customers-update
      parameters:
        - name: customerId
          in: path
          description: Customer id
          required: true
          schema:
            type: string
            default: ''
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerUpdateRequest20230401'
        required: true
      responses:
        '200':
          description: Customer is updated
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Customer20230401'
        '400':
          description: 'Bad Request : check request values and format'
        '401':
          description: Invalid credentials
        '403':
          description: Unauthenticated or authenticated with insufficient access
        '404':
          description: Customer cannot be found
          content:
            '*/*':
              schema:
                additionalProperties:
                  default: ''
                default: ''
                allOf:
                  - $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: >-
            Server Error. This applies to all 5xx errors, including but not
            limited to 500, 501, 502, 503, and 504 errors. You should treat all
            of these errors the same.
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CustomerUpdateRequest20230401:
      type: object
      properties:
        dateOfBirth:
          type: string
          description: Customer's date of birth in ISO format (yyyy-MM-dd)
          pattern: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
        email:
          type: string
          format: email
          description: Customer's email
        externalCustomerId:
          type: string
          description: Customer's external id
        name:
          description: Customer's name
          allOf:
            - $ref: '#/components/schemas/CustomerName'
        phone:
          type: string
          description: Customer's phone number
        status:
          type: string
    Customer20230401:
      type: object
      properties:
        accountId:
          type: string
          description: >-
            The unique identifier of your account with Meld. This id will be the
            same for all calls to Meld endpoints made from this account.
        addresses:
          type: array
          description: List of customer addresses
          items:
            $ref: '#/components/schemas/CustomerAddress'
        dateOfBirth:
          type: string
          description: Customer's date of birth in ISO format (yyyy-MM-dd)
        email:
          type: string
          description: Customer email
        externalId:
          type: string
          description: Externally assigned id for the customer
        id:
          type: string
          description: Unique identifier for this customer
        key:
          type: string
          description: >-
            When this customer is part of a paginated list, this key represents
            its position in the list.
        name:
          description: Customer name
          allOf:
            - $ref: '#/components/schemas/CustomerName'
        phone:
          type: string
          description: Customer phone
        previouslyUsedOnramps:
          type: array
          description: >-
            Onramps the customer has successfully transacted on, with the
            timestamp of the most recent successful transaction for each. Empty
            if the customer has no prior successful onramp transactions.
          items:
            $ref: '#/components/schemas/PreviouslyUsedOnramp'
        serviceProviderCustomers:
          type: array
          description: List of customers created with service providers.
          items:
            $ref: '#/components/schemas/ServiceProviderCustomer'
        status:
          type: string
          description: Customer status
          enum:
            - ACTIVE
            - INACTIVE
        type:
          type: string
          description: Customer type
          enum:
            - INDIVIDUAL
            - BUSINESS
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
        displayMessage:
          type: string
        errors:
          type: array
          items:
            type: string
        message:
          type: string
        requestId:
          type: string
        serviceProviderDetails:
          type: object
          additionalProperties: {}
        timestamp:
          type: string
          format: date-time
    CustomerName:
      type: object
      properties:
        firstName:
          type: string
          description: First name
        lastName:
          type: string
          description: Last name
    CustomerAddress:
      type: object
      description: Customer address
      properties:
        addressDetails:
          description: Address details.
          allOf:
            - $ref: '#/components/schemas/CustomerAddressDetails'
        customerId:
          type: string
          description: Customer id
        id:
          type: string
          description: Unique identifier for this customer address
        status:
          type: string
          description: Address status
          enum:
            - ACTIVE
            - INACTIVE
        type:
          type: string
          description: Address type
          enum:
            - BILLING
            - SHIPPING
            - RESIDENCE
    PreviouslyUsedOnramp:
      type: object
      properties:
        previouslyUsed:
          type: string
          format: date-time
          description: >-
            Timestamp (UTC) of the most recent successful transaction on this
            onramp
        serviceProvider:
          type: string
          description: Onramp service provider the customer has successfully used before
          enum:
            - ACROSS
            - AEROPAY
            - AKOYA
            - ALCHEMYPAY
            - APPLEPAY
            - AUTHORIZENET
            - BANXA
            - BILIRA
            - BINANCECONNECT
            - BINANCEPAY
            - BLOCKCHAINDOTCOM
            - BOOMFI
            - BRAINTREE
            - BRALE
            - BTCDIRECT
            - CASHAPP
            - CHECKOUT
            - CIRCLE
            - COINBASEPAY
            - COINFLOW
            - DUENETWORK
            - ELDORADO
            - FINICITY
            - FLASHNET
            - FONBNK
            - GUARDARIAN
            - HARBOUR
            - KOYWE
            - KRYPTONIM
            - MERCURYO
            - MESH
            - MESO
            - MOONPAY
            - MOOV
            - MX
            - NMI
            - NOAH
            - ONMETA
            - ONRAMPMONEY
            - PAYBIS
            - PAYPAL
            - PLAID
            - RAMP
            - REVOLUT
            - ROBINHOOD
            - ROUTERPROTOCOL
            - SALTEDGE
            - SALTEDGEPARTNERS
            - SARDINE
            - SHIFT4
            - SHOPIFY
            - SIMPLEX
            - SKRILLCRYPTO
            - SQUARE
            - STRIPE
            - SUMSUB
            - SWAPPED
            - TANGOCARD
            - TELLER
            - TOPPER
            - TRANSAK
            - TREMENDOUS
            - TRANSFI
            - UNLIMIT
            - UPHOLD
            - WYRE
            - XANPOOL
            - YELLOWCARD
            - YODLEE
    ServiceProviderCustomer:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
        customerId:
          type: string
        deletedAt:
          type: string
          format: date-time
        id:
          type: string
        kyc:
          $ref: '#/components/schemas/CustomerKyc'
        serviceProvider:
          type: string
          enum:
            - ACROSS
            - AEROPAY
            - AKOYA
            - ALCHEMYPAY
            - APPLEPAY
            - AUTHORIZENET
            - BANXA
            - BILIRA
            - BINANCECONNECT
            - BINANCEPAY
            - BLOCKCHAINDOTCOM
            - BOOMFI
            - BRAINTREE
            - BRALE
            - BTCDIRECT
            - CASHAPP
            - CHECKOUT
            - CIRCLE
            - COINBASEPAY
            - COINFLOW
            - DUENETWORK
            - ELDORADO
            - FINICITY
            - FLASHNET
            - FONBNK
            - GUARDARIAN
            - HARBOUR
            - KOYWE
            - KRYPTONIM
            - MERCURYO
            - MESH
            - MESO
            - MOONPAY
            - MOOV
            - MX
            - NMI
            - NOAH
            - ONMETA
            - ONRAMPMONEY
            - PAYBIS
            - PAYPAL
            - PLAID
            - RAMP
            - REVOLUT
            - ROBINHOOD
            - ROUTERPROTOCOL
            - SALTEDGE
            - SALTEDGEPARTNERS
            - SARDINE
            - SHIFT4
            - SHOPIFY
            - SIMPLEX
            - SKRILLCRYPTO
            - SQUARE
            - STRIPE
            - SUMSUB
            - SWAPPED
            - TANGOCARD
            - TELLER
            - TOPPER
            - TRANSAK
            - TREMENDOUS
            - TRANSFI
            - UNLIMIT
            - UPHOLD
            - WYRE
            - XANPOOL
            - YELLOWCARD
            - YODLEE
        serviceProviderAccessProfileId:
          type: string
        serviceProviderDetails:
          oneOf:
            - title: FinicityCustomerDetails
              allOf:
                - $ref: '#/components/schemas/FinicityCustomerDetails'
        status:
          type: string
        wallets:
          type: array
          items:
            type: string
          uniqueItems: true
    CustomerAddressDetails:
      type: object
      description: Address details
      properties:
        city:
          type: string
          description: City
        country:
          type: string
          description: Country
        lineOne:
          type: string
          description: >-
            Street address line one. May contain the entire street address if
            not broken up into lines one and two.
        lineTwo:
          type: string
          description: Street address line two.
        postalCode:
          type: string
          description: Postal code. Depending on the country, this could be a zip code.
        region:
          type: string
          description: Region. Depending on the country, this could be a state or province.
    CustomerKyc:
      type: object
      properties:
        additionalInfo:
          type: object
          additionalProperties: {}
          description: >-
            Provider-specific data returned when KYC was shared (e.g. hosted
            onboarding URL)
        onboardingMethod:
          description: Onboarding method used to initiate the KYC share
          allOf:
            - $ref: '#/components/schemas/OnboardingMethod'
        status:
          type: string
          description: Normalized KYC status
          enum:
            - PENDING
            - APPROVED
            - REJECTED
            - EXPIRED
            - UNKNOWN
        updatedAt:
          type: string
          format: date-time
          description: When the status was last updated
    FinicityCustomerDetails:
      allOf:
        - $ref: '#/components/schemas/ServiceProviderCustomerDetails'
        - type: object
          properties:
            customerType:
              type: string
              minLength: 1
      required:
        - customerType
    OnboardingMethod:
      type: object
      properties:
        kycProvider:
          type: string
        onboardingType:
          type: string
    ServiceProviderCustomerDetails:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
        - type
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      x-default: BASIC <Meld API Key>

````