Generate, download, copy, and print UPI QR codes for your bank account โ right from your browser. 100% offline, dependency-free, and privacy-first.
- UPI QR generation โ Generate scannable
upi://payQR codes for any bank account (account number + IFSC, VPA, or mobile + bank code). - Instant live preview โ The QR code updates as you type.
- Multiple formats โ Export as PNG, SVG, or copy the raw QR text to the clipboard.
- Flexible amount & note โ Add a fixed or optional amount and a payment note/reference to the QR payload.
- Size presets โ Choose QR sizes for screens, labels, or print.
- Print-friendly โ Print a clean, receipt-style QR code.
- Dark & light themes โ Auto-follows your system or manual toggle.
- Responsive & accessible โ Works on desktop, tablet, and mobile.
- PWA-ready โ Installable and offline-capable (service worker).
- Privacy-first โ All processing happens locally in your browser. Your bank details are never sent to any server.
- Zero dependencies โ No frameworks, no trackers, no build step.
๐ https://upiqr.example.com
The live site is deployed to Cloudflare Pages from the
mainbranch. Replace the placeholder with your production URL after deployment.
| Area | Choice |
|---|---|
| Language | Vanilla JavaScript (ES modules) |
| Markup | Semantic HTML5 |
| Styling | Modern CSS with custom properties |
| QR engine | Self-contained QR generation (no external CDN) |
| Backend | None โ fully client-side |
| Hosting | Cloudflare Pages (static) |
| CI/CD | GitHub Actions (lint + deploy) |
โโโ index.html # single-page application markup
โโโ css/ # stylesheets
โ โโโ reset.css # reset & base styles
โ โโโ variables.css # design tokens (colors, spacing, radii)
โ โโโ layout.css # app shell & grid
โ โโโ forms.css # inputs, buttons, selects
โ โโโ utilities.css # helpers & print styles
โ โโโ main.css # app-specific styles
โ โโโ qr.css # QR preview & card styles
โโโ js/ # ES modules
โ โโโ app.js # application bootstrap & state
โ โโโ config.js # constants & presets
โ โโโ validator.js # account/IFSC/VPA/amount validation
โ โโโ generator.js # UPI payload builder
โ โโโ qr.js # QR matrix generation
โ โโโ download.js # PNG/SVG download helpers
โ โโโ clipboard.js # copy-to-clipboard helper
โ โโโ storage.js # localStorage persistence
โ โโโ theme.js # dark/light theming
โ โโโ utils.js # small shared utilities
โโโ icons/ # favicon & PWA icons
โโโ assets/ # shared static assets
โโโ screenshots/ # README screenshots
โโโ docs/ # project documentation
โโโ 404.html # custom 404 page
โโโ robots.txt # crawler rules
โโโ sitemap.xml # sitemap
โโโ manifest.webmanifest # PWA manifest
โโโ sw.js # service worker (offline caching)
โโโ .github/ # templates, workflows, governance files
- A modern browser (Chrome, Edge, Firefox, Safari).
- No installation required. Optionally, Node.js 20+ only if you want the dev validation scripts.
The app has no build step โ serve the folder over HTTP:
# Option A โ Python
python3 -m http.server 8080
# Option B โ npx
npx serve .
# Option C โ VS Code Live ServerThen open http://localhost:8080.
npm install
npm run lintPlaceholder โ replace with your own screenshots.
| Light theme | Dark theme |
|---|---|
![]() |
![]() |
The app builds a standard UPI deep-link URI:
upi://pay?pa=<VPA>&pn=<NAME>&am=<AMOUNT>&cu=INR&tn=<NOTE>&tr=<REFERENCE>
paโ Payment address (VPA) or the account mapped address.pnโ Payee name.amโ Amount (optional).cuโ Currency (INR).tnโ Transaction note (optional).trโ Transaction reference (optional).
Most UPI apps (GPay, PhonePe, Paytm, BHIM, SBI YONO, etc.) can scan the resulting QR and open a pre-filled payment screen.
We welcome contributions of all kinds. See the Contributing Guide and the Roadmap to get started.
- ๐ด Fork the repository.
- ๐ฟ Create a feature branch.
- โ๏ธ Make your changes.
- โ
Run
npm run lint. - ๐ Open a pull request.
See ROADMAP.md for planned features and milestones.
See CHANGELOG.md for the full version history.
If you find a security vulnerability, do not open a public issue. Please follow the disclosure instructions in SECURITY.md.
This project is licensed under the MIT License.
Built with โค๏ธ for the UPI ecosystem ย ยทย Learn more about UPI

