QR codes for UPI payments, links and cartons

A UPI payment QR code is a plain piece of text - upi://pay with your UPI ID, your name, an optional amount and a note - drawn as a square. Nothing about it needs a server, which is why this one does not have one. You type the fields, the code is built inside the tab, and neither your UPI ID nor the amount goes anywhere.

Five kinds of content: a UPI payment, a website link, plain text such as a batch or carton number, a phone number and an SMS. Everything is encoded in byte mode with UTF-8, so a payee name written in Hindi comes back as it was typed rather than as a row of question marks.

Open the QR generator Needs an account. The trial is free and takes a WhatsApp code.

How it works

  1. Choose what the code holds. UPI payment asks for the ID, the payee name, an optional amount and a note. A ten-digit phone number gets +91 put in front of it, and an SMS is written as SMSTO:, the form both Android and iPhone camera apps recognise.
  2. Set the error correction. M is right for screens, invoices and paper labels. Q is the one for cartons, where the code has to survive tape, dust and a scuff - it recovers a quarter of the symbol at the cost of a slightly larger code.
  3. Download it. PNG at the pixel size you set, for a listing or a document. SVG where it will be scaled - a carton, a shop sign, anything large - because an SVG has no pixel size to get wrong.
  4. Or print a sheet. Set the printed size in millimetres and how many copies you want, optionally with the text under each code, and print a sheet of the same code for stock, for a counter or for a run of cartons.

What it handles

  • UPI codes built as upi://pay with pa, pn, am, cu and tn, so any UPI app reads them
  • A note when the UPI ID does not read like name@bank - a warning rather than a block, since plenty of valid handles sit outside the usual shape
  • Ten-digit phone numbers given +91 automatically; type the country code for anywhere else
  • UTF-8 byte mode throughout, so a payee name in Devanagari survives the round trip and lowercase is never quietly upper-cased
  • Error correction from L to H with what each level recovers spelled out, instead of left as a bare letter
  • SVG written as path data, so it stays crisp at 60 mm on a carton where a blown-up PNG turns the corner squares to mush
  • The four-module white margin the spec requires kept on every output, including the print sheet
  • Saved codes kept as the text you typed rather than as the picture, so loading one refills the form and you can change the amount

Your files stay on your computer

This runs inside your browser tab. The file is read and written on your own device and is never uploaded — not the order PDF, not the customer names and addresses printed on it. There is no upload endpoint to send it to.

Questions

Does money paid through this code reach me directly?
Yes, and none of it passes through us. The code is your own UPI ID and details written in a square; the payment goes from the payer's app to your bank exactly as it would if you had read the ID out over the phone. There is nothing for us to collect or settle.
Is this the same as the QR code my payment provider gave me?
Not quite. A provider's code usually carries a signed merchant identity so their system can reconcile each payment against your account. This builds a plain UPI intent from the ID you type - simpler, and fine for a counter or an invoice, but your provider's reports will not know about it.
Should I put the amount into the code?
It depends what the code is for. Put it in for a specific invoice, so the payer cannot mistype it. Leave it out for a counter code you print once and reuse, or every payment you take will arrive at that one fixed amount.
How small can I print it?
About 20 mm is the practical floor for a phone camera on a clean flat surface, and a code holding a long link needs more room than one holding a short SKU. On a carton use 35 mm or larger, set error correction to Q, and leave the white margin alone.
Can I put my logo in the middle of the code?
No. This draws the code and nothing else. Covering the centre leans on the error correction to make up the loss, and a code that scanned on your desk with a logo on it can stop scanning once it is printed small or picks up a scuff - so it is left out rather than offered.

Related tools

Open the QR generator