In this guide 6 sections
Trace every cash on delivery order from the waybill through the courier’s remittance file to the bank credit, because the courier pays per batch and never per order. Match each line by waybill number. Returns bring no cash. Hold short remittances as courier receivables until the courier explains the gap.
The chain from doorstep to bank
A COD order starts as an invoice in your system and ends as a credit from the courier, often a week or more later. In between sit a waybill, a delivery scan at the door, the cash collected by the rider and one remittance batch that covers many parcels.
The courier does not pay per order. It pays per batch, net of its charges, so your books need a bridge between each sales invoice and the batch that settled it. The waybill is that key.
Cash on delivery adds a second delay on top of transit, because the courier collects the cash at the door and then holds it until its next remittance cycle. Many run that cycle weekly.
Step one: import the remittance file
Couriers send a CSV or Excel statement, or expose it through an API, and you should pull it on a schedule rather than wait for an email. Each row should carry the waybill, the delivery date, the COD amount collected, every charge deducted and the batch reference that ties the row to one bank credit.
Store the raw file untouched. Load its rows into a staging table, so that when the courier reissues a corrected statement you can compare it with the first and see which rows moved.
- Waybill or AWB number
- COD amount collected
- Freight and COD handling fee
- Remittance batch and UTR or bank reference
- Delivery status and date
Step two: match each line to an order
Join on waybill number. Orders delivered and collected at the full invoice amount are simple, so mark them paid and attach the batch reference and the bank credit date.
Trouble lives in the exceptions. A customer paid less because the item arrived damaged, or a parcel was returned to origin, so no cash exists and yet a return freight charge appears. Sometimes the waybill is simply absent.
Keep these on an exceptions list, with one reason code for each line: damaged, RTO, missing or disputed, so the courier’s account manager sees the same categories you do. A short amount is the hardest case. The courier’s file may show the full COD value while the bank credit is lower, and only the batch totals expose the gap.
Step three: post the money
Post the bank credit as one entry against a courier clearing account, then split it: cash collected clears receivables, while freight, COD fees and return charges go to expenses.
The clearing balance for each courier should fall to zero once a batch is fully matched, and a balance that keeps growing is a short remittance. Raise it with the courier. Attach the list of waybills and quote the remittance file, which proves what was collected on each delivery, and ask for a corrected statement by a set date.
- Receivable cleared per order
- Freight expense
- COD fee expense
- Return freight expense
- Short remittance receivable
Close the loop weekly
Each week, list every COD order marked delivered more than ten days ago that has no remittance line, because those orders are your chase list. Send it to the account manager. Include waybills and delivery dates.
Keep a single sheet per courier showing delivered, remitted, short and returned counts for the week, and review it before month-end rather than after the books close.
Pin the weekly sheet beside the bank statement and read both every Monday, so a courier who pays slowly is noticed in week one, not at year end.
COD remittance tracker
A one-page tracker with one row per waybill, and columns for order number, courier, delivery date, invoice amount, collected amount, freight, COD fee, return charge, batch reference and status. A summary block at the top totals delivered, remitted, returned and short for the week, and a signature line confirms the bank match.
Open a blank worksheet to printQuestions owners ask
Why is the courier’s payment lower than my COD total?
The courier deducts freight, COD handling fees and return charges before paying, and some orders may also be uncollected, refused at the door or disputed by the customer. The remittance file lists each deduction.
What key should I use to match orders?
Use the waybill number, since it travels with the parcel from the warehouse scan to the delivery scan and appears again in every line of the remittance file. Order numbers often never reach the courier. They make a weaker key.
How should returned parcels appear in the books?
Reverse the sale or raise a credit note against the original invoice, and book any return freight the courier charges to the return freight expense account. No cash arrives for these. Do not leave the receivable open.
Can this be automated?
Yes. An integration can pull the remittance file, match by waybill, post the clearing entries and list exceptions for a person to review. The review step should stay manual.
