Calci.inCalculate Today for a Better Tomorrow

UPI QR Code Generator

A scan-and-pay code for any UPI ID

The guide

UPI QR codes: what is inside one and how to use it safely

What a UPI QR code holds, when to fix the amount, how a code you make differs from the one your bank issues, the limits you may meet, and the scams built on scanning.

Last reviewed · 1,640 words

In short

  • A UPI QR code is a payment link drawn as a picture. It needs only two things to work, the UPI ID that receives the money and a name to show the payer.
  • Leave the amount out for a shop counter where every bill differs, and put it in for a fee or a product with one price. With an amount in the code, the payer's app opens with it already set.
  • A code made here carries the basic fields only. The code your bank or payment provider issues is signed by them, so use theirs for a business that takes payments all day.
  • Scan your own code and send one rupee before you print it, and check the name the app shows is yours.
  • A QR code can only receive. You never scan a code or type your UPI PIN to get money, and anyone who asks you to is trying to take it.

You want people to pay you by scanning: a tuition fee, a stall at a weekend market, rent, a collection for a friend's gift. Your UPI app already shows a QR code, but you would like one with the amount fixed, or one you can print with the shop's name on it. Below is what such a code contains, how to make a sensible one, and what to watch for once it is on the counter.

What a UPI QR code contains

A UPI QR code holds one line of text, a link that starts with upi://pay. NPCI, which runs UPI, published the format in its linking specification, and every UPI app is required to understand it. The same link works three ways: as a QR code to scan, as a link to tap on a phone, and inside apps that hand a payment over to a UPI app.

The link is a list of named values. For a person or a small shop taking money, these are the ones that matter:

FieldWhat it isNeeded?
paThe UPI ID that receives the moneyAlways
pnThe payee's nameAlways
amThe amount in rupeesOnly for a fixed-amount code
cuThe currency, which can only be INRSent by this tool every time
tnA short note the payer seesOptional

So a code for a kirana shop with no fixed amount is just this, with spaces written as %20:

upi://pay?pa=shop@okhdfcbank&pn=Sharma%20Kirana%20Store&cu=INR

That is all a scanner reads. There is no account number, no phone number unless your UPI ID happens to be one, and nothing secret in it. Anyone who has your UPI ID could write the same link, which is why the code is safe to print and why the name check described further down matters.

How big the pattern is depends on how long the link is. A link of about 90 characters makes a code 41 squares on a side; a short one with only an ID and a first name fits in 29. More squares in the same printed size means smaller squares, so a long note makes the code a little harder to scan from far away.

With an amount or without

The specification describes two kinds of code. A static code has only the payee in it, and the customer types the amount after scanning; its own example is a one-person shop that prints a single code and uses it for every sale. A dynamic code is made for one payment and has the amount in it.

The rule for the amount is short: if the code has no amount, the amount box in the payer's app can be edited. Put an amount in, and the app opens with that figure set.

Choose by how you sell:

  • No amount for a shop counter, an auto or cab, a donation box, or anything where each payment is different. One printed code lasts for years.
  • A fixed amount for a class fee, an event ticket, a monthly maintenance charge, or a single product. The payer cannot mistype it, and you do not have to check each payment against the price.

Amounts go into the link as plain decimals with two places, so ₹250 becomes 250.00 and ₹99.50 stays 99.50. This tool accepts what people actually type, including commas and a rupee sign, and refuses three decimal places instead of rounding them, because rounding would be the tool changing your price.

A fixed-amount code is still reusable. It does not expire after one payment; it asks every person who scans it for the same sum.

Your app's code and one you make yourself

The code inside your UPI app pays the same UPI ID as a code made here, but it is not identical. The specification lists more fields than the five above, among them a mode that says how the payment was started, an identifier for the app that issued the code, and a digital signature. A code from your bank or app carries those, and the signature lets a payer's app confirm that the code was issued by a known provider and has not been altered.

A code made on this page has no signature, because only your provider holds the key that could sign it. In practice UPI apps accept unsigned codes for ordinary payments, and that is how most printed "scan to pay" cards from generators work. What you may see is a caution on the payer's screen, or a lower limit, for a code the app cannot verify.

That gives a simple rule:

  • For personal use, a one-off collection, an invoice or a fixed fee, a code made here does the job.
  • For a business that depends on the code all day, use the one issued by your bank, your payment app's business account or a payment provider. It is signed, it is tied to settlement and statements, and support can trace a payment made through it.

Limits you may run into

Limits are set by NPCI, by the payer's bank and by the payer's app, and they change. Two are worth knowing about because they surprise people.

Paying from a saved picture. If a payer opens your code from their phone's gallery instead of pointing the camera at it, some apps cap the payment. Reports of an NPCI circular from April 2025 say "QR Share and Pay" is limited to ₹2,000 for small merchants who have not been verified, and at least one bank's help page applies ₹2,000 to any payment made by uploading a code from the gallery. A payer who needs to send more should scan the printed code, or another screen, with the camera.

