---
title: "Changes to Update a discount"
method: PATCH
path: "/discounts/{discount_id}"
---

# Changes to Update a discount

`PATCH /discounts/{discount_id}`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 9 of 19 revisions.

- **2026-10-26** (v1) `bbc0c72039c8`: 1 warning
- **2026-07-09** (v1) `e1ac347eb3c5`: 2 warning, 2 info
- **2026-02-02** (v1) `9ba8be0f2006`: 35 breaking, 1 warning, 56 info
- **2025-05-07** (v1) `aeb882657253`: 2 info
- **2025-04-25** (v1) `c4b1322e66ca`: 2 breaking, 1 info
- **2025-03-07** (v1) `a3359d7731fd`: 7 breaking, 5 info
- **2024-12-06** (v1) `274e5b2be190`: 3 breaking, 2 warning, 5 info
- **2024-06-17** (v1) `0ea531d339dc`: 2 warning
- **2024-02-19** (v1) `a4a4068ff792`: 53 breaking, 3 warning, 41 info

## Changes

- **2026-10-26** (v1) `bbc0c72039c8`: 1 warning
  - changed the pattern of the `path` request parameter `discount_id` from `^dsc_[a-z\d]{26}(?:@dscrev_[a-z\d]{26})?$` to `^dsc_[a-z\d]{26}$`
- **2026-07-09** (v1) `e1ac347eb3c5`: 2 warning, 2 info
  - added the new `CLP` enum value to the `data/currency_code/anyOf[subschema #1: Currency code]/` response property for the response status `200`
  - added the new `PEN` enum value to the `data/currency_code/anyOf[subschema #1: Currency code]/` response property for the response status `200`
  - added the new `CLP` enum value to the request property `currency_code/anyOf[subschema #1: Currency code]/`
  - added the new `PEN` enum value to the request property `currency_code/anyOf[subschema #1: Currency code]/`
- **2026-02-02** (v1) `9ba8be0f2006`: 35 breaking, 1 warning, 56 info
  - added the new path request parameter `discount_id`
  - request body became required
  - added `#/components/schemas/CreatedAt` to the `created_at` request property `allOf` list
  - added `#/components/schemas/DiscountId` to the `id` request property `allOf` list
  - added `#/components/schemas/DiscountMode` to the `mode` request property `allOf` list
  - added `#/components/schemas/DiscountType` to the `type` request property `allOf` list
  - added `#/components/schemas/UpdatedAt` to the `updated_at` request property `allOf` list
  - the request property `maximum_recurring_intervals` became not nullable
  - the request property `restrict_to` became not nullable
  - the request property `usage_limit` became not nullable
  - removed the enum value `custom` of the request property `mode`
  - removed the enum value `flat` of the request property `type`
  - removed the enum value `flat_per_seat` of the request property `type`
  - removed the enum value `percentage` of the request property `type`
  - removed the enum value `standard` of the request property `mode`
  - removed `#/components/schemas/currency_code, subschema #2` from the `currency_code` request property `oneOf` list
  - removed `#/components/schemas/custom_data, subschema #2` from the `custom_data` request property `oneOf` list
  - removed `#/components/schemas/discount_code, subschema #2` from the `code` request property `oneOf` list
  - removed `#/components/schemas/import_meta, subschema #2` from the `import_meta` request property `oneOf` list
  - removed `#/components/schemas/timestamp, subschema #2` from the `expires_at` request property `oneOf` list
  - the `mode` request property type changed from `string` to no type
  - the `type` request property type changed from `string` to no type
  - response property `data/maximum_recurring_intervals` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/restrict_to` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/usage_limit` list-of-types was widened by adding types `null` to media type `application/json` of response `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/id` response's property type changed from `string` to no type for status `200`
  - the `data/mode` 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
  - added the new optional request property `discount_group_id`
  - the request optional property `import_meta` became not read-only
  - added `#/components/schemas/CurrencyCode, subschema #2` to the `currency_code` request property `anyOf` list
  - added `#/components/schemas/CustomData, subschema #2` to the `custom_data` request property `anyOf` list
  - …52 more
- **2025-05-07** (v1) `aeb882657253`: 2 info
  - added the new optional request property `mode`
  - added the optional property `data/mode` to the response with the `200` status
