Your finance head exports the Shiprocket billing report at month-end to true up shipping cost. The total is ₹4.1 lakh higher than the freight you modelled into your unit economics. Not a rounding gap. A real, repeatable hole.
She digs in. A batch of parcels to Pune (411xxx) billed at a metro zone rate instead of the cheaper intra-state zone. A few hundred shipments charged a weight slab above what you declared. A handful of COD fees applied at the wrong rate. None of it is dramatic on its own. All of it adds up to money that left your wallet for charges that were never correct.
Here is the uncomfortable part: most of it was recoverable, and most of it is now gone, because the dispute windows closed weeks ago. The reconciliation happened at month-end. The charges had to be disputed within days of appearing.
Courier overcharges are the most ignored line item in Indian D2C finance. Not because brands do not care about cost, but because the charges are small, scattered across thousands of AWBs, and governed by dispute windows that punish anyone who batches the work. The brands that recover this money treat it as a weekly operating function with a clear workflow: audit, prove, dispute, recover.
This is the finance and ops playbook for that workflow. What the overcharges are, where they hide, why they go unrecovered, and the exact steps to get the money back, including the short windows that make timing everything.
What a Courier Overcharge Actually Is
A courier overcharge is any line on your invoice billed higher than your contracted rate card allows for that shipment. The courier or aggregator is not necessarily acting in bad faith. Overcharges come from measurement errors, pincode-to-zone mapping mistakes, slab rounding, and wrong fee configuration far more often than from deliberate inflation.
To audit them, you need three reference points for every shipment.
The chargeable weight. The higher of dead weight and volumetric weight, where volumetric weight is (Length × Breadth × Height in cm) / 5000. If the courier billed a heavier figure than your verified weight, that is a weight discrepancy overcharge. The mechanics of disputing these are worth their own read. [INTERNAL LINK: Shiprocket weight discrepancy dispute process]
The correct zone. Indian aggregators price by zone, and the zone is derived from the origin and destination pincodes. On Shiprocket, zones run A to E.
| Zone | Definition | Relative cost |
|---|---|---|
| Zone A | Within the same city | Lowest |
| Zone B | Within the same state | Low |
| Zone C | Between metro cities | Medium |
| Zone D | Rest of India (excl. NE and J&K) | High |
| Zone E | North East, Jammu & Kashmir | Highest |
If a parcel delivered within Maharashtra gets billed at Zone C or D, that is a zone mismatch overcharge. One wrong pincode mapping can over-bill every parcel to that area until someone catches it. [EXTERNAL: Shiprocket shipping zones A to E explainer]
The correct service fees. COD fee, return freight, and surcharges all have defined rates on your rate card. A COD fee billed at a flat ₹45 when your card says 1.5% of order value on a ₹400 order is an overcharge. So is a remote-area surcharge applied to a metro pincode.
An overcharge audit is simply checking actual billed charges against these three reference points, AWB by AWB, and flagging every gap. The recovery is disputing the gaps inside the courier window.
The Five Places Money Leaks
Across thousands of shipments, overcharges cluster into five types. Knowing which you have tells you where to look first and what evidence each dispute needs.
1. Weight discrepancy
The courier reweighs at the hub and bills heavier than you declared. Driven by volumetric billing on bulky-light parcels, slab rounding (a 0.55 kg parcel billed as 1 kg), uncounted packaging weight, or a genuine reweigh-machine error. Usually the single largest leak for apparel, homeware, and accessories brands.
Evidence to recover: a photo of the packed parcel on a scale with the AWB visible, plus dimension photos against a tape.
2. Zone mismatch
A parcel delivered in a cheaper zone billed at a costlier one. The destination pincode was mapped to the wrong zone in the rate engine. This is insidious because it is silent and systematic: every shipment to that pincode carries the same error.
Evidence to recover: the destination pincode and the correct zone per your rate card, plus the billed zone showing the mismatch.
3. Wrong COD or return freight rate
COD fees and RTO (return-to-origin) freight billed at a rate higher than your contract. Often a wrong slab or a percentage applied where a flat fee was agreed, or the reverse. On a high-COD, high-RTO catalogue, this compounds fast.
Evidence to recover: your contracted COD and RTO rate card lines against the billed amount. If RTO is your bigger problem, the fix is upstream too. [INTERNAL LINK: reduce RTO for Shopify India]
4. Incorrect surcharges
Pickup fees, handling fees, packaging charges, fuel or remote-area surcharges applied where they should not be, or at the wrong value. Remote-area surcharges wrongly applied to serviceable metro pincodes are a common one.
Evidence to recover: the rate card terms for that surcharge and proof the shipment did not meet the surcharge condition.
5. Duplicate charges
The same AWB billed twice, or a forward charge plus an RTO charge plus a re-attempt charge that double-counts the same movement. Rare per shipment, but each one is a clean, easy win because the duplicate is self-evident in the invoice.
Evidence to recover: the two invoice lines on the same AWB. Little argument needed.
Why Brands Never Recover It
The money is recoverable. Most of it never gets recovered, for four structural reasons that have nothing to do with effort and everything to do with timing and baselines.
No rate-card baseline. You cannot prove an overcharge without knowing the correct charge. Many brands do not have their contracted rate card in a usable, structured form, so they can spot a charge that feels high but cannot prove what it should have been. Anomaly detection without a baseline is a hunch, not a dispute.
The windows are brutally short. Weight discrepancy disputes on Shiprocket close in 7 working days, after which the charge auto-debits. Other overcharge types have their own windows. A month-end reconciliation cadence guarantees most windows have already closed. The work has to happen weekly, sometimes more often, to land inside the window. [INTERNAL LINK: Shiprocket weight discrepancy dispute process]
The charges are small and scattered. A ₹40 overcharge on one AWB does not justify anyone's afternoon. The same ₹40 across 800 AWBs is ₹32,000, but nobody sees the aggregate unless they reconcile the whole file. The economics only become visible at the portfolio level, which is exactly the view manual checking never produces.
No clear owner. Reconciliation falls between finance (who see the invoice total) and ops (who know the shipments). When it is shared, it is dropped. The brands that recover money name one owner with one weekly task and one tracked output: rupees recovered.
None of these are hard problems. They are discipline problems. Which is good news, because discipline is buildable.
The Recovery Playbook: Audit, Prove, Dispute, Recover
This is the operating workflow. Run it weekly. The first cycle is the slowest; once your rate card is structured and your matching is set up, each cycle takes an hour or two for most brands.
Step 1: Structure your rate card once
Before you can audit anything, turn your contracted rate card into a lookup table: weight slab × zone × service = expected charge, plus COD fee logic, RTO logic, and surcharge conditions. Do this once per courier. This is the baseline every audit compares against, and it is the step most brands skip, which is why most brands cannot prove their overcharges.
If you ship across Delhivery, Shiprocket, Ekart, and Bluedart, you need one structured rate card per courier. They price differently, zone differently, and sometimes use different volumetric divisors (5000 is standard, some use 4000).
Step 2: Pull both sides of the truth
Export two files every week:
- The courier billing report: every charge line by AWB, including freight, COD fee, RTO fee, surcharges, and weight-discrepancy adjustments.
- Your order manifest: AWB, declared weight, dimensions, destination pincode, payment mode, and order value.
The AWB is the join key between what you shipped and what you were billed. If your manifest does not carry the AWB cleanly, fix that first, because everything downstream depends on the match.
Step 3: Match and recompute
Join the two files on AWB. For each shipment, recompute the expected charge from your structured rate card:
Expected charge per shipment:
Expected = freight(chargeable weight slab, correct zone)
+ COD fee (if COD, correct slab/percent)
+ RTO fee (if returned, correct rate)
+ valid surcharges only
Flag every AWB where Billed − Expected > 0
Chargeable weight is the higher of dead and volumetric. Correct zone comes from the destination pincode. The flagged rows, where billed exceeds expected, are your recovery pipeline.
A spreadsheet handles this up to a few hundred shipments a week. Beyond that, reconciliation software (Cointab, eVanik, ClickPost and similar) automates the match and the rate-card recompute. [EXTERNAL: Cointab courier invoice verification]
Step 4: Classify before you dispute
Sort flagged rows into the five types: weight, zone, COD/RTO fee, surcharge, duplicate. Group them, because each type takes the same evidence, and batching by type is far faster than handling each AWB cold. It also tells you where your structural leak is. If 70% of your recoverable value is zone mismatch on one pincode range, you have a mapping bug to fix at the source, not just a pile of disputes to file.
Step 5: Dispute in-window with the right evidence
File each dispute inside its window. The evidence by type:
| Overcharge type | Evidence that wins |
|---|---|
| Weight discrepancy | Scale photo with AWB visible + dimension photos against a tape |
| Zone mismatch | Destination pincode + correct zone per rate card vs billed zone |
| COD / RTO fee | Contracted fee line vs billed amount |
| Surcharge | Rate-card condition + proof shipment did not meet it |
| Duplicate | The two invoice lines on the same AWB |
Keep submissions tight. The reviewer is matching your evidence against their data, not reading an argument. Clear proof, correct figure, filed on time.
Step 6: Track recovery, not just disputes
A dispute marked approved is not money recovered until the credit lands in your wallet or your next invoice. Keep a log: AWB, type, amount claimed, status, credited yes or no. Reconcile the credits against the log each cycle. This closes the loop and surfaces the disputes that were approved but never actually paid back, which happens more than you would expect.
Step 7: Fix the source
Every recurring overcharge is a process bug. Repeated weight discrepancies on a SKU mean its catalogue weight is wrong. A repeated zone overcharge means a pincode is mapped wrong. Fix the master data and the overcharge stops generating, which is worth more than recovering it every week forever. Recovery is the cure for charges already raised; clean source data is the prevention. [INTERNAL LINK: ecommerce reconciliation for D2C founders]
Benchmarks: What Good Recovery Looks Like
There is no audited public benchmark for courier overcharge recovery in Indian D2C, so treat these as operator targets, not published figures. [VERIFY: courier overcharge recovery benchmarks D2C India 2026]
| Metric | Leaking | Decent | Tight ops |
|---|---|---|---|
| Shipping spend reconciled | 0% (never) | Sampled / monthly | 100% weekly |
| Overcharges caught in-window | Under 20% | 50–70% | 90%+ |
| Recovery cycle cadence | Quarterly or never | Monthly | Weekly |
| Recoverable value actually credited | Under 30% | 60–75% | 85%+ |
| Recurring overcharges fixed at source | Never | Some | Most |
Vendors selling reconciliation software cite savings of up to 30% of shipping cost from eliminating overcharges and discrepancies. Treat that as a ceiling under ideal conditions, not a typical result. [EXTERNAL: reconciliation savings claim] For a brand that already reconciles loosely, the realistic recoverable amount is a smaller slice of shipping spend, but on a ₹40 lakh annual shipping bill even 3% is ₹1.2 lakh that was leaving silently.
The metric that decides everything is "overcharges caught in-window." You can run a perfect audit and recover nothing if the disputes land after the window closes. Cadence beats thoroughness. A weekly rough audit recovers more than a flawless monthly one.
Build In-House or Use a Recovery Partner
Once you have seen the workflow, the question is who runs it. There are three honest options, and the right one depends on your volume and your bandwidth, not on which sounds more sophisticated.
Spreadsheet, in-house. Works under roughly 500 shipments a week with one owner who treats the weekly audit as non-negotiable. Cheapest to start, but fragile, because the moment that person is pulled onto a launch or a stockout, the windows lapse and the recovery stops.
Reconciliation software, in-house. Tools like Cointab, eVanik, and ClickPost automate the match and the rate-card recompute. Good fit when you ship high volume across multiple couriers and have a finance or ops person to action the flagged disputes. You still own the disputing and the follow-through; the software finds the leaks but does not file for you.
Managed recovery. A service that runs the audit, files the disputes inside each window, and chases the credits, so recovery happens whether or not your team has a free hour that week. This is where something like OneflowAI fits: it audits your marketplace settlements and courier billing, surfaces the recoverable number, and pursues it on your behalf, so the money comes back without the weekly window-watching falling on your ops head.
The deciding question is not "can we build this." It is "will the disputes actually get filed on time, every week, when things are busy." If the honest answer is no, the audit is academic, and a system or a partner that guarantees the filing happens is worth more than a better spreadsheet.
Frequently Asked Questions
What is a courier billing audit?
Matching every charge on your courier invoice against what your rate card says it should have been, AWB by AWB, and flagging every line billed too high. The flagged lines become disputes you raise to recover the difference.
How much do D2C brands typically overpay?
Vendors claim up to 30% of shipping cost is recoverable, but that is a ceiling. A realistic figure for a brand that reconciles loosely is 2 to 6% of shipping spend. On a ₹40 lakh annual bill, even 3% is ₹1.2 lakh. [VERIFY: shipping spend recoverable through audit India 2026]
What overcharges can I actually recover?
Five types: weight discrepancy, zone mismatch, wrong COD or return fee, incorrect surcharge, and duplicate charge. Weight and zone are usually the largest by value. Each needs its own evidence to win.
How far back can I dispute?
Windows are short, often 7 working days from when the charge is raised. After that the charge auto-accepts and your only route is a support ticket with weaker odds. Reconcile weekly, on the cadence charges appear.
Do I need software?
Under a few hundred shipments a week, a spreadsheet works. Above 1,000 a month, manual matching cannot keep pace with the windows, so use reconciliation software or a managed recovery service.
What data do I need?
The courier billing report (charges by AWB), your order manifest (AWB, weight, dimensions, pincode, payment mode), and your contracted rate card as the baseline for the correct charge.
How are zones classified in India?
On Shiprocket, A to E: same city, same state, metro-to-metro, rest of India, and North East plus J&K. Cost rises A to E. A zone mismatch overcharge is a parcel billed at a costlier zone than its destination pincode warrants.
How long does COD remittance take?
Usually 8 to 9 days after delivery, faster on early-remittance plans. Reconcile that the COD collected matches what was remitted, net of the correct COD fee. Short-remittance and wrong fee slabs are both recoverable.
Weight or zone, which costs more?
Bulky-light catalogues lose more to weight; wide-pincode catalogues lose more to zone. Audit both. Most brands find weight is bigger, but a single wrong zone map can overcharge thousands of shipments quietly.
Build in-house or use a partner?
In-house works with a disciplined owner and the bandwidth to file every window. A partner makes sense at high spend, across multiple couriers, or when the in-house owner keeps getting pulled away and windows lapse.
The Short Version
Courier overcharges are real, recoverable, and mostly lost to timing. The charges are small, scattered across thousands of AWBs, and governed by windows that close in days. Reconcile at month-end and the money is already gone.
Structure your rate card once. Pull the invoice and the manifest weekly. Match on AWB, recompute the expected charge, flag the gaps, and dispute them in-window with the right evidence. Track the credit, then fix the source so the same overcharge stops recurring.
Run it as a weekly habit and courier billing turns from a silent leak into a line you control. The work is not hard. The window is just short, and short windows reward whoever shows up every week.
