Skip to content
COD confirmation templates

Order confirmation WhatsApp message templates for COD orders

Copy these order confirmation WhatsApp messages to ask cash on delivery customers to confirm or cancel before you ship. Each one fits the Cash on Delivery Confirmation flow in Whapi, a Shopify app for WhatsApp automation, with Shopify variables, Confirm and Cancel buttons and a follow-up for every reply.

Used by 5,000+ merchantsRated 5 stars by 39 merchants7-day free trialBuilt for Shopify

By the Whapi teamUpdated

R
Rimal HomeBusiness account
Hi Omar, your order 1052 is ready to ship to: Building 14, King Fahd Road, Al Olaya, Riyadh Total to pay on delivery: SAR 320.00 Is this address correct?18:04
Confirm Order
Change Address
Cancel Order
Change Address18:06
No problem. Reply with the correct address and a nearby landmark, and our team will update your order.18:06
Same building, apartment 7 not 5. Next to the pharmacy.18:07
The address check template: the customer taps Change Address and replies with the fix.

The short answer

  • A COD order confirmation WhatsApp message asks the customer to confirm a cash on delivery order before you ship it, using two quick reply buttons: Confirm Order and Cancel Order.
  • In Whapi, each button adds a Shopify order tag, such as Confirmed or Cancelled, and can send its own follow-up message. An auto-cancel option can also cancel the order in Shopify when the tag is added.
  • The Whapi COD flow fills in the customer’s first name, order number, order items, total price and shipping address from the Shopify order.
  • Meta decides the category. A confirmation about one order with no offer is usually Utility: $0.0107 per message in Saudi Arabia and $0.0150 in Pakistan (Meta rates effective October 1, 2026).
  • Keep discount codes out. Meta treats an order update that includes a promotion as Marketing.
Copy and paste

Order confirmation WhatsApp messages for cash on delivery

Four English templates for the Cash on Delivery Confirmation flow in Whapi. Paste one into the Body field, add the buttons, then set the Shopify tag and follow-up message for each button.

Standard COD confirmation

Likely Utility

Hi {{customer_first_name}}, thanks for your order {{order_number}}. Total to pay on delivery: {{total_price}} Please confirm your order so we can ship it.

Confirm Order
Cancel Order
Use it for
The default for most stores: the order number, the amount to pay and two buttons.
When to send
A few seconds after the order is placed. Set the delay in “Send message after” in the flow.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • Confirm Order (Quick reply, adds the tag Confirmed)Follow-up messageThank you, your order is confirmed. We will ship it soon.
  • Cancel Order (Quick reply, adds the tag Cancelled)Follow-up messageYour order has been cancelled as requested.
Variables
{{customer_first_name}}{{order_number}}{{total_price}}

Order details check

Likely Utility

Hi {{customer_first_name}}, please check your order {{order_number}} before we ship it: {{order_items}} Total to pay in cash on delivery: {{total_price}} Tap Confirm Order if everything is right, or Cancel Order if you no longer want it.

Confirm Order
Cancel Order
Use it for
Orders with several products, where a wrong size or color often ends in a refused parcel.
When to send
Seconds after the order is placed, instead of the standard template.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • Confirm Order (Quick reply, adds the tag Confirmed)Follow-up messageThanks for confirming. We are packing your order now.
  • Cancel Order (Quick reply, adds the tag Cancelled)Follow-up messageDone, your order is cancelled. You can order again from our store at any time.
Variables
{{customer_first_name}}{{order_number}}{{order_items}}{{total_price}}
Tip
Meta rejects templates with too many variables for their length. This one has four variables and enough text around them.

Address check with three buttons

Likely Utility

Hi {{customer_first_name}}, your order {{order_number}} is ready to ship to: {{shipping_address}} Total to pay on delivery: {{total_price}} Is this address correct?

Confirm Order
Change Address
Cancel Order
Use it for
Markets where incomplete addresses cause failed deliveries, such as apartment numbers or landmarks missing.
When to send
Seconds after the order is placed. Works best for stores that ship mostly to apartments.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • Confirm Order (Quick reply, adds the tag Confirmed)Follow-up messageThank you, your order is confirmed and will ship to this address.
  • Change Address (Quick reply, adds the tag Address change)Follow-up messageNo problem. Reply with the correct address and a nearby landmark, and our team will update your order.
  • Cancel Order (Quick reply, adds the tag Cancelled)Follow-up messageYour order has been cancelled as requested.
Variables
{{customer_first_name}}{{order_number}}{{shipping_address}}{{total_price}}
Tip
The customer’s reply opens Meta’s 24-hour customer service window, so your team can answer with normal messages in the WhatsApp Business App or the Whapi Team Inbox.

Confirmation with delivery time

Likely Utility

Hi {{customer_first_name}}, your cash on delivery order {{order_number}} is booked. Amount to pay the courier: {{total_price}} Delivery: 2 to 4 working days after you confirm Please confirm so we can hand it to the courier.

