> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Promo codes and discounts

> How to create a promo code, how the discount is calculated, when a use is counted and why a promo code may not work

A promo code lowers the tariff price at purchase. The discount can be a fixed amount or a percentage. You can limit a promo code by dates, number of uses, courses and tariffs.

Promo codes are created in the course settings: **Courses → select a course → Launch and tariffs → Promo codes**. If the course has several launches, the **Promo codes** item is in the **Launches** section. Free courses don't have this item. To work with promo codes, you need the **Product management** permission.

## How to create a promo code

**1. Open the course's promo codes**

Go to **Promo codes** and click **Create a promo code**.

**2. Choose the discount type and size**

In the **Discount type** field, choose **Amount** or **Percent**. Enter the **Discount amount** in the school's currency or the **Discount percentage** — no more than 100.

**3. Set the code**

Enter the code in the **Promo code** field — 5 to 12 characters, no spaces. Or click **Generate** to get a random code.

**4. Set up the limits**

If needed, set **Maximum uses**, the **Effective start date** and the **Expiration date**, accurate to the minute. The expiration date can't be earlier than the start date.

**5. Choose courses and tariffs**

A promo code always applies to the current course. In the **You can add other courses** field, you can add other courses of the school. In the **Tariffs the promo code applies to** field, you can choose specific tariffs. If no tariffs are selected, the promo code applies to all tariffs of the selected courses.

**6. Save**

Check that the **Promo code activation** toggle is on and click **Create**. If needed, add an **Internal note** — up to 255 characters, only school staff see it.

> [!NOTE]
>
> A promo code is unique across the whole Exode platform, not only in your school. If the code is already taken, the form shows **A promo code with this code already exists** — come up with another one.

## How the discount is calculated

* A **percentage discount** is calculated from the current tariff price and rounded.
* A **fixed-amount discount** can't be greater than the tariff price. The discounted price is never below zero.
* If the tariff has an **Old price (crossed out)**, the promo code applies to the current price. Without a promo code, the difference between the old and current price is shown to the buyer as a discount.
* One promo code applies to one purchase. If several fit, the one that gives the biggest discount works.

How the discount works with different payment types:

| Payment type | How the discount applies |
| - | - |
| One-time purchase | Reduces the amount to pay. If the amount becomes 0, the student gets access without paying with the **Get access** button |
| Installment | The discount is split equally among all payments in the schedule |
| Subscription | Applies only to the first payment. If **Discount for all periods** is turned on in the tariff — to all payments |
| Upgrading to a higher tariff | Promo codes do not apply |

## How a student applies a promo code

* **Manually.** On the checkout page, the student clicks **Enter promo code**, enters the code and clicks **Apply**. The code must be entered exactly, with the same letter case. If the code is found, the button changes to **Applied**. If the discount fits the tariff, **Discount amount** appears in the total; if not, the reason appears under the field.
* **Through a link.** Add the `?promo=CODE` parameter to the tariff payment link. The promo code is filled in and applied automatically.

If there is no such code, the student sees **Promo code not found**. One user, and for guests one IP address, can check no more than 255 promo codes per day. If the limit is exceeded or another error occurs, the student sees **Failed to check the promo code**.

## When a use is counted

A use is counted when the buyer clicks the payment button and Exode creates an invoice with the discount. It doesn't matter whether they finish paying. Paying again for the same invoice with the **Retry** button is not a new use. A new purchase with the same promo code is.

When the number of uses reaches **Maximum uses**, the promo code stops working.

## Why a promo code wasn't applied

If the code is found but the discount wasn't applied, the reason appears under the promo code field:

| Message | Reason |
| - | - |
| **Promo code is not applicable to courses** | The promo code is not linked to this course |
| **The promo code is not applicable to tariffs** | Other tariffs are selected in the promo code |
| **Promo code is not active** | The promo code is turned off, has not started yet or has already ended |
| **Promo code usage limit has been exhausted** | The maximum number of uses has been reached |

## Promo code list

In the list, each promo code shows the code, the discount size and the **Uses:** counter — how many times the promo code has been used out of the maximum. The ∞ sign means there is no limit. Click a code to copy it.

Hovering over the status shows which conditions are met: **Activity flag**, **Usage limits** and **Promo code validity dates**. A promo code works only when all three conditions are met.

### Archive

You can archive a promo code you no longer need: open it and click **Archive** in the **Actions** block. An archived promo code is turned off. To turn it on again, first click **Restore** — until then the activation toggle is unavailable. The archive opens with the **Archive** toggle above the list.

Applied promo codes are visible in **Sales → Payments**: the invoice shows the promo code and the discount amount. See [Payments and invoices](https://faq.exode.biz/en/online-schools/sales-payments/invoices.md) for details.

## Frequently asked questions

> **Why isn't the promo code applied?**
>
> Look at the message under the promo code field. The promo code may be turned off, may not have started yet or may have ended by date, may have used up its limit, or may not apply to this course or tariff. Also check the letter case: the code must be entered exactly.

> **A student entered a code, and the system says “Promo code not found”. Why?**
>
> There is no such code on the platform. Check the spelling and the letter case: “SALE2025” and “sale2025” are different codes.

> **Why did the usage limit run out before there were that many payments?**
>
> A use is counted when the invoice is created, not when the payment succeeds. If a buyer clicked the payment button but didn't pay, the use is still counted. Increase **Maximum uses** if needed.

> **Can I make one promo code for several courses?**
>
> Yes. Add the courses in the **You can add other courses** field in the promo code settings. You can only add courses of your school.

> **Can two promo codes be applied at once?**
>
> No. One promo code is entered on the checkout page. If several promo codes fit, the one that gives the biggest discount works.

> **Does a promo code work for a subscription after the first month?**
>
> Only if **Discount for all periods** is turned on in the subscription tariff. Otherwise only the first period is paid at the discount.

> **Can I give the first month of a subscription for free with a promo code?**
>
> Yes, with a 100% promo code. The first payment becomes zero, but the student still needs to link a card: the following periods will be charged at the full price. If **Discount for all periods** is turned on, all payments become free.

> **Why can't I save the promo code?**
>
> The code must be 5 to 12 characters long and must not be taken on the platform. Spaces are not allowed in the code.

> **Will the discount change in invoices already created if I change the promo code?**
>
> No. The discount is fixed in the invoice when it is created. Changes to the promo code apply to new purchases.

> **How do I share a promo code through ads or a mailing?**
>
> Copy the tariff payment link and add `?promo=CODE` to the end. The buyer opens the checkout page with the discount already applied.

***

*Updated: 2026-10-15 18:08 UTC*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.