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

# Update Customer

> Updates the **details of an existing customer**, such as their first name, last name, or merchant customer reference ID.
Only the fields provided in the request will be updated — all other customer data remains unchanged.

This endpoint is typically used when customers change their names, correct a typo, or update their profile during checkout or in an admin panel.



## OpenAPI

````yaml /api-reference/swagger.json patch /api/Customers/{customerId}
openapi: 3.0.4
info:
  title: Revolv3 OpenApi Spec
  description: Spec for Revolv3
  version: 1.29.1
servers:
  - url: 'https://api-sandbox.revolv3.com '
security: []
paths:
  /api/Customers/{customerId}:
    patch:
      tags:
        - Customers
      summary: Update Customer
      description: "Updates the **details of an existing customer**, such as their first name, last name, or merchant customer reference ID.\r\nOnly the fields provided in the request will be updated — all other customer data remains unchanged.\r\n\r\nThis endpoint is typically used when customers change their names, correct a typo, or update their profile during checkout or in an admin panel."
      parameters:
        - name: customerId
          in: path
          required: true
          schema:
            maximum: 1000000000
            minimum: 1
            type: integer
            format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerRequestDTO'
            example:
              merchantCustomerRefId: 1234-5678-9101
              firstName: Jonathan
              lastName: null
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerRequestDTO'
            example:
              merchantCustomerRefId: 1234-5678-9101
              firstName: Jonathan
              lastName: null
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerRequestDTO'
            example:
              merchantCustomerRefId: 1234-5678-9101
              firstName: Jonathan
              lastName: null
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerRequestDTO'
            example:
              merchantCustomerRefId: 1234-5678-9101
              firstName: Jonathan
              lastName: null
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/CustomerDTO'
              example:
                customerId: 1
                merchantCustomerRefId: 1234-5678-9101
                firstName: Jonathan
                lastName: Doe
                billingAddresses:
                  - addressId: 1
                    addressLine1: 100 Main Street
                    addressLine2: null
                    city: Santa Ana
                    state: CA
                    postalCode: '90000'
                    phoneNumber: null
                    email: null
                    country: US
                shippingAddresses:
                  - addressId: 2
                    addressLine1: 101 First Street
                    addressLine2: null
                    city: Costa Mesa
                    state: CA
                    postalCode: '90001'
                    phoneNumber: null
                    email: null
                    country: US
                taxAddresses: []
                subscriptions: []
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerDTO'
              example:
                customerId: 1
                merchantCustomerRefId: 1234-5678-9101
                firstName: Jonathan
                lastName: Doe
                billingAddresses:
                  - addressId: 1
                    addressLine1: 100 Main Street
                    addressLine2: null
                    city: Santa Ana
                    state: CA
                    postalCode: '90000'
                    phoneNumber: null
                    email: null
                    country: US
                shippingAddresses:
                  - addressId: 2
                    addressLine1: 101 First Street
                    addressLine2: null
                    city: Costa Mesa
                    state: CA
                    postalCode: '90001'
                    phoneNumber: null
                    email: null
                    country: US
                taxAddresses: []
                subscriptions: []
            text/json:
              schema:
                $ref: '#/components/schemas/CustomerDTO'
              example:
                customerId: 1
                merchantCustomerRefId: 1234-5678-9101
                firstName: Jonathan
                lastName: Doe
                billingAddresses:
                  - addressId: 1
                    addressLine1: 100 Main Street
                    addressLine2: null
                    city: Santa Ana
                    state: CA
                    postalCode: '90000'
                    phoneNumber: null
                    email: null
                    country: US
                shippingAddresses:
                  - addressId: 2
                    addressLine1: 101 First Street
                    addressLine2: null
                    city: Costa Mesa
                    state: CA
                    postalCode: '90001'
                    phoneNumber: null
                    email: null
                    country: US
                taxAddresses: []
                subscriptions: []
        '400':
          description: >-
            One or more fields in the request were not submitted or didn't pass
            validation. Please review the request body and parameters against
            the required schema.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
        '404':
          description: If the customer ID cannot be associated with an active customer
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
      security:
        - Bearer: []
