---
title: "Changes to Create a coupon"
method: POST
path: "/api/v1/coupons"
---

# Changes to Create a coupon

`POST /api/v1/coupons`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 6 of 54 revisions.

- **2026-08-12** (v1) `4e013b4e4a8f`: 2 breaking, 4 info
- **2026-03-31** (v1) `ee465c53a423`: 3 breaking, 5 info
- **2026-03-31** (v1) `560215310a09`: 1 breaking, 2 info
- **2026-03-27** (v1) `de35c02bb0d2`: 2 warning, 1 info
- **2026-03-20** (v1) `51c7018cc5ef`: 1 info
- **2025-07-09** (v1) `dece17f86f99`: 1 breaking

## Changes

- **2026-08-12** (v1) `4e013b4e4a8f`: 2 breaking, 4 info
  - the response property `description` became nullable for the status `201`
  - the response property `description` became optional for the status `201`
  - added the optional property `archived_at` to the response with the `201` status
  - added the required property `created_at` to the response with the `201` status
  - added the required property `plan_ids` to the response with the `201` status
  - added the required property `redemption_count` to the response with the `201` status
- **2026-03-31** (v1) `ee465c53a423`: 3 breaking, 5 info
  - removed `#/components/schemas/CouponPercentageDiscount, #/components/schemas/CouponFixedDiscount` from the `discount` request property `oneOf` list
  - the `discount/oneOf[#/components/schemas/FixedDiscount]/amount` response's property format changed from `decimal` to no format for status `201`
  - the `discount/oneOf[#/components/schemas/PercentageDiscount]/percentage` response's property format changed from `decimal` to no format for status `201`
  - mapped value for discriminator key `FIXED` changed from `#/components/schemas/CouponFixedDiscount` to `#/components/schemas/FixedDiscount` for `discount` request property
  - mapped value for discriminator key `PERCENTAGE` changed from `#/components/schemas/CouponPercentageDiscount` to `#/components/schemas/PercentageDiscount` for `discount` request property
  - request discriminator property name changed for `discount` request property from `discount_type` to `type`
  - added `#/components/schemas/PercentageDiscount, #/components/schemas/FixedDiscount` to the `discount` request property `oneOf` list
  - response discriminator property name changed for `discount` response property from `discriminator` to `type` for the response status `201`
- **2026-03-31** (v1) `560215310a09`: 1 breaking, 2 info
  - removed `subschema #1, subschema #2` from the `discount` request property `oneOf` list
  - added discriminator to `discount` request property
  - added `#/components/schemas/CouponPercentageDiscount, #/components/schemas/CouponFixedDiscount` to the `discount` request property `oneOf` list
- **2026-03-27** (v1) `de35c02bb0d2`: 2 warning, 1 info
  - added the new `TOO_MANY_REQUESTS` enum value to the `code` response property for the response status `400`
  - added the new `TOO_MANY_REQUESTS` enum value to the `code` response property for the response status `401`
  - added the non-success response with the status `429`
- **2026-03-20** (v1) `51c7018cc5ef`: 1 info
  - endpoint added
- **2025-07-09** (v1) `dece17f86f99`: 1 breaking
  - api path removed without deprecation

---

[Operation](https://skmtc.dev/meteroid-oss/apis/meteroid/docs/api/v1/coupons/post.md) - [API](https://skmtc.dev/meteroid-oss/apis/meteroid.md) - [Page](https://skmtc.dev/meteroid-oss/apis/meteroid/changes/api/v1/coupons/post)
