Guide

Accepting UPI payments for digital products in India

For an Indian audience buying a digital file, UPI is usually the difference between a sale and an abandoned checkout. It also behaves differently from a card in ways that matter to how you deliver.

Two different UPI flows

One-time collect
The buyer approves a single payment in their UPI app. This is what a one-off product purchase uses.
UPI Autopay (e-mandate)
The buyer approves a recurring mandate once, and later cycles are debited against it. This is what a subscription needs — a one-time collect cannot be replayed next month.

The confirmation gap

A UPI payment is approved in a different app from the one your checkout is running in. The buyer leaves your page, approves, and comes back — or does not come back, because they switched apps and got distracted.

So confirmation cannot depend on the buyer returning. Two paths have to lead to the same fulfilled order: the redirect back to your site, and the gateway’s server-to-server webhook. Both must be idempotent, or a buyer who returns *and* triggers a webhook gets two orders, two licence keys, and eventually a refund request.

This is the single most common way a UPI integration breaks, and it is invisible in testing because a developer clicking through always returns promptly.

Deliver to an address, not to a session

Because the buyer may never land back on your confirmation page, delivery has to reach them another way. Email the receipt and the download link, and make the link work from a fresh browser with no session.

Guest checkout is worth supporting for exactly this reason: asking someone to create an account before paying adds a step in front of a decision they have already made. An email address is enough to deliver to, and it can be verified later if the buyer wants a permanent library.

Practical details worth getting right

Show a GST-inclusive price
A price that grows at checkout reads as a bait-and-switch. Compute it server-side and show the final number on the product page.
Expect pending states
UPI payments can sit pending for a short window. Show an honest pending state rather than a failure, and let the webhook resolve it.
Handle the abandoned checkout
Sweep stale pending checkouts rather than leaving them to accumulate, and let a returning buyer reuse a pending attempt instead of creating a second one.
Keep download links short-lived
Signed, time-boxed links re-issued from the receipt or library — not a permanent URL that ends up shared.

How this platform handles it

Checkout runs through Razorpay, so UPI, cards, net banking and wallets are all available, and subscriptions use UPI Autopay or a card mandate. Order fulfilment is idempotent across both the verify and webhook paths, delivery goes out by email with short-lived signed links, and guest checkout needs only an email address.

Common questions

Can I use UPI for subscription billing?

Yes, through UPI Autopay, where the buyer approves a recurring mandate once and later cycles are debited against it. A one-time UPI collect cannot be replayed for the next cycle.

What happens if the buyer never returns to my site after paying?

Nothing should break. Fulfilment has to be driven by the gateway webhook as well as the redirect, and both paths must be idempotent, so the order completes and delivery goes out by email regardless of whether the buyer comes back.

More answers on the full FAQ.