To confirm a COD order on WhatsApp, message the buyer after the order with the order number, items, amount and address, plus Confirm and Cancel buttons. No reply? Send one daytime reminder before your courier's pickup cut-off. Still nothing? Cancel before handover. Outside the 24-hour chat window, use an approved utility template with no offers.
That is the whole method. The rest of this page is the detail: the Meta rules that decide what you can send, copy-paste scripts in English and Hinglish, when to remind and when to cancel, and how Aria, Behaf's AI salesperson, confirms COD as part of closing the sale.
Why confirm COD before you ship
A COD parcel that comes back costs you shipping both ways, plus the stock that sat in a courier van instead of on your shelf. Prepaid buyers have already paid, so they rarely refuse the parcel. COD buyers have not, and some change their mind, gave a wrong address, or never meant to order at all.
Many sellers still confirm by hand. A Shopify Community app builder, relaying merchant feedback, wrote that a lot of COD verification still happens manually, by calls and messages (Shopify Community, 18 Dec 2025). This page covers the confirmation step in depth. For COD limits, address checks at checkout and RTO reason tracking, see the full COD RTO playbook.
How COD order confirmation works on WhatsApp
COD order confirmation (some tools call it COD order verification) means the buyer says yes before you ship. Four Meta rules shape every COD message. They apply to the WhatsApp Business Platform (the API), which most COD tools run on.
- The 24-hour window. When a buyer messages or calls you, Meta starts a 24-hour customer service window (Meta, send messages). Inside it you can send normal free-form messages. If the order was placed in the chat, the window is already open.
- Templates outside the window. If the order came from your website or Instagram and the buyer has not messaged you, you can only send pre-approved template messages (Meta, templates overview). Your first COD message is then a template, and so are the reminder and the cancel notice if the buyer never replied.
- Utility, not marketing. An order confirmation belongs in the utility category. Meta's guidelines say order templates should not promote, upsell or cross-sell products or include offers (Meta, template guidelines). A template that mixes an order update with a discount is treated as marketing, and Meta can move a misclassified template to marketing, normally with one day's notice.
- Opt-in and buttons. Businesses must get opt-in before messaging, and the opt-in must clearly name your business (Meta, opt-in). An opt-in line at checkout is one common way. Templates can carry up to 10 quick reply buttons, each label at most 25 characters (Meta, template components).
Cost note: from 1 Oct 2026 Meta resumes charging for service messages, with 1,000 free service messages per business number a month (Meta, pricing).
On the free WhatsApp Business app, send the scripts by hand with YES/NO replies instead of buttons. Our WhatsApp shop setup guide explains the app vs API choice.
The confirmation sequence at a glance
| Message | Trigger | Suggested timing | Buyer can tap |
|---|---|---|---|
| 1. Confirm order | New COD order | Right after the order | Confirm order / Cancel order / Talk to us |
| 2. Reminder | No reply to Message 1 | A few hours later, daytime, before pickup cut-off | Same three buttons |
| 3. Cancel notice | Still no reply | Before the parcel is handed to the courier | I still want it / Talk to us |
| 4. Address check | Address incomplete or pincode looks wrong | Before you confirm | Free-text reply |
| 5. Thank-you and prepaid option | Buyer confirms | Right after the YES, as a separate message | Pay by UPI / Keep COD |
What COD tools do by default varies. Treat it as a range, not a rule:
| Method (published product behaviour) | First message | Reminder | Cancel or expiry |
|---|---|---|---|
| DelightChat | On order | Optional, 2 to 24 hours after the first message | Order tagged after a no-response window you set (up to 48 hours) (help page) |
| Spur | On order | After 2 hours, then a second 2-hour wait | Order tagged, auto-cancel optional (help page) |
| AiSensy | On order | Follow-up 3 hours after purchase | Not stated (tutorial) |
| OrderPing (Shopify app) | On order | At 24 hours | Auto-expiry at 72 hours (app listing) |
| By hand on the Business app | When you see the order | When you have time | Manual |
| Behaf (Aria) | Inside the sale, in the same chat | Confirmed with the buyer before dispatch | Unconfirmed COD auto-cancels before pickup |
Message scripts you can copy
Replace the words in {curly brackets}. In a Meta template these become numbered variables. Labels in [square brackets] are quick reply buttons, all under 25 characters.
Message 1: Confirm order (utility template)
Hi {name}, this is {brand}. We got your cash on delivery order {order_id}. Items: {items} Pay on delivery: ₹{amount} Address: {address}, {pincode} Please confirm so we can pack it. [Confirm order] [Cancel order] [Talk to us]
Hi {name}, {brand} se message hai. Aapka COD order {order_id} mila hai. Items: {items} Delivery pe pay: ₹{amount} Address: {address}, {pincode} Confirm kar dijiye, hum pack kar denge. [Haan, confirm karo] [Cancel karo] [Baat karni hai]
No coupon, no "also try", no prepaid discount. That keeps it a utility template.
Message 2: Reminder (one only)
Hi {name}, your {brand} order {order_id} (₹{amount}, COD) is waiting for your confirmation. We hold it until you reply. [Confirm order] [Cancel order] [Talk to us]
Hi {name}, aapka {brand} order {order_id} (₹{amount}, COD) confirm hona baaki hai. Reply aane tak hum ise rok ke rakhenge. [Haan, confirm karo] [Cancel karo] [Baat karni hai]
Message 3: Cancel notice
Hi {name}, we did not hear back, so COD order {order_id} has been cancelled and not shipped. Tap below if you still want it. [I still want it] [Talk to us]
Hi {name}, reply nahi aaya, isliye COD order {order_id} cancel ho gaya, ship nahi hua. Abhi bhi chahiye toh neeche tap kijiye. [Haan, chahiye] [Baat karni hai]
The full set, with plain YES/NO versions and a thank-you message, is in the free WhatsApp Selling Kit.
Timing: when to send, remind and cancel
- Send Message 1 straight away, while the buyer still remembers ordering. Every tool in the table above sends on order.
- Remind once, in daytime, before your pickup cut-off. Tool defaults range from 2 hours (Spur) to 24 hours (OrderPing). For reference, GoKwik's AI calling, which it is extending to COD confirmation, places calls between 10 am and 9 pm (BusinessLine, 26 Sep 2026).
- Cancel before handover. Tools differ: Spur tags unconfirmed orders after two 2-hour waits, DelightChat lets you set a no-response window of up to 48 hours, and OrderPing marks orders expired at 72 hours. If your courier picks up at 4 pm, an order placed at 9 pm can be reminded next morning and cancelled before 4 pm.
Address checks and the COD-to-prepaid nudge
Send an address check before you confirm when the address has no house or flat number, no landmark, or a pincode that does not match the city:
Hi {name}, before we ship order {order_id}, could you add your flat or house number and a nearby landmark? {address}, {pincode}
Hi {name}, order {order_id} ship karne se pehle flat/house number aur paas ka landmark bhej dijiye. {address}, {pincode}
The prepaid nudge goes in a separate message, after the buyer replies. Their reply opens the 24-hour window, so a free-form message is allowed, and the offer stays out of your utility template. Manifest's COD-to-prepaid playbook follows the same order: confirm, confirm the address, then offer a prepaid link (Manifest blog, 11 Oct 2026).
Thanks {name}. If you would rather pay now by UPI, here is a secure link: {link}. Otherwise keep it as COD, nothing else to do. [Pay by UPI] [Keep COD]
After dispatch: delivery-day messages and NDR
Send the tracking link when it ships and a short delivery-day note ("Arriving today, please keep ₹{amount} ready"). If the courier marks a failed delivery (NDR), message the buyer before the reattempt. Shiprocket's guide says you can reattempt delivery up to three times (Shiprocket blog), and when you report a fake delivery attempt, its support docs accept a screenshot of a WhatsApp or SMS chat in which the buyer asks for the reattempt (Shiprocket support). Keep the confirmation thread.
Common mistakes
- A discount inside the confirmation template. It makes it marketing. Send offers after the reply.
- Messaging buyers who never opted in, or leaving your brand name out.
- "Reply YES" when buttons are available, or labels over 25 characters.
- Reminders at night or after pickup, or cancelling after handover.
- More than one reminder, or a threatening tone. It is a courtesy, not a suspicion.
- Treating "confirmed" as done. Watch NDRs too.
Festive season notes
COD matters most in the rush, when order volume is highest and a wrong parcel hurts most. Before the rush, get templates approved early, match your reminder time to the courier's festive pickup cut-off, and keep someone on "Talk to us" during sale days. The free kit has a 14-item festive shipping checklist.
How Aria confirms COD inside the sale
Everything above works by hand. In a Behaf store, Aria, our AI salesperson, does it as part of selling, in the same WhatsApp chat where the buyer asked about the product. She recommends the right size, shade or product, suggests what goes with it, and when the buyer picks COD she confirms the order with them on WhatsApp before dispatch. Unconfirmed COD auto-cancels before pickup, so it never reaches the courier.
- Buyers who would rather pay upfront pay through PayU, by UPI or card, inside the chat.
- Confirmed orders get a Shiprocket pickup booked automatically, with tracking sent in the chat.
- Your store runs on Behaf's verified number, so there is no WhatsApp Business API application and no developer work.
- You see every chat and can step in any time. If Aria isn't sure, she tells the buyer you'll reply soon and emails you.
Pricing: ₹0 setup and no monthly fee. You pay 5% + ₹5 + 18% GST per shipped order at the Founding 100 rate, locked for life for the first 100 brands. After that, 10% + ₹5 + GST. Payouts after delivery.
See Aria sell, then confirm COD
Chat with a demo store and watch Aria sell. Demo stores run in test mode, so nothing ships.
Try it in a demo store Claim a Founding 100 spotFounding 100 brands keep 5% + ₹5 + GST per shipped order for life, with early access and a set-up call. We'll help you set up your store.
FAQ
How do I confirm a COD order on WhatsApp?
Message the order number, items, amount and address with Confirm and Cancel buttons. If there is no reply, send one reminder a few hours later, then cancel before pickup.
Can I send a COD confirmation without the customer messaging first?
Yes, on the API, using a pre-approved template, as long as the buyer opted in to WhatsApp messages from you. Free-form messages are only allowed inside the 24-hour window after the buyer messages you.
How long should I wait before cancelling an unconfirmed COD order?
There is no Meta rule. Tool settings vary, from a few hours (Spur) to 72 hours (OrderPing). Work back from your courier's pickup cut-off so an unconfirmed order is never handed over.
Is a COD confirmation a marketing or utility message?
Utility, if it only confirms the order. Meta's guidelines say order templates should not promote, upsell or include offers, and a template that does can be recategorised as marketing.
Can I add a prepaid offer in the confirmation?
Not in the utility template. Send the UPI link or offer as a separate message after the buyer replies, when the 24-hour window is open.
How does Behaf confirm COD orders?
Aria, Behaf's AI salesperson, confirms every COD order with the buyer on WhatsApp before dispatch, in the same chat where the sale happened. Unconfirmed COD auto-cancels before pickup, and confirmed orders get a Shiprocket pickup booked automatically.
Sources
- Reducing fake COD orders on Shopify (Shopify Community, 18 Dec 2025)
- Send messages, customer service window (Meta for Developers, read 19 Oct 2026)
- Templates overview (Meta for Developers, read 19 Oct 2026)
- Template category guidelines (Meta for Developers, read 19 Oct 2026)
- Getting opt-in (Meta for Developers, read 19 Oct 2026)
- Template components (Meta for Developers, read 19 Oct 2026)
- WhatsApp pricing (Meta for Developers, read 19 Oct 2026)
- Automated COD verification (DelightChat help centre, read 19 Oct 2026)
- COD confirmation flow (Spur help centre, read 19 Oct 2026)
- Shopify store messages (AiSensy tutorial, read 19 Oct 2026)
- OrderPing (Shopify App Store, read 19 Oct 2026)
- AI-powered WhatsApp calls (BusinessLine, 26 Sep 2026)
- COD to prepaid on WhatsApp (Manifest blog, 11 Oct 2026)
- Reattempt delivery (Shiprocket blog, read 19 Oct 2026)
- How to process an NDR (Shiprocket support, read 19 Oct 2026)