Skip to main content

Sales

COD order confirmation on WhatsApp: confirm before you ship and cut returns

Every cash-on-delivery order that is refused at the door costs you shipping twice. Here is how to confirm each COD order on WhatsApp with one tap, what to do when nobody answers, and how to run it automatically in MonoChat.

MonoChat Team Updated: 6 min read

On this page
  1. Why COD orders come back
  2. What a good COD confirmation looks like
  3. The WhatsApp rules that apply
  4. What to do with each answer
  5. How to automate COD confirmation in MonoChat
  6. Sources

To cut returns on cash-on-delivery (COD) orders, confirm every COD order on WhatsApp before it ships: send a utility template with Confirm and Cancel buttons, update the order from the answer, and hand the orders nobody confirmed to a person before the courier picks them up. Customers who confirm can be offered a payment link to pay now instead of at the door.

This guide covers why COD orders come back, what the confirmation message should say, the WhatsApp rules that apply, and how to automate the whole loop in a MonoChat flow.

Why COD orders come back

A COD order costs the customer nothing until the parcel arrives. That is why shoppers in India, Pakistan, Egypt, Indonesia, the Gulf and much of Eastern Europe like it, and why it is risky for the seller: an order placed on impulse is easy to refuse.

The numbers from India, the largest COD market, show the gap:

  • Over 76% of the 1.59 billion orders Meesho shipped in fiscal year 2025 were paid by cash on delivery, according to its draft IPO papers.
  • In Shipway’s FY25 data, less than 2% of prepaid orders were returned, against nearly 26% of non-prepaid orders.
  • ClickPost’s analysis of 35.8 million orders from 1 October to 30 November 2025 found up to 16 times more return to origin (RTO) on cash orders than prepaid ones for fashion brands, and 12% of Tier 3 orders coming back against 6.6% from metro cities.

Every refused parcel is paid for twice: shipping out and shipping back, plus the stock that sits in a van for a week. A confirmation that takes the customer two seconds is the cheapest filter you have.

What a good COD confirmation looks like

Send it within minutes of the order, while the customer still remembers buying. Keep it short and specific:

Hi Ayesha, thanks for your order #4821 from Noor Fashion. 2 items, total PKR 6,450, cash on delivery. Delivery to: House 12, Street 4, DHA Phase 5, Lahore. Please confirm so we can ship it today. [Confirm order] [Cancel order] [Change address]

What makes it work:

  • The order number, total and address in the message, so the customer can spot a mistake at a glance.
  • Quick reply buttons, not “reply YES”. A tap is faster than typing and gives you a clean answer to route on.
  • A way to fix the address. Many refusals are wrong or incomplete addresses, not changed minds.
  • No offer in the same message. A confirmation is about this order only.

After a tap, answer at once: “Thanks, your order ships today” or “Your order is cancelled, nothing will be delivered.”

The WhatsApp rules that apply

Use a utility template. The order was placed on your website, not in the chat, so you message first, and outside the 24-hour customer service window WhatsApp only allows approved templates. Meta’s own utility example is an order confirmation. If a utility template is found to contain marketing, Meta changes its category to marketing, so keep promotions out. See WhatsApp template message examples for wording.

Every delivered message is charged. Meta charges per delivered template by category and by the recipient’s country. Since 1 October 2026, utility templates sent inside an open customer service window are charged too, and service replies are charged after 1,000 free ones per number per month. One confirmation per order is usually a small cost next to one return; our WhatsApp API pricing guide has the rates by country.

Get consent at checkout. Add a line such as “We’ll confirm your order on WhatsApp” next to the phone field. Order updates are expected by customers, but marketing on the same number needs its own opt-in; see WhatsApp opt-in.

What to do with each answer

AnswerWhat happens next
Confirm orderMark the order confirmed in your store and ship. Optionally offer a payment link to pay now.
Cancel orderCancel in your store before it is packed. Ask one optional question: why?
Change addressHand the chat to a person, or ask for the new address and update the order.
No answer after a few hoursHand the order to a person who calls or writes once more before the pickup.

