Discount codes
Codes that take an agreed amount off a deal, applied when the payment link is created
A discount code takes an agreed amount off a deal at the moment the payment link is created. It exists for the discounts you hand out rather than negotiate line by line: a partner rate, a campaign, a returning customer.
What a code holds
| Field | Meaning |
|---|---|
| Code | What the customer or partner quotes. Stored and matched upper-cased and trimmed, so partner25, PARTNER25 and Partner25 are the same code |
| Type | A percentage of the price, or a fixed amount in the tenant's currency |
| Value | The percentage (0–100) or the amount |
| Active | Turns a code off without deleting it, so the deals that used it keep their history |
| Valid from / until | Optional window. Empty on both sides means always |
| Max redemptions | Optional cap. Empty means unlimited |
Where the discount lands in the price
Order matters, because VAT and the instalment surcharge compose with it:
- The discount comes off the net price of the thing being sold.
- VAT is then owed on the discounted amount, not on the list price.
- The instalment surcharge is added afterwards and is not discounted: it covers administering the instalments, which costs the same whatever the deal is worth.
So on a € 1.000 deal excl. 21% VAT with a 12,5% code and a € 25 surcharge per term, each instalment is € 875 + € 25 = € 900 net, and VAT is charged on that.
A discount can never make a charge negative. A fixed amount larger than the price, or a percentage above 100, simply brings it to zero.
Using one on a deal
The closer types the code in Close deal, next to the amount. The breakdown above the button re-quotes as they type, so the total they read out on the call is the one Stripe will bill.
A code that is unknown, inactive, outside its window or past its redemption cap is ignored; the deal goes through at full price rather than failing. That is deliberate: a stale code is not something the customer can see or fix while they are on the phone, and losing the deal over it is the worse outcome. The re-quoted total shows what will actually be charged before anything is created, so the closer sees the discount did not apply.
The redemption is counted when the payment link is created, and the code is stored on the payment so an invoice or a dispute can say which discount was given.
Managing codes
Codes are tenant-scoped and live under /crm/discount-codes. Creating and editing them needs MANAGE_CRM_SETTINGS; reading and previewing needs only lead access, so a closer can check a code without being able to change it.