Confirm Order
Cancel Order
Use it for
Setting expectations so the customer is home, with cash ready, when the courier arrives.
When to send
Seconds after the order is placed.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • Confirm Order (Quick reply, adds the tag Confirmed)Follow-up messageThank you. Your order is confirmed and will reach you in 2 to 4 working days.
  • Cancel Order (Quick reply, adds the tag Cancelled)Follow-up messageYour order is cancelled. Thanks for letting us know.
Variables
{{customer_first_name}}{{order_number}}{{total_price}}
Tip
Replace “2 to 4 working days” with your real delivery time. A promise you can’t keep leads to refusals at the door.

Use these templates in Whapi

Create a Cash on Delivery Confirmation flow, paste a template into the Body field, add the buttons and tags, and save. Meta reviews the template before the first confirmation goes out. Every plan starts with a 7-day free trial.
Arabic and Roman Urdu

Arabic and Roman-Urdu COD confirmation messages

Write to customers in the language they use every day. These versions are written for Saudi Arabia, the UAE, the wider Gulf and Pakistan. They are examples: ask a native speaker to check the wording for your audience before you submit a template to Meta.

COD confirmation in Arabic

Likely UtilityArabicExample for native review

مرحباً {{customer_first_name}}، شكراً لطلبك رقم {{order_number}}. المبلغ المطلوب عند الاستلام: {{total_price}} يرجى تأكيد الطلب حتى نتمكن من شحنه إليك، أو إلغاؤه إذا لم تعد بحاجة إليه.

تأكيد الطلب
إلغاء الطلب
Use it for
Stores selling across the Arab world. Modern Standard Arabic that customers in every market can read.
When to send
Seconds after the order is placed. Set the flow’s Language to Arabic.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • تأكيد الطلب (Quick reply, adds the tag Confirmed)Follow-up messageشكراً، تم تأكيد طلبك وسنقوم بشحنه في أقرب وقت.
  • إلغاء الطلب (Quick reply, adds the tag Cancelled)Follow-up messageتم إلغاء طلبك بناءً على رغبتك.
Variables
{{customer_first_name}}{{order_number}}{{total_price}}
Tip
Keep the Shopify tags in English so your team can filter orders the same way in every language.

COD confirmation in Gulf Arabic

Likely UtilityGulf ArabicExample for native review

هلا {{customer_first_name}}، شكراً لطلبك رقم {{order_number}}. المبلغ المطلوب عند الاستلام: {{total_price}} عنوان التوصيل: {{shipping_address}} نرجو تأكيد الطلب حتى نرسله لك.

تأكيد الطلب
إلغاء الطلب
Use it for
Stores selling in Saudi Arabia, the UAE, Kuwait, Qatar and Oman. Shows the delivery address for a quick check.
When to send
Seconds after the order is placed. Set the flow’s Language to Arabic.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • تأكيد الطلب (Quick reply, adds the tag Confirmed)Follow-up messageتم تأكيد طلبك، بنرسله لك قريب إن شاء الله.
  • إلغاء الطلب (Quick reply, adds the tag Cancelled)Follow-up messageتم إلغاء طلبك حسب طلبك.
Variables
{{customer_first_name}}{{order_number}}{{total_price}}{{shipping_address}}

COD confirmation in Roman Urdu

Likely UtilityRoman UrduExample for native review

Assalam o Alaikum {{customer_first_name}}, aapka order {{order_number}} humein mil gaya hai. Delivery par ada karne wali raqam: {{total_price}} Baraye meharbani order confirm karein taake hum isay dispatch kar sakein.

Confirm Order
Cancel Order
Use it for
Stores selling in Pakistan, where many customers read Urdu written in English letters.
When to send
Seconds after the order is placed.
Meta category
Utility, most likely. Meta decides the category when it reviews the template.
Buttons
  • Confirm Order (Quick reply, adds the tag Confirmed)Follow-up messageShukriya! Aapka order confirm ho gaya hai, jald dispatch kar diya jayega.
  • Cancel Order (Quick reply, adds the tag Cancelled)Follow-up messageAapka order cancel kar diya gaya hai.
Variables
{{customer_first_name}}{{order_number}}{{total_price}}
Tip
The buttons keep the English labels Confirm Order and Cancel Order. Translate them too if your customers prefer Urdu.
R
Rimal HomeBusiness account
مرحباً مريم، شكراً لطلبك رقم 1048. المبلغ المطلوب عند الاستلام: 250 ر.س يرجى تأكيد الطلب حتى نتمكن من شحنه إليك، أو إلغاؤه إذا لم تعد بحاجة إليه.10:32
تأكيد الطلب
إلغاء الطلب
تأكيد الطلب10:33
شكراً، تم تأكيد طلبك وسنقوم بشحنه في أقرب وقت.10:33
The Arabic template as the customer sees it in WhatsApp.

Buttons, tags and follow-up messages

Every button in a Whapi COD flow has three settings: the button text the customer sees, an optional Shopify order tag, and an optional follow-up message sent right after the tap. The button settings also include an option to cancel the order in Shopify automatically when the tag is added.

