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

# Update customer

> Update a customer's name fields.

**Required scope:** `customers:write`
**Rate limit:** 60 requests/minute
**Idempotency:** supported – pass `Idempotency-Key` to safely retry. See [Idempotency](/developer-api/idempotency).

Only `first_name` and `last_name` are updatable through this endpoint. Email
changes are not currently supported via the Developer API – change them
through the in-app dashboard, which handles the de-duplication and audit
flow.

## Path parameters

| Parameter     | Type | Notes               |
| ------------- | ---- | ------------------- |
| `customer_id` | UUID | Customer identifier |

## Request body

| Field        | Type   | Required | Notes                                         |
| ------------ | ------ | -------- | --------------------------------------------- |
| `first_name` | string | no       | Up to 255 characters; omit to leave unchanged |
| `last_name`  | string | no       | Up to 255 characters; omit to leave unchanged |

A field set to `null` is treated the same as omitting it – fields are only
written when explicitly provided with a non-null value. A `PATCH` with an
empty body (`{}`) or with both fields omitted is a no-op and still returns
`200` with the unchanged customer.

## Response

```json theme={null}
{
  "id": "c0ffee00-0000-4000-8000-000000000001",
  "email": "buyer@example.com",
  "first_name": "Alexandra",
  "last_name": "Buyer",
  "total_ltv": "175.00",
  "created_at": "2026-04-26T01:23:45Z",
  "location_id": null
}
```

## Errors

* `404` – Customer not found in your tenant.
* `409` – `Idempotency-Key` reused with a different request body within the
  24h replay window (see [Idempotency](/developer-api/idempotency)).
* `422` – Validation error (e.g. name longer than 255 characters).

## Examples

```bash theme={null}
curl -X PATCH \
  -H "X-API-Key: vg_live_EXAMPLEdoNotUseThis123456" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Alexandra"}' \
  https://api.vouchergrid.com/api/v1/developer/customers/c0ffee00-0000-4000-8000-000000000001
```

```ts theme={null}
const res = await fetch(
  "https://api.vouchergrid.com/api/v1/developer/customers/c0ffee00-0000-4000-8000-000000000001",
  {
    method: "PATCH",
    headers: {
      "X-API-Key": process.env.VOUCHERGRID_API_KEY!,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ first_name: "Alexandra" }),
  },
);
const customer = await res.json();
```
