Navigation
Getting Started
Business Setup
Money
WebApp Modules
Developers
Coupons & Discount Codes
Overview
Coupons are attached to a specific checkout, not to an offer globally. This lets you run targeted promotions — a discount code for your email list, a separate one for social media, and full-price everywhere else — all from the same offer.
Customers enter their code at checkout before completing payment. The discount is validated in real-time, applied to the order total, and recorded on the purchase and invoice.
Managing Coupons
Open a checkout and navigate to the Coupons tab to view, create, and manage discount codes for that checkout. Each coupon shows its code, type, value, usage mode, and how many times it has been used.
Creating a Coupon
Code
The coupon code customers type at checkout (e.g., SUMMER20). Codes are case-insensitive and unique per checkout. Once created, the code cannot be changed — delete and recreate if you need a different code.
Discount Type
Percentage
Reduces the price by a percentage (e.g., 20% off). Must be between 1 and 99.
Fixed Amount
Reduces the price by a set amount in the checkout's currency (e.g., $10 off).
Expiry Date
Optionally set a date after which the coupon can no longer be used. Leave blank for a coupon that never expires.
Usage Modes
Usage mode controls how many times a coupon can be redeemed:
Single Use
The coupon can only be used once across all customers. After the first successful purchase, it becomes invalid for everyone.
Per Customer
Each customer can use the coupon once. The same code can be used by multiple customers, but not twice by the same person. Customers are identified by email address — if the customer has not yet entered their email, the checkout will prompt for it before applying the discount.
Unlimited
No usage limit. The coupon can be used by any number of customers any number of times, until it expires or is deactivated.
Subscription Scope
For subscription offers, you can control which charges the discount applies to:
First Payment Only
The discount applies only to the initial charge. Recurring charges bill at the full price. Customers see a message like "Discount applies to your first payment."
Every Charge
The discount applies to every billing cycle for the life of the subscription. Customers see a message like "Discount applies to every charge."
This setting has no effect on one-time payment offers.
Activating & Deactivating
Each coupon has an Active / Inactive status. Inactive coupons are rejected at checkout even if the code is correct and not expired. Use this to pause promotions without deleting the coupon.
Validation at Checkout
When a customer enters a coupon code, the checkout validates it immediately. Possible responses:
- Valid — Discount amount is shown and applied to the total
- Invalid code — No coupon with that code exists on this checkout
- Expired — The coupon's expiry date has passed
- Already used — A single-use coupon has already been redeemed
- Already used by you — A per-customer coupon has already been used by this email
- Email required — Per-customer mode requires an email to check usage history
Discount Tracking
When a purchase is completed with a coupon:
- The coupon's use count increments
- The purchase record stores the coupon ID and discount amount
- The customer invoice shows the discount as a line item with the coupon code
API Access
Coupons can be managed programmatically via the API:
# List coupons for a checkout
GET /api/checkouts/:checkoutId/coupons
# Create a coupon
POST /api/checkouts/:checkoutId/coupons
# Update a coupon (code is immutable)
PUT /api/coupons/:couponId
# Delete a coupon
DELETE /api/coupons/:couponId
# Validate a coupon (public, no auth)
POST /api/public/checkouts/:checkoutId/coupon/validate
Next Steps
- Checkouts — Create and manage the checkouts your coupons are attached to
- Embeddable Checkout — Embed your checkout (with coupon support) anywhere on the web
- Lifecycle Events — Trigger automations when a coupon-discounted purchase completes