How to Create a UPI QR Code for Payments
Works with GPay, PhonePe, Paytm and BHIM. Free, static, and it never expires.
Enter your UPI ID (e.g. name@okhdfcbank) and display name into a UPI QR generator, optionally set a fixed amount, and download the code. It encodes a standard upi://pay?pa=...&pn=... string that every UPI app reads. Because it's static, it works forever — there's no server in the middle that can expire it or start charging you.
What's actually inside a UPI QR code
No magic and no middleman — it's a formatted text string:
upi://pay?pa=yourname@okhdfcbank&pn=Your%20Shop&am=100&cu=INR
pa— payee address (your UPI ID). The only required field.pn— payee name shown to the payer.am— amount. Omit it to let the payer decide.cu— currency, always INR.
Because it's plain text, the QR is just an encoding of that string — which is why a browser-based generator never needs to see your UPI ID, and why the code can't expire. Your UPI ID is your identity; keep it that way.
Never use a dynamic QR for a printed code
Some “free” QR services issue dynamic codes that point at a redirect on their server. Convenient — until the free tier ends or the company folds, and every printed code goes dead or starts showing an upsell page.
For a shop counter, a menu, an invoice or a flyer, insist on a static code. It encodes your UPI ID directly, has no third party in the payment path, and will still work in ten years. See static vs dynamic QR codes for the full comparison.
Practical notes for shops
- Test after any bank change. If you switch banks or your UPI handle changes, the old printed code stops working. Re-test quarterly.
- Print big and plain. Below about 3 cm, phone cameras struggle in poor light. Avoid printing over photos or coloured backgrounds.
- Laminate it. A scuffed or torn code fails to scan — QR error correction has limits.
- Watch for sticker fraud. Fraudsters paste their own code over a shop's. Check periodically that the name shown on scan is still yours.
- Open amount for counters, fixed for invoices. Fixed amounts on a counter code mean a new print for every price.
Tools used in this guide
Frequently asked questions
How do I create a UPI QR code for free?
Enter your UPI ID (like name@okhdfcbank) and display name into a UPI QR generator, leave the amount blank for a shop counter, and download. It encodes a standard upi://pay string readable by GPay, PhonePe, Paytm and BHIM. Always test with a Re 1 payment from another phone before printing.
Do UPI QR codes expire?
Static ones never expire — your UPI ID is encoded directly in the pattern, so the code works as long as that UPI ID is active. Dynamic QR codes from some services do expire, because they route through the provider's server; when the trial ends or the company shuts down, printed codes stop working. For anything you print, use a static code.
Can I set a fixed amount in a UPI QR code?
Yes — the am parameter fixes the amount so the payer can't change it, which is useful for invoices or fixed-price items. For a shop counter, leave it blank so customers enter the amount themselves; otherwise you'd need a separate printed code for every price. Both options are available in the generator.
Is it safe to generate a UPI QR code online?
With a client-side generator, yes. A UPI QR contains only your UPI ID and name — the same details you'd share to receive any payment — and no credentials. SnoopTool builds the code in your browser, so even that isn't transmitted. The real risk isn't generation but sticker fraud: check periodically that the code on your counter still shows your name when scanned.
Need a tool we don't have yet?
Tell us what you're trying to do. We build the most-requested tools first — every SnoopTool utility is free, runs in your browser, and needs no sign-up.