WhatsApp COD Confirmation Message Templates (Copy & Use)
EXCERPT: Ready-to-use WhatsApp message templates for confirming cash-on-delivery orders — plus what makes a confirmation message actually convert.
The message you send to confirm a cash-on-delivery order matters as much as sending one at all. A vague or pushy template gets ignored or reported; a clear, low-friction one gets a fast yes/no and cuts return-to-origin (RTO). Here are templates you can adapt, plus what makes them work.
Want to size the impact first? Use our free COD RTO cost calculator to see what unconfirmed orders are costing you.
What makes a COD confirmation message convert?
A converting COD confirmation message does three things: it proves the message is legitimate, it makes verification effortless, and it makes the reply binary. Legitimacy comes from specifics — the buyer's name, the order number, and the exact amount — because a message with those details reads as "my order," while a generic one reads as spam. Effortless verification means the buyer can check everything (items implied by order number, price, address) without leaving the chat. And a binary reply — YES or NO, ideally as tap buttons rather than typed text — removes the small decision cost that makes people put a message off and forget it. The caveat: urgency helps only when it is factual, like a real hold deadline or dispatch date. Manufactured pressure ("confirm NOW or lose your order!") increases blocks and reports, which damages your number's quality rating and eventually your delivery rates.
In practice, that anatomy breaks down into four parts you should check in every template you write:
- Variables ({{name}}, {{order_id}}, {{amount}}, {{address}}) carry the legitimacy. Never send a confirmation without at least the order number and total.
- Button labels beat typed replies. "Confirm order" and "Cancel" as quick-reply buttons convert better than asking someone to type YES, and they also remove typo handling from your automation.
- One question per message. Confirmation is not the moment to upsell, ask for a review, or promote your catalog.
- Urgency without pressure: state a real deadline once ("we'll hold your order until {{deadline}}") and let it do the work.
Template 1: Basic order confirmation
"Hi {{name}}, thanks for your order #{{order_id}}! Please confirm: deliver to {{address}} for {{amount}} COD? Reply YES to confirm or NO to cancel."
Keep it under 300 characters, put the order number and price up front, and make the reply binary — yes/no gets a far higher response rate than an open-ended question.
If your provider supports quick-reply buttons, submit this same text with "YES — confirm" and "NO — cancel" buttons instead of a typed reply. The body stays identical; only the reply mechanism changes, and tap-to-confirm works even for buyers who skim.
Template 2: Confirmation with delivery window
"Hi {{name}}, your order #{{order_id}} ({{amount}} COD) is ready to ship. We'll deliver on {{delivery_date}} between {{time_window}}. Reply YES to confirm or reschedule."
Adding a concrete delivery window reduces "buyer unavailable" RTO — the second-biggest cause after fake or unsure orders. If you can't commit to a tight window, a date alone still helps: buyers who have planned for a delivery answer the door.
Template 3: Follow-up for unconfirmed orders
"Hi {{name}}, we haven't heard back on order #{{order_id}}. We'll hold your order until {{deadline}} — reply YES to confirm or it will be cancelled automatically."
Send this once, 12-24 hours after the first message. Don't send a third follow-up — repeated unanswered messages hurt your WhatsApp quality rating.
For higher-value orders, a softer variant avoids throwing away a genuine sale:
Template 4: Follow-up with reschedule option (variant)
"Hi {{name}}, just checking on order #{{order_id}} ({{amount}} COD). Reply YES to confirm, NO to cancel, or LATER if you'd prefer delivery on a different date."
This is derived directly from Template 3: same single-follow-up rule, same deadline logic behind the scenes, but it gives hesitant buyers a third path that keeps the order alive. Route "LATER" replies to a human or a date-picker flow — see our guide to automating COD confirmation on Shopify for how to wire these branches up.
What to include in every template
- Order number and total — buyers verify before replying.
- A clear yes/no or single-tap action, not an open question.
- Delivery address so the buyer can catch mistakes before dispatch.
- A cutoff time for follow-ups, so unconfirmed orders don't sit in limbo.
Everything else is optional. Item summaries help for multi-item orders; anything promotional actively hurts, both for conversion and for the template category you'll be approved under.
Should COD confirmation templates be utility or marketing?
COD confirmation templates should be submitted in Meta's utility category, not marketing. Utility templates cover transactional messages triggered by a user action — order confirmations, delivery updates, payment reminders — which is exactly what a COD confirmation is. The category matters for two reasons. First, cost: Meta prices conversations by category, and utility conversations are generally cheaper than marketing conversations, with exact rates varying by country and volume tier. At COD volumes, sending confirmations under a marketing classification means paying the higher rate on every single order. Second, approval and re-categorization: Meta's review system reads your template text, and if it detects promotional content — discount codes, "shop more," product recommendations — it will either reject the template or silently re-classify it as marketing, and you'll be billed accordingly. The caveat: keeping utility pricing requires discipline. One cross-sell line in an otherwise transactional template is enough to flip the category.
Why do WhatsApp templates get rejected, and how do you fix them?
Most COD confirmation template rejections come down to a handful of predictable causes:
- Vague variables. A template that is mostly placeholders ("Hi {{1}}, {{2}} {{3}}") gives reviewers no context. Fix: write full sentences around each variable and provide realistic sample values when you submit.
- Promotional content in a utility template. "Reply YES to confirm — and check out our new arrivals!" gets rejected or re-categorized. Fix: delete the promo line; confirmation templates confirm.
- Formatting violations. Variables at the very start or end of the body, adjacent variables with no text between them, or excessive capitalization and exclamation marks all trigger rejections. Fix: restructure so every variable sits inside a sentence.
- Threatening or pressuring language. "Your order WILL BE CANCELLED" in all caps reads as coercive. Fix: state the deadline neutrally, as Template 3 does.
- Category mismatch. Submitting under marketing when the content is transactional (or vice versa) causes rejection. Fix: resubmit under utility with unchanged text.
Rejections aren't permanent — edit and resubmit with the same fast turnaround. If you're repeatedly rejected, the template text, not the process, is the problem.
Localizing templates for Arabic and RTL markets
If you sell in the GCC, run Arabic templates alongside English ones — a confirmation in the buyer's own language gets faster replies and fewer "didn't understand" non-responses. A few things to get right:
- Submit Arabic templates as separate templates with the language set to Arabic, not as English templates with Arabic pasted in. WhatsApp handles RTL rendering automatically when the language code is correct.
- Keep numerals consistent. Order numbers and amounts render left-to-right inside RTL text; test with real sample values so "{{amount}} COD" doesn't come out garbled.
- Translate the buttons too. "YES/NO" buttons on an Arabic body message create friction; use نعم / لا or fully translated labels.
- Mind formality. Modern Standard Arabic is safe across markets; casual dialect can read as unprofessional for a payment-related message.
- Route by customer language, not geography — plenty of GCC customers prefer English. Most of the platforms on our best WhatsApp COD confirmation apps page support per-customer language selection.
How do you measure whether your templates are working?
The core metric is confirmation rate: confirmed orders divided by confirmation messages sent. Track it alongside three supporting numbers:
- Response rate — what share of buyers reply at all (YES, NO, or anything). A low response rate points to a delivery or template problem; a high response rate with many NOs points to a checkout or pricing problem upstream.
- Time to confirm — how long buyers take to reply. If most confirmations arrive within the first hour, your follow-up timing is probably right; if they cluster after the follow-up, your first message isn't landing.
- RTO rate on confirmed vs unconfirmed orders — the number that justifies the whole system. Feed it into the RTO cost calculator to put a currency figure on the gap.
When you change a template, change one element at a time — button labels, deadline phrasing, adding the delivery window — and compare confirmation rates over a comparable period. Most WhatsApp automation tools report these metrics per template, which makes the comparison straightforward.
Getting templates approved
WhatsApp Business API messages outside the 24-hour customer service window must use pre-approved template messages. Submit these through your provider's dashboard — approval typically takes minutes to a few hours. Note this applies to the Business API, not the free Business app; if you're unsure which you're on, see WhatsApp Business API vs App. For the full setup process, see our guide on reducing COD RTO with WhatsApp, and compare tools built for this on our best WhatsApp COD confirmation apps page.
The practical submission flow:
- Write the template with realistic sample values for every variable.
- Choose the utility category and the correct language for each version you submit.
- Add quick-reply buttons where your provider supports them.
- Submit; if rejected, fix the specific issue (usually one of the five above) and resubmit — don't create near-duplicate templates to route around a rejection, as that pattern itself gets flagged.
Frequently Asked Questions
What should a WhatsApp COD confirmation message include?
The order number, total price, delivery address, and a simple yes/no reply option — ideally as tap buttons rather than typed replies. Adding a delivery date and time window further reduces returns caused by the buyer being unavailable. Leave out anything promotional: it lowers reply rates and can get the template rejected or re-classified into a costlier category.
Do WhatsApp COD confirmation messages need approval?
Yes. Messages sent outside the 24-hour customer service window must use a pre-approved WhatsApp template. Submit templates through your Business API provider — approval is usually fast, from minutes to a few hours. Submit them under the utility category, since order confirmations are transactional; promotional wording can trigger rejection or re-classification as marketing.
How many times should I follow up on an unconfirmed COD order?
Once, roughly 12-24 hours after the initial message, with a clear cutoff time. Repeated unanswered follow-ups risk your number's WhatsApp quality rating without meaningfully improving confirmation rates. For higher-value orders, use a follow-up that offers a reschedule option instead of a hard auto-cancel, so hesitant buyers have a path other than silence.
Should COD confirmation templates be in the utility or marketing category?
Utility. Order confirmations are transactional messages triggered by a purchase, which is exactly what Meta's utility category covers, and utility conversations are generally cheaper than marketing ones (rates vary by country). Keep the text strictly transactional — a single promotional line can get the template rejected or re-classified as marketing, which raises your per-message cost.
Do I need separate Arabic templates for GCC customers?
Yes — submit Arabic versions as separate templates with the language code set to Arabic, so WhatsApp renders right-to-left text correctly. Translate the reply buttons as well, test how order numbers and amounts render inside RTL text, and route each customer to the language they used at checkout rather than assuming by geography.