Purpose
Most UPI QR generators are cluttered with ads, tracking scripts, or redirect to app-store funnels. QR4UPI is a single focused tool — fill the form, get your card, download or share.
A privacy-first, browser-based generator for styled UPI payment QR cards. Generates upi://pay codes entirely in the browser — no uploads, no tracking, no friction.
Most UPI QR generators are cluttered with ads, tracking scripts, or redirect to app-store funnels. QR4UPI is a single focused tool — fill the form, get your card, download or share.
Amounts are formatted in the Indian numbering system (lakhs, crores) and displayed as words below the QR code — the way payment receipts in India have always looked.
Payment details are encoded only into the generated QR card. The app sends nothing to a server. Last-used form data is saved to localStorage for reuse on the same device and browser only.
Features
Generates standard upi://pay deep-link QR codes entirely in the browser using a bundled library. No network call required after page load.
Amount fields format values in the Indian numbering system and render the amount in words (e.g. "Rupees Five Thousand Only") below the card.
Export the styled QR card as a JPEG or trigger the native Web Share API — letting users share directly to WhatsApp, Messages, or any installed app.
Switch between card themes to match context — a clean white card for printed receipts, or a darker variant for digital sharing.
UPI ID, name, and last-used amount are persisted in localStorage so returning users skip re-entry on the same device and browser.
No CDN fetches at runtime. The QR library is bundled locally as qrcode.min.js. Works fully offline after first load.
Project structure
Run locally
Clone or download this repository to your machine.
Open index.html directly in any modern browser — Chrome, Firefox, Safari, or Edge.
For the best browser compatibility (Web Share API, file exports), serve the folder with any static-file server: npx serve . or python -m http.server 8080.
Deployment
Publish the repository root from the desired branch. No build command required — GitHub Pages serves the static files directly.
Connect the repository, set no build command, set output directory to / (root). Deploys to Cloudflare Edge globally on every push.
Vercel, Netlify, or any web server that can serve static files. No build pipeline, no Node.js runtime — just file serving.