> For the complete documentation index, see [llms.txt](https://uni.fotello.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uni.fotello.co/products/coupons.md).

# Coupons & Discounts

Create discount codes your customers can apply at checkout or you can apply to invoices. Use coupons to run promotions, reward loyal customers, or close deals faster.

### How coupons work

1. You create a coupon with a code, discount type, and optional restrictions.
2. Customers enter the code on the booking confirmation page to get the discount.
3. You can also apply coupons directly to invoices from the dashboard.
4. The discount is reflected on the invoice and the redemption count goes up when the invoice is finalized.

### Create a coupon

{% stepper %}
{% step %}
**Open Coupons**

Go to **Storefront → Products → Coupons** in the left sidebar or use [this link](https://app.fotello.co/dashboard/products/coupons).

<figure><img src="/files/oXuoDvXYHwYA5pmV5gnd" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Click Add coupon**

This opens the create coupon sheet.

<figure><img src="/files/fSGDnluB2CfYLx6KBm3m" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Enter a coupon code**

Type a code your customers will use at checkout. Codes are automatically converted to uppercase and can only contain letters, numbers, hyphens, and underscores.

{% hint style="info" %}
Once created, the code cannot be changed. Choose something short and memorable like **WELCOME20** or **SPRING-2026**.
{% endhint %}
{% endstep %}

{% step %}
**Choose a discount type**

* **Percentage off** — Enter a value between 1 and 100. The discount is calculated as a percentage of the eligible line items.
* **Fixed amount** — Enter a dollar amount. The discount is subtracted from the eligible line items, up to their total.
  {% endstep %}

{% step %}
**Set restrictions (optional)**

Restrictions let you control when and how a coupon can be used.

* **Expiry date** — The coupon stops working after this date. Leave blank for no expiry.
* **Max redemptions** — Cap how many times the coupon can be used across all customers. Leave blank for unlimited.
* **Minimum order amount** — Require a minimum cart subtotal before the coupon applies.
* **First order only** — Restrict the coupon to customers who haven't placed an order with you before.
  {% endstep %}

{% step %}
**Limit to specific products (optional)**

By default, a coupon applies to all products in the cart. Toggle **Limit to specific products** to restrict the discount to selected packages, services, or add-ons.

<figure><img src="/files/dtFKTeojvzz4eyyujAaJ" alt=""><figcaption></figcaption></figure>

When limited, the discount is calculated only on the eligible items. Items not in the list are charged at full price.
{% endstep %}

{% step %}
**Limit to specific customers (optional)**

Toggle **Limit to specific customers** to restrict the coupon to selected customers. Search and select one or more customers from your customer list.

<figure><img src="/files/L4jouhtQdf7L6bdRYFaS" alt=""><figcaption></figcaption></figure>

When limited, only the selected customers can redeem the coupon. Any other customer who tries to apply it sees an error.
{% endstep %}

{% step %}
**Create**

Click **Create** to save. The coupon is immediately active and ready to use.
{% endstep %}
{% endstepper %}

### Edit a coupon

Open the coupon from the table and update any field except the code. Changes take effect immediately for future uses.

You can update the discount amount, restrictions, applicable products, applicable customers, and active status.

### Deactivate a coupon

To stop a coupon from being used, open it and toggle **Active** off. Deactivated coupons remain in your list for reference but are rejected if a customer or team member tries to apply them.

{% hint style="info" %}
Deactivating a coupon does not affect invoices that already have the discount applied.
{% endhint %}

### Where customers use coupons

On the **Review & Confirm** step of your booking page, customers see an **Add promo code** option. They expand it, enter the code, and click **Apply**.

<figure><img src="/files/t0PqheSwrWzcFjR3oNIF" alt="" width="563"><figcaption><p>Promo code field on the booking confirmation page</p></figcaption></figure>

If valid, the discount appears on the order summary and the total updates immediately.

<figure><img src="/files/GM2Ibm3yJNMfNRDTvxNP" alt="" width="375"><figcaption><p>Order summary with a coupon discount applied</p></figcaption></figure>

If the code is invalid, expired, or doesn't meet the restrictions, the customer sees an error message explaining why.

### Discounts on invoices

There are two ways to discount a draft invoice: an **invoice-level discount** that applies across the entire order, or **line-item discounts** on individual products.

#### Invoice-level discount

Apply a single discount to the whole invoice.

1. Open a listing, go to the **Orders** tab, and open the invoice.
2. Click **Add discount** on the draft invoice.
3. Choose **Coupon** and search for a code, or choose **Custom** to enter a one-off percentage or fixed amount.
4. The discount is calculated and shown as a row on the invoice.

{% hint style="warning" %}
If you change line items after applying a coupon, you'll need to reapply it so the discount recalculates against the updated items.
{% endhint %}

#### Line-item discount

Discount an individual product on the invoice without affecting other line items.

1. On a draft invoice, click the **⋯** menu on any line item.
2. Choose **Add discount** and enter a percentage or fixed amount.
3. The discount appears directly below that line item.

<figure><img src="/files/oQyNJ51gDEnLLORqcaMc" alt=""><figcaption><p>A line-item discount on an invoice</p></figcaption></figure>

### Redemption tracking

Each coupon tracks how many times it's been used. The redemption count increases when an invoice with that coupon is **finalized**, not when the order is placed.

If you set a **max redemptions** limit, the coupon is automatically rejected once that number is reached.

### Discount types compared

| Type             | How it's calculated                    | Best for                                        |
| ---------------- | -------------------------------------- | ----------------------------------------------- |
| **Percentage**   | Percentage of eligible items' subtotal | Scaling discounts that work across price ranges |
| **Fixed amount** | Flat dollar amount off eligible items  | Simple, predictable promotions                  |

{% hint style="info" %}
For both types, the discount never exceeds the total of the eligible items. A $50 coupon on a $30 order discounts $30.
{% endhint %}

### Good to know

* Coupon codes are **case-insensitive**. Customers can type `welcome20` or `WELCOME20` and both work.
* When a coupon is limited to specific products and none of those products are in the cart, the coupon is rejected.
* When a coupon is limited to specific customers and someone outside that list tries to use it, the coupon is rejected.
* **First order only** checks whether the customer has any prior orders with your business, including guest bookings tied to the same email.
* A coupon applied during booking carries over to the invoice automatically when the invoice is created from that order.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://uni.fotello.co/products/coupons.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
