# Create a discount code

> To create a discount code in Velarya, open Organization settings > Discounts & Offers and select Create Code. Set its value and what it applies to, then any minimum, who can use it, usage limits, combinations, dates and locations, and select Create code. Patients enter the code when they book, and your team enters it at checkout.

- Source: https://velarya.com/help/create-a-discount-code
- Who can do this: Admins and roles with Discounts, offers & vouchers set to edit
- Plans: Scale, Branded, Connected
- Time: 5 minutes
- Last verified: 2026-10-01

## Before you begin

- Your treatments have prices in Organization settings &gt; Service Catalog, because a discount code takes its value off those prices.

## Open Discounts & Offers

The **Discounts & Offers** page in **Organization settings** holds every Velarya discount code for your whole practice: codes patients type when they book, and your team enters at checkout.

1. Open the menu at the bottom of the left sidebar and select **Organization settings**.
2. Under **Client Experience**, select **Discounts & Offers**.

![Organization Settings menu with Discounts & Offers selected under Client Experience](https://velarya.com/assets/help/create-a-discount-code/discounts-nav-3d64bc0a.webp)

3. Select **Create Code**. The **New discount code** window opens.

## Set the code and its value

A Velarya discount code starts with the code patients type and a **Type** and **Value** that decide what they save.

1. Enter the code in **Discount code**, such as GLOW20, or select **Generate** for a random one. Letters turn into capitals as you type.
2. Choose a **Type**: **Percentage** takes a share of the price off, and **Fixed amount** takes a set amount off.
3. Enter the **Value**: a percentage from 1 to 100, up to two decimals, or an amount above $0.00.

![New discount code window with GLOW20 in Discount code, Percentage chosen and a Value of 20](https://velarya.com/assets/help/create-a-discount-code/new-code-value-cd4720e8.webp)

## Choose what the code applies to

**Applies to** decides which treatments in a visit a Velarya discount code takes money off: the entire visit, or chosen categories or services.

1. Keep **Entire visit**, or select **Specific treatments**.
2. For specific treatments, choose **Specific categories** or **Specific services**, select **Browse**, tick each one and select **Done**. Add-ons count with the treatment they are added to.

![Applies to set to Specific treatments, with Specific categories chosen and Facials added](https://velarya.com/assets/help/create-a-discount-code/new-code-applies-to-b0ab495c.webp)

An entire-visit code comes off the total of the visit's treatments once and is shared across them in proportion to their price. A code for specific treatments comes off each treatment it covers. A **Fixed amount** on specific treatments comes off once per visit, shared across those treatments. Every percentage rounds to the nearest cent, and no code takes a visit below $0.00.

| The visit | The code | The patient pays |
|---|---|---|
| A $450.00 Hydrafacial | 20% off the entire visit | $360.00 |
| A $149.50 treatment | 15% off the entire visit | $127.07, after $22.43 off ($22.425 rounded) |
| A $450.00 Hydrafacial and a $950.00 Neuromodulator | 20% off Facials | $1,310.00: the code takes $90.00 off the Hydrafacial only |
| A $450.00 Hydrafacial and a $380.00 chemical peel | $50.00 off those two services | $780.00: $50.00 once, shared across both |

## Set a minimum and who can use it

A Velarya discount code can ask for a minimum visit and can be kept for new patients, members or the members of chosen plans.

1. Under **Minimum requirements**, choose **No minimum**, **Minimum spend** or **Minimum number of treatments**, and enter the amount or number.

![Minimum requirements set to Minimum spend, with $300 entered and the rule for what the minimum counts below it](https://velarya.com/assets/help/create-a-discount-code/new-code-minimum-bf54f443.webp)

2. Under **Eligibility**, choose **Who can use it**: **All patients**, **New patients (first visit)**, **Members only** or **Specific membership plans**.
3. For **Specific membership plans**, select **Browse**, tick the plans whose members can use the code and select **Done**.

![Eligibility with Who can use it set to New patients (first visit) and its helper text below](https://velarya.com/assets/help/create-a-discount-code/new-code-eligibility-2610048c.webp)

A minimum spend counts what the patient pays for the treatments the code applies to, after member pricing, birthday discounts and vouchers, and before the code. A $300.00 minimum on a member's $450.00 Hydrafacial counts the $405.00 member price. A minimum number of treatments leaves out a treatment a voucher pays for.

**Members only** accepts any patient whose membership is active, in a trial or paused. When a code for members does not combine with member pricing, the window reminds you that members already get their member prices.

## Limit uses and choose what the code combines with

Velarya discount codes have no usage limit and combine with nothing until you set these options.

1. Tick **Limit the total number of uses** and enter **Total uses**, such as 100 for the first 100 bookings or sales.
2. Tick **Limit to one use per patient** to let each patient use the code once, so 100 uses reach 100 patients. A code for new patients always has it ticked.

![Usage limits with Total uses set to 100 and Limit to one use per patient ticked for a new-patient code](https://velarya.com/assets/help/create-a-discount-code/new-code-limits-3a5de3ab.webp)

3. Under **Combinations**, tick **Member pricing** for the code to come off the member price instead of the regular price, and **Birthday discounts** to come off the birthday price.

![Combinations with Member pricing ticked and Birthday discounts left clear](https://velarya.com/assets/help/create-a-discount-code/new-code-combinations-b61ff9b9.webp)

Left clear, the patient gets whichever saves more: the code, or their member and birthday prices. [How discounts combine](https://velarya.com/help/how-discounts-combine) works through each case on a sample menu.

## Set when and where the code works, then save

A Velarya discount code runs from its start date and time, in your practice's time zone, until its end, at the locations you choose.

1. Under **Active dates**, pick a **Start date** and **Start time**. They start as today and the current time, rounded down to the quarter hour.
2. Tick **Set end date** and pick an **End date** and **End time**, or leave it clear for a code with no end. The end time starts at 11:59 PM, and the code works through the end of that minute.
3. Under **Locations**, select **Browse** next to **Eligible locations**, tick each location that accepts the code and select **Done**. With none chosen, it works at every location. The section appears when your practice has more than one location.
4. Read the **Summary**, which lists every setting in plain words.

![Summary for GLOW20: 20% off Facials, $300.00 minimum, new patients, 100 uses, member pricing, dates and two locations](https://velarya.com/assets/help/create-a-discount-code/new-code-summary-3f0f97e4.webp)

5. Select **Create code**. The window closes, and the code appears in the list.

## When does a discount code count a use?

A Velarya discount code counts one use per booking or sale, against the patient, and reserves it the moment a booking or sale applies the code. Reserved uses count toward **Total uses** and toward one use per patient, and **Used** shows them, such as "1 held by unpaid bookings".

| What happens | The code's use |
|---|---|
| A patient books with the code, or your team applies it before payment | Reserved |
| Money is taken on the visit or sale, a deposit included | Counted in **Used**, such as "37 of 100" |
| The visit is cancelled, including a late cancel, or marked a no-show, before anything is paid | Given back. On a booking with several visits, once every visit is cancelled or missed |
| An unpaid booking expires | Given back |
| The sale is voided or deleted | Given back |
| Your team removes or replaces the code, or an edit leaves it saving nothing, below its minimum or with no treatment it applies to | Given back |
| The sale is fully refunded | Given back. A partial refund keeps the use |
| A patient starts a purchase in the app or on your online booking page with no visit booked, and leaves without paying | Given back after 20 minutes |
| A sale your team creates with no visit booked, such as a payment link or a Pending sale, stays unpaid | Given back after 7 days |
| The patient pays after a use was given back | Counted again, even past **Total uses**, because money was taken |

Once a booking or sale holds a code, the patient pays that price wherever they pay. The price holds even if the code later ends, is turned off, is deleted or reaches its limit.

## Turn a code off, change it or delete it

Each code on **Discounts & Offers** shows its terms, a status of **Active**, **Scheduled**, **Expired**, **Used up** or **Inactive**, and its uses. You change a Velarya discount code from the **⋯** menu at the end of its row, or the **⋮** menu on its card on a phone.

![Discounts & Offers list with SPRING20 Active and GLOW20 Scheduled, their terms, uses and the row menu outlined](https://velarya.com/assets/help/create-a-discount-code/codes-list-b9cf328b.webp)

- **Deactivate** stops the code at once and shows **Inactive**. **Activate** turns it back on with its uses and settings as they were.
- **Edit Details** opens **Edit GLOW20**, which also shows how many uses the code has, and how many unpaid bookings hold. Change any setting and select **Save changes**. New terms apply to later bookings and sales, and ones that already hold the code keep the terms they were given.
- **Delete** opens **Delete GLOW20?**, with the code's uses and any unpaid bookings holding it. For a code patients can use right now, first type GLOW20 in **Type GLOW20 to confirm**. Select **Delete code**, or **Deactivate instead** to stop it and keep it. Sales and bookings that used it keep their discount, and "GLOW20 deleted" appears with **Undo**.
- **Deleted**, above the list, shows deleted codes and when each was deleted. **Restore** in a code's menu brings it back switched off.

Saving and turning a code on or off confirm without a message: the window closes or the list shows the change. Select the copy icon next to a code to copy it.

## Apply a code at the front desk

Your team enters a Velarya discount code for a patient before payment, wherever they check out. Roles with **Discounts at checkout** at **apply** or **override** can do it, as [Apply a discount at checkout](https://velarya.com/help/apply-a-discount-at-checkout) shows step by step.

- In the billing of an unpaid visit or an unpaid sale in **Transactions** (select the pencil on **Billing**), in **Discount code** under the treatments, then **Apply** and **Save**.
- In the checkout panel, under **Discounts**, where **Custom Discount ($)** and vouchers also apply.
- In **Transactions** > **New Transaction**, under **Payment & Totals**, once the sale has a patient.

## What do patients see?

Patients enter a Velarya discount code on the review step when they book or buy, in the patient app or on your online booking page, and see every saving on its own row before they book.

- In the patient app, on **Review and confirm**, the patient selects **Add** next to **Discount Code**, types it under **Add a discount code** and selects **Apply**. The row then reads **Applied**, and the summary shows "🏷️ Discount (GLOW20)" beside any **Membership Savings** or **Birthday Gift** row.
- On your online booking page, the patient types the code in **Discount code** and selects **Apply**. The summary strikes through the **Subtotal** and lists "🏷️ Code GLOW20" with the saving.
- When the code cannot be used, the reason appears under the field before they book, such as "This discount code needs $300.00 or more of the treatments it applies to".
- When their member or birthday price already saves as much, the code reads **Not used** with the reason, such as "Your member price saves as much or more, so this code wasn't used", and **Remove**.

## How does a discount code behave?

A Velarya discount code follows the same rules in the patient app, on your online booking page and at your front desk, because Velarya prices every visit on its server.

| Situation | What Velarya does |
|---|---|
| The patient has a member or birthday price | Follows the code's **Combinations**. A code that saves no more is not used and counts no use |
| A voucher pays for a treatment in the visit | Takes the voucher first; the code works on what is left |
| Your team adds a **Custom Discount ($)** | Takes it off after the code |
| The patient pays partly with wallet credit | Takes every discount off first, then applies the credit |
| The patient or your team enters a different code | Uses the new code in its place and gives the earlier code's use back |
| A patient books during the dates for a visit after them | Accepts the code: the dates count the moment the code is applied, not the day of the visit |
| The visit is at a location missing from **Eligible locations** | Refuses the code |
| The code ends, is turned off or reaches its limit after the patient applies it | Stops the booking with the reason, takes the code off and shows the new total for the patient to confirm |

To give each patient a discount on their birthday without a code, see [Set up a birthday gift](https://velarya.com/help/set-up-birthday-gift).

## If something goes wrong

**"Couldn't save changes. Please review the highlighted fields below."** A setting is invalid, and the message under it names the problem: "Minimum 3 characters", "Maximum 30 characters" or "Use uppercase letters, numbers, _ or -" under **Discount code**; "Percentage must be between 1 and 100", "Use at most 2 decimal places" or "Enter an amount above $0.00" under **Value** or **Minimum spend ($)**, and "Enter an amount of 99,999.99 or less" under **Value**; "Choose at least one category", "Choose at least one service" or "Choose at least one membership plan"; "Enter a number", "Must be a whole number" or "Must be at least 1" under **Total uses** or **Minimum number of treatments**; "Choose a start date", "Choose an end date" or "End must be after the start". Correct it and select **Create code** or **Save changes** again.

**"A discount code with that name already exists".** Codes are unique across your practice, active or inactive, whatever their capitalization. Choose another code, or select **Edit Details** on the existing one.

**"Failed to save discount code. Please try again.", "Failed to update status", "Failed to delete discount" or "Failed to restore discount".** The change didn't reach Velarya. Check your connection and try again.

**"Another code uses this name now. Rename or delete that code, then restore this one."** A newer code took the name. Rename or delete it, then select **Restore** again.

**Discounts & Offers isn't in the Organization settings menu, or Create Code is missing.** The page needs **Discounts, offers & vouchers** at **view**, and **Create Code** and the row menu need **edit**. Ask an Admin; [Loyalty roles and permissions](https://velarya.com/help/loyalty-roles-and-permissions) lists each role's defaults.

**A patient sees "Invalid discount code", "This discount code is not yet active", "This discount code has expired" or "This discount code is not valid at this location".** The code is mistyped, inactive or deleted, used outside its dates, or used at a location missing from **Eligible locations**. Check its spelling and status on **Discounts & Offers**, and select **Edit Details** to change its dates or locations.

**A patient sees "This discount code is for members only", "You've already used this discount code" or a message about their membership plan.** The code's **Who can use it** or **Limit to one use per patient** setting refused them, as you set it.

**A patient or your team sees "Too many discount code attempts. Please try again in a few minutes."** After 10 codes refused as "Invalid discount code" (mistyped, switched off or deleted) within 15 minutes from one patient, or 30 from one internet connection, Velarya refuses every code from that patient or connection for the rest of those 15 minutes. This keeps codes from being found by guessing. Your team sees it after 30 such codes from one staff login in 15 minutes.

**The code shows Not used.** The patient's member price or birthday discount saves the same or more, so they keep it and the code counts no use. Tick **Member pricing** or **Birthday discounts** under **Combinations** for codes that should add to those prices.

## Frequently asked questions

### Who can create and apply discount codes?

Admins and Location Managers create, edit and delete Velarya discount codes by default, because both roles hold Discounts, offers & vouchers at edit. Applying a code or a Custom Discount ($) to a sale is a separate permission, Discounts at checkout: Front Desk has it at apply, and Admins and Location Managers at override. To give either one to another role, duplicate the closest role in Roles & Permissions and edit the copy.

### Can a discount code add to member pricing?

Yes, when you tick Member pricing under Combinations. The code then comes off the member price instead of the regular price, so a member saves both. Tick Birthday discounts to do the same with a birthday price. With neither ticked, the default, Velarya gives the patient whichever saves more: the code, or their member and birthday prices. A code that saves no more is shown as not used.

### Can I limit a code to one use per patient?

Yes. Tick Limit to one use per patient under Usage limits, and each patient can use the code once, at any of your locations. A use counts from the moment a booking or sale holds the code, so a patient cannot book twice with it. If that first visit is cancelled before anything is paid, the use is given back and the patient can use the code again.

### Can a discount code be for new patients only?

Yes. Choose New patients (first visit) in Who can use it. Velarya accepts the code for a patient with no completed visit and no paid treatment before this one, and it is always one use per patient. Patients who have visited before see This discount code is for first visits only, and your front desk sees why the code was refused.

### Are discount codes case-sensitive?

No. Velarya saves every discount code in capital letters and accepts it however a patient or staff member types it, so glow20 works for GLOW20. A code is 3 to 30 letters, numbers, hyphens or underscores, and each code in your practice is unique, whatever its capitalization. Deleting a code frees its name for a new one.

### Can I get a deleted discount code back?

Yes. Select Undo on the message that appears after a delete, and Velarya brings the code back as it was. For an older code, select Deleted above the list on Discounts & Offers, open the code's menu and select Restore. A restored code returns switched off, with its settings and uses, so select Activate when patients should use it again. If a newer code took its name, rename or delete that code first.

### What happens when a code reaches its Total uses?

A code whose uses reach its Total uses shows Used up on Discounts & Offers and stops accepting new bookings and sales. Uses held by unpaid bookings count toward the limit, so the code is never promised to more patients than you allowed. Patients who try it see This discount code has reached its usage limit. To allow more, select Edit Details and raise Total uses.

### Do patients earn points on a visit paid with a discount code?

Yes, on what they pay after the discount. Velarya counts points on each treatment's price once every discount has come off, so a $450 treatment with a 20% code earns points on $360.00. At an Earning Rule of 5 points per $1 that is 1,800 points, awarded as soon as the sale is paid, like points on any other visit.
