How to Reduce COD RTO on Shopify: 8 Fixes for Indian Stores | WALoops
WALoops

How to Reduce COD RTO on Shopify: 8 Fixes for Indian Stores

Returned COD parcels eat your margin twice. Eight practical fixes, from OTP at checkout to WhatsApp order confirmation and partial COD, in the order most stores should add them.

WALoops team calendar_month schedule5 min read
In this guide
  1. Why COD orders come back
  2. 1. Verify the phone number with an OTP
  3. 2. Set COD rules
  4. 3. Add a small COD fee
  5. 4. Confirm every COD order on WhatsApp before you ship
  6. 5. Offer a discount for paying online
  7. 6. Use partial COD for risky orders
  8. 7. Send a pay-online link after a COD order
  9. 8. Keep the buyer informed until delivery
  10. How to measure it
  11. Doing this on Shopify
The short version
  • Most COD returns (RTO, return to origin) come from orders that were never serious, wrong numbers and bad addresses, or buyers who changed their mind before delivery.
  • Fix it in layers: check the buyer before the order is placed, confirm the order before you ship, and give buyers a reason to pay online.
  • Start with free fixes (phone OTP, COD rules, a COD fee). Add WhatsApp order confirmation next. It is the single step that stops most bad orders before they cost you shipping.

Cash on delivery is still how a large share of Indian shoppers want to pay, so switching it off is rarely an option. But every COD parcel that comes back costs you twice: you pay the forward shipping and the return shipping, and the stock is stuck in transit for a week or more. On low-priced products, one RTO can wipe out the profit from several good orders.

This guide lists eight fixes in the order most Shopify stores should add them, starting with the cheapest.

Why COD orders come back

Before fixing RTO, it helps to know which kind you have. Look at your last 100 returned COD orders and sort them into these groups:

CauseWhat it looks likeBest fix
Fake or joke ordersWrong or unreachable phone number, made-up namesPhone OTP at checkout
Impulse ordersBuyer ordered on a whim and refuses at the doorWhatsApp order confirmation, partial COD
Address problemsCourier can't find the address or the buyerPIN code autofill, confirmation with the address shown
Serial refusersSame phone number or area returns again and againCOD rules by phone and PIN code
Delivery delaysBuyer bought elsewhere while waitingFaster dispatch, delivery updates on WhatsApp

Your courier's NDR (non-delivery report) reasons help here, but take them with a pinch of salt: "customer not available" often means "customer did not want it".

1. Verify the phone number with an OTP

Ask COD buyers to confirm their phone number with a one-time password before the order is placed. It takes a few seconds for a real buyer, and it stops orders with fake or mistyped numbers, which are the easiest RTOs to prevent.

WhatsApp OTP works well for Indian shoppers because most already have WhatsApp open, and you don't need the DLT registration that SMS needs. See WhatsApp OTP vs SMS OTP for the full comparison.

2. Set COD rules

You don't have to offer COD to everyone. Common rules:

  • Cart value limits. Hide COD above a value where a refusal would hurt too much, or below one where shipping costs more than the margin.
  • PIN code rules. Turn COD off for PIN codes where your courier data shows high refusal rates.
  • Phone number block list. Numbers that refused before should see prepaid options only.
  • Product rules. Keep COD off for items that are easy to order on impulse and expensive to return, like large or fragile products.
TipDon't hide COD without saying why. Show a short line like "Cash on delivery isn't available for this order, pay online and get free shipping" so the buyer has a reason to continue.

3. Add a small COD fee

A fee of ₹29 to ₹79 on COD orders does two things: it covers part of the cost of the returns you still get, and it nudges buyers who don't mind paying online to do so. Keep it small and visible, not a surprise at the last step, or it becomes a reason to abandon.

4. Confirm every COD order on WhatsApp before you ship

This is the fix with the biggest effect for most stores. As soon as a COD order comes in, the buyer gets a WhatsApp message with the order summary and delivery address, and two buttons:

