A customer places an order on your store. Cash on Delivery, no payment upfront. Your team packs it, prints the label, ships it out, maybe even calls to confirm the address. Ten days later, it comes back. Unopened. The customer wasn’t home, wasn’t answering, or just said “I don’t want it anymore” at the door.
You’ve now paid for the outbound shipping, the return shipping, the packaging, and the time your team spent processing what looked like a real sale. The product goes back into inventory, sometimes a little worse for wear. And on paper, that order counted as revenue the day it was placed, right up until it quietly reversed itself two weeks later.
This is the RTO problem, Return to Origin, and if you’re running a D2C or e-commerce business in India, it’s probably eating a bigger chunk of your margin than you’ve actually sat down and calculated.
The Real Scale of India’s COD-RTO Problem
Cash on Delivery isn’t a niche payment preference in India, it’s still how a huge share of first-time online buyers choose to shop, especially outside metro cities where trust in prepaid online payments is lower and cash remains the default way people transact. For many D2C brands selling into tier 2 and tier 3 towns, COD isn’t optional, it’s the only way a large chunk of your addressable market will buy at all.
The trouble is that COD strips out the one signal that actually predicts whether a customer intends to receive their order: payment. When money changes hands upfront, a customer has skin in the game. When it doesn’t, placing an order costs nothing, and un-placing it, by simply refusing the package, costs the customer nothing either.
Industry estimates for the D2C and online retail space in India regularly put RTO rates on COD orders well into double digits, in some categories touching 15-30% of shipped orders. Compare that to prepaid orders, where non-delivery is a fraction of that, and the pattern is obvious. RTO isn’t a rounding error. For a business shipping a few hundred orders a month, it can be the difference between a healthy margin and barely breaking even, and most sellers are absorbing it silently because nobody’s tracking it as its own line item.
Run the math on just one bounced order: forward shipping, reverse shipping, the packaging materials, the restocking labour, and the courier’s RTO handling fee, which most logistics partners quietly charge on top. Add it up and a single RTO can cost more than the margin on two or three successfully delivered orders. Multiply that by a few dozen RTOs a month, and you have a real, recurring drain that never shows up as a clean line item on your P&L, it just shows up as “margins are tighter than they should be.”
Why So Many COD Orders Never Actually Arrive
The instinct is to blame the customer, “they just changed their mind.” But that explanation doesn’t hold up once you actually look at where in the funnel these orders fall apart.
Start with verification, or the lack of it. Most WooCommerce and Shopify stores let anyone type any name, address, and phone number into a checkout form and hit “Place Order,” no confirmation required. There’s no step that checks whether a real, intentional human is on the other end. That opens the door to fat-fingered addresses, prank orders, competitors messing with your ad spend, and customers who add-to-cart on impulse from an Instagram ad and forget they ordered anything by the time it ships four days later.
Then there’s the complete absence of any reason to prepay. If COD and prepaid cost the customer exactly the same and offer exactly the same experience, why would anyone choose to pay upfront? Most Indian stores never ask that question, they just default every customer into the lowest-commitment option and hope for the best.
Add to that a serviceability blind spot. Some pincodes have chronically high RTO rates, unreliable courier coverage, or a history of refused deliveries, but most sellers ship to every pincode identically, with no risk-based handling.
And finally, expectation mismatch. A customer orders expecting delivery in 3 days. It arrives in 9, with no updates in between. By the time the delivery agent knocks, the customer has either forgotten, moved on, or found the product cheaper somewhere else, and refusing at the door costs them nothing.

A 5-Step System to Cut Your RTO Rate
Fixing RTO isn’t about eliminating COD, for a lot of Indian audiences, that would just kill conversions outright. It’s about adding friction and intelligence exactly where fake or low-intent orders fall apart, while keeping genuine buyers moving smoothly. Here’s the system we build for clients:
1. OTP/WhatsApp Order Confirmation. Before a COD order is shipped, send an automatic OTP or WhatsApp confirmation message asking the customer to verify the order. This single step alone typically filters out a meaningful chunk of fake, impulsive, or mistyped orders, because it forces a small, real action from a real person before you spend a rupee on shipping.
2. Prepaid Incentives. Give customers an actual reason to pay online, a flat discount, free shipping, a small bonus gift, or early access to new drops for prepaid orders. Even a modest 5-10% incentive shifts a noticeable share of your order mix toward prepaid, and every order that moves off COD is an order that can no longer RTO for lack of payment.

3. Address & Serviceability Check. Validate pincodes at checkout against your courier’s serviceability data, and flag incomplete or clearly malformed addresses before the order is confirmed, not after it’s already been packed and dispatched.
4. Clear Delivery Expectations. Set an honest delivery window at checkout, and follow up with proactive WhatsApp or SMS updates as the order moves, dispatched, out for delivery, arriving today. Customers who know what to expect, and are reminded right before the doorbell rings, refuse far less often than customers who are caught off guard by a package they’d half-forgotten about.
5. RTO Risk Scoring. Track RTO history by pincode, by customer phone number, and by order size, and start treating high-risk orders differently. That might mean a mandatory prepayment for a repeat-refuser’s phone number, a phone verification call for a pincode with a history of non-delivery, or simply deprioritizing shipping to addresses that have burned you twice before.
- Score every incoming order the moment it’s placed, not after it’s already shipped
- Route high-risk orders into a manual verification queue instead of auto-fulfilling them
- Feed completed delivery and RTO outcomes back into the score so it keeps improving

None of these five steps require ripping out COD as a payment option. Together, they build a filter that lets genuine buyers sail through checkout while making it meaningfully harder for a fake, careless, or low-intent order to ever make it onto a courier’s bike in the first place.
Stop Treating RTO as a Cost of Doing Business
Every RTO order you absorb without a system to catch it is a silent tax on every other order that does get delivered, because that lost margin has to come from somewhere. Most Indian D2C sellers have simply never measured what their real RTO rate is costing them once you add up double shipping, repackaging, damaged stock, and the staff hours spent processing returns nobody wanted to make in the first place.
The fix isn’t complicated, it’s a handful of checkpoints, added at the right points in your order flow, backed by data you’re probably already generating but not using. Once it’s in place, it keeps paying for itself with every order it prevents from bouncing back.
How much is RTO actually costing your store every month?
Get a free audit of your order and delivery flow, and we’ll show you exactly where the leaks, and the fixable orders, are.
