LogoTools
Runs entirely in your browser - nothing is uploaded

A UPI QR code is a short text string in a picture. The string is a link: upi://pay, then the UPI ID it should pay, then whatever optional details you want carried across. This tool builds that link from what you type and encodes it as a downloadable PNG.

Everything happens in the browser. Your UPI ID and the amount never leave the page, and no account is created. What you get back is a standard UPI intent QR, the same format a payment app expects to read.

What goes into the link

Only one parameter is required: pa, the UPI ID that receives the money. Three more are optional. pn is the payee name shown to the payer before they confirm. am is the amount. tn is a short note, useful for an order reference. The currency is fixed at INR.

Empty fields are left out of the link entirely. An amount you skip produces no am parameter at all, which is different from sending an amount of zero, and it matters: a missing amount is what opens the field up for the payer to fill in.

Fixed amount or open amount

Leave the amount blank for a QR you can stick on a counter, a packing slip, or an invoice template. The payer scans it and types what they owe. One QR covers every order.

Put a figure in for a single-purpose QR: one order, one payment, no room for the payer to type the wrong number. Generate a fresh QR per order, and pair it with a note carrying the order reference so the credit is easy to match later.

Checking the UPI ID before you print

The tool checks the shape of the UPI ID (something, an @, then a provider handle) and refuses to build a QR until it looks right. Shape is all it can check. Whether that address exists, and whether it points at your account, is settled between the payer's app and the provider.

So run one real test payment of a rupee or two through the finished QR before it goes anywhere public. A QR printed on a thousand boxes with a typo in the handle is an expensive way to learn this.

Printing it so it scans

The PNG comes out black on white at a fixed size. Keep it that way. Coloured or low-contrast QR codes scan badly in the poor light where payment QRs usually live, and inverting the colours breaks some readers outright.

Leave the white margin around the code intact when you place it in a layout. Scale it up if you must scale it at all, and keep a printed code at least two centimetres across. Test the final printed piece, not the screen version.

Frequently asked questions

Which apps can read this QR code?

The QR encodes the standard upi://pay intent link described by the UPI specification, so any app that handles UPI intents can read it. Support still varies by app and version. A small test payment through the finished QR is worth the two minutes it takes.

Can I leave the amount blank?

Yes, and often you should. With no amount in the link, the payer's app opens with an empty amount field for them to fill in. That makes a single QR reusable across every order, which suits a counter, a packing slip, or an invoice footer.

Is my UPI ID sent anywhere?

No. The link is assembled and the QR is drawn entirely in your browser, with no request to any server. Nothing you type is stored or transmitted, and the PNG download comes straight from the canvas in the page.

Why does my note show up with percent signs in it?

Spaces and symbols get percent-encoded in the link, which is normal URL escaping. A space becomes %20, an ampersand becomes %26. The payer's app decodes it back to plain text, so what they see on screen matches what you typed.