Payments
PIX vs UPI: the two giant instant-payment QR systems compared
PIX and UPI both settle instantly and cost individuals nothing, but differ architecturally: PIX encodes an EMVCo tag-length-value string with a CRC16 checksum, run by the Banco Central do Brasil since 2020; UPI encodes a upi://pay deep link, run by India's NPCI since 2016. Neither system can read the other's codes.
Side by side
| UPI | PIX | |
|---|---|---|
| Country | India | Brazil |
| Operator | NPCI (National Payments Corporation of India) | Banco Central do Brasil |
| Launched | April 2016 | November 2020 |
| Payload | upi://pay?... URI deep link |
EMVCo TLV string ("BR Code") |
| Checksum | None | CRC16/CCITT-FALSE in field 63 |
| Identifier | VPA, name@bank |
PIX key: CPF/CNPJ, email, phone, or random EVP |
| Text fallback | The VPA or URI itself | Copia e cola (the full string) |
| Cost to individuals | Free | Free |
| Settlement | Instant, 24/7 | Instant, 24/7 |
The details of each format live on the UPI format page and the PIX format page; this page is about the comparison.
The architectural difference
The interesting split is not the countries. It is the payload philosophy.
UPI chose a URI. upi://pay?pa=shop@bank&pn=Shop is an ordinary deep link. The
operating system routes it to any app registered for the upi: scheme, exactly as an
https: link opens a browser. That bought UPI instant multi-app interoperability almost for
free: any new UPI app works with every existing code the day it registers the scheme. The
cost is that a URI has no integrity check. There is no checksum, and a mangled code simply
fails or, worse, half-parses.
PIX chose a structured record. The EMVCo TLV format is a self-describing binary-ish string: typed fields, explicit lengths, and a CRC16 sealing the whole payload. Apps must implement a parser rather than lean on OS deep-linking, but the payload validates itself: corruption is detected, and the format extends cleanly through nested templates. It also gave Brazil copia e cola, the copy-paste twin that solves paying a code shown on your own phone.
Neither is simply better. UPI's URI is human-legible and trivially generated; PIX's TLV is robust and strictly specified. Both formats are open enough that this site's builders (UPI, PIX) implement them from the public specs, client-side.
What they share, and what each got right
Both are the same model executed well: central-bank-backed, bank-led, instant, free for individuals, addressed by an alias rather than an account number, and merchant-presented: the payer always scans, sees a name, and confirms. Both now process volumes that make them among the most used instant-payment systems in the world, and both made the QR code (not the card terminal) the default acceptance hardware for small commerce.
Each contributed an idea worth copying:
- UPI: one alias namespace (
name@bank) portable across every app, and a URI format so simple a market trader's laminated card participates in the same system as an enterprise. - PIX: the rotatable random key (privacy on printed codes; see PIX key types), the payload checksum, and copia e cola.
The lesson other markets took
A single mandated standard beats competing proprietary codes. Indonesia's QRIS made the same bet explicitly, and the wider comparison shows most national schemes since have chosen the EMVCo path (PIX's family, not UPI's), largely because EMVCo offered a ready-made international base spec to profile.
FAQ
Can a UPI app read a PIX code, or vice versa?
No. UPI codes are upi:// deep links and PIX codes are EMVCo TLV strings, structurally unrelated formats on unconnected national rails. Cross-border linkages between instant payment systems exist, but they are bilateral integrations, not format compatibility.
Which is bigger, UPI or PIX?
UPI processes more transactions, serving a far larger population and having a four-year head start. Both are among the highest-volume instant-payment systems in the world; exact monthly figures are published by NPCI and the Banco Central do Brasil respectively.
Why does PIX have a checksum but UPI does not?
PIX inherited the CRC16 from the EMVCo merchant-presented specification it profiles. UPI's payload is a plain URI, a format with no integrity field: validation happens at the parameter level in the app instead.
Are PIX and UPI free to use?
For individuals, yes, sending and receiving cost nothing on both systems. Merchant pricing differs: PIX allows banks and PSPs to charge business accounts to receive, and UPI merchant economics are set by Indian regulation and PSP agreements.
Try it: free, no signup
Related
- 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.…
- The PIX QR code format: EMV BR Code explained, A PIX QR code is an EMVCo BR Code: tag-length-value fields ending in a CRC16/CCITT-FALSE checksum. The same string is also copia e cola, which people…
- 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…
- QRIS in Indonesia: the strongest case for one national QR standard, Since January 2020 every payment QR in Indonesia must be QRIS. One code, every wallet and bank app, nationally set merchant fees: the unification story.