# Promo Codes

Source: https://docs.ezoic.com/docs/subscriptions/promo-codes/


A promo code is a code your visitors type at checkout — such as `SAVE20` — to get a percentage or fixed-amount discount. You create and manage promo codes in the Ezoic dashboard; the onsite checkout picks them up automatically, so there is no code to write on your site.

## Create a Promo Code

Open the **Subscriptions → Products** page in your Ezoic dashboard and create a promo code. Each code has:

- **Code** — what the visitor types at checkout (letters and numbers, matched case-insensitively). You can enter your own or generate one.
- **Name** — an optional internal label shown on receipts, such as `Spring sale`.
- **Discount** — either a **percentage** off or a **fixed amount** off in a chosen currency.
- **Duration** — how long the discount lasts on a subscription:
  - **Once** — the first payment only.
  - **Repeating** — a set number of months, then billing returns to full price.
  - **Forever** — every payment for as long as the subscription stays active.
- **Products** — restrict the code to specific products, or leave it empty to discount every product on the domain.
- **First-time customers only** — restrict the code to visitors who have never bought from you.

## Limits

Each of these is optional:

- **Max redemptions** — a cap on how many times the code can be used in total. Unlimited by default.
- **Expires** — a date after which the code stops working. Never expires by default.
- **Minimum order amount** — a minimum subtotal required to redeem the code.

## At Checkout

When your domain has at least one active promo code, the checkout automatically shows a **promo code** field. The visitor enters a code, Stripe validates it, and the discounted total appears in the order summary before they pay. There is nothing to add to your onsite integration — the field appears and disappears based on whether active codes exist.

A checkout accepts one promo code at a time.

## Trials and One-Time Purchases

- **Free trials** — **Repeating** and **Forever** codes work with a [free trial](/docs/subscriptions/products/#free-trials); the discount applies from the subscription start. **Once** codes **cannot** be used with a trial and are rejected at checkout — Stripe would spend the discount on the $0 trial invoice, leaving the first real charge undiscounted. Use a repeating or forever code to discount a trial plan.
- **One-time purchases** — a code discounts the single payment.
- **Donations** — promo codes do not apply to [donations](/docs/subscriptions/donations/).

## Managing Promo Codes

From the promo code list on the Products page you can:

- **Enable or disable** a code without deleting it — a disabled code stops working immediately and can be turned back on later.
- **Delete** a code permanently. Deletion prevents future redemptions but does not remove a discount already applied to an existing subscription.
- **Duplicate** an existing code's settings into a new code.

Product restrictions are fixed once a code is created. To change which products a code applies to, create a new code.

## Related

- [Products, Prices, and Paid Access](/docs/subscriptions/products/) — the products a promo code can discount.
- [Subscriber Experience](/docs/subscriptions/subscriber-experience/) — what a buyer sees at checkout.

