WooCommerce
WooCommerce COD reconciliation: match every delivered order to its remittance
By the Veritally team · Updated · 5 min read
Quick answer
Export your WooCommerce orders and your courier's COD report for the same dates, match them by order number, and check that every delivered cash on delivery order was remitted in full, on time, under a UTR that appears in your bank statement. Delivered but not remitted after your remittance cycle, or remitted short, is money to claim.
Key points
- WooCommerce marks COD orders with the payment method Cash on delivery (method id cod).
- Only delivered COD parcels are owed to you. Parcels returned to origin (RTO) collect no cash.
- Shiprocket's orders report carries your WooCommerce order number as the order ID, with the AWB, COD payable, remitted amount, CRF ID and UTR.
- Count the remittance cycle from the delivered date, and allow a few days' grace.
- Each remittance batch has a UTR; that is how you find it in your bank statement.
Why COD money goes missing on WooCommerce
Your WooCommerce order stays "Processing" or "Completed" whether or not the courier ever pays you the cash. The courier collects at the door, and the aggregator (Shiprocket for many stores) remits in batches. One batch pays for many orders, so a missing or short parcel hides inside a lump sum.
What to export
| Report | Where | What it gives you |
|---|---|---|
| WooCommerce orders | WooCommerce, Orders (or an orders export plugin) | Order number, date, total, refunds, status, payment method |
| Shiprocket orders report | Shiprocket, Orders, Export | AWB, status, delivered date, COD payable, remitted amount, CRF ID, UTR |
| Delhivery or courier COD remittance | Your courier's dashboard, COD remittance report | AWB, COD amount, remitted amount, remittance date, UTR |
| Bank statement | Net banking, Excel or CSV | Credits with their UTR references |
How to match, step by step
- Keep WooCommerce orders paid by Cash on delivery that are not cancelled or refunded in full.
- Match each order number to the courier report's order ID, and keep the parcels shown as delivered.
- Compare COD payable with the order total. A lower COD amount is a setting in your store or shipping app, not the courier's fault, but it is still money you didn't collect.
- Compare COD payable with the remitted amount. Equal means paid in full.
- Check the remitted date. Delivered, past your remittance cycle plus a few days, and nothing remitted means unpaid.
- Find each remittance's UTR in your bank statement and check the credit matches the batch total.
The gaps to look for
| Gap | What it looks like | Who to raise it with |
|---|---|---|
| Delivered, not remitted | Delivered, no remitted amount, past the cycle | Courier or aggregator |
| Remitted short | Remitted amount below COD payable | Courier or aggregator |
| COD amount below the order | COD payable lower than the WooCommerce total | Your own store or shipping setup |
| RTO charged on a delivered parcel | Return freight billed on a delivered AWB | Courier or aggregator |
| Remittance not in the bank | A UTR that never shows in your statement | Courier or aggregator, then your bank |
Doing it every month without a spreadsheet
Matching by hand is fine for a few dozen COD orders. Above that, Veritally for WooCommerce does it inside WordPress: it reads your orders, takes the courier and bank reports you already download, and shows every gap with its evidence and a claim ready to send. See the set-up guide.
Frequently asked questions
How long does Shiprocket take to remit COD?
It depends on your plan and agreement. Check the remittance cycle in your Shiprocket account, and count from the delivered date, not the order date.
My WooCommerce order is Completed. Doesn't that mean I was paid?
No. For cash on delivery, Completed usually means delivered. Whether the courier paid you the cash is only in the remittance report and your bank.
What is a CRF ID?
Shiprocket's reference for one COD remittance batch. Many orders share one CRF ID, and the batch has one UTR you can find in your bank statement.
Do I need to share my Shiprocket login?
No. You download the reports yourself. Veritally never asks for a Shiprocket, WordPress or bank password.