22 May 2026
How to Reduce RTO on Your Shopify Store in India (Below 12 Percent)
RTO is silently eating your D2C margins. Here is a practical playbook to cut return to origin on your Shopify store in India, from buyer confirmation to courier-zone scoring.
RTO, return to origin, is the silent killer of Indian D2C profit. The courier picks up your COD order, drives it 800 km, the buyer refuses delivery, and the package comes back. You pay shipping both ways. The product is now an open-box return. Your margin on that order is gone, and you might be in the red.
The average Shopify store in India has an RTO rate of 25 to 35 percent on COD orders. The best stores keep it under 12 percent. The difference between those two numbers is the difference between a profitable D2C brand and one that quietly burns cash with every sale.
Here is the playbook to bring your RTO down, step by step.
What RTO really costs you
Before the playbook, the math. A typical Indian D2C order on COD looks like this:
- Selling price: Rs 999.
- Forward shipping: Rs 70.
- Reverse shipping (on RTO): Rs 70.
- COD remittance fee: Rs 25 if delivered.
- Product cost: Rs 350.
- Marketing cost per order: Rs 250.
On a delivered order, you make about Rs 304. On an RTO, you lose about Rs 490 (marketing, shipping both ways, no revenue, and now you have a used-product return).
If your RTO rate is 30 percent, then for every 100 orders, 70 deliver and 30 RTO. Net contribution: (70 x 304) minus (30 x 490) = 21,280 minus 14,700 = Rs 6,580 across 100 orders, or Rs 66 per order. Awful.
Bring RTO to 12 percent and the same 100 orders look like: (88 x 304) minus (12 x 490) = 26,752 minus 5,880 = Rs 20,872, or Rs 209 per order. Triple the profit, same ad spend.
Want to see your store's actual number? Plug your monthly COD orders, RTO rate, and cost per RTO into our free RTO loss calculator and get a live answer in 10 seconds.
This is why RTO is the most important thing to fix on most Indian Shopify stores.
Step 1: stop accepting fake orders
A real chunk of RTO is not buyer's remorse. It is fake orders, accidental orders, or orders placed by minors who cannot pay on delivery.
Two changes catch most of them:
- Mobile number OTP at checkout. Send a code to the buyer's number. They must enter it to place the order. This filters out wrong numbers and impulse-clickers.
- Order confirmation within 30 minutes. A WhatsApp or call. If the buyer does not confirm, do not ship.
Apps that do this on Shopify: Confirmly, GoKwik, ShipWay, Razorpay Magic Checkout. Pick one. You will see RTO drop in 30 days.
Step 2: confirm by WhatsApp within 30 minutes
This is the single highest-impact change for most stores. Within 30 minutes of every COD order, send a WhatsApp message like:
"Hi, this is YourBrand confirming your order #1234, one bottle of YourProduct, Rs 999, to pincode 110001. Please reply Y to confirm, or N to cancel."
You will see three things happen:
- About 70 to 80 percent reply Y. These are good orders, ship them.
- About 10 to 15 percent reply N. Better they cancel now than RTO later.
- About 10 to 20 percent do not reply. Call them. Half will confirm, half will go silent. Do not ship the silent ones.
This one process change can cut RTO from 30 percent to 15 percent in two months.
Step 3: ask for a small COD token
A small UPI payment at checkout, typically Rs 20 to Rs 50, on top of the COD order, dramatically improves order quality. Buyers who pay the token commit. Buyers who refuse to pay it were never serious.
A Rs 1 token does not work in practice: payment gateway minimums and per-transaction fees eat the entire amount, and a Rs 1 charge feels strange to the buyer. Rs 20 to Rs 50 is the sweet spot. Small enough that a real buyer pays without hesitation, large enough to filter out fake and impulse orders.
This is what GoKwik, Razorpay Magic, and Simpl pioneered. You can also build it manually with Razorpay's standard checkout.
Buyers who token-confirm RTO at roughly half the rate of buyers who do not. The amount itself does not matter much. The commitment does.
Step 4: score and block bad pincodes
Some pincodes RTO at 5 times the rate of others. This is a courier and demographic reality. There are pincodes in border districts, in some tier 4 areas, and in certain known-fraud localities where COD economics simply do not work.
Build a list of your worst RTO pincodes over the last 90 days. For those pincodes:
- Show prepaid-only at checkout. Hide the COD option.
- Or add a Rs 100 COD handling fee for that pincode.
- Or block them entirely on COD.
You will lose a few orders. You will save a lot more on RTO. The math is almost always in favour of blocking.
Shopify apps that do this: GoKwik, Shipway, Razorpay Magic, Convertway.
Step 5: cut RTO by product
Some products RTO more. Heavy products, fragile products, products with unclear sizing, products that are gifts (the buyer changes their mind), and very expensive products.
For each SKU that RTOs above 20 percent:
- Add a clearer product page (sizing chart, real-world photos, exact dimensions in cm and inches).
- Add buyer questions and answers near the buy button.
- Consider prepaid-only for that SKU.
- Or raise the COD fee for that SKU.
The product page is where RTO is born. A vague product page creates a confused buyer, who refuses the package when it arrives different from what they imagined.
Step 6: pick the right courier per zone
Not every courier is good at every pincode. Delhivery is strong in metros, weaker in some tier 3 zones. Shadowfax is fast in metros, slower elsewhere. India Post is reliable but slow. Bluedart is premium and expensive.
Use a multi-courier shipping app (ShipRocket, Shiprocket X, Pickrr, Easyship) and set rules:
- For premium zones, use a premium courier even if it costs Rs 20 more.
- For known-fraud zones, only use couriers that confirm by call before delivery.
- For tier 3 zones, prefer a courier with a strong local presence over a national brand.
Courier-zone optimisation is boring back-office work. It also reduces RTO by 3 to 5 percentage points on its own.
Step 7: tell the buyer what is happening
A buyer who has placed an order and then hears nothing for 4 days is a buyer who is starting to regret it. Regret turns into "let me just refuse it when it comes".
Reduce regret with proactive updates:
- Order confirmed (within 30 minutes).
- Order shipped (within 24 hours), with tracking and ETA.
- Out for delivery (the morning of delivery).
- Delivered or "delivery attempt failed".
WhatsApp updates work better than SMS for Indian buyers. Use an automation tool (Wati, Interakt, AiSensy) and set it up once.
Step 8: track and learn weekly
You cannot manage what you do not measure. Track every week:
- RTO rate overall. Goal: below 15 percent in 90 days, below 12 percent in 180 days.
- RTO rate by pincode. Block or fee-up the top offenders.
- RTO rate by product. Fix the product page or go prepaid-only.
- RTO rate by courier. Switch couriers for bad pincodes.
- RTO rate by acquisition channel. Some traffic sources bring lower-quality buyers. Meta lookalikes and bargain coupon sites are usual suspects.
Most stores never look at these. The stores that do, win.
What good looks like
A healthy Indian D2C store on COD looks like:
- RTO rate of 10 to 15 percent on COD.
- 80 percent or more of orders confirmed within 30 minutes.
- A Rs 20 to Rs 50 COD token live at checkout.
- A list of 50 to 100 known-fraud pincodes hidden from COD.
- A multi-courier routing setup matching couriers to zones.
- WhatsApp updates at every milestone.
If you are far from this, the good news is every step above is doable in 30 days, on your own, no agency needed.
Where to start
Reading this is one thing. Knowing which of these your store is missing is another. Most owners think they have done step 1 and step 2, but a buyer-side audit shows that COD is buried, OTP is missing, or the confirmation message goes to spam.
MakeMeConvert reads your live store like a buyer would and tells you exactly which RTO and trust signals are broken. Paste your store link, get your score out of 100 in 2 minutes, free.