IndiSell Docs Dashboard →
Payments

Cash on Delivery & Partial COD

COD is where Indian D2C loses money to returns. IndiSell gives you graded control instead of an all-or-nothing switch.

Cash on Delivery drives conversion in India but also drives RTO (return-to-origin) — parcels that come back undelivered, costing you shipping both ways plus blocked stock. IndiSell's answer is graded control, not a blunt on/off switch.

The three COD actions

Every COD decision resolves to one of three outcomes, weakest to strongest:

Allow COD

Plain Cash on Delivery is offered normally.

Partial COD

Plain COD is withdrawn; the shopper pays a small advance online and the rest on delivery.

Block COD

No COD at all — prepaid only.

Partial COD

Partial COD sits between a prepaid discount and a COD block: the shopper pays a token advance online, which makes them committed enough to open the door, while keeping the comfort of paying the rest in cash. You set the advance as a flat amount or a percentage, optionally tiered by cart value.

It's the highest-leverage middle ground — most orders never see the advance, and the ones that do are exactly the risky ones.

Partial COD has its own settings, separate from full COD:

  • Its own availability range. Set a min/max order value and min/max cart items for when Partial COD is offered — independent of the full-COD limits. For example: full COD up to ₹2,000, Partial COD ₹2,000–8,000. Outside the range, Partial COD is withdrawn too (the order becomes prepaid-only).
  • Its own convenience fee. Charge a different COD fee on partial orders — usually lower, since an advance is already paid online. It can be flat or tiered by cart value. Left off, partial orders use the same fee as full COD.
  • Independent of the full-COD switch. Partial COD can stay available at checkout even when full COD is turned off — it just needs a connected payment gateway for the online advance.
ℹ️
Partial COD needs a connected payment gateway — the advance is a real online payment.

Where COD decisions come from

The allow/partial/block outcome is decided per order by your Smart COD rules — risk score bands, pincode rules, same-day caps, order-value caps, and the outside-India rule. This page is the what; Smart COD is the how.

💡
The cheapest RTO is the one that never happened. Pair a small prepaid incentive (see Offers) with graded COD and you'll shift a real share of orders to prepaid without losing the COD-only shopper.

Confirm COD orders before they ship

Blocking risky COD stops the worst orders; COD confirmation catches the rest. When a COD order comes in, IndiSell messages the shopper to confirm it — over WhatsApp and/or email — and their answer lands on the order so you only ship the ones they actually stand behind.

  • Confirm / Cancel — the shopper taps a button (WhatsApp) or a link. The outcome writes to the order as a Shopify tag (COD-Confirmed / COD-Cancel-Requested), so your fulfilment can hold until confirmed.
  • Silent learning — a customer-cancelled COD feeds Smart COD, so the next similar order scores riskier.
  • Multi-touch — send a single ask, a retry after a set delay, or an ordered WhatsApp → email journey.

Set it up

1
Open Orders → COD confirmation

Two tabs: Confirmation journey (the on/off master switch + timing) and Channels (WhatsApp + email). You can configure channels first and switch it on when ready.

2
Pick the WhatsApp account

Under Channels → WhatsApp, choose an account from Connections. Its approved templates load live; pick one and map its variables (name, order, amount, link).

3
Confirm / Cancel buttons (optional)

Use a template with two quick-reply buttons so the shopper never leaves WhatsApp. This needs Meta's inbound webhook — a one-time setup shown on the page. Otherwise it sends a confirm link (no webhook needed).

ℹ️
The WhatsApp account is a shared connection — the same one you use for OTP and cart recovery. Set it up once, reuse it everywhere.