components:
  schemas:
    UpdateCustomerRequestDTO:
      type: object
      properties:
        merchantCustomerRefId:
          maxLength: 100
          type: string
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
      additionalProperties: false
    CustomerDTO:
      type: object
      properties:
        customerId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        merchantCustomerRefId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        firstName:
          maxLength: 150
          minLength: 0
          type: string
          nullable: true
        lastName:
          maxLength: 150
          minLength: 0
          type: string
          nullable: true
        billingAddresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressDTO'
          nullable: true
        shippingAddresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressDTO'
          nullable: true
        taxAddresses:
          type: array
          items:
            $ref: '#/components/schemas/AddressDTO'
          nullable: true
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionDTO'
          nullable: true
      additionalProperties: false
    StatusMessageResponse:
      type: object
      properties:
        message:
          type: string
          nullable: true
        errors:
          type: array
          items:
            type: string
          nullable: true
        fluentValidatorErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationFailure'
          nullable: true
      additionalProperties: false
    AddressDTO:
      type: object
      properties:
        addressId:
          type: integer
          description: The unique identifier of the address.
          format: int64
        addressLine1:
          maxLength: 40
          minLength: 2
          type: string
          description: Address.
          nullable: true
        addressLine2:
          maxLength: 40
          minLength: 0
          type: string
          description: Supplemental information for the address.
        city:
          maxLength: 25
          minLength: 2
          type: string
          description: City.
          nullable: true
        state:
          maxLength: 2
          minLength: 2
          type: string
          description: Two-letter state abbreviation.
          nullable: true
        postalCode:
          maxLength: 20
          minLength: 2
          type: string
          description: Postal Code.
          nullable: true
        phoneNumber:
          maxLength: 20
          minLength: 0
          type: string
          description: >-
            The phone number associated with a payment method that is used for
            billing purposes.
        email:
          maxLength: 100
          minLength: 0
          type: string
          description: The email associated with a billing address.
          format: email
        country:
          maxLength: 2
          minLength: 2
          type: string
          description: Country.
          nullable: true
      additionalProperties: false
    SubscriptionDTO:
      type: object
      properties:
        subscriptionId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        customerId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        merchantSubscriptionRefId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        networkTransactionId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        billingIntervalType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        billingIntervalCount:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int32
        subscriptionStatusType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        subscriptionCancelType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        initialBillDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        nextBillDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        taxAddress:
          $ref: '#/components/schemas/AddressDTO'
        paymentMethodIds:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
        cancelledAt:
          maxLength: 40
          type: string
          format: date-time
          nullable: true
        billingPlans:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionBillingPlanDTO'
          nullable: true
        message:
          maxLength: 500
          minLength: 0
          type: string
          nullable: true
        paymentProcessor:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        processorMerchantId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        processorRawResponse:
          maxLength: 10000
          minLength: 0
          type: string
          nullable: true
        currency:
          maxLength: 3
          minLength: 0
          type: string
          nullable: true
        responseMessage:
          maxLength: 500
          minLength: 0
          type: string
          nullable: true
        responseCode:
          maxLength: 10
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    ValidationFailure:
      type: object
      properties:
        propertyName:
          type: string
          nullable: true
        errorMessage:
          type: string
          nullable: true
        attemptedValue:
          nullable: true
        customState:
          nullable: true
        severity:
          $ref: '#/components/schemas/Severity'
        errorCode:
          type: string
          nullable: true
        formattedMessagePlaceholderValues:
          type: object
          additionalProperties:
            nullable: true
          nullable: true
      additionalProperties: false
    SubscriptionBillingPlanDTO:
      type: object
      properties:
        subscriptionBillingPlanId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        subscriptionId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        name:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        value:
          maximum: 10000000
          minimum: 0
          type: number
          format: double
        startDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        cyclesRemaining:
          maximum: 1000000000
          minimum: 0
          type: integer
          format: int32
        cycleCount:
          maximum: 100
          minimum: -1
          type: integer
          format: int32
        valueType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    Severity:
      enum:
        - Error
        - Warning
        - Info
      type: string
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````