Skip to content
qrcodegenerator.in
VALIDATED AGAINST FIVE WALLETS

UPI QR code generator

A payment QR that opens the payment sheet correctly in Google Pay, PhonePe, Paytm, BHIM and Amazon Pay — validated against how each app actually parses the URI, before you print it.

Add the content
Valid PSP handle — verified against the live handle list
Required for Google Pay — it refuses URIs without a payee name.
Amount
Amounts are enforced to two decimals — PhonePe rounds silently, others reject.
More details — optional
Optional. Shows on the payer's payment sheet — Paytm displays it prominently, so keep it short.
Optional. An invoice or order number, for matching the payment to what it paid for.
Live URIupi://pay?pa=cafeandheri@example&pn=Cafe%20Andheri&am=250.00&cu=INRCurrency locked to uppercase INR — Google Pay silently uppercases, so we encode it correctly from the start.
Your code
v537×37 modulesbyteEC-M69/86mask 2
4/4 4 of 4 checks passHow we measure (opens in a new tab)
Opens correctly in
  • Google Pay✓ Opens
  • PhonePe✓ Opens
  • Paytm✓ Opens
  • BHIM✓ Opens
  • Amazon Pay✓ Opens
No account · no watermark · no scan limits
THE DIFFERENTIATOR

The cross-app compatibility matrix

Every wallet parses upi:// URIs differently. We simulate the documented behaviour of each before you download — and the matrix never shows a pass for something that fails.

These verdicts are about parsing: whether each wallet opens this URI and fills the payee and amount in correctly. Nobody can be paid by the sample above — its address is a reserved example, so it resolves to no bank — and no column on this table would tell you that, because none of them measures whether money moves.

Parser behaviourGoogle PayPhonePePaytm
Malformed URIRejects outrightAttempts repairRejects
Missing payee name (pn)Refuses to openOpensFalls back to VPA
Missing currency (cu)Assumes INRToleratesRequires encoding
Unencoded spacesRejectsToleratesRejects
Amount past 2 decimalsRejectsRounds to 2dpRejects

Maintained as a versioned config with a public changelog, re-verified quarterly against the live apps. Every release is manually tested in all five wallets on Android and iOS.

Rules version 2.

BHIM UPI SIGNAGE FORMATS

Standee formats, print-ready

The sheet sizes and proportions a merchant standee is printed at, composed by our own renderer. We do not check them against NPCI's circular and we do not certify them: the mark's placement and sizing rules are the regulator's, and reviewing a template against them is a manual step that has not been taken. Print these as artwork, not as an assurance.

A4 · 210×297
A4 standeeCounter-top acrylic stand
A5 · two-fold
A5 table tentRestaurant tables
4×6 in
Counter cardSmall counters, kiosks
160×60
Shelf talkerRetail shelf edges
200×200
Window decalStorefront glass
50×50
KeychainDelivery riders, staff
GLOBAL STANDARDS

Payment QR beyond India

The same correctness discipline, applied to every major national standard.

UPIIndia · NPCIVPA validation, wallet matrix, standee formats.
PIXBrazil · BACENEMV payload with CRC validation and key-type checks.
QRISIndonesia · Bank IndonesiaMerchant-presented EMV format, checksum-verified.
EPC / SEPAEurope · EPC069-12Credit-transfer QR with IBAN validation at input.

All four are merchant-presented

In EMVCo terms these are merchant-presented mode: you display the code, the customer scans it. Consumer-presented mode — where the customer's wallet shows a rotating code to your scanner — is generated inside the wallet app, not by us, and no printable asset exists for it. If someone asks you for a "CPM QR", they need their payment app, not a print shop.

UPI QR code questions

Why does my UPI QR work in PhonePe but not Google Pay?

Google Pay is the strictest parser — it rejects malformed URIs, requires a payee name, and silently uppercases the currency. PhonePe tolerates most of those mistakes, which is exactly how a broken code passes a casual test and then fails at the counter. We validate against Google Pay first.

Is it safe to print my UPI QR from a website?

The URI is built deterministically from what you type, encoded in your browser, and shown to you in full above the preview. No AI ever generates or modifies a payment payload, and we never hold keys or touch funds.

Fixed amount or open amount?

Fixed suits priced items and invoices — the customer cannot mistype. Open suits counters with variable bills. Either way the amount is enforced to two decimals at input, because the apps disagree about anything else.

Do I need the NPCI standee format?

If you display the BHIM UPI mark, the circular’s placement and sizing rules apply. We have not reviewed our templates against it, so check your printed layout against the current circular before you display the mark.

Can a UPI QR be dynamic?

The payment URI itself is static by design — it must work offline in every wallet. What you can make dynamic is the standee’s companion code (a menu or review link). Never route a payment through a redirect.

We generate payment URIs and print assets. We are not a payment aggregator, PSP or TPAP — no merchant funds pass through us, we hold no keys, and we never touch settlement.