Skip to main content
PUT
Update Coupon
This is a full update: send every required field, even the ones that don’t change. PATCH /v1/coupons/{coupon_id} behaves the same way and is not a partial update.

Headers

X-BUSINESS-API-KEY
string
required
Example:

"b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"

Path Parameters

coupon_id
string<uuid>
required

The coupon ID.

Body

application/json

Full coupon settings (every required field).

name
string
required

Coupon name, shown in the dashboard.

Maximum string length: 64
Example:

"Year End Sale"

code
string
required

Code customers enter at checkout. Must be unique among the business's active coupons.

Maximum string length: 64
Example:

"YEAREND10"

fixed_amount
number
required

Fixed discount amount. Sent in major currency units (for example 5 = SGD 5.00). Responses return it in minor units (cents), for example 500. Send 0 for a percentage-only coupon. fixed_amount and percentage cannot both be 0.

Required range: 0 <= x <= 999999.99
Example:

5

percentage
number
required

Percentage discount as a fraction, up to 4 decimal places (0.15 = 15%). Send 0 for a fixed-amount-only coupon.

Required range: 0 <= x <= 1
Example:

0

is_promo_banner
boolean
required

Show this coupon in the store's promo banner. Setting it to true turns the banner off for every other coupon and discount of the business.

Example:

false

coupon_type
enum<integer>
required

What the coupon applies to: 1 = all products, 2 = specific categories, 3 = specific products.

Available options:
1,
2,
3
Example:

2

minimum_cart_amount
number
required

Minimum cart amount for the coupon to apply. Sent in major currency units (for example 5 = SGD 5.00). Responses return it in minor units (cents), for example 500.

Required range: x >= 0
Example:

20

banner_text
string | null

Text for the promo banner.

Maximum string length: 1000
Example:

null

coupons_left
integer | null

How many times the coupon can still be used. Omit or send null for unlimited.

Example:

100

applies_to_ids
string[]

Category IDs (coupon_type 2) or product IDs (coupon_type 3). Required for types 2 and 3, ignored for type 1.

Maximum string length: 36
Example:
starts_at
string<date> | null

When the coupon becomes valid, read in the business's timezone. Omit for no start date.

Example:

"2026-11-01"

ends_at
string<date> | null

When the coupon expires, read in the business's timezone. Must be on or after starts_at. Omit for no end date.

Example:

"2026-12-31"

Response

200

id
string<uuid>
business_id
string<uuid>
name
string
code
string
fixed_amount
integer

Fixed discount in minor units (cents).

percentage
number

Percentage discount as a fraction (0.15 = 15%).

coupons_left
integer | null

Remaining uses; null = unlimited.

is_promo_banner
boolean
banner_text
string | null
created_at
string<date-time>
updated_at
string<date-time>
starts_at
string<date-time> | null

UTC.

ends_at
string<date-time> | null

UTC.

coupon_type
enum<integer>
Available options:
1,
2,
3
minimum_cart_amount
integer

Minimum cart amount in minor units (cents).

deleted_at
string<date-time> | null
applies_to_ids
object[]

Categories or products the coupon applies to. Empty for coupon_type 1.

Last modified on November 3, 2026