JoinCPR

Manage

Promo codes

Create percentage or fixed-amount promo codes in JoinCPR with use limits and dates, and see how students apply them and how discounts and uses are counted.

Updated · JoinCPR help center

Promo codes give students a discount at checkout. Manage them under Manage → Promo Codes (admins and staff).

Creating a code

Click New Promo Code:

Field Notes
Code What students type. Pre-filled with a random 8-character code; Generate Random Code makes another. Saved in upper case and must be unique.
Discount Type Percentage or Fixed Amount
Value Percentage 0.01 to 100, or a dollar amount
Max Uses Blank for unlimited
Applicable Course All courses, or exactly one course. Codes cannot target a single class.
Start Date When the code becomes valid
Expiry Date When it stops working
Active Only active codes can be used

Warning

Dates switch at the very start of the chosen day. A code with Expiry Date 5 March stops working at midnight going into 5 March, so 4 March is the last full day. Set the expiry to the day after the last day you want it to work.

How the discount is calculated

  • The discount applies to the class price only. Add-ons are never discounted.
  • Percentage: class price × percentage. Fixed: the amount, capped at the class price.
  • One code per order; there is no stacking. Students remove a code to try another.
  • For group registrations the discount is calculated once on price × group size and counts as one use.

How students use it

On the Summary step of checkout: "Have a promo code?" → Apply. A valid code shows "Code "SAVE20" applied — 20% off" and a Discount line. Anything invalid (unknown, inactive, expired, not started, fully used, wrong course) shows "This promo code is invalid or does not apply to this class." The code is checked again at payment; if it ran out in the meantime the student sees "The promo code you applied is no longer valid."

Staff cannot apply promo codes when adding students from a roster. The Waive payment switch there records a full discount without a code.

Usage and status

  • Usage shows "3 / 10" or just "3". A use is counted when a registration is created, including free and pay-later ones, and is never given back when a registration is cancelled, refunded or transferred. Raise Max Uses if you need to compensate.
  • Status badge: Inactive, Expired, Fully Used or Active. A code whose start date is in the future still shows Active although it cannot be used yet.
  • Filter the list by All statuses, Active, Inactive, Expired or Fully Used.

Where the code shows afterwards

  • Receipts show a line "Discount (CODE)".
  • Reports → Revenue shows a Discounts Given total (promo codes plus waived payments).
  • The roster and student profile do not show which code was used.

Deactivate or delete

Deactivate stops the code and keeps history intact. Delete removes it and past receipts then show only "Discount". Prefer deactivating. If the code's course is later deleted, edit the code and pick "All courses" or another course, or it will never validate.

Try JoinCPR free

Put your CPR classes online with registration, payments, rosters, certifications and reminders in one place. 15 days free, no credit card, then $59 a month.

15-day free trial. No credit card required.