The payer's own limits. Every bank sets a per-payment and a per-day limit for UPI, and they are not the same from bank to bank. If a payment fails with a limit message, the code is not at fault.

For anything large or regular, test with a small amount first and ask the payer what their app says.

Printing and placing the code

A code that scans on your screen can still fail on a counter. A few habits prevent most of that:

  • Keep the white border. A scanner finds the code by the plain margin round it. The QR standard asks for a margin four squares wide, and the card made here includes it. Do not crop it off or run a coloured frame up against the pattern.
  • Print it dark on white. Black on white paper is the easiest thing for a camera to read. Coloured paper and glossy lamination that reflects a tube light both make scanning slower.
  • Keep it flat. A code taped round a curved jar or creased in a plastic sleeve distorts the pattern.
  • Size it for the distance. A customer leaning over a counter can read a small code. One scanned from across a room needs to be several times larger. Stand where your customers will stand and try it with your own phone.
  • Show the name. The card prints the name and UPI ID under the code so a payer can compare them with what their app shows.

Before printing a stack, scan the card yourself and send ₹1. You are checking two things: that the money arrives in the right account, and that the name the app shows is the one you expect.

Staying safe with QR codes

The risks around UPI codes come from people, not from the pattern.

A QR code only receives. Scanning one starts a payment from the person who scanned. NPCI's own guidance is that the UPI PIN is entered to authorise a payment, and its safety campaign puts it plainly: scanning a code and entering the PIN is for paying, not for receiving. So the call that says "scan this to receive your refund" or "enter your PIN to accept the money" is a theft in progress. To receive money you do nothing at all.

Check the name before you pay. After scanning, the app shows the name registered with the bank for that UPI ID. If you are paying Sharma Kirana Store and the app shows an unrelated person's name, stop and ask. The name printed on a card proves nothing; the name in the app comes from the bank.

Shopkeepers: look at your own code. A printed code can be covered by someone else's sticker, and then customers pay a stranger. Glance at the card each morning, keep it where you can see it, and listen for the payment confirmation instead of trusting a customer's screen.

Do not share screenshots that show more than the code. A code is safe to share. A screenshot of your app that also shows a balance or a transaction list is not.

What this tool does and does not do

It builds the payment link from what you type, draws it as a QR code in your browser, and lays it on a card you can download as a PNG, with the code alone available too. It also shows the link itself, which opens a UPI app when tapped on a phone that has one. Chat apps usually show such a link as plain text, so for sharing, send the picture.

It checks the shape of the UPI ID, so a missing @ or a stray space is caught. It cannot check that the ID exists, or whose it is. Only the payer's app can do that, and it does so every time, before any money moves.

It does not see payments. There is no account here, no confirmation and no history: your own UPI app remains the only record of what was paid.

Nothing you type is uploaded or stored. The code is drawn on your device, and closing the tab discards everything.

Sources

Frequently asked questions

How do I make a QR code for my UPI ID?

Type the UPI ID that should receive the money, add the name of the person or shop, and the code is drawn at once. Leave the amount empty for a code that takes any amount, or type one to have it filled in for the payer. Download the card, then scan it with your own phone and send ₹1 to check the name before you print it.

Where do I find my UPI ID?

In your UPI app, open your profile or the screen that shows your own QR code. The ID is written there in the form name@bank, for example 9876543210@ybl or yourname@okhdfcbank. If the app lists more than one ID, any of them works; each is tied to the bank account shown beside it.

Can I make a code for a fixed amount?

Yes. Type the amount and it goes into the code. NPCI's specification says the amount box in the payer's app is editable only when the code carries no amount, so a code with ₹250 in it opens with ₹250 set. Use this for a fee, a bill or a product with one price, and leave it empty at a shop counter where every bill is different.

Is this the same as the QR code inside my UPI app?

It pays the same UPI ID, but it is a plainer code. The code your app or bank issues usually carries extra fields that mark it as issued and signed by them. A code made here has only the UPI ID, name, amount, currency and note. Payment apps accept it for ordinary payments, but an app may show a caution or apply a lower limit to a code it cannot verify, so for a business that takes payments all day, use the code from your bank or payment provider.

Why does a payment from a saved picture stop at ₹2,000?

Some apps cap a payment made by opening a QR picture from the phone's gallery instead of scanning it with the camera. NPCI sets a ₹2,000 limit on shared QR codes for small merchants who have not been verified, and some banks apply ₹2,000 to every code uploaded from the gallery. Scanning the printed code or another screen with the camera is not a gallery upload.

Can someone take money from my account with this code?

No. A UPI QR code can only receive money into the UPI ID inside it. Nobody can pull money out by scanning it. The reverse is the common fraud: you never need to scan a code or type your UPI PIN to receive money, so anyone who asks you to do that to "get a refund" or "receive a payment" is trying to make you pay them.

Does the code expire, and is anything stored?

It does not expire. The code holds the UPI ID directly, so it works for as long as that ID exists, and it stops working if you delete or change the ID. Nothing is stored: the code is drawn in your browser, and the UPI ID, name and amount are not sent to this site or anyone else.