Discounts
Promo codes and statutory senior citizen / PWD discounting — including how the 20% and the 12% VAT interact.
7 min read · Updated 10 Sep 2026
On this page
- What you can and cannot discount
- Promo codes
- Senior citizen and PWD discounts
- Applying it
- Choosing which items it covers
- How the discount and VAT interact
- On the receipt
- What the app does not offer
- No approval is needed for a discount
- Discounts, service charge and totals
- A discount is only ever applied once
Discounts are applied at checkout, not in the cart. There are two kinds you can apply at the counter: a promo code, and a statutory senior citizen or PWD discount.
The statutory discounts are on the Free plan. Promo codes are not.
What you can and cannot discount
| Whole order | Chosen items | |
|---|---|---|
| Promo code | Yes | No |
| Senior citizen / PWD | Yes (the default) | Yes |
There is no per-line discount and no free-hand discount field in the app. You cannot knock ₱50 or 10% off a sale on the spot. What you can do per line is change the price — retail, wholesale, or a typed amount on products set up to allow it. See Making a sale.
A sale can carry only one discount. Apply a promo code and the senior/PWD option disappears from the screen; apply senior/PWD and the promo option disappears. To swap, remove the applied one with its ✕ first. There is no warning message — the other option simply is not there.
Promo codes
Tap + Promo Code, type the code, and tap Apply Code. A valid code shows a PROMO badge with the promotion's name and the amount taken off.
Needs the Customer Memory & Promos add-on (₱300 per branch each month), or any bundle that includes it.
Promotions can be a percentage off, a fixed peso amount off, or buy-X-get-Y. They are set up in the back office — see Approvals and promotions.
Two limits worth knowing:
- Promo codes need a connection. Offline you get "Promo codes need a connection to verify — connect and try again." The code has to be checked against its dates, its usage limit and your store before it can be trusted.
- Buy-X-get-Y codes cannot be applied at the counter. The code is real and is not rejected as invalid, but Kassly cannot yet work out the discount automatically, so nothing comes off.
A code that has expired, is not yours, or has hit its redemption limit is refused. Every code that is used counts one redemption when the sale completes — and if the sale is later voided, the redemption is given back.
Senior citizen and PWD discounts
Philippine law entitles senior citizens (RA 9994) and persons with disability (RA 10754) to 20% off, plus exemption from VAT on their purchase. Kassly implements this as one action.
Applying it
Tap + Senior / PWD Discount (20%), choose Senior Citizen or PWD, then:
| Field | Required | Notes |
|---|---|---|
| ID number | Yes | The OSCA ID for a senior, the PWD ID for a PWD |
| Name | No | The cardholder's name, if it differs from the payer |
Tap Apply 20% Discount. Without an ID number you get "ID Required" — "Please enter the Senior Citizen / PWD ID number."
The ID is required by law, not by us. It goes on the receipt and into your sales book, which is what the BIR looks at when checking that a claimed discount was genuine.
If a customer's record is already marked as a senior or a PWD, attaching them to the sale applies the discount automatically, using the ID on their profile. No typing.
Choosing which items it covers
By default the discount covers everything in the cart. When there is more than one line you also get a picker:
- On a phone: Apply discount to: with a checkbox per line, and a Select All / Deselect All toggle. The footer reads "3 of 6 items" and the discount total.
- On a tablet: Tap items to apply Senior/PWD discount. Selected lines are tinted and show their own share of the discount.
Untick anything the entitlement does not cover. The per-line figure shown comes from the same calculation as the total, so the two can never disagree.
Deselect All really means no discount. It does not quietly fall back to "all items". If you clear every line, the discount is ₱0.
If you add another item after applying the discount, and the discount was set to cover everything, the new item is covered too. If you had picked a subset, the new item is not — check the picker before taking payment.
How the discount and VAT interact
This depends on your store, and it matters, so here is exactly what Kassly does.
If your store is VAT-registered and your prices include VAT: the 12% VAT is taken out first, the 20% comes off the VAT-exclusive price, and the discounted lines become VAT-exempt. That is the order the law requires — the discount is not 20% of the shelf price.
A ₱235.00 shelf price on a VAT-registered store:
| Step | Amount |
|---|---|
| Shelf price (VAT-inclusive) | ₱235.00 |
| Less 12% VAT (₱235.00 ÷ 1.12) | ₱209.82 |
| Less 20% senior discount | −₱41.96 |
| What the customer pays | ₱167.86 |
The receipt shows the subtotal as ₱209.82 for that line, the discount as ₱41.96, and no VAT on it.
If your store is not VAT-registered, or your prices are entered without VAT: there is no VAT to take out, so the discount is a straight 20% off the price. The same ₱235.00 item becomes a ₱47.00 discount and ₱188.00 to pay.
Most Kassly stores are in the second group. Which one you are in comes from your tax setup — see Tax configuration.
Items you did not tick keep their VAT. On a mixed basket, some lines end up VAT-exempt and some stay VATable, and the receipt's VAT breakdown splits them correctly.
On the receipt
A statutory sale prints the discount class and rate — "Senior Citizen Discount
(20%)" — the ID label and number, the cardholder name, and a
Signature: ____________________ line for the beneficiary to sign. Get it
signed; that signature is part of what makes the claim defensible.
See Receipts.
What the app does not offer
Kassly's books support two more statutory discounts, but the app can only apply Senior Citizen and PWD:
| Class | Rate | Available at the counter? |
|---|---|---|
| Senior Citizen | 20% | Yes |
| PWD | 20% | Yes |
| National Athlete / Coach (NAAC) | 20% | No |
| Solo Parent | 10% | No |
If you need to give a NAAC or Solo Parent discount, it cannot be rung up on the app today. Records that carry one are handled and reported correctly, but there is no button for it.
Also missing: there is no cardholder TIN field in the app, even though the sales book has a place for it.
No approval is needed for a discount
Any cashier can apply a 20% statutory discount or a valid promo code without a manager PIN. There is no discount limit, no approval threshold, and no second-person sign-off — at any amount.
That is a deliberate trade-off for the statutory discounts, which are an entitlement rather than a favour and should not need a manager standing by. But it does mean discounts are worth reviewing: every one is recorded against the cashier and the sale, appears as Discount on the X and Z readings, and can be listed in your reports. See Sales reports.
Voids do need a manager — see Returns and refunds.
Discounts, service charge and totals
The order these are applied in:
- Add up the lines.
- Take off the discount.
- Add the service charge, calculated on the discounted subtotal.
So a discount reduces the service charge too.
A discount is only ever applied once
If a sale is held and recalled, or a table's tab is reopened, or an order is handed from one device to another, the discount is worked out afresh from the full prices — never applied on top of an already-discounted figure.
It is worth saying out loud because it is the kind of thing that is easy to get wrong and hard to spot: a discount applied twice under-charges the customer, and the sale may not be completable at all. Kassly rebuilds every recalled line at its full price before applying anything, so it cannot happen. See Hold and recall.