Charges and collections
How to collect a charge (full or partial), why arrears are paid first and how to reverse a wrong collection.
The charge is what the client owes you for one period. The collection is when they pay. This is the only point in the whole module where money actually moves.
Before collecting: the cash drawer must be open
Collecting a service requires an open cash session. If it is closed, the collection is rejected with a clear notice and a shortcut to open it. This is not arbitrary: every collection enters the shift's drawer and must end up in someone's cash count.
It is the same gate as loan payments. Opening the drawer is the first thing you do each day.
How to collect
- Open the service detail.
- In the charge history, find the pending charge and press Collect.
- The collection sheet shows three figures for the charge, calculated on the spot:
- Pending base: what is left of the service amount.
- Projected arrears: the late-payment surcharge, if any.
- Total due: the sum of both. It comes pre-filled.
- Confirm. The amount enters the drawer and the income is recorded.
You need the services:collect permission.
Arrears are collected FIRST
This is the rule that causes the most confusion, so let us be blunt: when the client does not pay everything, what comes in is applied first to the arrears and only the remainder reduces the base.
You will never end up with "arrears pending and base paid off". It is the other way round: first the late-payment surcharge is cleared, and the debt that stays alive is the service one.
Arrears already collected are never charged twice
The system keeps track of how much arrears the client has already paid on that charge and subtracts it from the surcharge it computes later. If in one payment you collected RD$150 of arrears, in the next collection those RD$150 are not demanded again: only whatever has accrued on top since then.
A full example, in pesos
Contract: RD$ 2,000.00 monthly, 10 grace days, business arrears rate 0.5 % per day (see Arrears on services to configure it).
The charge is due on 1 June and the client does not show up.
Collection #1: 26 June (partial payment of RD$ 500.00)
Item | Calculation | Amount |
|---|---|---|
Days late | 25 days since the due date | 25 |
Days that accrue arrears | 25 − 10 grace days | 15 |
Pending base | The full charge, nothing collected yet | RD$ 2,000.00 |
Arrears demanded | 2,000.00 × 0.5 % × 15 days | RD$ 150.00 |
Total due today | 2,000.00 + 150.00 | RD$ 2,150.00 |
The client only brings RD$ 500.00. Applying arrears first:
| Amount |
|---|---|
To arrears | RD$ 150.00 (paid in full) |
To base | RD$ 350.00 (what was left over) |
Base still pending | RD$ 1,650.00 |
The charge becomes Partial.
Collection #2: 1 July
Item | Calculation | Amount |
|---|---|---|
Days that accrue arrears | 30 − 10 grace days | 20 |
Pending base | What was left | RD$ 1,650.00 |
Accrued arrears | 1,650.00 × 0.5 % × 20 days | RD$ 165.00 |
Less arrears already collected | − RD$ 150.00 |
|
Arrears demanded today | 165.00 − 150.00 | RD$ 15.00 |
Total due today | 1,650.00 + 15.00 | RD$ 1,665.00 |
They pay the RD$ 1,665.00 → the charge becomes Paid.
Final reconciliation: the client paid 500.00 + 1,665.00 = RD$ 2,165.00, which is the RD$ 2,000.00 of the service plus RD$ 165.00 of arrears. Not a peso more.
Note the fine detail: the arrears of the second collection are not "the previous 150 plus something". The surcharge is recalculated on the balance that was left (RD$1,650, not RD$2,000) and the amount already collected is subtracted from that. Collecting and reducing the base makes future arrears cheaper.
Partial payment: it must be confirmed
If you enter an amount lower than the total due, the system does not accept it lightly: it forces you to tick the Partial payment switch and it also requires the services:partial-payment permission.
It is a safeguard against typos: if you meant to collect RD$2,150 and typed RD$215, the system stops you instead of leaving the charge wrongly settled.
If you do not have that permission, the switch does not even appear and you can only collect the full amount.
Overcharging: impossible
If you try to collect more than what is owed, it is rejected. There is no "credit balance" on a charge: if the client pays in advance, collect it against next period's charge when it is issued.
Waiving arrears
With the services:override-mora permission you will see a Waive arrears switch in the collection sheet. Turning it on drops the arrears demanded to zero and you only collect the base.
Waived arrears are recorded (visible on the charge, for audit purposes), but they are not booked as income: you never collected them.
What happens in accounting
Every collection creates an entry at that moment (cash basis: nothing is booked when a charge is issued, only when it is collected):
Account | Debit | Credit |
|---|---|---|
Cash (1101) | Total received |
|
Service income (4103) |
| Amount applied to the base |
Penalty income (4102) |
| Amount applied to arrears |
With the example above, collection #1 would be: Cash RD$500.00 debited; services RD$350.00 and arrears RD$150.00 credited. It always balances, because the total is base + arrears by construction.
The collection also becomes an inbound movement in the shift's drawer, so it shows up in your cash count when you close.
Accounting is not optional here. If the accounting module is not provisioned, the collection is rejected outright: no payment is recorded and the drawer does not move. There is no such thing as a "collection without an entry". It is the same rule that governs a loan disbursement. See The double-entry ledger.
Reversing a collection
Recorded a collection that should not have happened? In the service detail, open the charge's payment history and press Reverse.
When you reverse:
- The accounting counter-entry is created and the money leaves the drawer.
- The charge's counters roll back and the charge reopens (back to Pending or Partial depending on what remains paid).
- The payment is marked as reversed, not deleted: the trail is preserved.
Rules:
- It also requires an open cash drawer.
- A payment can only be reversed once.
- You can reverse any payment on the charge, it does not have to be the last one.
- If the drawer does not have enough cash to give that collection back (it would go negative), the reversal is blocked.
- A voided charge (from a cancelled contract) does not come back to life when you reverse one of its payments: accounting is corrected, but the charge stays void.
Retries and double charging
If the connection fails and you press Collect twice, you are not charged twice. Each form submission carries a unique marker; if the server already processed that collection, the retry does not create a second payment.
Common errors
Message | What it means |
|---|---|
There is no open cash session | Open the drawer before collecting |
The charge has status …; it cannot be collected | That charge is already paid or was voided |
The amount exceeds what is owed | You are collecting too much |
Confirm with partial=true | The amount is lower than the total: tick "Partial payment" |
Missing the services:partial-payment permission | You can only collect the full amount; ask for the permission |
Missing the services:override-mora permission | You cannot waive arrears |
This collection was already reversed | It cannot be reversed twice |
The drawer does not have enough balance to reverse | Bring cash into the drawer or reverse in another shift |
Accounting is not provisioned | Without the accounting module active you cannot collect; the collection is rejected outright |