For couriers serving online shops in many markets, cash on delivery is not optional — it’s how a large share of orders are paid. It brings volume, but it also brings risk: cash in drivers’ pockets, merchants waiting for money, and a reconciliation job that grows with every parcel.
We wrote a short overview of COD reconciliation last year. This is the full operating guide, with the ledgers, the daily routine, the awkward exceptions and the numbers.
Follow the money
The three ledgers you need
COD becomes manageable once you track it in three places, all built from the same delivery records:
| Ledger | One line per | Answers the question |
|---|---|---|
| Parcel ledger | COD parcel | How much should be collected for this parcel, and was it? |
| Driver ledger | Driver | How much cash is this driver holding right now? |
| Merchant ledger | Merchant | How much do we owe this merchant, and when do we pay? |
Step 1: Lock the amount at the source
Most COD disputes start with a wrong amount. Take it directly from the merchant’s store integration or upload file, print it on the label, and lock it once the parcel is out for delivery. If a merchant needs to change it, the change goes through the office with a reason — never as a phone call to the driver.
Step 2: Record collection on the delivery itself
When the driver marks a parcel delivered, the app should require the amount collected (defaulting to the expected amount), along with the usual proof: receiver name, photo, location. The driver’s app shows their running cash total, so they always know what they should be carrying back.
Step 3: Reconcile every driver, every day
- The cashier ticks the delivered COD parcels, counts the cash and records the result in the system — not in a notebook.
- Shortages and overages are logged against the driver with a reason and an approver.
- The driver gets a receipt for the hand-over. Disputes end quickly when both sides have the same record.
- A different person from the dispatcher should take the cash. Separating these duties is the simplest fraud control there is.
A dedicated cashier screen for hand-overs makes this a two-minute job per driver instead of an evening of counting.
Step 4: Deposit and match to the bank
Deposit COD cash daily into a separate bank account used only for merchant money. Then match each deposit to the hand-overs it contains. When the bank balance, the driver ledger and the merchant ledger all agree, you’re reconciled.
Step 5: Pay merchants with a statement they can check
The exceptions that break reconciliation
| Situation | What goes wrong | How to handle it |
|---|---|---|
| Partial delivery (some items refused) | Driver collects less than the label | Driver records actual amount and refused items; return job created for the rest |
| Receiver pays by card or mobile money | Cash count is short but money was collected | Record payment method per delivery; match to the payment provider, not the cash box |
| Merchant changes amount after dispatch | Driver collects the old amount | Lock amounts at dispatch; changes only through the office with a reason |
| Delivered but cash not collected | Driver forgot or was told “pay later” | Driver liability by policy; system blocks completing a COD delivery with $0 without a supervisor |
| Parcel refused after cash collected | Cash must be refunded at the door | Record the refund on the delivery; never “fix” it in the hand-over |
| Counterfeit notes | Deposit rejected by bank | Train drivers, provide checking pens, set a policy on who bears the loss |
Understand your COD float
Between collection and payout, you are holding merchants’ money. That float can be large — and it is not yours to spend.
Shorter payout cycles cost a little more administration but reduce your exposure and are a strong selling point: many merchants choose their courier based on how quickly COD is paid.
Controls worth putting in place
- Cash limits per driver — a maximum cash balance before the driver must return or deposit.
- Daily reconciliation, no exceptions — even on peak days, especially on peak days.
- Locked COD amounts and an audit trail for every change.
- Segregation of duties — dispatch, cash hand-over, bank deposit and payout approval are different people where possible.
- An aging report of cash collected but not yet handed over or deposited.
- Merchant self-service — merchants see collected, pending and paid amounts themselves.
KPIs to watch
| KPI | Target |
|---|---|
| Drivers reconciled same day | 100% |
| Cash variance as % of collected | Below 0.1% |
| Cash held by drivers over 24 h | $0 |
| Days from collection to merchant payout | Below 7 |
| Merchant payout disputes per month | Falling toward zero |
| COD parcels with locked amount at dispatch | 100% |
Bringing it together
COD reconciliation is not an accounting task done at month end — it’s an operational routine done every evening. Lock the amount, record it on the delivery, reconcile every driver daily, deposit to a separate account and pay merchants from a statement they can check. Operators who run cash on delivery on the same records as their deliveries spend minutes on this each day; those who run it in spreadsheets spend evenings, and still lose money.