Turn your UPI ID into a scannable payment QR code in seconds
Enter your UPI address, set an optional amount, and this tool creates a QR code your customers, friends, or clients can scan to pay you instantly - no app login, no signup, no fees. Works for any UPI-enabled app: Google Pay, PhonePe, Paytm, BHIM, and more.
Everything runs in your browser. Your UPI ID, amount, and payment note never leave your device. Nothing is uploaded to any server.
How to use the UPI QR code generator
- Enter your UPI ID (VPA) - this looks like
yourname@okaxisor9876543210@upi. - Add your payee name - the name shown on the payer's screen before they confirm.
- (Optional) Set an amount - leave it blank for an open-amount QR that the payer fills in themselves.
- (Optional) Add a note - e.g. "Invoice #1042" or "Table 7". Helps both parties keep records.
- Choose size and colours if you want to match your brand.
- Click Generate, then download as PNG (for printing or sharing) or SVG (for sharp display at any size).
Scanning the QR in any UPI app opens a ready-to-confirm payment screen pre-filled with your details - the payer just taps Pay.
Worked example - a freelancer's payment QR
Say you're a designer invoicing a client for ₹4,500:
| Field | Value you enter |
|---|---|
| UPI ID (VPA) | priya.design@okicici |
| Payee name | Priya Sharma |
| Amount | 4500 |
| Currency | INR |
| Transaction note | Logo design - Invoice #12 |
The tool builds this UPI deep-link string and encodes it as a QR code:
upi://pay?pa=priya.design@okicici&pn=Priya%20Sharma&am=4500&cu=INR&tn=Logo%20design%20-%20Invoice%20%2312
When your client scans the QR, their UPI app shows: Pay ₹4,500 to Priya Sharma? - one tap and it's done. No copy-pasting IDs, no typos.
How to generate a UPI QR code in code
If you need to create UPI QR codes programmatically - say, for an e-commerce checkout or a PDF receipt - here's the core pattern in two popular languages.
Python (using the qrcode library)
import qrcode
from urllib.parse import urlencode
params = {
'pa': 'priya.design@okicici', # UPI ID / VPA
'pn': 'Priya Sharma', # Payee name
'am': '4500', # Amount in INR
'cu': 'INR',
'tn': 'Logo design - Invoice #12'
}
upi_url = 'upi://pay?' + urlencode(params)
img = qrcode.make(upi_url)
img.save('payment_qr.png')
Install with pip install qrcode[pil]. The saved PNG is ready to embed in a PDF or email.
JavaScript (browser or Node.js, using qrcode npm package)
import QRCode from 'qrcode';
const params = new URLSearchParams({
pa: 'priya.design@okicici',
pn: 'Priya Sharma',
am: '4500',
cu: 'INR',
tn: 'Logo design - Invoice #12'
});
const upiUrl = `upi://pay?${params.toString()}`;
// Renders to a canvas element
QRCode.toCanvas(document.getElementById('canvas'), upiUrl);
// Or get a data URL for an
tag
const dataUrl = await QRCode.toDataURL(upiUrl);
console.log(dataUrl); // 'data:image/png;base64,...'
Install with npm install qrcode. Works in the browser and in Node.js.
How it works under the hood
A UPI QR code is simply a standard QR code that encodes a UPI deep-link URL - a string starting with upi://pay? followed by URL-encoded parameters. This format is defined in the NPCI UPI Linking Specifications.
The key parameters are:
- pa - payee address (your UPI ID / Virtual Payment Address)
- pn - payee name displayed to the sender
- am - amount (optional; omit for open-amount)
- cu - currency code (always
INRfor UPI) - tn - transaction note / remark (optional, up to 50 chars recommended)
The URL is turned into a QR code using the standard ISO/IEC 18004 (QR Code standard) at the error-correction level you choose. The higher the error-correction level, the more damaged or obscured the code can be and still scan successfully.
When to use a UPI QR code - and when not to
Great fits
- Small businesses and shops - print it at the counter; customers pay without cash or card.
- Freelancers - embed in PDF invoices so clients can pay in one scan.
- Events and stalls - a single printout handles all payments.
- Donation drives - fixed-amount or open-amount codes work equally well.
- WhatsApp / email payment requests - share the downloaded PNG directly in a chat.
Not the right tool when…
- You need international payments - UPI is an India-only rails system. For cross-border use, look at payment links or other QR standards.
- You need a payment confirmation webhook - the QR just opens the app; transaction verification requires UPI APIs from a payment gateway.
- The payer is on a feature phone without a UPI app - UPI QR codes require a smartphone and a UPI-enabled bank account.
A few things worth knowing
- QR codes never expire - they encode the data directly. There is no redirect, no central server, nothing to "deactivate." As long as your UPI ID is active, the code works.
- Free to generate and use - QR codes are an open standard. Creating or printing them costs nothing.
- PNG vs SVG - PNG is fine for print and sharing at a fixed size. SVG scales perfectly to any size (ideal for websites or large banners).
- Keep dark on light - most scanners expect a dark pattern on a light background. Reversed colours (light on dark) can confuse some older apps.
Ready to get paid faster? Use the generator above, download your QR, and start sharing it today.