Cash on delivery hides its cost until the end of the month. Orders look profitable, then the courier remittance arrives lower than expected because of returns, fees, partial deliveries, or transactions that were simply missed.
Reconciliation is the control that turns COD from a guess into a ledger. This guide outlines a workflow you can run daily, whether you use spreadsheets or courier management software.
Where COD money leaks
- Returned orders that were counted as delivered in your sales report.
- Courier fees and return charges deducted without an order-level breakdown.
- Partial deliveries where the customer paid less than the order value.
- Duplicate remittance claims or orders missing from the payout file.
- Cash collected but never assigned to an order because the tracking number was wrong.
Build a daily reconciliation loop
- Export the courier remittance file and your delivered COD orders for the same period.
- Match by tracking number, then compare collected amount, courier fee, and net payable.
- Flag unmatched orders in both directions: missing from remittance, or missing from your system.
- Post adjustments with a reason code so future reports explain the difference.
- Escalate unresolved items to the courier within the agreed dispute window.
Order-level matching rules
The report is only as good as the identifiers you store. Keep the courier tracking number, COD amount, pickup date, delivery date, and remittance ID on the order. If any of these live only in the courier panel, you cannot audit the payout later.
- Never match on customer phone number alone; repeat customers and typos break it.
- Store the expected COD amount at booking time, not at delivery time.
- Keep courier fees as a separate line from product revenue.
- Use one reason code per adjustment, such as return, partial, fee, or missing.
KPIs and alerts
- Remittance match rate: percentage of delivered orders matched in the same cycle.
- Unreconciled value: total COD amount waiting for a match.
- Return rate by courier, area, and product.
- Average days from delivery to remittance.
- Fee variance between the expected and actual courier charge.
Related resources
- Zendbot Courier & Logistics Dispatch Hub
- API Integrations & Microservices
- How to Reduce COD Returns in Bangladesh Ecommerce
- Order Fulfillment Workflow for Ecommerce Teams
Frequently asked questions
How often should COD be reconciled?
Daily for active stores, or at least on every remittance cycle. Weekly reconciliation hides problems long enough for small errors to become large ones.
What if the courier remittance does not match our orders?
Flag the unmatched orders, request the courier transaction detail, and record the dispute with dates and tracking numbers. Do not adjust silently without a reason code.
Should courier fees be deducted from product revenue?
Keep them separate. Product revenue, courier cost, and COD fees are different lines; mixing them makes margin reporting unreliable.
Can we reconcile COD in a spreadsheet?
Yes at low volume, if you enforce tracking numbers and a fixed template. Move to software when multiple couriers, users, or daily order volume make manual matching slow.
How do returns affect vendor or branch payouts?
A return must reverse the sale and the payable. If the payout already happened, record a negative adjustment in the next cycle instead of editing history.
Next step: Want the reconciliation to run automatically? Explore the courier dispatch and COD tools or book a demo.