update_coupon
Update an existing coupon in your Checkout Page account.
Only the fields you supply are changed; omitted fields are left as-is. Send null for maxRedemptions or redeemBy to remove that limit. pageIds and ticketTypeIds are replaced wholesale rather than merged - send the full list you want, or an empty array to clear it.
What cannot be changed: the discount itself. code, amountOff, percentOff, currency, duration, and durationInMonths are fixed once a coupon exists, because they are mirrored into Stripe. To change a discount, soft delete this coupon (deleted: true) and create a replacement with create_coupon.
Coupons created before 2025-10-04 cannot be updated at all — their redemption limits are synced with Stripe and the API returns a 400 saying so.
Ticket types are scoped through pages, so any ticketTypeIds must belong to the pageIds sent in the same request — or, when pageIds is omitted, to the pages already on the coupon.
This tool modifies live data. Every change applies to live checkouts at once. There is no undo, because the previous values are not kept. Setting deleted: true stops the coupon working at checkout immediately.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Internal name for the coupon. | |
| deleted | No | Set true to soft delete the coupon. It stops working at checkout but its data and redemption history are retained. | |
| pageIds | No | The pages this coupon can be used on. Replaces the existing list. An empty array clears it, making the coupon valid everywhere. | |
| couponId | Yes | The ID of the coupon to update. Use `list_coupons` first if you need to discover the coupon ID by code or label. | |
| redeemBy | No | The ISO datetime that this coupon must be used before. Send `null` to remove the expiry. | |
| ticketTypeIds | No | The ticket types this coupon can be used with. Replaces the existing list; an empty array clears it. Every ID must belong to a page in `pageIds` — or, when `pageIds` is omitted, to the pages already on the coupon. | |
| maxRedemptions | No | The total number of times this coupon can be redeemed across all customers. Doesn't limit a single customer from redeeming multiple times. Send `null` to remove the limit. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |