Short answer
Confirm every cash-on-delivery order before it ships, and do it fast, ideally while the customer still remembers buying. A phone call is the strongest check and the best way to catch a wrong address. WhatsApp is the cheapest channel that still gets a real two-way reply, in markets where people use it. SMS works as a reminder and a fallback, not as proof that someone will pay at the door. In the COD operations I run, a fast confirmation step, together with address checks and delivery messages, moved parcel acceptance from 65–70% to 75–80% over about 100,000 orders.
What COD order confirmation is (and why the email doesn’t count)
Every store sends an order confirmation email. That email tells the customer you received the order. COD order confirmation is the opposite direction: the customer tells you the order is real, the address is right, and they will pay when the parcel arrives.
With card payments you don’t need this step, because the money is already captured. With cash on delivery nothing is paid until the courier hands the parcel over. Until then, the order is a promise. Some promises are impulse clicks from an ad, some are typos, some are duplicates, and a few are fake. Each one you ship and get back costs you outbound shipping, often return shipping, and the time the stock spends travelling instead of being sold.
That is why COD sellers talk about COD order verification: a short check between “order placed” and “order shipped”. Done well, it filters out orders that would never be paid and fixes the ones that would have failed for a silly reason, like a missing house number.
Call, SMS or WhatsApp: how the channels compare
There is no single best channel. Each one does a different job, and the right mix depends on the country, the product and your volume.
| Channel | Good at | Weak at | How I use it |
|---|---|---|---|
| Phone call | Real commitment, reading back the address, catching doubts and upsell chances | Cost per order, agent hours, customers who don’t pick up unknown numbers | Main check for most orders, and always for anything unclear |
| Cheap two-way reply, buttons, the customer answers when it suits them | Not everyone has it, template rules, a reply can be a click without much thought | First touch in markets where people use it daily, then a call if there’s no answer | |
| SMS | Reaches every phone, good for reminders and delivery notices | One-way in practice, few customers reply, easy to ignore | Reminder, fallback and shipping updates, not the confirmation itself |
| Form or link | Lets the customer fix the address themselves | Extra effort for the customer, low completion if used alone | Attached to a message when the address needs correcting |
Phone calls
A call is still the best way to hear whether someone really wants the product. The agent reads back the name, the product, the total in the local currency and the full address. Hesitation comes out in the conversation, and a customer who says “actually, I ordered by mistake” costs you a cancelled order instead of a returned parcel. The downside is cost and capacity: you pay for agent time on every attempt, including the ones nobody answers, and you need people who speak the customer’s language.
WhatsApp COD order confirmation
WhatsApp works well where it is the default messaging app. You send a template message with the order details and two buttons, “Confirm” and “Change or cancel”, and the customer answers when they can. Keep two things in mind. First, business messages go through Meta’s WhatsApp Business Platform, which charges per delivered message, by message category and by the recipient’s country. Check the current rate card for your markets before you build your costs on it. Second, a button click is a lighter commitment than a spoken “yes”. I treat it as a confirmation, but I still call when the address looks wrong or the order looks unusual.
SMS
SMS reaches everyone, which makes it the right tool for the messages that follow confirmation: “your order is confirmed”, “it has shipped”, “the courier comes tomorrow”. As a confirmation channel on its own it is weak, because few people reply to a text from a number they don’t know.
What moved acceptance from 65–70% to 75–80%
Here is what I can say from the operations I run: five stores, ten countries, around 100,000 orders in twelve months. Before the back office was rebuilt, acceptance (parcels the customer actually paid for at the door) was stuck at 65–70%. Roughly one parcel in three came back. Twelve months later it holds at 75–80% across stores and countries. The full story is in the case study.
Confirmation was the step that moved it most, but it did not work alone. What changed:
- Speed. Customers are contacted soon after ordering, while the purchase is still fresh. A customer reached the next day has often cooled off or forgotten.
- One queue for every store. Orders from all five stores land in one list with their confirmation state, so nothing waits in a store dashboard nobody opened. The call-center works from that same screen.
- Several ways to say yes. The customer can confirm by call, by message or through a form, so a missed call doesn’t mean a lost order.
- Address and phone checked during confirmation. The street and phone number are checked and corrected before shipping, not discovered wrong by the courier.
- Nothing ships unconfirmed. Orders that can’t be reached are not sent “just in case”.
- Follow-up in the customer’s language. After confirming, the customer hears when the order is prepared, shipped and out for delivery, so they are expecting it.
I can’t split the gain cleanly between these pieces, because they were rolled out as one pipeline. If you are starting from nothing, start with fast confirmation and the address check: they stop the most expensive mistakes before a parcel leaves the warehouse.
How to verify a COD order: a call that actually works
A good confirmation call is short and always covers the same points. This is the checklist I give agents:
- Who: confirm you are speaking to the person who ordered.
- What: product, variant and quantity, read back in plain words.
- How much: the total to pay at the door, in the local currency, shipping included. A price surprise at the door is a refusal.
- Where: the full address, read back slowly: street, number, flat, postcode, town. Ask for a landmark or entrance code if it helps the courier.
- When: the expected delivery window, and whether someone will be there to pay.
- Outcome: confirmed, changed, cancelled or not reached, recorded on the order so the next step happens automatically.
Give agents permission to cancel. An honest “no” on the phone is far cheaper than a polite “yes” that turns into a refused parcel.
COD order confirmation on Shopify
Shopify treats cash on delivery as a manual payment method. Its help center says such orders are marked as unpaid, and you mark them as paid yourself once the money arrives. What Shopify does not give you is a confirmation step between the order and fulfilment. You have to add one:
- Hold fulfilment until the order is confirmed, so nothing reaches the warehouse or carrier by default.
- Record the outcome on the order (a tag or a status such as confirmed, to call back, cancelled) so you can filter and report on it.
- Send confirmed orders on to the warehouse or carrier automatically, and cancel the rest cleanly.
- Mark orders as paid from the carrier settlement, not from the delivery status, so your books match the cash you actually received.
With one store, an app and a few tags can be enough. With several stores and countries, the work becomes keeping one queue, one set of statuses and one set of numbers across all of them. That is what COD Manager does for the operators I work with, and what I build as part of custom back-office automation.
Mistakes that waste the confirmation step
- Calling the next day. Every hour between the order and the first contact gives the customer time to change their mind.
- Confirming without reading back the address. “Yes, I want it” does not fix a missing flat number.
- Shipping unreachable orders by default. If you could not reach the customer before shipping, the courier usually can’t either.
- One script for every country. Language, currency, delivery habits and the preferred channel all change at the border.
- Not measuring it. Track confirmation rate and acceptance per country, per store and per agent. Confirming 90% of orders means nothing if a third of them still come back.
Frequently Asked Questions
What is COD order verification?
It is a short check between the order and the shipment. The seller contacts the customer to confirm they placed the order, agree with the product and the total to pay at the door, and gave the right address and phone number. Orders that can’t be confirmed are held or cancelled instead of shipped.
Is WhatsApp good for COD order confirmation?
Yes, in markets where customers use WhatsApp every day. A template message with “Confirm” and “Change or cancel” buttons is cheap and easy to answer. Meta charges per delivered message, by category and country, so check the current rates for your markets. I still call when nobody replies or the address looks wrong.
How do I confirm COD orders on Shopify?
Shopify marks cash-on-delivery orders as unpaid and has no built-in confirmation step. Hold fulfilment until the order is confirmed, record the outcome as a tag or status, send confirmed orders to the warehouse or carrier automatically, and mark orders as paid only when the carrier settlement arrives.
Should I ship COD orders I could not reach?
In the operations I run, no. If you couldn’t reach the customer before shipping, the courier often can’t either. Try another channel first, and cancel the order if it stays unconfirmed.
Want a confirmation step that actually lifts acceptance?
I build and run COD back offices: one order queue for every store, fast confirmation by call or message, address checks and carrier routing per country.
Get a custom quote →