A fake COD order costs you twice: the forward shipping when you send it, and the return shipping when it comes back undelivered. On Shopify in India, where cash on delivery is how a large share of shoppers pay, you can't just switch COD off. You need to catch the fake ones before they leave your warehouse.
This guide breaks “fake” into the four kinds you actually see, shows which defence catches which, and gives you a hold-until-confirmed workflow on Shopify.
Shipway reported an RTO rate of 26% on COD orders against under 2% on prepaid in FY2025 (via Mediabrief), and ET Prime Research put COD at 60–65% of Indian ecommerce orders in 2024 (as cited by Dazeinfo). No independent study measures how many of those returns are fake orders specifically, so treat any single “fake order rate” you read as a vendor estimate. What every source agrees on is the direction: COD orders come back far more often, and the cheapest return is the one you never ship. More figures, each sourced, are on our COD & RTO benchmarks page.
The Four Kinds of Fake COD Order
“Fake order” covers four different problems. Each one slips past a different check, which is why one defence alone never stops all of them.
1. Fake number
The phone number doesn't work or belongs to someone else: a typo, a made-up number, or a prank. The courier can't reach anyone, and the parcel comes back.
2. Fake intent
The number is real, but the buyer never meant to accept the parcel: an impulse tap on a social ad, a prank on a friend, someone testing your checkout. This is the hardest kind to spot from order data, because everything about the order looks normal.
3. Duplicate order
The same customer orders twice by accident (a double tap, a retried payment, an order placed again because the first “didn't go through”) and will accept only one parcel.
4. Wrong or incomplete address
The order is real but undeliverable as typed: a missing flat number, a wrong pincode, no landmark. It isn't fake in intent, but it behaves exactly like a fake order: shipped, failed, returned.
Checkout checks are good at fake numbers. Only a conversation reliably catches fake intent, duplicates and bad addresses, because you have to ask the customer.
Which Defence Catches Which Kind of Fake
| Defence | Fake number | Fake intent | Duplicate | Bad address |
|---|---|---|---|---|
| OTP at checkout | Yes | No | No | No |
| Address validation at checkout | No | No | No | Partly (format, pincode) |
| Pincode / phone COD blocklist | Repeat offenders | Repeat offenders | No | Unserviceable pincodes |
| WhatsApp confirmation | If nobody replies | Only if they reply “no” | Rarely | Rarely |
| Voice confirmation call | Yes (nobody real answers) | Yes | Yes | Yes (read back) |
| Partial prepaid (token amount) | Yes | Mostly | Partly | No |
Partial prepaid is effective but costs conversions: some genuine COD buyers won't pay anything upfront. A confirmation call keeps COD fully open and still catches all four kinds, because the customer has to say, in their own words, that the order is theirs and where it should go.
What a Confirmation Call Catches That a Tap Can't
- “I never placed this order.” On a WhatsApp message this is silence. On a call it's an explicit answer. Callfox's agent asks once (“Toh kya main ise cancel kar doon?”) and files the order as cancelled, not as a wrong number, so it never ships.
- “Galti se do baar ho gaya.” A duplicate is obvious the moment the customer hears the order read out.
- A wrong address. The agent reads a new address back as a question (“Naya address: Flat 302, Sector 16, Gurugram — sahi hai?”). A confirmed order with a change is held for your team instead of shipping to the old address.
- Someone else answers. That's a real wrong number, kept separate from a disowned order.
The exact words matter. Our COD confirmation call script in Hindi & Hinglish has the full script with a reply for every answer.
A Hold-Until-Confirmed Workflow on Shopify
- Tag every new COD order as pending. Your team packs only orders tagged confirmed.
- Confirm within minutes of the order. Intent is highest right after checkout; a call the next day reaches a customer who has already forgotten.
- Write the outcome back as a tag. With Callfox that's
callfox:confirmedorcallfox:cancelledon the Shopify order, andcallfox:needs-reviewwhen something needs a person, such as an address change. - Retry the unreachable, then decide. A couple of calls at different times; if still unreached, hold or move them to prepaid rather than shipping blind.
- Feed refusals into your blocklist. A number or pincode that keeps refusing gets prepaid-only next time.
Blocklist Hygiene
- Block by evidence, not by guess. Add a number after repeated refusals, not after one missed call; people change their minds once.
- Prefer “prepaid only” to “blocked”. A genuine customer on a bad day can still buy.
- Review pincode blocks. Courier serviceability changes; a pincode blocked last year may be fine now.
- Keep the reason. “Refused 3 COD parcels” is a reason your team can trust; an unexplained block gets removed.
What Not to Do
- Don't turn COD off entirely. You lose the many genuine buyers who only pay on delivery, especially outside the metros.
- Don't rely on one layer. An OTP alone leaves fake intent, duplicates and bad addresses untouched.
- Don't ship while confirming. If the order leaves before the answer comes back, the confirmation saves nothing.
To put a number on what fake and failed COD orders cost your brand, try the RTO calculator. For a side-by-side of the tools that do this on Shopify, see the best COD confirmation apps for Shopify India.
Frequently Asked Questions
How do I stop fake COD orders on Shopify?
Hold every COD order until it is confirmed, and confirm it by talking to the customer before you ship: is the order real, is it a duplicate, is the address complete. Add a COD blocklist for numbers and pincodes that keep refusing, and an OTP at checkout to stop fake numbers. Tag the outcome in Shopify so only confirmed orders get packed.
Does an OTP at checkout stop fake COD orders?
It stops fake and mistyped phone numbers, because the buyer has to receive the code. It does not stop a real number with no intent to buy, a duplicate order, or a wrong address. It is one layer, not the whole fix.
Is WhatsApp confirmation enough for COD orders?
It helps when the buyer replies, but a button tap tells you little: it doesn't catch a wrong address, and many buyers never reply at all. A call catches what a tap can't, such as a duplicate order or a customer who says they never placed it.
What should I do when a customer says they never placed the order?
Ask once whether they want it cancelled, then cancel it and don't ship. Callfox does exactly this: when the customer says “maine ye order kiya hi nahi”, the agent asks “Toh kya main ise cancel kar doon?” and files it as cancelled, not as a wrong number, so it never leaves your warehouse.
Should I turn COD off to stop fake orders?
Usually not. COD is still how a large share of Indian shoppers pay, so turning it off loses genuine buyers along with the fake ones. Filter and confirm COD orders instead, and move repeat refusers to prepaid.
Callfox calls every COD order before it ships.
In Hindi, Hinglish and English, with the outcome tagged on the Shopify order. ₹6.40–6.87 per started minute of answered call; unanswered calls are free. Free to install, with 30 free minutes to try it on your own orders.