---
title: "Update a customer"
method: PATCH
path: "/v1/sdk/customers/{reference}"
tags: ["Customers"]
---

# Update a customer

`PATCH /v1/sdk/customers/{reference}`

Updates an existing customer identified by reference. Use this to backfill or change fields such as `externalRef`, `name`, or `email`. Only the fields supplied in the body are modified.

## Path parameters

- `reference` string, required

## Request body

- UpdateCustomerRequest
  - `description` string
  - `email` string, email
  - `externalRef` string
  - `metadata` unknown
  - `name` string
  - `telephone` union
    - string
    - ''

## Response `200`

Customer updated successfully

- CustomerResponse
  - `email` string, required — Customer email address
  - `externalRef` string — External reference ID from your auth system (if set during creation or update)
  - `name` string, required — Customer full name
  - `purchases` PurchaseInfo[] — Active purchases
    - `amount` number, required — Amount in USD cents (normalised for aggregation)
    - `cancellationReason` string — Reason for cancellation
    - `cancelledAt` string — When purchase was cancelled
    - `currency` string, required — ISO 4217 currency code of the customer-facing charge
    - `endDate` string — End date of purchase
    - `exchangeRate` number — Exchange rate from original currency to USD
    - `originalAmount` number — Original amount in the payment currency (minor units)
    - `planRef` string — Plan reference from the plan snapshot, for reliable plan matching
    - `planSnapshot` object — Snapshot of the plan at time of purchase
    - `productName` string, required — Product name
    - `productRef` string — Product reference
    - `reference` string, required — Purchase reference
    - `startDate` string, required — Start date
    - `status` string, required — Purchase status
  - `reference` string, required — Customer reference identifier

## Other responses

- `400` — Invalid update payload
- `404` — Customer not found

## Changes

- **2026-07-17** `bbc2ff2bc849` — 2 breaking, 2 warning, 2 info
  - added the pattern `^[\p{L}\p{N} .,'"&\/()+:\-]*$` to the request property `name`
  - the `telephone` request property type/format changed from `string`/`` to ``/``
  - the `externalRef` request property's maxLength was set to `50`
  - the `name` request property's maxLength was set to `100`
  - …2 more
- **2026-04-26** `60c2cd1caf83` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/solvapay/apis/solvapay-rest-api/changes/v1/sdk/customers/:reference/patch.md)

---

[API](https://skmtc.dev/solvapay/apis/solvapay-rest-api.md) · [All operations](https://skmtc.dev/solvapay/apis/solvapay-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/solvapay/solvapay-rest-api/revisions/bbc2ff2bc849/schema)
