Your customers already pay the chaiwala, the electrician and their landlord by UPI. Then they reach your website and are asked for a sixteen-digit card number. Some go looking for their wallet. Many just close the tab and send you a WhatsApp message asking for your UPI ID instead.
If you want to accept UPI payment on website checkout properly, there are three ways to do it, and they behave very differently once orders start coming in. This post compares them, explains what the customer actually sees on a phone and on a laptop, and lists what to test before you trust it with real sales.
Three ways to take UPI on a website
| Method | How it works | Order marked paid automatically? | Best for |
|---|---|---|---|
| Static QR code or UPI ID on a page | You show your QR image or UPI ID. The customer pays from their app and tells you. | No. You check your bank or app and update the order yourself. | Very low volume, trusted repeat customers |
| Payment link or payment page | The gateway hosts a page with UPI as an option. You send or embed the link. | The gateway records it. Your store only knows if it is connected. | Service businesses, invoices, deposits |
| UPI through a gateway at checkout | UPI appears as a payment method inside your cart checkout. | Yes, when the integration works correctly. | Any online store with a cart |
The middle option has its own trade-offs, which we cover in payment links compared with full checkout. The rest of this post is mostly about the first and third.
Why a static QR code causes trouble
Putting your UPI QR on the checkout page looks free and simple. For a handful of orders a month from people you know, it can work. Beyond that, the problems pile up:
- No link between payment and order. The customer pays an amount from their app. Your store does not know it happened. You have to match credits in your bank app to orders by hand, often by amount and time alone.
- Wrong amounts. Customers type the amount themselves. Typos, forgotten shipping charges and rounded totals all need chasing.
- Screenshot “proof”. A screenshot of a successful payment is easy to fake or reuse. Until you see the credit in your own account, you have not been paid.
- Stock and confirmation delays. The order sits in an unpaid state until you check, so stock is not reduced and the customer gets no confirmation email.
- Personal account limits and terms. If the QR belongs to a personal savings account, your bank may not expect business collections through it. Check your bank’s terms.
A gateway removes the manual matching. The payment carries your order reference with it, and the store updates itself.
What the customer sees: phone versus laptop
A good UPI checkout behaves differently depending on the device, and gateways handle this for you when it is set up right.
On a phone
The customer taps UPI, and the gateway shows a list of UPI apps installed on the phone, or opens the default one. This is usually called the intent flow. The app opens with your business name and the exact amount already filled in. The customer enters their UPI PIN, the app returns them to the browser, and your site shows the order confirmation.
On a laptop or desktop
There is no UPI app on a laptop, so the gateway shows a QR code generated for that one order, with the amount fixed. The customer scans it with their phone and approves the payment. The checkout page on the laptop waits, then moves to the confirmation once the gateway reports success.
Typing a UPI ID
Some gateways also let the customer enter their UPI ID and approve a request in their app. Which of these flows your account offers can change over time, so check the current options in your gateway’s documentation rather than assuming. NPCI has been changing how request-based UPI payments work, which is one more reason to check.
How to accept UPI payment on website checkout with WooCommerce
The broad steps for adding any gateway are in our guide to adding a payment gateway. For UPI specifically, these are the details that matter:
- Confirm UPI is enabled on your gateway account. Razorpay, Cashfree and PayU all support UPI, but a method can be switched off for a particular account. The gateway dashboard lists which methods are active.
- Install the gateway’s official WooCommerce plugin and enter the live keys.
- Check how UPI is shown. Some plugins show one “Pay online” option and let the gateway’s window offer UPI inside it. Others can show UPI as its own line at checkout. If most of your buyers use UPI, a clear label helps.
- Set the webhook. UPI payments are often approved in a different app, so the customer may never come back to your site through the normal redirect. The background notification from the gateway is what marks the order paid. Make sure the webhook URL in the gateway dashboard uses your current domain with https.
- Keep Cash on Delivery as a separate choice if you offer it. Our post on setting up COD in WooCommerce covers the rules people usually want for it.
On Shopify the gateway is connected from the payments settings instead of a plugin, but the testing below applies just the same.
A test plan before you go live
UPI has more moving parts than a card form, because it depends on the customer’s app, their bank and their phone switching between apps. Test more than once, on more than one device:
- Android phone with two different UPI apps installed. Confirm the app picker appears.
- iPhone. App switching works a little differently here, so check that the customer comes back to a confirmation.
- Laptop browser. Confirm the QR appears, scan it, and watch the checkout page move on by itself.
- Close the browser tab after paying, before the redirect. Then check whether the order still turns to paid. If it does not, the webhook is not working.
- Decline the payment in the UPI app, or let it time out. Confirm the order stays unpaid and the customer can try again.
- Make a refund of one test payment and check it appears in both the gateway and the store.
Write down what happened in each case. If something fails later, you will know whether it ever worked.
When UPI payments fail or get stuck
Many UPI failures start on the customer’s side: the bank’s server is slow, the PIN is wrong, or a daily limit set by their bank has been reached. Your site cannot fix those, but it can make retrying easy. The order should stay open, and the checkout should offer UPI again without the customer having to rebuild their cart.
A harder case is the customer whose money left their account but whose order shows as failed. Our guide on a failed payment where money was deducted explains what usually happened and what to tell them.
If many UPI payments fail in a row, or every payment shows as pending, the problem is more likely on your site or in the gateway settings than with your customers.
Small details that make UPI checkout smoother
- Use a clear business name in the gateway settings. It is what the customer sees in their UPI app before entering the PIN. A name they do not recognise makes them hesitate.
- Show the total including shipping before payment. A UPI amount that does not match the cart total looks like a mistake.
- Do not force account creation before payment. Guest checkout keeps the path short on a phone.
- Keep the checkout page light. Heavy pop-ups and chat widgets can get in the way of the app switch on cheaper phones.
- Tell customers what happens next. A line under the button such as “Your UPI app will open to approve the payment” removes doubt.
Matching UPI payments to orders afterwards
Even with a gateway, it is worth knowing how to find one payment quickly. When a customer says “I paid”, ask for the UPI transaction reference shown in their app, sometimes called the UTR or RRN. Search for it in the gateway dashboard. It will show whether the payment was captured, failed or refunded, and which order it belongs to. That one number usually settles the question quickly.
Choosing the gateway that handles UPI for you
Any of the main Indian providers will let you accept UPI payment on website orders, so UPI support alone will not decide it. What differs is fees by method, how they show UPI options, and how well their plugin handles the return from the app. Our main guide to picking a business payment gateway weighs those differences. If UPI cost is your main concern, check each gateway’s pricing page for its current UPI rate, as these change.
If UPI shows on your checkout but orders keep getting stuck as pending, have the webhook and plugin settings looked at before you change gateways. A QR code on a page is a fine place to start. A checkout that confirms orders by itself is where you want to end up.
Next in this series: Accept International Payments on an Indian Website