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.
Open Coupons
In the FastSpring app, go to Catalog > Coupons and click Create Coupon (top-right).
Select a coupon type
Choose the scope for your coupon:
- Create Item Level Coupon — targets specific products or subscriptions. Supports Percent Off and Amount Off.
- Create Order Level Coupon — applies a fixed-amount discount to the entire order subtotal. Supports Amount Off only.
Enter a Coupon ID
In the Coupon ID field, enter a unique internal name used for reporting (e.g., october-special). Only letters, numbers, dashes, and underscores are accepted.
Configure the discount value
Select a discount type from the dropdown and enter the value:
| Type | What to enter |
|---|---|
| Percent Off | A percentage up to 100% (e.g., 20 for 20% off) |
| Amount Off | A monetary amount in your store's base currency |
For Amount Off, you can configure additional currency amounts after the coupon is created.
The discount applies to all qualifying quantities. For example, 20% off applies to all three units if a customer buys three eligible products.
The Order Level modal does not include a discount-type selector — order-level coupons are Amount Off only.
Enter the flat discount amount per currency in the grid:
- Base currency (e.g., USD): Required. Enter the flat discount amount.
- Other currencies: Optional. Enter specific amounts to maintain exact regional pricing.
- Auto: Leave any currency field as Auto to let FastSpring convert automatically based on current exchange rates.
Order-level discounts are allocated proportionally across eligible items. Add-ons and fees (Shipping, EDS) are excluded from allocation. In Net Pricing Mode, taxes are calculated after the discount is deducted.
Add trigger codes
Under Coupon codes which will trigger the discount, enter the codes customers must enter at checkout (e.g., SAVE20). Separate multiple codes with a line break.
- Codes are case-insensitive.
- Only letters, numbers, dashes, and underscores are accepted.
Prefer bulk codes? Use the File Upload section to upload a .csv or .txt file — one code per line, no header row required.
Save
Click Add. This saves the initial configuration and creates the coupon card. Use Edit Discount to configure advanced settings.
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.
Updated about 1 month ago