- **2025-04-25** (v1) `c4b1322e66ca`: 2 breaking, 1 info
  - the `code/oneOf[subschema #1: Discount code]/` request property's minLength was increased from `0` to `1`
  - the `data/description` response property's maxLength was increased from `254` to `500` for the response status `200`
  - the `description` request property's maxLength was increased from `254` to `500`
- **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-12-06** (v1) `274e5b2be190`: 3 breaking, 2 warning, 5 info
  - removed the enum value `expired` of the request property `status`
  - removed the enum value `used` of the request property `status`
  - the `data/code/oneOf[subschema #1: Discount code]/` response property's maxLength was increased from `16` to `32` for the response status `200`
  - changed the pattern of the request property `code/oneOf[subschema #1: Discount code]/` from `^[a-zA-Z0-9]{1,16}$` to `^[a-zA-Z0-9]{1,32}$`
  - added the new `VND` enum value to the `data/currency_code/oneOf[subschema #1: Currency code]/` response property for the response status `200`
  - added the new `VND` enum value to the request property `currency_code/oneOf[subschema #1: Currency code]/`
  - the `code/oneOf[subschema #1: Discount code]/` request property's maxLength was increased from `16` to `32`
  - removed the `expired` enum value from the `data/status` response property for the response status `200`
  - removed the `used` enum value from the `data/status` response property for the response status `200`
  - the `data/code/oneOf[subschema #1: Discount code]/` response's property pattern was changed from `^[a-zA-Z0-9]{1,16}$` to `^[a-zA-Z0-9]{1,32}$` for the status `200`
- **2024-06-17** (v1) `0ea531d339dc`: 2 warning
  - the `maximum_recurring_intervals` request property's min was set to `1.00`
  - the `usage_limit` request property's min was set to `1.00`
- **2024-02-19** (v1) `a4a4068ff792`: 53 breaking, 3 warning, 41 info
  - the request property `code` became not nullable
  - the request property `currency_code` became not nullable
  - the request property `custom_data` became not nullable
  - the request property `expires_at` became not nullable
  - the request property `import_meta` became not nullable
  - removed the enum value `ARS` of the request property `currency_code`
  - removed the enum value `AUD` of the request property `currency_code`
  - removed the enum value `BRL` of the request property `currency_code`
  - removed the enum value `CAD` of the request property `currency_code`
  - removed the enum value `CHF` of the request property `currency_code`
  - removed the enum value `CNY` of the request property `currency_code`
  - removed the enum value `COP` of the request property `currency_code`
  - removed the enum value `CZK` of the request property `currency_code`
  - removed the enum value `DKK` of the request property `currency_code`
  - removed the enum value `EUR` of the request property `currency_code`
  - removed the enum value `GBP` of the request property `currency_code`
  - removed the enum value `HKD` of the request property `currency_code`
  - removed the enum value `HUF` of the request property `currency_code`
  - removed the enum value `ILS` of the request property `currency_code`
  - removed the enum value `INR` of the request property `currency_code`
  - removed the enum value `JPY` of the request property `currency_code`
  - removed the enum value `KRW` of the request property `currency_code`
  - removed the enum value `MXN` of the request property `currency_code`
  - removed the enum value `NOK` of the request property `currency_code`
  - removed the enum value `NZD` of the request property `currency_code`
  - removed the enum value `PLN` of the request property `currency_code`
  - removed the enum value `RUB` of the request property `currency_code`
  - removed the enum value `SEK` of the request property `currency_code`
  - removed the enum value `SGD` of the request property `currency_code`
  - removed the enum value `THB` of the request property `currency_code`
  - removed the enum value `TRY` of the request property `currency_code`
  - removed the enum value `TWD` of the request property `currency_code`
  - removed the enum value `UAH` of the request property `currency_code`
  - removed the enum value `USD` of the request property `currency_code`
  - removed the enum value `ZAR` of the request property `currency_code`
  - the `code` request property type changed from `string, null` to no type
  - the `currency_code` request property type changed from `string, null` to no type
  - the `custom_data` request property type changed from `object, null` to no type
  - the `expires_at` request property type changed from `string, null` to no type, and format from `date-time` to no format
  - the `data/code` response property's maxLength was unset from `16` for the response status `200`
  - …57 more

---

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