- $USD
- English (United States)
- Hire an Expert
- Get Support
To verify cash on delivery orders before shipping, confirm that the customer is real and intends to pay before the parcel leaves your warehouse. You can do it by phone call, WhatsApp, SMS or a one-time email code. The most efficient setup verifies only risky orders, such as first-time buyers, guests and high-value orders, automatically at checkout, and holds anything unconfirmed for review.
This guide compares the main verification methods, shows which orders to verify, and walks through an automatic setup in WooCommerce.
Why Verify Before You Ship?
Once a COD parcel is handed to the courier, you have paid for shipping. If the customer refuses it, you pay again to get it back. Verification moves the check to the cheapest point: before anything is packed. A fake order caught at that stage costs you nothing. The same order caught at the door costs shipping both ways, packaging and days of stock in transit.
4 Ways to Verify COD Orders
| Method | How it works | Strengths | Weaknesses |
|---|---|---|---|
| Phone call | Your team calls the customer to confirm the order and address | Very reliable; you can also fix wrong addresses | Slow, costly in staff time, doesn't scale |
| WhatsApp confirmation | A message asks the customer to reply or tap to confirm | Customers in many COD markets check WhatsApp constantly | Usually needs a WhatsApp Business setup and a paid service |
| SMS code | The customer enters a code sent to their phone at checkout | Proves the phone number is real and in their hands | Each SMS has a cost; delivery can be unreliable on some networks |
| Email code | The customer enters a code sent to their email at checkout | No per-message cost; stops bots and throwaway emails | Doesn't prove the phone number; some customers rarely check email |
Many stores combine methods: an automatic check at checkout for every risky order, and a phone call only for the few that still look doubtful.
Which Orders Should You Verify?
Verifying every order adds friction for customers you already trust. Focus on the orders most likely to be refused:
- First-time buyers choosing cash on delivery.
- Guest checkouts, which leave no account history.
- High-value orders above your average basket.
- Deliveries to areas with a high refusal rate in your past orders.
- Orders with warning signs, such as a virtual phone number, a disposable email or an incomplete address.
Returning customers with a good order history can skip verification entirely.
Set Up Automatic COD Verification in WooCommerce
WooCommerce doesn't verify customers on its own. Blacklist and Block Customers and Orders adds email code and reCAPTCHA verification for risky orders, plus a review queue for anything that doesn't pass.
Step 1: Decide who gets verified
Create a rule for the orders you want to check. Use conditions such as guest or registered account, account age, order history, order total and delivery location, together with risk signals like disposable emails and virtual or VoIP phone numbers. In the plugin's cash on delivery protection, you can also choose to ask for an email code instead of removing COD for risky orders.
Step 2: Set up the email code
- Open the plugin's verification settings and choose email code verification.
- Set the code length, the expiry time and the number of tries allowed.
- Choose what happens if the customer doesn't complete the check: hold the order for review, or let it through.
For most COD stores, holding unverified orders is the safer choice. A genuine customer who missed the email can still be confirmed by phone.
Step 3: Skip verification for customers who pass
Customers who pass can be added to your whitelist automatically for a set number of days, so they aren't asked again on their next order. This keeps the check from annoying your repeat buyers.
Step 4: Review held orders
Orders that don't complete verification are held for review instead of shipped. Turn on the admin email notification for held orders under General Settings, so your team knows to check them. For each held order, either call the customer and approve it, or cancel it.
Step 5: Block customers who refuse anyway
Verification stops most fake orders, but not every refusal. Track refused deliveries and set an Automatic Blacklisting threshold, for example two refusals in 90 days, so repeat refusers are blocked by email, phone or IP.
A Simple Phone Call Script
For held orders and high-value COD orders, a short call is still the best check. Keep it to under a minute:
- "Hello, this is [name] from [store]. You placed an order for [product] today. Is that right?"
- "Can I confirm your delivery address: [address]?"
- "The total is [amount], payable in cash on delivery. Will someone be available to receive it on [day]?"
- "Would you like to pay online instead? It's quicker, and [offer, if any]."
If the customer doesn't answer after two attempts, keep the order on hold and send a message asking them to call back. Don't ship until you hear from them.
What About SMS and WhatsApp?
SMS and WhatsApp prove the customer's phone number, which matters for cash on delivery because the courier calls that number. They are popular in Pakistan, India and the Gulf, where most shoppers live on their phones. The trade-offs are cost per message and the setup of an SMS gateway or WhatsApp Business account.
Email codes are a strong first layer because they cost nothing per order and stop bots and throwaway addresses. If phone verification is essential for your store, pair the email check with a phone call for held and high-value orders, or with an SMS or WhatsApp verification tool.
Measure the Results
- Refusal rate on verified orders compared with unverified ones.
- Verification completion rate: if many genuine customers abandon at the code step, shorten the code or extend the expiry time.
- Held orders approved: if your team approves nearly every held order, your rule may be too strict.
For other ways to cut refusals, see how to reduce fake COD orders and how to disable cash on delivery for risky customers.
Frequently Asked Questions
How do I confirm COD orders in WooCommerce?
You can call customers, send a WhatsApp or SMS confirmation, or ask for a one-time email code at checkout. A plugin can verify risky orders automatically and hold unconfirmed ones for review.
Should I verify every cash on delivery order?
No. Verify first-time buyers, guests, high-value orders and deliveries to high-refusal areas. Returning customers with a good history can skip it.
Is email verification enough for COD orders?
It stops bots, throwaway emails and many casual fake orders at no cost. It doesn't confirm the phone number, so pair it with a phone call for held or high-value orders.
What happens if the customer doesn't enter the code?
You choose. The order can be held for review, so your team can confirm it by phone, or let through if you prefer fewer interruptions.
Will verification lower my conversion rate?
A short code step adds a little friction, which is why you should only apply it to risky orders. Customers who pass can be whitelisted so they aren't asked again.
Ship Only the Orders That Will Be Paid For
Every fake COD order you catch before shipping saves you two shipping charges and a week of stuck stock. Blacklist and Block Customers and Orders verifies risky orders with an email code, holds the doubtful ones for review and blocks repeat refusers automatically.

