Skip to content

UPI QR code generator

A UPI code carries your UPI ID so any UPI app — GPay, PhonePe, Paytm, a bank app — can pay you. One code works across all of them, because UPI is the rails underneath rather than a single company product.

That interoperability is the reason a single printed square works for every customer in India regardless of which app they chose.

What should it do

Request a payment through any Indian UPI app.

Content

Design

#111111
#ffffff

The payload is a upi://pay deep link

The code contains upi://pay with parameters: pa is your payee address (the UPI ID), pn is the payee name shown to the customer, am is an optional amount, tn an optional note, and cu the currency, which is always INR.

Your UPI ID is the name@bank form issued by your bank or payment app — not a phone number, not an account number. Its two halves are the handle you chose and the provider that issued it, and the whole thing is what routes the payment.

Fixed amount or open

Leave the amount out and the payer types it. That is what you want for a shop counter, a tip jar or a donation box, and it is the form most static merchant codes take.

Set an amount and the payer sees it pre-filled and usually cannot change it, which suits a specific invoice, a ticket price or a delivery collection. The trade is that the printed code is then good for exactly that sum and nothing else.

The payee name is a label, not proof

The name in the code is what the app displays before payment. It is supplied by whoever made the code, not verified by the network, so it is a courtesy to the payer rather than a guarantee of who is being paid.

This matters in the other direction too: printed UPI codes at counters have been quietly replaced with stickers pointing at somebody else. If you accept payments this way, check periodically that the code on your counter is still yours, and laminate or frame it so swapping it is not trivial.

A static code tells you nothing about who paid

Everyone scanning the same printed code produces payments that look identical apart from the sender. There is no per-transaction reference unless the payer types one into the note, and most will not.

For reconciliation, use one code per till or per table so you at least know where the payment came from, or generate a fresh request per order through your payment provider. A single code for the whole business is simple and leaves you matching amounts to orders by hand.

Common questions

Does one UPI QR code work with every UPI app?
Yes. UPI is shared infrastructure rather than one company product, so a single code is payable from GPay, PhonePe, Paytm or a bank app. That is the reason one printed square covers every customer.
What is a UPI ID?
The name@bank address your bank or payment app issues you — not a phone number or account number. It is what routes the payment, and it is the value encoded as the payee address in the code.
Should I put an amount in the code?
Leave it out for a counter, tip jar or donation box so the payer enters their own. Include it for a specific invoice or ticket price, accepting that the printed code is then only good for that exact sum.
Is the payee name verified?
No. It is a label supplied by whoever created the code, shown to the payer as a courtesy. The network does not check it, so it should never be treated as proof of who is being paid.
How do I know which customer paid?
From a single static code, you largely cannot — payments differ only by sender. Use one code per till or table, or generate a fresh request per order through your provider, if you need to reconcile payments to orders.

Other generators

UPI QR Code Generator — Accept Payments in India