Skip to content
Meta Business PartnerStep-by-step guide

How to set up COD confirmation on the WhatsApp Business API

Cash-on-delivery still drives the majority of Indian e-commerce orders, and every unconfirmed COD order is a return-to-origin (RTO) risk: forward shipping, return shipping, packaging and handling costs you eat when the buyer isn't home or changes their mind. A WhatsApp COD confirmation flow asks the customer to confirm the order on a channel they actually open, before you ship. This guide walks you through building that flow on the official WhatsApp Business API with InfiQ — the exact template category to use, the two-button quick reply that captures Confirm/Cancel, how to wire the webhook that updates your order status, and the mistakes that get templates rejected or inflate your bill.

Utility
Best template category
Free 24-hour service window today; chargeable from 1 Oct 2026
Reply cost
Confirm / Cancel quick reply
Buttons
Lower RTO on cash orders
Primary benefit
No for most stores
Developer needed
Often same day
Setup time

What you'll do

Send a utility-category WhatsApp template with Confirm and Cancel quick-reply buttons the moment a COD order is placed, then use the webhook reply to auto-update the order in your store or dashboard. Confirmed orders ship; unconfirmed or cancelled ones are held or dropped, cutting RTO. InfiQ handles the API, template approval and webhook plumbing on transparent ₹ pricing.

Step 1 — Prepare your account, opt-in and order data

Before you build anything, confirm the plumbing is in place. Your WhatsApp Business API account must be active and verified with InfiQ, and the sender number you'll broadcast from should be the one your buyers recognise. Because a COD confirmation is a business-initiated message, you also need a lawful basis to message the customer — the phone number captured at checkout with a clear opt-in is the cleanest path. Finally, decide exactly which order fields you want to show the buyer, because you'll turn these into template variables in the next step.

  • Confirm the API number is live and the display name is verified in InfiQ.
  • Capture opt-in at checkout (a checkbox or order-placement consent) so sends are compliant.
  • List the order fields to include: order ID, COD amount payable, a short item summary and buyer name.
  • Decide your no-response rule now: one reminder, then hold-for-review or auto-cancel.

Step 2 — Build the utility template with Confirm / Cancel buttons

In InfiQ's template manager, create a new template and set the category to Utility — this is the correct category for a transactional prompt about an order the customer just placed, and it's the lower-cost category. Write a short, specific body that restates the order so the buyer confirms with full context, and add two quick-reply buttons so the reply is a single tap rather than free text you'd have to parse. Submit for approval; a clean utility template with no promotional language usually clears quickly.

  • Category: Utility (never Marketing for an order confirmation).
  • Body example: "Hi {{1}}, please confirm your COD order {{2}} for ₹{{3}}. Items: {{4}}. Tap Confirm to ship or Cancel to drop it."
  • Buttons: two quick-reply buttons labelled Confirm order and Cancel order.
  • Keep it factual — no discounts, upsells or marketing copy, which push it into the wrong category and risk rejection.

Step 3 — Trigger the send the moment a COD order is placed

The confirmation only works if it fires immediately, while intent is fresh. Connect the trigger from wherever COD orders are created — your storefront, an order-management tool, or a direct API call — so that a new cash-on-delivery order automatically sends the approved template with the buyer's real values mapped into the variables. Timing matters: a confirmation sent within minutes of checkout gets far higher response than one sent hours later, and it lets you cancel a bad order before it ever enters your dispatch queue.

  • Map order fields to template variables: name → {{1}}, order ID → {{2}}, COD amount → {{3}}, items → {{4}}.
  • Fire on the 'COD order placed' event, not on dispatch — you want to confirm before packing.
  • No-code stores can trigger this from InfiQ's automation; custom backends call the API directly.
  • Only send to numbers with a valid opt-in to protect your quality rating.

Step 4 — Wire the webhook so replies update the order automatically

