MakeQR

UPI QR Code Generator

For a UPI ID you already have, printed to be scanned

  • Free, and no account to create
  • Never expires, unlimited scans
  • Checked to scan before you print it

Free and permanent, but it can never be edited or tracked once printed.

Scan to test

Your text appears here.

Print as poster, table card or stickers · free for 14 days with an account

Free, no account. Works forever and never expires.

A UPI QR code generator turns a UPI payment link, built from a UPI ID, into a code customers scan with any UPI app. Paste the link using the plain text option rather than the web address field, since that field only accepts standard http links. Static is free and works as long as the UPI ID stays the same.

A shop, stall or freelancer with a UPI ID, the name@bank handle a bank or payment app assigns, usually wants a UPI QR code generator to print a code at the counter instead of asking each customer to type it in by hand. UPI apps read a specific link format, upi://pay, carrying that ID and, optionally, a name and a fixed amount.

MakeQR encodes that link exactly as given, without validating or connecting to any bank or UPI app. The detail that trips people up is which field to use: a upi:// link pasted into the web address type gets rejected as invalid, since that field only accepts standard http links; plain text is the one that works.

Building a UPI payment code

  1. Find your UPI ID

    Most UPI apps — GPay, PhonePe, Paytm, BHIM and others — show it under your profile or bank account details, usually in the form yourname@bankhandle.

  2. Build the payment link

    The standard format is upi://pay?pa=yourid@bank&pn=Your Name&cu=INR. Add &am=amount only if the price is fixed; leave it out for a code meant to work for any amount, such as a shop counter.

  3. Use the plain text type in MakeQR, not the web address one

    Paste the full upi:// link into the text field. The address field strips anything that isn't a standard http or https link, which would leave a UPI code empty.

  4. Test with a real UPI app before printing

    Scan the code with a UPI app on a second phone and confirm it opens the payment screen with your name and ID showing correctly, before it goes on a sign or a printed material.

Why the amount field is worth leaving blank

Encoding a fixed amount makes sense for a specific invoice or a fixed-price item, but a general counter code that's meant to stay taped up for months is more useful without one — a fixed amount baked into a static code means printing a new one every time a price changes, while an empty amount lets the payer type in whatever the sale actually comes to.

A shop's counter code versus a personal request

A small business printing a code for repeat use at a till benefits from a plain, undated code with no amount, left up indefinitely. Someone requesting a one-off payment from a friend, splitting a bill or invoicing a specific job is better served adding the amount to skip a step for the payer.

UPI apps differ slightly in what they show

Every major UPI app reads the pa, pn and am fields the same basic way, but the exact confirmation screen — whether the payer's name shows before or after the ID, for instance — varies by app. That's normal and doesn't indicate anything is wrong with the code itself.

What the code contains

The literal UPI deep link, unedited: your UPI ID, optionally your display name, the currency code, and an amount if one was set. It is not a web page — a UPI app is what interprets it, so scanning it with a plain camera app that has no UPI integration may just show the raw text instead of opening a payment screen.

Inside the code
upi://pay?pa=yourshop@okhdfcbank&pn=Your Shop&cu=INR

Sizing it for a counter or a till

A counter code is read from close range by someone standing right at the register, so 25-30 mm printed clearly is enough. Laminate it if it's going to sit on a counter rather than behind a till screen, since a payment code gets touched and wiped far more than most printed material.

Print it at least 25 mm (2.5 cm) wide

Where a UPI code fails to open

  • Pasting the link into the web address field

    MakeQR's URL field only accepts http and https links and strips anything else, which silently empties out a upi:// link. Use the plain text field instead.

  • Typing the UPI ID with a typo

    An extra character or wrong bank handle in the pa field points at an account that doesn't exist, or isn't yours, and the code itself gives no warning since it's just encoding whatever text it's given.

  • Baking in an amount that later changes

    A fixed am value on a code meant to stay up indefinitely means every price change requires a new code, unless the amount is left off entirely.

Static covers almost every UPI use

A UPI ID rarely changes once it's set up, so a free static code is normally enough for a shop counter or an invoice. Dynamic only adds value if you expect to switch UPI IDs or bank accounts later and want to update the destination without reprinting a counter sign.

How dynamic QR codes work

Where a UPI code gets printed

  • A small shop's counter sign for everyday purchases.
  • A street vendor's laminated card taped to a cart.
  • An invoice footer for a freelancer working with clients in India.
  • A donation box at a community event.

A QR code that still works next year

Most of what goes wrong with a QR code happens after it is printed. These six things are why ours does not.

  • Checked before you print

    We decode every code you make and read it back. If a logo covers too much or a colour is too faint for paper, you find out here — not after the print run.

  • Unlimited scans, every plan

    Including the free one. A scan cap kills a printed code at the moment it starts working, which is why we do not have one.

  • We do not switch off your codes

    Two dynamic codes stay yours permanently, whatever you pay us. Cancel a paid plan and you keep them — the rest pause after 30 days, with three warnings first, and a paused code shows a neutral page, never a sales page.

  • Made on your device

    Static codes never reach our servers. Your WiFi password, your contact details and your logo stay in the browser — which is also why there is no limit.

  • Ready for the printer

    SVG for anything that gets scaled, and PNG at 1024px so the edges stay hard. Both free, no account.

  • Available in English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish

    The generator and every page speak English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish. More languages follow as each one is reviewed by a native speaker.

See what happens after you print

A dynamic code points at a short link you own. Change where it goes without reprinting anything, and see how often each code has been scanned and when the last scan was.

  • Change the destination any time, as often as you like
  • A scan count and the last scan for every code
  • No scan limit, on any plan
  • Cancel and you keep two codes permanently — the rest pause after 30 days
Start free

2 codes free. Paid from $7/month. Compare plans

MakeQRCNCafe Nord

Analytics

Aug 14 – Sep 12

7D30D90D1Y

Total scans

11,875

18%

Unique scanners

8,431

14%

Active codes

24

3

Scans per day

396

18%

Scans over time

0
200
400
600
800
Aug 14Aug 21Aug 28Sep 4Sep 11

Devices

62%

of scans came from an iPhone

  • iPhone62%
  • Android34%
  • Other4%

UPI QR Code Generator: questions and answers

Short answers to what people ask before they print. Anything else, write to us.

Ask us something else

Why doesn't my UPI link work when I paste it into the web address field?

That field only accepts standard http and https links and strips anything else for safety, which empties out a upi:// link. Use the plain text type instead, which encodes exactly what you type.

Do I need a fixed amount in the code?

No. Leave the amount field out of the link for a code meant to handle different sale amounts, such as a shop counter. Add it only for a specific, unchanging payment.

Will this work with any UPI app?

The upi://pay format is a shared standard that GPay, PhonePe, Paytm, BHIM and most other UPI apps understand, though the exact confirmation screen can look slightly different between them.

Can I use this outside India?

UPI itself is India's payment network, so the link only does anything useful when scanned with a UPI-enabled app, which is a different scheme than payment apps used elsewhere.

Does MakeQR verify my UPI ID is correct?

No. The code encodes exactly the text you provide with no connection to any bank or payment network, so double-check the ID by testing a real scan before printing anything.

Make a code that still works next year

Free static codes with no account, two permanent dynamic codes, unlimited scans on every plan, and a check that tells you it scans before you print it.

Make a QR code

No account for static codes. Nothing to cancel.