Key takeaways
- Send a confirmation message 5-15 minutes after every COD order with Confirm, Cancel, and Pay Online buttons.
- Confirmed orders ship. Silent orders get one nudge, then auto-cancel after 12-24 hours instead of turning into RTOs.
- The Pay Online button quietly converts a slice of COD to prepaid โ every one that flips is an RTO you can't have.
- Confirmation doubles as address verification: reply with the shipping address and ask 'sahi hai?' before the parcel moves.
- Fake and impulse orders drop out on their own because a real buyer taps a button and a fake one never opens the chat.
Why COD orders come back
Ask any D2C operator running COD in India what kills their margins and you'll hear the same word: RTO. Return to origin. The parcel goes out, travels 900 km on Delhivery or XpressBees, sits at a tier-3 hub, the customer doesn't pick up, and it comes back. You pay forward shipping, reverse shipping, and you've locked up inventory for a week for zero revenue.
Here's the part people miss. A large share of RTO isn't a delivery problem โ it's an intent problem. The order was placed on impulse at 11pm, or the customer ordered the same kurta from three stores to compare, or someone typed a fake number, or the address was half-written. None of that shows up until the parcel is already in transit. By then it's too late and expensive.
A WhatsApp confirmation sequence catches the weak orders before they cost you shipping. It's not fancy. It's a message, three buttons, and a timer.
The core idea: confirm before you ship
The moment a COD order lands, you send a WhatsApp message asking the customer to confirm. Three responses are possible: they confirm, they cancel, or they go silent. Each one tells you exactly what to do.
- Confirmed โ move it to fulfilment, ship with confidence.
- Cancelled โ you just saved two-way shipping on a dead order.
- Silent โ nudge once, then auto-cancel. A buyer who won't tap a button in 24 hours is your highest-RTO segment.
This works because tapping a button costs the customer almost nothing, and a real buyer will do it. A fake order, a bot, or a wrong number never opens the chat. The sequence sorts serious from not-serious for free.
The confirmation message that works
Keep it short, branded, and human. Lead with the order, show what they're getting, and make the buttons obvious. Here's copy that reads well in the Indian context, mixing English and Hindi the way your customer actually texts:
Hi Rohan ๐ Thanks for your order #1043 from Bhakti Leela. Order: 1x Cotton Kurta (M), โน899 COD. Please confirm so we can ship it today.
Below that, three quick-reply or interactive buttons: โ Confirm Order ยท โ Cancel ยท ๐ณ Pay Online (save โน40).
A few things I've learned the hard way about this copy. Put the amount in the message โ people forget what a COD order costs and freeze at the door. Name the product so they remember what it was. And the 'Pay Online' button should carry a small carrot (a โน30-50 discount or free shipping), because every COD you flip to prepaid is an RTO that literally cannot happen. If you want the full case for prepaid nudges, our note on prepaid incentives that work breaks down what sizes of discount move the needle.
Timing: when to send and when to give up
Timing decides whether this works or annoys people. Too fast and it feels robotic before the order confirmation email even lands. Too slow and the impulse buyer has already moved on. Here's the schedule I run:
| Step | When | What happens |
|---|---|---|
| Confirmation message | 5-15 min after order | Send the main message with all three buttons |
| Reminder 1 | 4-6 hours later | 'Still want this? Tap Confirm and we ship today' โ only if no response |
| Reminder 2 | Next morning, ~10 am | Final nudge + Pay Online offer, respecting quiet hours |
| Auto-cancel | 12-24 hours after order | Silent orders cancelled automatically, inventory released |
The 5-15 minute delay matters. Sending instantly, before Shopify's own order email arrives, makes it feel like a bot pounced. A few minutes later it reads like a real store confirming a real order. For high-value orders (say above โน2,000) I stretch the auto-cancel window to 24 hours and add a call step โ sometimes a quick WhatsApp call closes a hesitant buyer that three texts couldn't.
The auto-cancel rule that saves the most money
This is the step most stores skip, and it's the one with the biggest payoff. If an order isn't confirmed within your window, cancel it automatically instead of shipping it hopefully.
- Set a window โ 12 hours for low-ticket, up to 24 for high-value or tier-2/3 pincodes where people check WhatsApp less often.
- Send reminder 1 and reminder 2 inside that window at the times above.
- If still no confirmation and no cancel, mark the order cancelled and release the stock.
- Send a soft closer: 'We've held your order but haven't heard back โ reply CONFIRM anytime and we'll ship it.' Keeps the door open without you paying shipping.
Shipping an unconfirmed order to a silent customer is a bet, and the odds are bad. Cancel it. If they were serious they'll write back the second they see 'cancelled', and now you have a confirmed order instead of a coin flip.
Confirmation as address verification
The confirmation step is the perfect moment to double-check the address, because bad addresses are a top RTO and NDR cause. When someone taps Confirm, fire a follow-up that echoes their shipping address back:
Great, confirming order #1043 to: Rohan Sharma, H.No 214, Gandhi Nagar, near water tank, Fatehpur, UP 212601, 98xxxxxxxx. Sahi hai? Reply YES or send the correction.
You'd be surprised how many people reply with a missing landmark, a corrected pincode, or 'ye purana address hai, naya bhej raha hoon'. Catching that here โ before the parcel moves โ is worth more than any courier's address-quality API, because it's the customer telling you directly. If short and vague addresses are a recurring headache for you, pair this with the tactics in our NDR management guide.
How this weeds out fake orders
Fake and junk orders share one trait: nobody's really on the other end. A malicious competitor placing dummy COD orders, a kid testing your checkout, a mistyped number โ none of them will open the WhatsApp thread and tap Confirm. The sequence filters them out with zero manual review.
- Wrong or fake number โ message never delivers or never gets read. Auto-cancel handles it.
- Impulse/regret order โ they see the amount, don't confirm, silently drop. You saved shipping.
- Serious buyer โ taps Confirm in minutes, often fixes their own address in the process.
Layer this on top of a proper COD verification setup and RTO risk scoring, and the highest-risk orders get held or pushed toward prepaid automatically. The confirmation sequence is the human-facing front end; the risk model is the quiet backstop.
What good numbers look like
Set expectations realistically. A well-run confirmation flow typically confirms 55-70% of COD orders within a few hours, flips 5-12% to prepaid via the Pay Online button, and auto-cancels 8-15% that would otherwise have shipped and bounced. Your RTO rate drops because the parcels going out are the ones people actually want.
Two caveats. First, this needs a real WhatsApp Business API number with approved utility templates โ you can't blast these from a personal app at scale. Second, don't over-message. One confirmation and two reminders is the ceiling. Beyond that you're training customers to mute you, and a muted store can't confirm anything.
Turn your COD orders into confirmed orders
Kwikfy runs the whole confirmation sequence for you โ auto-send after every COD order, Confirm/Cancel/Pay-Online buttons, address check, and auto-cancel on silence โ wired straight into Shopify.
Start Free โStart small, then automate
You can run version one manually tomorrow: watch new COD orders, send the confirmation text yourself, cancel the silent ones by evening. Do it for a week and you'll feel the RTO drop. Then automate it so it fires on every order without you watching the dashboard โ that's when it actually scales past 20 orders a day. The full end-to-end flow is covered in our WhatsApp order automation flow walkthrough.