Points, voucher codes and referrals, connected to orders and payments. What was given away appears in the same accounts as the revenue.
Points come from paid orders and are set against the next purchase. Their value exists as a number at all times, not an estimate.
Validity, minimum order value, redemptions per customer and a total budget. A code without a limit is a blank cheque.
Referrer and referred stay linked, so a reward only falls due after the first paid order.
Discounts and redeemed points appear as a cost line, not as missing revenue — otherwise a programme always looks free.
Briefly describe your case. We will tell you whether this building block covers it — and if not, what does.