💳 UPI QR Code Generator

Accept UPI Payments
With One Scan

Create a UPI payment QR code accepted by all UPI apps. Set a fixed amount or leave it open. Perfect for shops, freelancers, events, and fundraisers. Supports INR, USD, EUR, GBP and more.

🟢 Google Pay 🟣 PhonePe 🔵 Paytm 🇮🇳 BHIM 🟠 Amazon Pay 🏦 All Bank UPI Apps
💳 UPI payment details UPI DEEP LINK
How it works: Enter your UPI ID (VPA) — e.g. yourname@oksbi or 9876543210@paytm. Set an amount (optional) and a payment note. When scanned with any UPI app, the payment screen opens with all details pre-filled.
Required
Your UPI Virtual Payment Address — e.g. john@oksbi, 9876543210@paytm. Case-insensitive.
Optional — pre-fill payment details
Displayed to the payer as the recipient name in their UPI app.
Leave blank for any amount.
UPI transactions are primarily in INR. Other currencies are for display/compatibility.
Short description shown in the payer's transaction history.
📁 Click or drag to upload logo
PNG, JPG, SVG · max 500 KB
Logo preview
UPI Payment QR
💡 Quick tips
Double-check your UPI ID before printing
Leave amount blank for flexible payments
Add payee name so payers know who they're paying
Use Level H error correction when adding a logo
Test with Google Pay & PhonePe before printing

📊 Why UPI QR Codes Are Essential for Businesses

11B+
UPI transactions processed in 2023 — the world's largest real-time payment system
₹200L+
crore total transaction value in 2023 — over $24 trillion USD
65%
higher customer satisfaction when UPI QR codes are used for payments
5s
average time to complete a UPI payment via QR code scan

📖 How to Create Your UPI QR Code in 4 Steps

Enter Your UPI ID (VPA)
Type your UPI Virtual Payment Address — e.g. yourname@oksbi or 9876543210@paytm. This is the only required field.
Set Payment Details (Optional)
Add payee name, set a fixed amount, choose currency, and add a payment note. All fields are optional — leave amount blank for flexible payments.
Generate & Customise
Click Generate — your QR appears instantly. Change colours, add your logo, adjust size to match your brand.
Download & Deploy
Download as PNG for digital use (websites, social media) or SVG for print (flyers, posters, counter displays).
Test on All UPI Apps
Before bulk printing, test the QR with Google Pay, PhonePe, and Paytm to ensure seamless payment flow.
Track Payments
All payments appear directly in your UPI-linked bank account — no separate tracking dashboard required.

💼 Where to Use Your UPI QR Code

Retail & Pop-Up Shops
Small businesses use in-store QR codes to make payments fast and easy — no cashier or card terminal needed.
Events & Donations
Collect ticket fees or donations for charities and fundraisers — attendees pay instantly without cash handling.
Freelancers & Service Providers
Add QR codes to invoices or show on your phone — clients pay instantly after services are rendered.
Restaurants & Cafés
Place QR codes on tables, menus, or receipts — customers pay without waiting for the server.
E-Commerce & COD
Accept cash-on-delivery alternatives by sharing a UPI QR code with delivery drivers.
Schools & NGOs
Collect fees, donations, and event payments seamlessly with a simple QR code display.
Online Sellers
Display QR code on your social media or website — customers can pay directly via UPI.
Hotels & Hospitality
Allow guests to pay for room service, extra amenities, or final bills via UPI QR code.

🚀 6 Benefits of a UPI QR Code

Instant Contactless Payment
Customers scan and pay in under 5 seconds — no cash handling, no card machines, no typing UPI IDs. Reduces queue times significantly.
Works with All UPI Apps
Your QR is compatible with Google Pay, PhonePe, Paytm, BHIM, Amazon Pay, Mobikwik, and every bank's UPI app. One QR, all apps.
Zero Setup Cost
Unlike POS machines or payment gateways, a UPI QR code costs nothing to generate, display, or maintain. No monthly fees.
Static & Never Expires
Your QR code is a static image — it works forever. No server dependency, no subscription, no expiry. Print it once, use it for years.
Multi-Currency Support
While UPI is an Indian system, the deep link format supports multiple currencies. Set the currency that matches your pricing.
Fully Branded
Customise with your brand colours and logo. A branded QR code looks professional, builds trust, and increases scan rates.

