Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

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.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

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

  • 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…