Cash on Delivery in India: What COD Really Costs Your Store
COD still drives a huge share of Indian ecommerce — but it is not free. Between flat fees, percentage charges and RTO risk, COD economics can quietly erase margins. Here is the full cost breakdown and how to price it.

Cash on Delivery is still the trust bridge of Indian ecommerce — for many first-time buyers and Tier 2/3 pincodes it is the only acceptable payment mode. But every COD order carries costs that prepaid orders do not, and stores that ignore them price themselves into losses.
The visible cost: COD fees
Couriers charge for cash handling in two parts:
COD fee = flat component + percentage of order value
≈ ₹35 + 1.5% (typical defaults)
On a ₹1,000 order that is ₹50. On a ₹4,000 order it is ₹95. The percentage component matters: high-AOV COD orders pay meaningfully more, which is why COD fees should be computed per order, not assumed as one number.
The invisible costs
1. RTO — return to origin
COD orders are refused or undeliverable far more often than prepaid. A failed COD delivery costs you forward shipping + return shipping + repackaging, with zero revenue. At a 15% RTO rate, roughly one in seven COD shipments is pure cost.
2. Working capital lock-in
The courier collects your cash and remits it days or weeks later. High COD share means a permanent float of your own revenue sitting with carriers.
3. Operational drag
COD reconciliation, remittance tracking and dispute handling consume ops time that prepaid orders simply do not.
Pricing COD honestly at checkout
Three patterns work in practice:
- Pass the fee through — show "COD fee: ₹50" as its own line. Transparent, and it nudges prepaid conversion.
- Fold it into shipping — quote a higher shipping rate for COD than prepaid on the same lane.
- Threshold gating — offer COD only below an order-value cap, or only on pincodes with acceptable historical RTO.
Whichever you choose, the fee should come from the same rate engine that prices the freight, so the checkout total is always right:
POST /v1/rates/calculate
{
"origin": "400001",
"destination": "800001",
"weight_grams": 700,
"payment_mode": "cod",
"order_value": 1499
}
The response itemises freight, fuel, the COD fee (flat + percentage on the declared order value) and GST — so "COD costs ₹52 extra on this order" is a fact, not a guess.
Should you kill COD?
Usually not — you would kill conversion with it. The better play is surgical COD: keep it where it converts (trusted pincodes, moderate order values) and restrict it where it burns (chronic-RTO pincodes, very high AOV). You need per-pincode serviceability data to do this well, which is exactly what a serviceability API provides.
COD is neither friend nor enemy. It is a priced risk — price it correctly and it remains one of your best acquisition tools.
Frequently asked questions
How much do couriers charge for COD in India?
The common structure is a flat handling fee (around ₹35) plus a percentage of the collected amount (around 1.5%), whichever combination your carrier contract specifies. On a ₹2,000 order that is roughly ₹65 — before you account for RTO risk.
Who pays the COD fee — the buyer or the seller?
Contractually, the seller pays the carrier. Whether you pass it to the buyer as a visible line, fold it into COD-specific shipping rates, or absorb it is a pricing decision — but absorbing it invisibly is how COD-heavy stores lose margin without noticing.
What is a good RTO rate for COD orders?
Below 10% is healthy for most categories; chronic double-digit RTO on specific pincodes is the signal to gate COD there. Track RTO by pincode and lane, not as one blended number — the blend hides exactly the pockets that are burning you.
