---
title: "Changes to Update a customer"
method: PATCH
path: "/customers/{customer_id}"
---

# Changes to Update a customer

`PATCH /customers/{customer_id}`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 5 of 19 revisions.

- **2026-07-09** (v1) `e1ac347eb3c5`: 1 breaking
- **2026-02-02** (v1) `9ba8be0f2006`: 19 breaking, 1 warning, 35 info
- **2025-04-25** (v1) `c4b1322e66ca`: 2 breaking
- **2025-03-07** (v1) `a3359d7731fd`: 7 breaking, 5 info
- **2024-02-19** (v1) `a4a4068ff792`: 13 breaking, 1 warning, 8 info

## Changes

- **2026-07-09** (v1) `e1ac347eb3c5`: 1 breaking
  - added the pattern `^ctm_[a-z\d]{26}$` to the `path` request parameter `customer_id`
- **2026-02-02** (v1) `9ba8be0f2006`: 19 breaking, 1 warning, 35 info
  - added the new path request parameter `customer_id`
  - request body became required
  - added `#/components/schemas/Email` to the `email` request property `allOf` list
  - removed `#/components/schemas/custom_data, subschema #2` from the `custom_data` request property `oneOf` list
  - removed `#/components/schemas/import_meta, subschema #2` from the `import_meta` request property `oneOf` list
  - removed `#/components/schemas/name, subschema #2` from the `name` request property `oneOf` list
  - the `email` request property type changed from `string` to no type, and format from `email` to no format
  - the `data/email` response property's maxLength was unset from `320` for the response status `200`
  - the `data/email` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `data/created_at` response's property type changed from `string` to no type, and format from `date-time` to no format for status `200`
  - the `data/email` response's property type changed from `string` to no type, and format from `email` to no format for status `200`
  - the `data/id` response's property type changed from `string` to no type for status `200`
  - the `data/status` response's property type changed from `string` to no type for status `200`
  - the `data/updated_at` response's property type changed from `string` to no type, and format from `date-time` to no format for status `200`
  - the `error` response's property type changed from `object` to no type for status `default`
  - removed the required property `error/code` from the response with the `default` status
  - removed the required property `error/detail` from the response with the `default` status
  - removed the required property `error/documentation_url` from the response with the `default` status
  - removed the required property `error/type` from the response with the `default` status
  - removed the optional property `error/errors` from the response with the `default` status
  - the request optional property `import_meta` became not read-only
  - the request optional property `marketing_consent` became not read-only
  - added `#/components/schemas/CustomData, subschema #2` to the `custom_data` request property `anyOf` list
  - added `#/components/schemas/ImportMeta, subschema #2` to the `import_meta` request property `anyOf` list
  - added `#/components/schemas/Name, subschema #2` to the `name` request property `anyOf` list
  - the `email` request property's minLength was decreased from `1` to `0`
  - the response optional property `data/import_meta` became not read-only for the status `200`
  - the response optional property `data/marketing_consent` became not read-only for the status `200`
  - added `#/components/schemas/ApiError` to the `error` response property `allOf` list for the response status `default`
  - added `#/components/schemas/CreatedAt` to the `data/created_at` response property `allOf` list for the response status `200`
  - added `#/components/schemas/CustomerId` to the `data/id` response property `allOf` list for the response status `200`
  - added `#/components/schemas/Email` to the `data/email` response property `allOf` list for the response status `200`
  - added `#/components/schemas/Status` to the `data/status` response property `allOf` list for the response status `200`
  - added `#/components/schemas/UpdatedAt` to the `data/updated_at` response property `allOf` list for the response status `200`
  - added `#/components/schemas/CustomData, subschema #2` to the `data/custom_data` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/ImportMeta, subschema #2` to the `data/import_meta` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/Name, subschema #2` to the `data/name` response property `anyOf` list for the response status `200`
  - the response property `data/created_at` became required for the status `200`
  - the response property `data/custom_data` became required for the status `200`
  - the response property `data/email` became required for the status `200`
  - …15 more
- **2025-04-25** (v1) `c4b1322e66ca`: 2 breaking
  - the `email` request property's maxLength was decreased to `320`
  - the `email` request property's minLength was increased from `0` to `1`
- **2025-03-07** (v1) `a3359d7731fd`: 7 breaking, 5 info
  - the request property `import_meta/oneOf[subschema #1: ImportMeta]/external_id` became not nullable
  - the `import_meta/oneOf[subschema #1: ImportMeta]/external_id` request property type changed from `string, null` to no type
  - the `data/import_meta/oneOf[subschema #1: ImportMeta]/external_id` response property's maxLength was unset from `200` for the response status `200`
  - the `data/import_meta/oneOf[subschema #1: ImportMeta]/external_id` response property's minLength was decreased from `1` to `0` for the response status `200`
  - added `#/components/schemas/external_id, subschema #2` to the `data/import_meta/oneOf[subschema #1: ImportMeta]/external_id` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/migration_provider_public` to the `data/import_meta/oneOf[subschema #1: ImportMeta]/imported_from` response property `oneOf` list for the response status `200`
  - the `data/import_meta/oneOf[subschema #1: ImportMeta]/external_id` response's property type changed from `string, null` to no type for status `200`
  - the `import_meta/oneOf[subschema #1: ImportMeta]/external_id` request property's minLength was decreased from `1` to `0`
  - added `#/components/schemas/external_id, subschema #2` to the `import_meta/oneOf[subschema #1: ImportMeta]/external_id` request property `oneOf` list
  - added `#/components/schemas/migration_provider_public` to the `import_meta/oneOf[subschema #1: ImportMeta]/imported_from` request property `oneOf` list
  - the request required property `import_meta/oneOf[subschema #1: ImportMeta]/imported_from` became read-only
  - the response required property `data/import_meta/oneOf[subschema #1: ImportMeta]/imported_from` became read-only for the status `200`
- **2024-02-19** (v1) `a4a4068ff792`: 13 breaking, 1 warning, 8 info
  - the request property `custom_data` became not nullable
  - the request property `name` became not nullable
  - the `custom_data` request property type changed from `object, null` to no type
  - the `email` request property format changed from no format to `email`
  - the `name` request property type changed from `string, null` to no type
  - the `data/name` response property's maxLength was unset from `1024` for the response status `200`
  - added `#/components/schemas/custom_data, subschema #2` to the `data/custom_data` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/import_meta, subschema #2` to the `data/import_meta` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/name, subschema #2` to the `data/name` response property `oneOf` list for the response status `200`
  - the `data/custom_data` response's property type changed from `object, null` to no type for status `200`
  - the `data/import_meta` response's property type changed from `object, null` to no type for status `200`
  - the `data/name` response's property type changed from `string, null` to no type for status `200`
  - removed the required property `data/import_meta/imported_from` from the response with the `200` status
  - removed the optional property `data/import_meta/external_id` from the response with the `200` status
  - added `#/components/schemas/custom_data, subschema #2` to the `custom_data` request property `oneOf` list
  - added `#/components/schemas/name, subschema #2` to the `name` request property `oneOf` list
  - removed the non-success response with the status `400`
  - removed the non-success response with the status `401`
  - removed the non-success response with the status `403`
  - removed the non-success response with the status `404`
  - removed the non-success response with the status `500`
  - the `status` response's property default value `active` was added for the status `200`

---

[Operation](https://skmtc.dev/paddlehq/apis/paddle-api/docs/customers/:customer_id/patch.md) - [API](https://skmtc.dev/paddlehq/apis/paddle-api.md) - [Page](https://skmtc.dev/paddlehq/apis/paddle-api/changes/customers/:customer_id/patch)
