In this article
On a COD-heavy Indian store, the orders that quietly drain margin aren't the ones that don't convert — they're the ones that convert, ship, and come straight back. You paid forward and reverse shipping and got nothing for it. Verifying COD orders at checkout, before dispatch, is how you stop funding those round trips.
Why COD needs verification at all
Shopify's native checkout treats COD as an on/off switch per market — there's no notion of a risky COD order versus a safe one. But they are not the same: an order to a verified number, a complete address, and a normal cart looks nothing like a burst of high-value COD to a pincode that returns half of what it receives. Verification is simply putting a check between "order placed" and "parcel shipped".
The four checks that actually move the number
- Verify the phone with OTP — so the contact on the order is real and reachable, not a typo or a throwaway.
- Score the COD attempt 0–100 — from network history, address quality, order velocity and location, so the decision is a number you can see.
- Confirm the risky ones on WhatsApp — an automated message that makes an impulse or fake buyer opt in before you ship.
- Offer a partial advance instead of a hard block — keep the sale, cut the return.
Each is a rule you set per risk band, not a fixed policy — allow COD below a threshold, ask for a partial advance in the middle, require prepaid or block at the top. The full mechanics are on the COD verification for Shopify page.
Don't just block — convert
The instinct is to reject risky COD. That loses the sale. Partial COD is the better lever: the shopper pays a small amount online now and the rest on delivery, so a buyer who has skin in the game accepts the parcel. You keep a risky order as revenue at a much lower return rate — the same logic that anchors the wider RTO-reduction playbook.
None of this needs a specific gateway or courier. The checks live in the checkout layer, on top of the Shopify store, gateways and logistics you already run.
See it live on a private preview of your checkout.