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.
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.
Frequently asked questions
Which template category should a COD confirmation use?+
How much does each confirmation message cost?+
Do I need a developer to set this up?+
What happens if the customer doesn't tap either button?+
Will this actually reduce my RTO rate?+
Can I include the order amount and items in the message?+
How long does the whole setup take?+
Where do I get help if something fails?+
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.