Your virtual payment address from your UPI app profile, including the @bank part.
Shown in the payer's app when they scan.
Dot decimals (25.50). Empty lets the payer choose.
Labels the payment in the payer's history; ~50 characters is the safe limit.
· Enter a UPI ID (name@bank).
· Enter a payee name.
Enter your UPI ID (name@bank) and the payee name, and download a UPI QR code that Google Pay, PhonePe, Paytm, BHIM and every other UPI app in India scans to open a payment to you. An optional amount and note ride along on the link. Interoperability is the point of UPI: one code, every app, no bank lock-in. Free, no sign-up, no watermark, generated in your browser.
To make yours:
Enter your UPI ID
Your virtual payment address, like shop@okhdfcbank or name@ybl — found in your UPI app under your profile.
Add the payee name
The name shown in the payer's app when they scan. Keep it exactly as you want customers to see it.
Optional amount and note
A fixed amount pre-fills the payment; a note (up to about 50 characters) labels it in the payer's history. Leave both empty for pay-what-you-like codes.
Download and scan-test
PNG for screens and stickers, SVG for print at any size. Scan with your own UPI app before printing.
What the code contains
A upi://pay deep link — UPI ID, payee name, optional amount, currency and note — in the format the NPCI specification defines. It is static and untracked: the same details every scan, no expiry, no per-transaction data. Merchants who want per-bill amounts or payment confirmation use a PSP's dynamic UPI QR, which is a different product requiring a payment institution.
For fixed menus, generate one code per item with its amount pre-filled — they are free, so a row of small codes beats one vague code. Unlike a card machine, a static UPI QR has no per-transaction record: match payments in your bank statement by the note and UPI ID of the payer.
The UPI ID must be a full virtual payment address with the @bank part — an ID without it will not resolve, and the form tells you before you print. The amount uses a dot as the decimal separator (25.50, not 25,50). Notes longer than about 50 characters can be cut off by some apps, so keep them short. This generator encodes spaces as %20 the way the NPCI spec expects, so "Chai Stall" arrives as Chai Stall, not Chai+Stall.
Collecting outside India too? The PIX generator covers Brazil and the EPC generator the eurozone — all in the payment QR codes section. For non-payment codes, the WhatsApp generator and the main generator do everything else.