E-commerce

How to Stop Fake COD Orders in WooCommerce

How to Stop Fake COD Orders in WooCommerce

Cash on Delivery is still how many customers prefer to pay, especially in Pakistan, India, Bangladesh and the Gulf. It also has a cost every store owner knows: orders placed with fake numbers, prank orders, and parcels refused at the door. Each one means a courier fee, packing time, and stock stuck on the road for days.

You cannot remove the risk completely without removing COD, and that would cost you honest customers. What you can do is make fake orders harder to place and easier to spot. This guide covers the practical ways to stop fake COD orders in WooCommerce, from free manual steps to rules that run automatically.

Why Fake COD Orders Happen

  • Made-up phone numbers that cannot be reached for confirmation
  • Impulse buyers who change their mind before delivery
  • Repeat refusers who order again under a slightly different number or email
  • Pranks and competitors placing orders they never intend to accept
  • Large or unusual orders that are far above what a normal customer buys

Each of these leaves a pattern in the order data, which is why simple rules catch a lot of them.

1. Check the Phone Number Properly

The phone number is the most important field on a COD order, because it is how you confirm and how the courier reaches the customer. Make sure it is a real mobile number for your country, not just "any 11 digits". Catch obvious fakes such as repeated digits, and compare numbers however they are typed: 0300-1234567 and +92 300 1234567 are the same customer.

2. Keep a Blocklist, and Make It Hard to Dodge

When a customer refuses a parcel without a good reason, record their phone, email and address. A useful blocklist matches the same customer even when details are typed differently: phone numbers with or without the country code, and Gmail addresses with dots or +tags added. Blocking by IP address and postcode helps with repeat offenders too.

3. Limit Repeat Orders in a Short Time

Several COD orders from the same phone, email or IP address within a few hours is rarely an honest customer. Set a limit and hold anything above it for a manual check.

4. Make COD Conditional

You do not have to offer COD to everyone, on everything. Common rules are:

  • Offer COD only below a certain order total, and require online payment above it
  • Offer COD only in cities or postcodes your courier covers reliably
  • Offer COD to returning customers who have already completed orders

Customers who cannot use COD can still pay online, so you keep the sale while removing the riskiest orders.

5. Confirm Before You Ship

A short confirmation call or WhatsApp message before dispatch catches many orders that would have been refused. It costs time, so use it on flagged or high-value orders rather than every order. Put flagged orders on hold until they are confirmed.

6. Choose What Happens: Flag, Refuse COD, or Block

Not every suspicious order should be cancelled. A good setup lets you choose per rule:

ActionWhat the customer seesUse it for
Flag and holdThe order goes through and waits for your checkRules that can catch honest buyers
Refuse CODCOD disappears; other payment methods still workLarge orders, risky areas, new customers
BlockThe order cannot be placedKnown repeat refusers and obvious fakes

Always keep a whitelist for trusted customers, and try new rules in a test mode that only logs what would have happened.

Doing It Automatically in WooCommerce

You can do all of the above by hand, but it gets slow as orders grow. Store owners often paste custom code for single checks; a plugin keeps them together and visible on each order.

We are building MatrixInn Order Guard for COD, a free WooCommerce plugin that does exactly this on your own site, with no SMS service and no API key. It checks phone numbers against the mobile formats of Pakistan, India, Bangladesh and the Gulf countries, keeps a blocklist that matches numbers and Gmail addresses however they are typed, flags the next COD order from customers whose parcel was refused, limits repeat orders, and lets you make COD conditional on city, postcode, order total or past orders. Each rule can flag, refuse COD or block, with a whitelist and a test mode. It is launching on WordPress.org soon; the plugin page has the details and a way to get notified.

Frequently Asked Questions

Can I stop fake COD orders without an OTP or SMS service?

Yes. Phone format checks, blocklists, repeat-order limits and conditional COD all run on your own order data, with no SMS cost.

Will these rules block honest customers?

They can if they are too strict. Start risky rules as "flag" so the order is only held for a check, use test mode first, and whitelist good customers.

Should I stop offering Cash on Delivery?

Usually not. Many customers only buy with COD. It is better to limit COD where the risk is highest and keep it for everyone else.

Running a store on Shopify instead? See our Shopify app development, or tell us what your store needs.

M
Published by
MatrixInn Solutions · Software house

MatrixInn Solutions is a software house building mobile apps, SaaS products, AI automation, Shopify apps and browser extensions. Posts on this blog are drafted with AI assistance and draw on what we learn from building and shipping our own products. Spotted a mistake? Email contact@matrixinnsolutions.com. About the founder →

Work with us

Got a project in mind?

We build mobile apps, SaaS products, and AI solutions. Let's talk.

Start a project →