How do I optimise UPI at checkout, what's the difference between UPI intent and collect, and why do my UPI payments keep failing?
The short answer
UPI Intent deep-links straight into the customer's UPI app (GPay, PhonePe) on the same device and posts materially higher success rates; UPI Collect sends a pull request the customer has to notice and approve elsewhere, and lands meaningfully lower. Default to Intent on mobile, fall back to a dynamic QR on desktop, and let your gateway handle bank-side routing and retries, most UPI failures are bank-side timeouts, not something you fix with UI tweaks. UPI also carries 0% MDR in India currently, so pushing it over cards isn't just about conversion, it's your cheapest rail, worth featuring first rather than buried in a payment-method list.
A quick summary to orient you. The real value is below: the resources worth your time, from people who've actually done it, not us.
Here are the resources
Hand-picked from around the web, each with a note on why it earns your time. India-specific ones carry a badge.
Why we picked it
The clearest technical explanation of why UPI Intent out-converts Collect, from the gateway that actually routes the transactions and sees the failure data. Send this to your dev team when they ask why UPI success rates vary by flow.
Why we picked it
Most Indian D2C traffic is mobile, and this is Razorpay's own guidance on where mobile checkouts specifically lose people, worth reading alongside Baymard's more general research for the India-specific mobile angle.
Why we picked it
The deepest independent usability research base on why carts get abandoned - the '70% abandonment' figure and specific checkout friction points cited across the CRO industry trace back to this research.
Why we picked it
Cashfree's own live pricing page, broken out by payment method (cards, UPI, net banking, EMI, international cards), the fastest way to see that UPI carries 0% MDR while international cards run 3.5%+₹7. Use it to sanity-check whatever a sales rep quotes you.