When the buyer taps Confirm or Cancel, WhatsApp sends that button reply to your webhook as an inbound event. Point the webhook at InfiQ (or your own endpoint) and branch on the button payload: a Confirm reply flips the order to 'confirmed — ready to ship', while a Cancel reply flips it to 'cancelled' and stops the shipment. This is what turns a nice message into real RTO savings — the customer's action changes the order state without anyone touching a spreadsheet. Because the reply arrives inside the free 24-hour service window, the buyer's response doesn't add a message charge.

  • Set the webhook URL in InfiQ and confirm it receives inbound button events.
  • Confirm reply → order status 'confirmed', release to dispatch.
  • Cancel reply → order status 'cancelled', hold and refund/close as needed.
  • No reply after your reminder → hold for manual review or auto-cancel per your Step 1 rule.

Step 5 — Test end-to-end, then go live and monitor

Before switching it on for real customers, place a test COD order using your own number and walk the full loop: template delivers, you tap Confirm, the order status updates, then repeat for Cancel and for the no-response path. Once each branch behaves correctly, enable it for live orders and watch the metrics that tell you it's working. Track confirmation rate, cancellation rate and — the number that pays for all of it — your RTO percentage over the following weeks. Keep an eye on template quality rating and delivery status so a dip gets caught early.

  • Test all three outcomes with your own number: Confirm, Cancel, no-response.
  • Verify the order status actually changes in your system for each branch.
  • After go-live, watch confirmation rate, cancellation rate and RTO % week over week.
  • Monitor delivery/read status and template quality rating to protect deliverability.

Do this in InfiQ now

Talk to InfiQ

Want us to set this up with you?

Tell us where you’re stuck — we’ll walk you through it and get you live.

Step 1 of 2
WhatsApp

Protected by invisible spam checks · replies within 1 working day

Frequently asked questions

Which template category should a COD confirmation use?+
Utility. A COD confirmation is a transactional prompt about an order the customer just placed, which is exactly what the utility category is for. It's also the lower-cost category. Using the marketing category for this is the top cause of both rejections and unnecessarily higher per-message cost.
How much does each confirmation message cost?+
WhatsApp bills per delivered message by category, and utility messages are for India. InfiQ applies transparent ₹ pricing (ex-GST) on that live rate card, so you see the per-message utility rate up front. The customer's Confirm or Cancel reply lands in the free 24-hour service window, so their response doesn't add a message charge.
Do I need a developer to set this up?+
For most stores, no. Building the template and wiring a store or automation-tool trigger is no-code in InfiQ. You only need developer help if you want a fully custom backend integration that calls the API directly and processes the webhook payload in your own system.
What happens if the customer doesn't tap either button?+
You decide the rule. A common setup sends one polite reminder inside the free 24-hour service window, and if there's still no response, holds the order for manual review or auto-cancels it. This is where most of the RTO savings come from — you stop shipping orders nobody has confirmed.
Will this actually reduce my RTO rate?+
It reduces the biggest avoidable slice: orders that were never real intent or where the buyer changed their mind before shipping. By confirming on a channel buyers open and giving them a one-tap way to cancel early, you ship fewer doomed orders. The written confirmation trail also helps when you dispute a failed delivery with your courier.
Can I include the order amount and items in the message?+
Yes, and you should. Add variables for the COD amount, order ID and a short item summary so the buyer confirms with full context. Seeing the exact amount payable on delivery reduces surprise cancellations at the door, which is where a lot of RTO cost is created.
How long does the whole setup take?+
Once your WhatsApp Business API account is active with InfiQ, building and submitting the template takes a few minutes, approval is usually fast for a clean utility template, and wiring the trigger and webhook is the main task. Most stores are testing the same day.
Where do I get help if something fails?+
InfiQ's India-based support team guides you through template approval, webhook setup and go-live. If a template is rejected or the webhook isn't updating orders, they'll help you diagnose it rather than leaving you to read raw API docs alone.

Stop shipping unconfirmed COD orders

Set up an automated WhatsApp COD confirmation flow with InfiQ and start cutting RTO on your very next batch of orders — talk to our India-based team to get your template live.