The button opens a payment page on ezyupi.com showing the amount, your QR, your UPI ID (tap to copy) and a Pay button. It works on phones, iPhones and computers, costs nothing, and takes no cut. It isn't a payment gateway, so you confirm payments in your own bank app.
What you get
An HTML snippet: one <a> tag with its styles written inline. No script to load. Paste it into WordPress, Shopify, Wix, Webflow, a Google Site or any page where you can add HTML.
A choice of label and colour, such as "Pay via UPI ₹500".
A fixed amount or an open one. Leave the amount empty and the visitor types it.
An optional note, such as an order or invoice number, that travels with the payment.
A QR image for emails, framed with "Scan to pay", your UPI ID and the amount.
The link points to a page on ezyupi.com, so the button works as long as our site is up. Your UPI ID, amount and note are readable in the link itself, the same as on your QR. If you'd rather have no dependency on us, put your QR image and UPI ID on your page instead.
How the payment page behaves
On an Android phone, the Pay button opens a UPI app with your details filled in, and Android asks which app to use.
On an iPhone, there's no app chooser for UPI links, so the page shows a button for each common UPI app.
On a computer, the page shows your QR large, to scan with a phone.
On every device, your UPI ID is shown, and tapping it copies it.
The NPCI rule every UPI button runs into
Since 1 April 2024, NPCI has told UPI apps not to complete payments started from a link or button (called "intent" payments) when the money goes to a personal UPI ID. They're still allowed for verified merchants: UPI IDs issued with a merchant account from a bank or payment company.
So if your button uses a personal UPI ID, some visitors will tap Pay and see "This transaction may be risky. For your safety, it can't be completed at this time." That's the app following NPCI's rule, not a fault in the button. The payment page is built for this: visitors can copy your UPI ID and pay to it from their app, or scan the QR from another screen.
If you take regular payments on your website, a verified merchant UPI ID, set up with KYC by your bank or a payment company, makes the Pay button work for everyone.
For developers: what a raw UPI link looks like
Underneath, every UPI payment starts from a link in NPCI's format:
<a href="upi://pay?pa=yourname@okhdfcbank&am=500.00&cu=INR&tn=Order%20123">Pay ₹500 by UPI</a>
pa is the UPI ID, am the amount, cu the currency and tn a note; spaces are %20. Linking straight to upi:// like this has three problems the hosted page avoids:
- Desktops can't open it, so computer visitors get nothing.
- Many email apps and in-app browsers don't make
upi://links clickable. - Payments to personal UPI IDs are blocked under the rule above, and a raw link has no fallback.
That's why "UPI deep link not working" is such a common search. The button here sends visitors to an ordinary web page that offers every way to pay.
Where it works well
A freelancer's invoice page: "Pay this invoice" with the amount fixed and the invoice number in the note.
A donation page: amount left open, with suggested figures beside it.
A booking deposit: a fixed deposit for a table, a class or a slot, confirmed by you when it lands.
A "pay the balance" link for a customer who's already ordered.
A small online shop that confirms orders by hand on WhatsApp.
Where it doesn't
This is a link to pay you, not a checkout. It won't tell your website whether the payment happened, won't mark an order paid, and won't handle refunds or disputes. For a shop that needs any of that automatically, at volume, use a payment gateway.
In emails
The button's link is an ordinary https:// link, so it works in email. For a simple email, attach or insert the QR image for emails from the generator, with your UPI ID written under it.
Confirming payments
The button doesn't report back, so confirm each payment the way you would at a counter: check your own UPI app or bank app for the credit, and match the amount, time and note. A screenshot from the buyer isn't proof.
Spotting fake payment screenshots
Making it accessible
Say what it does. "Pay ₹500 by UPI" is clearer than "Pay now", and much clearer than an icon alone.
Keep the contrast high so the button reads on a phone in sunlight.
Show the amount beside the button as plain text, so people know what they're agreeing to.
Questions
Can I add UPI payment to my website for free?
Yes, for the link-to-pay case. The snippet costs nothing and takes no cut.
Why does my UPI button say "This transaction may be risky"?
Since April 2024, UPI apps block link and button payments to personal UPI IDs. Visitors can copy your UPI ID from the payment page and pay to it, or you can use a merchant UPI ID.
Does it work on iPhone?
Yes. The payment page shows a button for each common UPI app, plus your QR and UPI ID.
Does it work on desktop?
Yes. The payment page shows your QR to scan with a phone.
Will my site know when someone pays?
No. It's a payment link, not a gateway. Check your own UPI app or bank account.
Does the button depend on ezyupi?
Yes. It links to a payment page on ezyupi.com. The QR image you download doesn't depend on us.
Is this a payment gateway?
No. No settlement, no order status, no refunds. For those you need a gateway.
Website par UPI payment button kaise lagaye?
Generator mein apni UPI ID, chahein to amount, button ka label aur rang chuniye, phir HTML code copy karke apni website mein paste kijiye. Button ek ezyupi payment page kholta hai jismein QR aur aapki UPI ID hoti hai. Personal UPI ID par app wala Pay button "This transaction may be risky" dikha sakta hai, isliye QR scan karna ya UPI ID copy karke payment karna sabse bharosemand tareeka hai.
Sources
- Intent (link/button) payments to personal UPI IDs disallowed from 1 April 2024 (NPCI circular OC 76A): TaxGuru
- "This transaction may be risky" on website UPI buttons while QR scans work: WordPress plugin support thread
Last reviewed 29 October 2026