Cash on delivery is still the payment method most shoppers trust in Pakistan, India, the Gulf, Egypt and much of Africa. It is also the easiest way for someone to place an order they never meant to accept. Every refused parcel costs you shipping both ways, packaging, courier fees and stock that sat on a truck for a week. This guide shows how to stop most fake COD orders in WooCommerce without scaring off real customers.
What a fake COD order really costs
A refused order looks harmless in the dashboard: it just turns into Cancelled or Failed. The real cost sits outside WooCommerce:
- Courier fees both ways. Most couriers charge the delivery attempt and the return, even when nobody pays.
- Stock out of reach. The item is on the road for days while a paying customer could have bought it.
- Packaging and staff time. Picking, packing, booking the courier and processing the return.
- Damaged returns. Some parcels come back opened, used or broken.
If one order in ten is refused, those costs can wipe out the margin on the other nine. The goal is not to remove cash on delivery. It is to make sure the person ordering is real and means it.
Where fake orders come from
Fake COD orders usually fall into a few groups, and each needs a slightly different fix:
- Pranks and typos: a wrong phone number, a made-up address, or a friend’s details entered for fun.
- Impulse buyers: real people who change their mind before the courier arrives.
- Repeat offenders: the same phone number refusing parcel after parcel, sometimes from different stores.
- Competitors and bots: bulk orders placed to tie up your stock or courier budget.
7 ways to stop fake COD orders
1. Verify the buyer with a one time code
The single most effective step is asking for a short code before a COD order can be placed. When the shopper picks cash on delivery, a code is sent to their email or phone and has to be entered at checkout. Fake numbers and made-up emails never receive it, so the order simply cannot be placed.
Two details matter. The check has to run on the server, otherwise a visitor can remove the code box from the page and still order. And codes need limits: expiry, a cap on wrong tries and a wait before resending, so nobody can use your checkout to spam inboxes.
2. Let trusted customers skip the check
Your regular customers should not jump through hoops. Buyers who already have a completed order, and phone numbers or emails on an allow list, can skip the code. Verification then only touches new and unknown buyers, which is exactly where fake orders come from.
3. Block repeat offenders by phone, email and IP
Keep a block list of phone numbers, emails, whole email domains and IP addresses that refused parcels before. Phone numbers are the strongest signal, but only if they are matched however they are written: 0300 1234567, 03001234567 and +92 300 1234567 are the same person. You then choose what blocked buyers see: either cash on delivery disappears and they can still pay online, or checkout is blocked completely.
4. Limit how many COD orders one phone can place
Real customers rarely place five cash orders in a day. A daily limit per phone number stops bulk fake orders and accidental duplicates without affecting normal buyers.
5. Cap cash on delivery by order value
The bigger the cart, the more a refusal hurts. Hide cash on delivery above an order total you are comfortable with, and show a short message such as “Orders above this amount are paid online”. Some stores also hide COD below a minimum, where the courier fee is larger than the profit.
6. Confirm the order before you ship it
Many stores already call each buyer to confirm. That works, but it does not scale. A confirmation message by SMS or WhatsApp with Confirm and Cancel links does the same job automatically: confirmed orders move on, cancelled ones never leave the warehouse. A delivery confirmation link, where the buyer checks the address and picks a delivery time, also cuts refusals caused by “I was not home”.
7. Ask risky buyers for a small advance
For new buyers with big carts, or buyers who refused before, a partial advance paid online changes everything. Someone who has paid even a small part of the order almost always accepts the parcel, and the courier collects only the rest. Use the online payment methods you already have.
Keep real customers happy
Every extra step at checkout costs some conversions, so add friction only where it pays off:
- Verify only cash on delivery, never card or wallet payments.
- Skip verification for returning buyers and your allow list.
- Put the code box right above the Place order button, with one clear Send code button.
- Send codes by WhatsApp or SMS where that is how your customers talk, with email as a fallback.
- Explain why: a line like “We confirm cash orders to keep prices low” turns friction into trust.
Measure what you save
Track a few numbers every month: COD orders placed, orders verified, orders refused, and courier fees spent on refusals. Mark each order as Verified, Trusted buyer or Not verified so you can see which group refuses parcels. After a month you will know whether to tighten the rules or relax them.
Set it up in WooCommerce
COD Verification and Fake Order Blocker for WooCommerce does all of the above. The free version covers the essentials:
- An email code for protected payment methods, checked on the server, in both the classic checkout and the Checkout block.
- Returning buyers and an allow list skip the code.
- A block list for phones, emails, domains and IP ranges, with phone numbers matched in any format, and a one click Block buyer button on the order screen.
- COD limits per phone and by order total, plus phone format checks for many countries.
- Verified badges on the orders list and a log of blocked checkouts.
The Pro add-on adds SMS and WhatsApp codes (Twilio, WhatsApp Cloud API, MSG91, Fast2SMS or any HTTP SMS provider), order and delivery confirmation links, a risk score per buyer, holding risky orders for review, advance payments, auto blocking after refusals and monthly reports with estimated courier fees saved.
Frequently asked questions
Will verification lower my conversion rate?
A little, for new COD buyers only, and those are the orders most likely to be refused. Because returning buyers skip the code, most stores see fewer orders placed but more orders delivered and paid.
Should I use email, SMS or WhatsApp codes?
Use the channel your customers read. Email is free and works everywhere. In markets where shoppers rarely check email, WhatsApp or SMS codes get through faster, with email as a fallback.
Can a buyer skip the code by editing the page?
Not if the check runs on the server when the order is placed, which is how it should be built. Hiding the box in the browser does not help, because the order is refused without a valid code.



