Promo codes and free trials
Coach-issued discount codes (percentage off, fixed ZAR off, free trial days) for any program, package, or your whole catalogue. Cash discounts apply before the charge; trials defer the first charge.
- Three kinds: percentage off, fixed ZAR off, N-day free trial
- Scope to specific programs, packages, or your entire catalogue
- Public storefront ribbon advertises codes you mark public
- Cash discounts apply before the charge, so the buyer pays the net
- Stacking math caps combined referral + promo discount at 80%
- Free-trial mechanic defers Paystack charge to trial_ends_at
- Anti-fraud: per-user cap, max-redemptions cap, same-IP burner queue
- Three new automation triggers + grant_promo_code re-engagement action
- Tier-gated: Basic 0, Pro 3 active codes, Colossal and Studio unlimited
The discount surface coaches have been asking for
Coaches want to run Black Friday sales, holiday promos, and "first month free" trials without having to email each buyer manually. The promo-code system gives coaches one place to mint discount codes, target them at the right products, and watch the redemption + revenue impact in real time.
Three discount kinds
Percentage off, fixed ZAR off, or N-day free trial. The first two apply before the charge: the pricing engine subtracts the discount and the buyer is charged the already-discounted net, so there is no separate refund to wait on (identical to how referral discounts settle). The third is a true deferred-first-charge trial: the subscription is created with status trialing, and an hourly cron fires the maturity charge on trial_ends_at via Paystack's charge_authorization endpoint.
Public ribbon, private DM, or coach gift
Mark a code public to advertise it on your storefront. Keep one private to share via DM or email. Or use the new grant_promo_code automation action to gift a code to a specific client when they hit a re-engagement trigger ("client missed two check-ins, grant a 15 percent code that expires in 14 days").
Stacking with referrals
Set stackable_with_referral on a code if you want it to combine with a buyer's referral discount on the same checkout. The combined discount is capped at 80 percent of order value, the promo leg shrinks to fit if needed, and the referral leg is never truncated. Receipts show both lines transparently. Non-stackable codes skip with a clear "your referral discount took precedence" message.
Anti-fraud and ops
Self-issued codes are blocked at validate time. The same-IP burner heuristic surfaces clusters of three-plus redemptions from one IP in seven days for admin review. The platform admin has force-disable (with required reason, logged to the admin audit trail) and clawback (mark a redemption refunded + decrement counters; the Paystack refund itself is issued separately for chargebacks). Daily reconciliation repairs counter drift from any missed signals.
Wired into the automation engine
Three new triggers (promo code redeemed, trial started, trial converted) fire as first-class automation events, and a new grant_promo_code action lets you mint and gift a code as one step in any automation flow. Outbound Zapier webhooks fire the same three events.