Create and manage coupons
Create promotional discount codes for checkout — choose item-level for specific products or order-level for the entire cart.
Coupons let you offer promotional discounts to customers who enter a valid code at checkout. Before you create one, decide whether the discount should apply to specific products (item level) or the entire cart subtotal (order level) — this choice is permanent and cannot be changed after creation.
Understand item-level vs. order-level scope and what each coupon-card tag means.
Define scope, internal ID, discount value, and trigger codes.
Configure duration, usage limits, and product targeting.
Add, view, disable, or bulk-upload promotional codes.
Coupon types
Every coupon has a scope that controls whether the discount targets specific products or the entire order. Scope is chosen at creation and cannot be changed afterward. On the Coupons list page, a colored tag on each coupon card shows its scope at a glance — use the tag to tell coupons apart without opening them.
Scope is permanent and determines available discount types. You cannot switch a coupon between item-level and order-level after creation — delete it and make a new one instead. Order-level coupons only support fixed Amount Off discounts and cannot be restricted to specific products. If you need a Percent Off discount or product targeting, use an item-level coupon.
| Card tag | Scope | What it means | Discount types |
|---|---|---|---|
| Selected Products (purple) | Item level | Applies only to the products you listed on the coupon | Percent Off, Amount Off |
| All Products (teal) | Item level | Applies to every eligible item in the cart (no product restriction) | Percent Off, Amount Off |
| Order Level (blue) | Order level | Applies a flat discount to the entire order subtotal | Amount Off only |
Create a coupon
Creating a coupon is a six-step flow: open the Coupons page, pick a scope (beta only), give the coupon an internal ID, set its discount value, add the trigger codes your customers will enter at checkout, then save. You can configure advanced settings like duration, usage limits, and product targeting afterward via Edit Discount.
Edit coupon settings
After saving a coupon, use Edit Discount on the coupon card to adjust its discount value and configure advanced behavior — stacking with product discounts, billing-cycle duration, usage caps, date windows, product targeting, and the customer-facing discount reason. Changes apply only to new orders; completed transactions and active subscriptions are unaffected.
For order-level coupons, the Edit Discount modal does not include a Percent/Amount discount-type selector — the per-currency discount amount is shown directly. All other settings below apply to both item-level and order-level coupons.
Subscription duration
In the Discount Duration field, enter the number of billing cycles the discount should remain active.
- Leave blank to apply the discount indefinitely.
- Note: A coupon with unlimited duration takes precedence over one with a finite duration, regardless of discount amount.
Combine with product discounts
Select Combine Discounts to allow customers to stack this coupon with a product-level discount.
| Setting | Behavior |
|---|---|
| Checked | FastSpring applies the product discount first, then the coupon discount |
| Unchecked | FastSpring applies only the single largest discount available |
Customer-facing discount reason
Under Applied Discount Reason, enter a message that appears on customer receipts (e.g., Newsletter Subscriber Special). Use the language dropdown to provide translations.
Limit by number of uses
Select Limit Coupon by Number of Uses and enter a cap. Once a code reaches the limit, FastSpring stops accepting it.
- Applies per code, not per coupon.
- Test orders do not count toward the usage limit.
- Previous orders are not affected.
Limit by date range
Select Limit Promotion Availability by Dates and enter a start and end date. Customers who apply a code outside the date range will not receive a discount.
Leave unselected to keep the promotion available indefinitely.
Target specific products
In the Products field, select one or more products this coupon applies to. If left blank, FastSpring applies the coupon to all eligible items.
The Products field is not available on order-level coupons — order-level discounts always apply to the entire order subtotal and cannot be restricted to specific products.
Manage coupon codes
Each coupon can have many individual codes beneath it. Once a coupon exists, use the buttons on its card on the Coupons list page to add, view, remove, or audit codes. These actions work identically for item-level and order-level coupons.
| Button | What it does |
|---|---|
| View Codes | Lists all valid codes and remaining uses for each |
| Add Codes | Adds new codes manually or via file upload (.csv / .txt) |
| Remove Codes | Deactivates specific codes — FastSpring will no longer accept them |
| Disabled Codes | Lists codes that have reached their maximum number of uses |
Delete a coupon
To permanently remove a coupon and all associated codes:
- Go to Catalog > Coupons.
- On the coupon card, click More > Delete.
- Click Delete to confirm.
Deletion cannot be undone. Completed transactions and active subscriptions that used the coupon are not affected.
FAQs
Common questions about scope, stacking, and usage limits If you don't see your question here, contact your FastSpring representative.
Can I combine an order-level coupon with a multi-discount coupon?
No. Multi-discount coupons are inherently item-level because they require product-to-discount mapping. If you need a site-wide discount, use a standard order-level coupon instead.
Can customers combine a coupon with a product-level discount?
Only if Combine Discounts is enabled on the coupon. When enabled, the product discount is applied first, then the coupon discount. When disabled, FastSpring applies only the larger of the two discounts.
Do test orders count toward usage limits?
No. Test orders do not count toward a coupon code's usage limit.
Use coupons programmatically
Coupons can also be managed entirely via API — useful for automating code generation, syncing coupons with external marketing platforms, or building self-service flows for enterprise customers. Both item-level and order-level coupon types are fully supported programmatically, including bulk code management.