Hi Priya, thanks for your order #1042 of ₹1,299 (Cash on Delivery). Delivery to: 14 MG Road, Pune 411001 Please confirm so we can ship it.✓ Confirm order  ·  ✗ Cancel order

What happens next:

  • Confirm: the order is tagged as confirmed in Shopify and goes to packing.
  • Cancel: the order is cancelled in Shopify before any shipping cost is spent.
  • No reply: hold it and call, or cancel it after a set time. Orders that never get confirmed are the ones most likely to come back.

The buyer also sees their address, so wrong addresses get corrected before dispatch instead of at the courier's door. This is a utility message in Meta's terms (it confirms an order the buyer placed), so it is billed at the lower utility rate, as long as it doesn't include promotional wording.

5. Offer a discount for paying online

A prepaid discount turns part of your COD traffic into prepaid orders, which can't be refused at the door. Keep the maths simple: if an RTO costs you ₹150 in shipping both ways and one in five COD orders comes back, each COD order carries about ₹30 of expected RTO cost. A prepaid discount up to that amount pays for itself. Our COD to prepaid guide goes through more ways to do this.

6. Use partial COD for risky orders

Partial COD asks the buyer to pay a small part online, like ₹99 or 10%, and the rest on delivery. Someone who has paid something is far less likely to refuse the parcel, and the amount covers part of the return if they do. It works well as the only COD option on high-value carts or risky PIN codes.

Some COD buyers would happily pay online; they chose COD out of habit. A WhatsApp message after the order with a payment link, sometimes with a small incentive, converts part of them to prepaid before you ship. It takes nothing from buyers who ignore it.

8. Keep the buyer informed until delivery

Long silences between order and delivery give buyers time to change their mind. Shipping and out-for-delivery messages on WhatsApp keep the order front of mind, and make it much more likely the buyer is home, with cash, when the courier arrives.

How to measure it

Track these every week, split by COD and prepaid:

  • RTO rate: returned orders ÷ shipped orders.
  • Prepaid share: prepaid orders ÷ all orders.
  • Confirmation rate: confirmed COD orders ÷ COD orders placed. A falling rate is an early warning of bad traffic, often from one ad campaign.
  • Cost per delivered order: the number that actually matters. A fix that lowers RTO but also cuts orders too much isn't a win.

Add one fix at a time and give it two weeks, so you can see what each one does.

Doing this on Shopify

Our Shopify app, WALoops COD Checkout & Sales, covers every step above in one place. The free plan includes the one-panel COD checkout with WhatsApp OTP, COD rules by cart value, PIN code and phone, a COD fee, partial payment for 30 orders a month and WhatsApp order confirmation. The Starter plan ($9.99/month) adds WhatsApp COD verification with Confirm and Cancel, the prepaid discount and the COD-to-prepaid message.

Put this into practice
WALoops COD Checkout & Sales for Shopify

Questions people ask

What is RTO in e-commerce? expand_more
RTO means return to origin: a parcel that could not be delivered, usually because the buyer refused it or could not be reached, and was sent back to the seller. For COD orders the seller pays shipping both ways and gets no payment.
Should I turn off COD to stop RTO? expand_more
Usually not. Many Indian shoppers only buy with COD, so turning it off cuts orders. It works better to limit COD with rules, confirm COD orders before shipping, and reward buyers who pay online.
Is a WhatsApp COD confirmation message charged as marketing? expand_more
It shouldn't be. A message that confirms an order the buyer placed is a utility message, billed at Meta's lower utility rate, as long as it has no promotional content like discounts or product suggestions.
How long should I wait for a COD confirmation? expand_more
Many stores wait a few hours, then call or send one reminder, and cancel if there is still no reply by the next dispatch cut-off. Shipping an unconfirmed order is the riskiest option.

Keep reading

Join 500+ D2C Brands on WAloops

Run WhatsApp for your store without the markup

Official WhatsApp Business API, Meta's own message rates, an AI agent and Shopify COD tools in one place.

✓ No credit card required   ✓ 7-day free trial   ✓ Cancel anytime