WebApp Modules

Coupons & Discount Codes

Create discount codes scoped to individual checkouts, with flexible usage limits and subscription support.

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