WHMCS

Create promotions and coupon codes in WHMCS

Create percentage, fixed, price override and free setup promotions in WHMCS, limit them to products, cycles and dates, make them recurring or one-time, and auto-apply codes.

BeginnerWHMCS2 min read

Promotions in WHMCS let you run launch offers, seasonal sales or partner discounts with coupon codes. You control exactly what is discounted, for how long and whether the discount repeats on renewals. This guide shows how to build a promotion that does what you expect – and nothing more.

Before you start

  • Your products and billing cycles configured.
  • A clear plan: who gets the discount, on which products, first payment only or recurring, and until when.

Create a promotion

  1. Go to Marketing → Promotions (or Configuration → System Settings → Promotions).
  2. Click Create New Promotion.
  3. Enter a Promotion Code, for example LAUNCH20, or click Auto-Generate Code.
  4. Choose the Type:
    • Percentage – for example 20% off.
    • Fixed Amount – for example 5.00 off.
    • Price Override – sets a new price, for example 1.00 for the first month.
    • Free Setup – waives the setup fee.
  5. Enter the Value.
  6. Tick Recurring to keep the discount on renewals. Enter Recur For a number of times (for example 12), or 0 for forever.

Limit what it applies to

  • Applies To – select products, addons and domain TLDs (hold Ctrl or Cmd to select several). Leave empty to apply to everything, which is rarely what you want.
  • Requires – only valid if a specific product is also in the cart, for example a free domain requiring an annual hosting plan.
  • Cycles – limit to billing cycles, for example Annually only.
  • Start Date and Expiry Date – the promotion's validity period.
  • Maximum Uses – total number of times the code can be used.
  • Apply Once – discount only one item per order.
  • New Signups – only for clients without any previous order.
  • Once Per Client – each client can use it only once.
  • Existing Client – only for clients with an active product, useful for loyalty offers.
  • Upgrades/Downgrades – use the promotion on upgrade orders.

Add an Admin Notes entry describing the campaign, then click Save Changes.

Share and auto-apply

  • Customers enter the code in the cart's Apply Promo Code field.
  • Add &promocode=LAUNCH20 to a direct order link to apply it automatically, for example https://billing.example.com/cart.php?a=add&pid=1&promocode=LAUNCH20.
  • Product groups can show a promotional headline to advertise the deal.

Track results

The promotions list shows how many times each code was used. Reports → Promotions Usage gives revenue per code, which helps decide whether a campaign was worth it.

Troubleshooting

  • "The promotion code entered does not apply to any items in your order": the product, cycle or required item does not match the promotion's restrictions.
  • Code has expired: check the expiry date and maximum uses.
  • Discount continues forever: Recurring is on with Recur For set to 0. Edit the service's recurring amount to remove it for existing clients.
  • Domains discounted unexpectedly: Applies To was left empty.

Next steps

Was this guide helpful?

Still stuck?

Ask MdmHost AI for a quick answer, or open a ticket and our team will take a look. We are here 24/7.