Guides

COD confirmation and the prepaid switch

Return-to-origin (RTO) is the most expensive problem in Indian D2C, and most of it is decided before dispatch. A two-button confirmation sent minutes after the order separates the customers who meant it from the ones who did not.

Open Journeys

Short answer

Publish a journey on the order placed trigger, filtered to COD, that sends an approved template with Confirm and Cancel buttons within minutes. Confirmed orders go to dispatch and silent ones get one follow-up. On Growth plans and above you can also offer a prepaid payment link that replaces the COD order with a paid one.

Before you start

  • Shopify and WhatsApp connected, with orders syncing.
  • An approved template with quick-reply buttons — see Message templates.
  • For the prepaid switch: a plan that includes COD → prepaid, and Shopify permission to create draft orders.
  • A COD order you can place as a test.

Why confirmation works#

A COD order costs nothing to place, so it attracts impulse, duplicate and mistaken orders. You usually find out at the door, after paying for shipping both ways.

One tap of confirmation moves that discovery to before dispatch, where cancelling is almost free.

Customer responseWhat you should do
Taps ConfirmDispatch normally. Tag the order as confirmed so your warehouse can see it.
Taps CancelCancel in Shopify before dispatch. You just saved both legs of shipping.
Replies with a questionThe thread is in Live Chat with the order beside it — answer and confirm manually.
Never respondsSend one follow-up. After that, decide by your own risk rules: hold, call, or dispatch anyway.

Build the confirmation journey#

About 25 minutes

  1. Create a journey on order placed

    Journeys → New, trigger Order placed. Order confirmation *is* the order-placed trigger; there is no separate "order confirmed" event.

    This is the single most common point of confusion when building this journey.

  2. Filter to COD only

    In the trigger setup, add a payment method rule set to COD. Without it, prepaid customers are asked to confirm orders they already paid for.

  3. Add a short wait

    Five to fifteen minutes. The customer has left your site, but the message is clearly about the order they just placed.

  4. Send the confirmation template

    Map an approved template with Confirm and Cancel quick replies. TopEdge sets the step to wait for a button tap rather than free text.

  5. Branch on the answer (Growth and above)

    A conditional split sends confirmed and cancelled down different paths: tag and dispatch on one, cancel and notify on the other.

    On Launch, skip the branch and handle non-responders from the Orders screen instead.

  6. Add a follow-up for silence

    Add a second wait of a few hours, then one more message. Stop there, because more than two asks reads as harassment.

  7. Publish and place a test COD order

    Use your own phone: tap Confirm and check the order records it. Then place another and tap Cancel.

Offering the prepaid switch#

The strongest version of this flow offers to convert, not just confirm. A small incentive to pay now turns your riskiest orders into your safest, because prepaid orders almost never return to origin.

A COD order triggers a confirmation message with buttons; choosing to prepay creates a Shopify draft invoice, injects the payment link into the reply, and Shopify replaces the COD order with a paid one.COD order placedConfirm onWhatsAppbuttonsDraft invoicecreatedin ShopifyPay link injectedPrepaid orderCOD order voided
What happens when a customer chooses to prepayShopify voids the COD order and creates a paid one, so expect two order records for one purchase.
DecisionGuidance
How much to offerEnough to beat the customer’s inertia, well below your RTO cost per order. Free shipping or a small flat discount is typical.
When to offer itIn the confirmation message itself, as the alternative to confirming COD. A separate later message converts far less.
What happens to the COD orderIt is voided when the payment succeeds. The new paid order carries a tag identifying it as a conversion.
If they ignore the linkNothing breaks. The original COD order stands and your normal flow continues.

Check it worked

  • A test COD order produces a confirmation message with working buttons.
  • A prepaid test order does not receive the confirmation.
  • Tapping Confirm is recorded against the order.
  • Tapping Cancel routes down the cancel path, if you built one.
  • A prepaid payment link opens a valid Shopify checkout for the right amount.

If confirmation is not working#

Prepaid customers are getting the COD confirmation

  1. Add the payment method = COD filter to the trigger. Without it, order placed matches every order.
  2. Republish after editing the trigger — a live journey keeps the trigger it was published with.

Buttons appear but taps do nothing

  1. The template must use quick-reply buttons, not a URL button.
  2. Send a test message first: if it reaches Live Chat, button taps will reach TopEdge too.
  3. Check no agent pressed Reply myself on the thread in Live Chat; that pauses automation.

The COD → prepaid node is locked

  1. It is a Growth-and-above feature. See plan limits.
  2. Already-published journeys keep running after a downgrade, but you cannot edit or create them.

A converted order looks like two orders

  1. That is Shopify’s behaviour — the COD order is voided and a paid one created.
  2. TopEdge skips the replacement for order counting, revenue and re-enrolment, so you are not billed or messaged twice.
  3. If a replacement did get a second message, the conversion tag was stripped from the order in Shopify.

Frequently asked questions

Does WhatsApp COD confirmation actually reduce RTO?
It reduces the share of RTO caused by unintended and duplicate orders, which is the largest removable chunk. It cannot fix RTO caused by delivery failures, wrong addresses or buyer remorse after dispatch. Measure your own before-and-after rather than trusting a headline number.
When should the COD confirmation message be sent?
Five to fifteen minutes after the order. The customer still remembers placing it, and you are well ahead of dispatch. Sending instantly feels automated and jumpy; waiting hours means the order may already be packed.
What should I do when a customer never confirms?
Send exactly one follow-up, then apply your own rule. Many stores hold high-value unconfirmed COD orders for a phone call and dispatch low-value ones anyway, because the shipping cost of being wrong is smaller than the lost sale.
Do I need a separate template for COD confirmation?
Yes. It needs quick-reply buttons so the customer can answer with one tap, and the body has to read as a transactional order confirmation to pass review as a Utility template. Your order confirmation template will not have the buttons.

Run these automations on your own store

Connect Shopify and WhatsApp in one sitting. Compare plans on the pricing page, or see every feature first.