Track the share of each answer per week. A rising “no answer” rate usually means the message goes out too late or the phone numbers are wrong.

How to automate COD confirmation in MonoChat

MonoChat connects your number to the WhatsApp Business API and lets you build the loop above in the no-code workflow automation builder. MonoChat is an official Meta Business Partner; your number stays yours and Meta bills message fees directly.

1. Create the template. Under Settings › Chat › Channels › Template Messages, create a utility template with the order number, total and address as variables, and add quick reply buttons such as “Confirm order” and “Cancel order”. Submit it to Meta.

2. Receive the order. Start a flow with a Webhook Received event node. Your store sends each new COD order to the node’s URL with the customer’s phone number; the node finds or creates the customer on the channel you choose and can require a secret, as a token or an HMAC-SHA256 signature. With Save Flow Variable, keep the order number and total for later nodes.

3. Send the confirmation. Add Remove Customer Tags to clear the tags of a previous order, save the order number to a customer profile field with Set Customer Profile Field, then send the template with Send Template Message.

4. React to the tap. In a second flow that starts on New Message Received, check the reply with the Message Text condition. On “Confirm order”, add a tag such as cod-confirmed with Set Customer Tag and call your store with an HTTP Request node to update the order. On “Cancel order”, do the same with cod-cancelled.

5. Catch the silent ones. Back in the first flow, add a Wait node, then a Customer Tag condition: if the customer has neither tag, Assign Session gives the chat to the workgroup that calls customers before pickup. They see the whole conversation in the team inbox.

6. Offer to pay now (optional). After a confirmation, a Send Payment Request node sends a link from your own payment provider for the order total, with your own text. When the customer pays, the New Payment Received event can start a flow that marks the order paid. Providers are set up under Settings › Payment › Payment Systems; see how to accept payments in WhatsApp chats.

Test the whole loop on your own number before you switch it on, and watch the flow canvas: it shows how often each link was used in the last 7 days, so you see at once how many orders were confirmed, cancelled or left silent.

For the messages that follow the confirmation (shipped, out for delivery, delivered), see abandoned cart and order update messages. Start for free at app.monochat.ai.

Sources

FAQ

Frequently asked questions

Why confirm cash-on-delivery orders on WhatsApp?

Because a COD order costs nothing to place, so some are placed on impulse, by mistake or as a joke, and they come back as return to origin (RTO). One tap on WhatsApp before you ship tells you which orders the customer still wants, and lets you fix a wrong address or cancel early, before you pay for shipping.

Is a COD confirmation a utility or a marketing template?

A message about one specific order, such as "please confirm order 4821", fits Meta's utility category. If you add an offer or a discount code to it, Meta can move the template to marketing, which costs more. Keep the confirmation plain and send offers separately to customers who agreed to them.

What if the customer does not answer the confirmation?

Wait a set time, for example a few hours, then hand the order to a person who calls or writes before the courier picks it up. Do not ship silently and do not cancel silently: decide your rule and apply it the same way every time.

Can I ask COD customers to pay in advance instead?

Yes, as an option, not a condition. After the customer confirms, offer a payment link so they can pay now. In MonoChat the Send Payment Request node sends a link from your own payment provider, and the New Payment Received event lets the flow mark the order as paid.

Does MonoChat connect to my store to update the order?

A flow can receive the new order from your store through a Webhook Received node and write the answer back with an HTTP Request node, so the order status changes in your store. Shopify stores can also use the Shop Assistant app for products, orders and carts.

First month of Growth on us

Run WhatsApp, Instagram and Messenger from one inbox

Start free with MonoChat: shared team inbox, AI assistants, templates and campaigns on official Meta APIs.

One code per business • 30 days to redeem • No card needed

$150 to get started.

Claim