Mountify Help
BG → mountify.eu
Banners & promos

Discount codes

A code the client enters at checkout for a discount — created through the loyalty rules.

7 min read Updated 2026-07-26

A discount code is a string the client types at checkout to get a lower price: MARCH20, INSTA10, VIP. This article follows a code end to end — where it’s created, what the text itself is allowed to contain, exactly what the client sees at checkout, and why a code sometimes isn’t accepted.

A code is created as a loyalty rule, not in the promotions area. The path is Setup → Loyalty → new rule → the Promo code template. The creation steps are in Promo codes.

1. Rules for the code itself

RuleValue
Length2–32 characters
Allowed charactersLatin letters A–Z and digits 0–9 only
Lowercaseconverted to uppercase automatically
Spaces, hyphens, accents, symbolsnot allowed — stripped as you type
Uniquenessone active code can belong to only one rule

Error messages at creation time:

MessageCause
Enter a promo code.the field is empty
Code must be at least 2 characters.the code is too short
Code can be at most 32 characters.the code is too long
Only letters A–Z and digits 0–9 are allowed.there’s a space, hyphen or accented character
Another active rule already uses this promo code. Pick a different code or archive the other rule first.the code is taken by another rule

Don’t use accented or non-Latin letters. They’re simply removed as you type.

Tips for picking a code: short and easy to say on the phone; avoid confusable characters (0 and O, 1 and I); a separate code per channel (INSTA10, FB10, FLYER10) so you can tell what works.

2. What the client sees at checkout

The checkout screen on the public page has a row reading I have a promo code. Tapping it opens a field:

  1. The field is labelled Promo code. What’s typed is displayed in capitals.
  2. To the right is an Apply button (or the client presses Enter).
  3. On success the row becomes a confirmation, e.g. Promo WELCOME (−10%) ✓, and the total recalculates.
  4. If the code has a ceiling, Maximum discount with this code: … is shown.
  5. There’s also Remove promo code if the client changes their mind.

3. Every failure message

If the code doesn’t go through, the specific reason appears under the field. Here’s what each means — this is the table you want when a client phones you:

Message to the clientWhat happenedWhat to check
Invalid promo code.no such codespelling; whether the rule was archived
This code has expired.today is outside the rule’s windowValid from / Valid until in the “Who qualifies” step
This code has reached its usage limit.the usage limit or budget is exhaustedthe budget in the Advanced step
This code doesn’t apply to the selected service.the rule is limited to certain servicesthe service list in “Who qualifies”
This code doesn’t apply to your account.the client isn’t in the target groupthe rule’s eligibility conditions
Your order doesn’t reach the minimum for this code.a minimum spend is setthe minimum amount in the rule
Sign in to use this code.the rule requires an identified clientthe client must sign in
This booking is paid with a package, so promo codes don’t apply.paying with a package or membershipexpected behaviour; the package is already a discount
This code can’t be applied to this booking — check it, or sign in for details.a combination of causeswalk the rows above
This code couldn’t be applied.a generic errorretry; if it repeats, inspect the rule

4. A code on a banner

A banner can show the code directly on the public page.

  1. In Setup → Banners, open the banner.
  2. In the Button section set ActionCopy code.
  3. Fill in Code to copy. The hint reads 2–32 chars: letters, digits, dashes, underscores. Auto-uppercased.
  4. Optionally link the banner to the rule in Link a loyalty rule — then a chip labelled Use code appears next to the button.

The client taps the chip and sees Code XXX copied, then pastes it into the checkout field.

Careful — these are two different fields. The code on a banner is plain text that only gets copied. It does not create a discount. If it doesn’t match the loyalty rule’s code letter for letter, the client copies something checkout will reject with Invalid promo code.

Note the allowed characters differ too: the banner field accepts dashes and underscores, the rule does not. Stick to letters and digits in both to be safe.

Linking the banner to the rule also buys you automatic protection: an expired or archived rule hides the whole banner, so the code stops advertising itself.

5. Where to hand out the code

ChannelAdvice
Instagram / Facebook postput the code in the copy and the page link in your bio
A banner on your pagefor visitors who already got there
Print materiala short code that’s easy to copy out
A partner businessa separate code per partner so you can measure it
A private message to a clienta code with a short deadline works better

Don’t try to email a code through Mountify — the product has no campaign emails to clients. The only email channels are confirmation, reminder and review request.

6. How to check a code works

  1. Open your public page in a private/incognito window.
  2. Pick a service and get to checkout.
  3. Press I have a promo code, type the code and press Apply.
  4. Confirm the total drops by exactly the expected amount.

Do this before the advert goes out. Five minutes of testing saves a hundred phone calls.

7. How to stop a code

You want to…Do this
Stop the code on a given dayfill in Valid until on the rule
Stop it right nowarchive the rule in Setup → Loyalty
Cap the spendfill in the total budget in the Advanced step
Cap a single applicationfill in the Discount ceiling
Reuse the same code laterrestore the rule from the archive, or create a new one with the same code

Archiving a rule frees the code — you can use it again in a new rule.

8. Troubleshooting

A client says the code is rejected but it works for me. Ask them to read the exact message under the field and match it against the table in section 3. The usual causes are an expired window and a code limited to other services.

The code works but the discount is smaller than expected. The Discount ceiling probably kicked in. Check the Advanced step.

The code works but the discount is bigger. Two combinable rules are stacking. See Stacking and budgets.

I can’t create the code — “already uses this promo code”. Another rule holds it. Find it in Setup → Loyalty and archive it, or pick a different code.

A client with a package can’t use a code. That’s deliberate. The package already carries a discount and the two don’t combine.

What’s next