ButtonTag Whapi addsFollow-up messageWhat your team does next
Confirm OrderConfirmedOrder confirmed, shipping soonFulfill the order and book the courier
Change AddressAddress changeAsks for the correct addressUpdate the address, then fulfill
Cancel OrderCancelledConfirms the cancellationNothing to ship, or let Whapi cancel it
No replyNo tagNoneCall the customer or hold the order
Whapi button settings for a COD confirmation flow: a Confirm Order button that adds the Confirmed tag, a Cancel Order button that adds the Cancelled tag, a follow-up message for each, and an option to auto-cancel the order
Button settings in Whapi: text, Shopify tag and follow-up message for each button.

Meta allows button labels of up to 25 characters and up to 10 quick reply buttons per template. When a template has more than three buttons, WhatsApp shows two and hides the rest behind “See all options”, so keep COD confirmations to two or three buttons.

Is a COD order confirmation Utility or Marketing?

A COD order confirmation is usually a Utility template, as long as it is about one specific order and contains no offer. Meta’s rules set two conditions for Utility: the message is non-promotional, and it is specific to the customer or something they requested. Confirming, updating or cancelling an order is one of the Utility use cases Meta lists, under order management.

These additions turn a confirmation into a Marketing template:

  • A discount code or free shipping on the next order
  • Product recommendations, upsells or “you may also like” links
  • Any line that tries to sell something

Since April 9, 2025, Meta approves a template submitted as Utility as Marketing if it decides the content is promotional, and it can recategorize approved templates later with advance notice. Whapi shows the category Meta gave each template on the flow page. The guide to Utility vs Marketing templates explains the rules in detail.

What a COD confirmation message costs

Meta charges each delivered confirmation at the Utility rate for the country code of the customer’s number, and Whapi adds no markup. Messages that are not delivered are not charged.

Customer’s countryUtility rate per message1,000 messages
Saudi Arabia$0.0107$10.70
United Arab Emirates$0.0157$15.70
Kuwait$0.0440$44.00
Qatar$0.0120$12.00
Pakistan$0.0150$15.00
Morocco$0.0230$23.00
Meta’s USD list rates per delivered message, effective October 1, 2026, checked October 20, 2026. Utility rates drop in steps at high monthly volume. Whapi adds no markup. Every country: WhatsApp API pricing by country.

For example, confirming 3,000 COD orders a month to Pakistani numbers costs about $45 in Meta fees at the list rate. Since October 1, 2026, Meta also charges Utility templates sent while the customer’s 24-hour service window is open, so every confirmation counts. The app itself costs $18.99 a month on the Pro plan. Country details are on the Pakistan and Gulf WhatsApp API pricing pages.

Rules that get COD templates approved

Meta reviews every new or edited template automatically. These are the rejection reasons Meta lists that matter most for order confirmations:

  • Don’t start or end with a variable. Meta rejects “dangling” parameters, which is why every template on this page opens with a greeting and ends with a sentence.
  • Keep enough text around the variables. A template with too many variables for its length is rejected.
  • No threats. Warnings about legal action or public shaming for refused orders break Meta’s rules. Explain what happens next instead.
  • Don’t ask for sensitive data. Never request full card or ID numbers in a confirmation.
  • No duplicates. Meta rejects a template whose body and footer match one you already have.

If a template is still rejected, the template rejected help page explains how to read the reason and resubmit.

What to do when a customer doesn’t reply

Treat an order with no reply as unconfirmed and decide case by case. Orders without a Confirmed or Cancelled tag are easy to filter in Shopify, and many stores call those customers or hold high-value orders until someone answers.

A second WhatsApp message is limited by Meta’s 24-hour rule: you can send free-form messages only within 24 hours of the customer’s last message. A customer who never replied hasn’t opened that window, so any reminder has to be another approved template. More ways to cut refusals are in how to stop fake COD orders on Shopify.

Set up a COD confirmation template in Whapi

  1. In Whapi, create a new flow and choose the Cash on Delivery Confirmation flow type.
  2. Choose the language and set “Send message after”, for example a few seconds.
  3. Paste a template into the Body field and insert variables from the list under the editor.
  4. Add the buttons, then set the tag and follow-up message for each one.
  5. Save the flow. Meta reviews the template, which Meta says can take up to 24 hours, and Whapi shows its status and category on the flow page.
  6. Place a test cash on delivery order with your own WhatsApp number before you rely on it.

COD confirmation template questions

Sources

  1. Meta: Template categorization (WhatsApp Business Platform) (checked October 20, 2026)
  2. Meta: Template components and button limits (checked October 20, 2026)
  3. Meta: Template review and rejection reasons (checked October 20, 2026)
  4. Meta: WhatsApp Business Platform pricing and rate cards (checked October 20, 2026)

Confirm your next COD order with one of these templates.

Join 5,000+ merchants using Whapi. Install it from the Shopify App Store, connect your WhatsApp Business number and turn on your first automation in minutes. Every plan starts with a 7-day free trial.