Subsidy balance and top-up balance
A vending code holds two separate pots of money:
| Pot | Where it comes from | Credited |
|---|---|---|
| Subsidy balance | The profile: top-up value per period, capped by max balance, following the cumulative rule. | Automatically, on the profile's period. |
| Top-up balance | Money the user loads at the machine (or loaded manually for them). | On top-up; recorded in Top-ups. |
How a delivery is charged
- On presenting the code, the machine checks subsidy + top-up ≥ price. If not, the delivery is rejected and logged as failed.
- On delivery, the subsidy is spent first and the top-up covers the remainder.
- The movement stores the split: Balance and Top-up columns in the deliveries table.
Cumulative or not
- Cumulative on: the period's top-up adds to the leftover balance, up to the profile's max balance.
- Cumulative off: the top-up replaces the balance. Anything unspent is lost when the new period is credited.
The top-up balance is never replaced by a subsidy credit: it is the user's own money.
Price: the device charges it
For cashless vending, the price reported by the device is charged, not a price stored in the app. Planogram prices are a reference and catalogue aid.
Where to check balances
- Available credit: one row per code, with subsidy balance, top-up balance, profile, cumulative flag and the last subsidy / last top-up dates.
- The user's record: each code shows its Balance and Top-up.
- The users Excel export: Balance and Top-up columns.
Changes that wipe the balance
Editing a code to change its business line deletes its vending balance and top-up. The app warns before saving. Moving a code between levels (operation ↔ account) keeps balance and top-up.