Payments
UPI QR vs BharatQR
A UPI QR code is a upi://pay deep link that only UPI apps read and only the UPI rail settles. BharatQR is an EMVCo tag-length-value code issued by your acquiring bank that routes card payments as well as UPI. Self-service generators, including UseQR, produce UPI codes.
Two codes that look identical
Both are black-and-white squares on Indian shop counters, and merchants routinely display both without knowing which is which. Underneath they are different data structures on different rails:
- UPI QR encodes a
upi://pay?pa=…deep link — a URI. Any UPI app reads it; the money moves over UPI from the payer's bank account. Anyone with a VPA can generate one free, right now. Field by field, it is documented in the UPI QR format. - BharatQR encodes an EMVCo
merchant-presented payload — a tag-length-value string like
000201…that carries card acceptance identifiers for RuPay, Visa and Mastercard, and can embed a UPI VPA too. It is issued by your acquiring bank or PSP as part of a merchant relationship; you cannot meaningfully self-generate one. The deeper story is in BharatQR explained.
Decode either with the validator and the difference is obvious in one glance:
one starts upi://pay?, the other 000201.
Side by side
| UPI QR | BharatQR | |
|---|---|---|
| Payload | upi://pay URI |
EMVCo TLV (000201…) |
| Rails | UPI only | Cards (RuPay, Visa, Mastercard) + UPI |
| Who issues it | You — self-generated, free | Your acquiring bank / PSP |
| Requires merchant account | No | Yes |
| Read by | Every UPI app | Bank and card apps, plus UPI apps via the embedded VPA |
| Funding source | Payer's bank account | Card or bank account, payer's choice |
| Cost to receive | Free P2P; zero MDR P2M as of 2026 | Card MDR applies on card payments |
| Checksum | None | CRC16 |
The interoperability detail that confuses everyone
A BharatQR code usually contains a UPI VPA among its tags, so UPI apps can pay a
BharatQR standee. The reverse is not true: a card app cannot pay a plain upi:// code,
because there is nothing card-shaped inside it. That asymmetry is why the bank-issued
standee at a supermarket works with everything, while the self-printed cafe code works only
with UPI apps — which, for a cash-and-UPI business, is everything that matters.
This is also why "which one is better" is the wrong question. They coexist:
- Only informal or small volume, UPI-only customers → a self-generated UPI code costs nothing and settles free. The setup is covered in UPI QR for a small shop.
- Card customers matter (higher tickets, corporate cards, tourists) → get a merchant account; the bank's BharatQR standee arrives with it.
- Many merchants display both: the bank's BharatQR plaque plus their own UPI codes on per-table or per-counter prints.
Which one a generator makes
Every self-service QR generator — UseQR included — produces UPI codes, because the UPI payload is an open, documented URI that needs nothing but your VPA. A site claiming to generate "BharatQR" without an acquiring relationship is generating something that will not route card payments; the card tags only mean something when a bank has provisioned the merchant behind them. How the wider families relate — UPI, EMVCo, EPC — is mapped in QR payment standards compared.
FAQ
Are UPI QR and BharatQR the same thing?
No. UPI QR is a upi://pay deep link on the UPI rail only. BharatQR is an EMVCo tag-length-value code, issued by an acquiring bank, that accepts card payments and usually embeds a UPI VPA as well.
Can Google Pay or PhonePe scan a BharatQR code?
Generally yes — BharatQR codes usually embed a UPI VPA, so UPI apps pay them over UPI. A card app cannot pay a plain UPI code, though, because it contains no card data.
Can I generate my own BharatQR code?
No, not usefully. The card acceptance identifiers inside BharatQR are provisioned by an acquiring bank against a merchant account. Without that relationship, only the UPI part could ever work — so generate a UPI code instead.
Do shops need both codes?
Only if card acceptance matters. A UPI-only shop is fully served by one free self-generated code. Merchants with card customers display the bank's BharatQR alongside their own UPI codes.
Try it — free, no signup
Related
- The UPI QR code format, parameter by parameter — A UPI QR code is a upi://pay deep link. pa (the VPA) and pn (payee name) are required; am, cu, tn, tr, mc and mode are optional. NPCI standardised it, so…
- BharatQR, explained — India's multi-rail payment QR — EMVCo merchant-presented format, card networks plus UPI in one code, issued by your acquiring bank rather than generated.
- QR payment standards compared: UPI, PIX, EPC, EMVCo — UPI uses its own upi:// deep link; PIX, PromptPay, QRIS, DuitNow and PayNow are all EMVCo tag-length-value profiles; EPC uses a twelve-line text block.…
- A UPI QR code for a small shop — Generate a static code from your VPA with no amount, print it at 4 cm or larger on matt stock, put your business name in large text beside it, and check…