In this article
For most Indian D2C stores, cash on delivery is the majority of orders — and it's the single hardest thing to get right on a headless storefront. Payments you can wire up; COD done properly is a system: verified contact, address intelligence, risk rules, confirmation, and RTO control. Teams that go headless often discover COD is the piece their custom checkout can't easily reproduce, and end up sending shoppers to Shopify's native checkout just to take COD orders — losing the control that matters most. You don't have to.
Why COD is harder than payments on headless
A prepaid payment is a single moment: charge the card or UPI, done. COD is a decision with a long tail of risk, and doing it well means a stack of things working together:
- Verifying the shopper — an OTP-verified phone so the order and the address are real, not a throwaway.
- Deciding whether to allow COD at all — by pincode, by state, by order value, by risk score — because not every COD order is worth shipping.
- Capping exposure — COD limits, or a partial-COD option that takes a small amount online now and the rest on delivery.
- Confirming the order — a WhatsApp or email nudge that catches fake or accidental COD orders before they ship.
- Feeding RTO models — so risky orders are flagged or blocked, not discovered when they come back.
Rebuilding all of that inside a custom checkout is a lot of undifferentiated work. Routing shoppers to Shopify's native checkout to avoid it gives you COD but none of the control — the exact opposite of why you'd run a bespoke store.
How to add COD to a headless store without losing control
IndiSell brings its full COD and RTO suite to a headless storefront the same way it does to a themed one — it just attaches to your custom store through a lightweight integration instead of a theme app. Your shopper stays on your storefront until they choose to pay; the IndiSell checkout then handles OTP, address, the COD decision (allow/cap/block by pincode, state, value and risk), partial-COD, and WhatsApp/email confirmation. Orders land in your Shopify store as real orders, so your fulfilment, reports and everything downstream are unchanged.
Because it runs on your own gateway, the prepaid side (UPI, cards, netbanking, wallets) settles directly to you, and you can layer prepaid incentives to move shoppers off COD where it makes sense — the levers that actually lower RTO. The point isn't just "COD works on headless"; it's that you get the same control a themed store gets, on the storefront you built.
A note on RTO — the real cost of COD
COD conversion is easy to celebrate and expensive to ignore: the money leaks on returns. If you're adding COD to a headless store, add it with RTO rules from day one — risk scoring, pincode and state blocks, confirmation — rather than turning COD on and hoping. We wrote about honest RTO benchmarking in what is a good RTO rate; the same thinking applies whether your storefront is a theme or headless.
The short answer
Yes — you can add cash on delivery, with proper verification and RTO control, to a headless Shopify store, without falling back to the generic native checkout. The trick is using a checkout that treats COD as a system and attaches to your custom storefront, so you keep the control that made you go headless in the first place. If you're building headless and need COD done right, tell us your setup.
Frequently asked questions
Can a headless Shopify store take cash on delivery? Yes. With IndiSell attached to your headless storefront, shoppers get a full COD flow — OTP-verified contact, address with pincode intelligence, and COD allowed, capped or blocked by pincode, state, value and risk — without routing them to Shopify's native checkout.
Do I get RTO control on a headless store, or just COD? You get both. The same RTO suite a themed IndiSell store has — risk scoring, pincode/state rules, COD caps, partial-COD, and WhatsApp/email order confirmation — works on a headless storefront.
Will COD orders still show up as normal Shopify orders? Yes. Orders are created in your Shopify store, so fulfilment, customer records and reporting are unchanged — they're real Shopify orders, whether prepaid or COD.
See it live on a private preview of your checkout.