📖 Complete Guide: How to Use UPI QR Codes for Business Payments

UPI (Unified Payments Interface) is India's revolutionary real-time payment system, processing over 11 billion transactions in 2023 alone. A UPI QR code is the simplest way to accept payments — customers scan the code with any UPI app, confirm the amount, and the money is instantly transferred to your bank account. For small businesses, freelancers, and service providers, a UPI QR code eliminates the need for expensive card terminals or cash handling.

Why UPI QR Codes Are Taking Over

India has one of the most advanced digital payment infrastructures in the world, and UPI is at its heart. With over 300 million active users, UPI has become the default payment method for millions of Indians. A QR code makes accepting payments as simple as displaying a printed image — no training, no setup fees, no transaction complexity.

Understanding the UPI Deep Link

This tool generates a UPI deep link in the format upi://pay?pa=... — the standard protocol that all UPI apps understand. The link encodes your UPI ID (payee address), optional payee name, amount, currency, and transaction note. When scanned, the UPI app parses this link and opens the payment screen with all details pre-filled. This is the same format used by India's largest e-commerce and payment platforms.

Best Practices for UPI QR Codes

Frequently Asked Questions

The QR code encodes a UPI deep link (upi://pay?pa=...). When scanned with Google Pay, PhonePe, Paytm, BHIM, or any UPI app, the payment screen opens with the recipient UPI ID, name, and amount pre-filled. The payer reviews and confirms.
All UPI-enabled apps — Google Pay, PhonePe, Paytm, BHIM, Amazon Pay, MobiKwik, and any bank's UPI app. The standard UPI deep link format is supported by every NPCI-certified UPI application.
Yes. Enter the amount and select your preferred currency from the dropdown. The UPI app opens with that amount pre-filled. UPI transactions are primarily in INR, but the currency parameter can be set for display/compatibility purposes.
Your UPI ID is encoded in the QR image and is visible to anyone who scans or decodes it — this is normal for payment QR codes. Never share QR codes containing sensitive information beyond what you'd share on a payment receipt. The QR code is generated 100% in your browser — your data never leaves your device.
No. The QR image is static — payment details are encoded directly inside it. It works forever. If you change your UPI ID or business name, generate a new QR code.
A UPI QR uses a specific deep link format (upi://pay) that UPI apps recognise. A standard QR might just be a text or URL. UPI QR is specially designed to trigger the payment flow in UPI apps.
No. All QR code generation happens entirely in your browser. Your UPI ID, name, amount, and note never leave your device — never sent to any server, never stored, never tracked.

Pay to: ' + pa + ' · ToolsBox.org

' ); win.document.close(); } function resetAll() { ['upi-id', 'upi-name', 'upi-amount', 'upi-note'].forEach(id => { const el = document.getElementById(id); if (el) el.value = ''; }); document.getElementById('upi-currency').value = 'INR'; updateCurrencySymbol(); document.getElementById('qr-out').innerHTML = ''; document.getElementById('qm-info').textContent = '—'; document.getElementById('qm-ready').textContent = ''; document.getElementById('link-preview').style.display = 'none'; rmLogo(); } function toggleCust() { const b = document.getElementById('cust-body'); const hd = document.querySelector('.cust-hd'); const h = b.classList.toggle('hide'); hd.setAttribute('aria-expanded', !h); document.querySelector('.cust-arr').textContent = h ? '▾' : '▴'; } function syncHex(cid, hid) { document.getElementById(hid).value = document.getElementById(cid).value; } function syncCol(hid, cid) { const v = document.getElementById(hid).value; if (/^#[0-9a-fA-F]{6}$/.test(v)) document.getElementById(cid).value = v; } function updSize() { const v = document.getElementById('sz-range').value; document.getElementById('sz-label').textContent = v + '×' + v; document.getElementById('sz-range').setAttribute('aria-valuetext', v + ' by ' + v + ' pixels'); } function setEC(ec, btn) { EC = ec; document.querySelectorAll('.ec-p').forEach(p => { p.classList.remove('on'); p.setAttribute('aria-pressed', 'false'); }); btn.classList.add('on'); btn.setAttribute('aria-pressed', 'true'); } function preset(fg, bg) { document.getElementById('fg-col').value = fg; document.getElementById('fg-hex').value = fg; document.getElementById('bg-col').value = bg; document.getElementById('bg-hex').value = bg; autoGenerate(); } function handleLogo(inp) { const f = inp.files[0]; if (!f) return; if (f.size > 512000) { showErr('Logo must be under 500 KB'); return; } const reader = new FileReader(); reader.onload = e => { currentLogoBase64 = e.target.result; document.getElementById('logo-img').src = currentLogoBase64; document.getElementById('logo-name').textContent = f.name; document.getElementById('logo-prev').style.display = 'flex'; setEC('H', document.querySelector('.ec-p[data-ec="H"]')); autoGenerate(); }; reader.readAsDataURL(f); } function rmLogo() { currentLogoBase64 = null; document.getElementById('logo-inp').value = ''; document.getElementById('logo-prev').style.display = 'none'; document.getElementById('logo-img').src = ''; autoGenerate(); } function showErr(m) { const e = document.getElementById('err-box'); e.textContent = '⚠️ ' + m; e.classList.add('show'); setTimeout(() => e.classList.remove('show'), 5000); } function hideErr() { document.getElementById('err-box').classList.remove('show'); } function faq(el) { const p = el.parentElement; const open = p.classList.contains('open'); document.querySelectorAll('.fi').forEach(x => { x.classList.remove('open'); x.querySelector('.fq').setAttribute('aria-expanded', 'false'); }); if (!open) { p.classList.add('open'); el.setAttribute('aria-expanded', 'true'); } } /* ── MOBILE NAV ── */ (function() { const h = document.getElementById('ham'), m = document.getElementById('mob-menu'); h.addEventListener('click', () => { const o = m.classList.toggle('open'); h.setAttribute('aria-expanded', o); const s = h.querySelectorAll('span'); if (o) { s[0].style.transform = 'rotate(45deg) translate(4px,4px)'; s[1].style.opacity = '0'; s[2].style.transform = 'rotate(-45deg) translate(4px,-4px)'; } else { s.forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); document.addEventListener('click', e => { if (!h.contains(e.target) && !m.contains(e.target)) { m.classList.remove('open'); h.setAttribute('aria-expanded', 'false'); h.querySelectorAll('span').forEach(x => { x.style.transform = ''; x.style.opacity = ''; }); } }); })(); /* ── LOGO DRAG-AND-DROP ── */ (function() { const drop = document.getElementById('logo-drop'); ['dragenter', 'dragover'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.add('drag-over'); })); ['dragleave', 'drop'].forEach(ev => drop.addEventListener(ev, e => { e.preventDefault(); drop.classList.remove('drag-over'); })); drop.addEventListener('drop', e => { e.preventDefault(); const f = e.dataTransfer.files[0]; if (f && f.type.startsWith('image/')) { const dt = new DataTransfer(); dt.items.add(f); document.getElementById('logo-inp').files = dt.files; handleLogo(document.getElementById('logo-inp')); } }); drop.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); document.getElementById('logo-inp').click(); } }); })(); /* ── DEMO ON LOAD ── */ window.addEventListener('load', () => { document.getElementById('upi-id').value = 'yourname@oksbi'; document.getElementById('upi-name').value = 'Your Business'; document.getElementById('upi-amount').value = ''; document.getElementById('upi-currency').value = 'INR'; updateCurrencySymbol(); livePreview(); generateQR(); });