QR QR Studio

standards

Payment QR codes explained: EMVCo, UPI, PIX, Alipay, EPC and more

Published 7 September 2026 · 5 min read

In plain terms: a payment QR code is a bank transfer form folded into a square. Scan it and your payment app fills in who gets paid, how much and why, so you only tap to confirm. Nothing about the code is special; what is special is the text inside, which follows a format a particular payment system understands. This article maps the main formats and shows one in full.

Two directions

Every payment QR scheme works one of two ways, and EMVCo, the body owned by the big card networks, has given them names (EMVCo):

Merchant-presented mode. The shop shows a code, printed on a card by the till or generated on a screen, and the customer scans it with a payment app. The code carries the merchant’s account identifier and often the amount. This is the sticker on the market stall in Bengaluru, the laminated card at the noodle counter in Chengdu, the code on the bottom of a German electricity bill. It suits small merchants because a printed static code costs nothing.

Consumer-presented mode. The customer’s app shows a code and the shop scans it. The code is a one-time token that stands for the customer’s account, so it is useless to anyone who photographs it. This is the mode in supermarkets with barcode scanners, and it is how Alipay and WeChat Pay work at large retailers.

EMVCo published its QR Code Specification for Payment Systems (QRCPS) in both modes, current version 1.1 dated 27 November 2020. Its purpose is interoperability: one code can carry several payment options, card-based and account-based, so a tourist’s wallet and a local’s bank app can both read it.

The national schemes

China: Alipay and WeChat Pay. Alipay introduced QR payments in 2011 and WeChat Pay followed, with Tenpay built into WeChat in 2013. A 2019 CGAP study found the two apps controlled about 93% of China’s mobile payment market, almost all of it via QR (CGAP). Both merchant-presented (the printed sticker) and consumer-presented (the customer’s screen) are everywhere.

India: UPI. The Unified Payments Interface, run by the National Payments Corporation of India, launched in April 2016 (Wikipedia). A UPI merchant code carries a upi://pay?pa=... address with the payee’s virtual payment address and name. RBI data show 657.9 million UPI QR codes deployed by the end of FY25, up 91.5% in a year (Business Standard). Bharat QR, launched in 2017, is the card networks’ interoperable merchant code for the same market (Mintoak).

Brazil: Pix. The Central Bank of Brazil launched Pix in November 2020. A Pix code can be static, carrying the payee key, or dynamic, carrying a one-time payload generated for a specific bill. By the end of 2024 Pix accounted for 47% of financial transactions in Brazil (Wikipedia).

Singapore: PayNow. Launched by the Association of Banks in Singapore on 10 July 2017, with QR payment as an option, and since linked to Thailand’s PromptPay, Malaysia’s DuitNow and India’s UPI for cross-border transfers (Wikipedia).

Bitcoin: BIP 21. Not a national scheme but the same idea. BIP 21, written by Nils Schneider and Matt Corallo in January 2012, defines a bitcoin: URI with optional amount, label and message, and almost every wallet renders it as a QR code. It has since been superseded by BIP 321 (GitHub).

Feature UPI Pix Alipay / WeChat PayNow EPC QR Swiss QR-bill
Region India Brazil China Singapore Euro area Switzerland
Launched 2016 2020 2011 / 2013 2017 2013 2020
Mode Both Merchant Both Merchant Merchant (invoice) Merchant (invoice)
Operator NPCI Central Bank of Brazil Ant Group / Tencent ABS EPC SIX
Instant settlement Bank dependent Bank dependent
The main schemes side by side. 'Both' means merchant- and consumer-presented modes are in everyday use.

Europe: the EPC QR code

Europe’s answer is older and simpler. Since 2013 the European Payments Council’s guideline EPC069-12 has defined a QR code for SEPA credit transfers, printed on invoices in Germany, Austria, Belgium, Finland and the Netherlands (Wikipedia). Your banking app reads it and fills in the transfer. It is merchant-presented, and it is a static code: everything is in the text.

The payload is twelve lines separated by line breaks. Here is a complete example for a 12.50 euro payment of an invoice. The bank details are dummies.

Raw payload

BCD
002
1
SCT
EXAMDEFFXXX
Example Bakery GmbH
DE02120300000000202051
EUR12.50
GDDS

Invoice 2026-118
Thank you for your order
  1. BCD Service tag. Always BCD.
  2. 002 Version. 002 allows the BIC to be left blank inside the euro area.
  3. 1 Character set. 1 means UTF-8.
  4. SCT Identification. SEPA Credit Transfer.
  5. EXAMDEFFXXX BIC of the payee bank (dummy). May be empty with version 002.
  6. Example Bakery GmbH Payee name, up to 70 characters.
  7. DE02120300000000202051 Payee IBAN (a test IBAN, not a real account).
  8. EUR12.50 Amount with currency, 0.01 to 999999999.99.
  9. GDDS Purpose code (ISO 20022): purchase or sale of goods.
  10. Invoice 2026-118 Unstructured remittance text, up to 140 characters. Used instead of a structured reference.
  11. Thank you for your order Information shown to the payer, up to 70 characters.
An EPC QR payload, one field per line. Line 10 (structured reference) is empty because line 11 carries free text; the guideline allows one or the other.

The field order matters and so do the limits. A generic generator will happily encode EUR12,50 with a comma; a banking app will reject it. That is why the EN 18184 post and every bank say the same thing: let the bank or the invoicing software generate live payment codes.

EN 18184:2025

The EPC QR only covered one direction and only ordinary transfers. On 31 December 2025 the European standards body CEN published EN 18184:2025, a single QR standard for SEPA credit transfers that covers both payee- and payer-presented codes and both standard and instant transfers, with a structure aligned to EMVCo’s merchant-presented format (Payment Expert). Existing EPC QR invoices keep working; the new standard adds the till-side cases. Our news post explains what changes for a business.

The Swiss QR-bill

Switzerland introduced the QR-bill on 30 June 2020 to replace its paper payment slips (SIX). It is a payment part carrying a Swiss QR Code with a Swiss cross in the centre. SIX, which runs the standard, publishes Implementation Guidelines. Version 2.4 was published on 23 February 2026 and enters into force on 14 November 2026; version 2.3 remains valid until November 2027. The change concerns euro invoices, which from 2.4 may only combine an IBAN with a structured SCOR reference or an unstructured message (SIX).

Three worked examples

  1. A market stall in India. A printed UPI sticker, merchant-presented, static. The stallholder’s phone pings when the customer pays. Cost to the merchant: one laminated card.
  2. A utility bill in Austria. An EPC QR printed at the bottom of the PDF. The customer opens their bank app, scans, checks the amount and taps. Static, merchant-presented, offline.
  3. A supermarket in Shanghai. The customer opens Alipay, shows a code, the till scans it. Consumer-presented, dynamic, one-time. The code changes every minute so a photograph of it is worthless.

In practice

If you sell to the public and want a payment code, get it from your bank or payment provider. If you want to understand what they gave you, paste it into the decoder. A UPI code starts upi://pay, an EPC code starts BCD, a Pix code starts 00020126, the EMVCo payload format indicator.

Why EMVCo and EPC payloads look so different

EPC069-12 predates EMVCo’s QR work and uses a fixed order of newline-separated fields, which is easy to read by eye and easy to get wrong by hand. EMVCo QRCPS uses tag-length-value encoding: each field is a two-digit tag, a two-digit length and the value, for example 5303978 for tag 53 (currency), length 03, value 978 (euro). Fields can appear in any order and unknown tags are skipped, which is what allows one code to carry several payment networks. Pix, PayNow’s SGQR, Bharat QR and EN 18184 all use the EMVCo layout; UPI uses a URI instead. All of them end with a CRC checksum so a damaged code is rejected rather than mis-paid. The encoding article explains how any of these strings becomes squares.

Try it yourself

Use the payload builder to assemble an EPC-style string with dummy details and see how each extra line raises the version. Then compare the module count with a short upi:// address.

Build a test payload

Frequently asked questions

Are payment QR codes a special kind of QR code?

No. They are ordinary QR codes whose text follows a payment scheme's format, such as a upi:// address or the twelve-line EPC layout. Any scanner can read the text; only a payment app knows what to do with it.

What is the difference between merchant-presented and consumer-presented codes?

Merchant-presented means the shop shows the code and you scan it with your bank app. Consumer-presented means your app shows a one-time code and the till scans it. Both are defined by EMVCo.

Can I make a payment QR code in a generic generator?

You can encode the text, but a generic generator does not validate IBANs, checksums or character rules. A wrong character sends money to the wrong place. Use your bank's or payment provider's tool for live codes.

Which QR payment system is the biggest?

By deployed codes, India's UPI, with 657.9 million merchant QR codes at the end of FY25. By value, China's Alipay and WeChat Pay.

Is the EPC QR code the same as the new EN 18184?

No. The EPC QR (guideline EPC069-12) is the invoice code used since 2013. EN 18184:2025 is a CEN standard published on 31 December 2025 that also covers payer-presented codes and instant payments.

Related reading

Make yours in QR Studio

Unlimited static codes free, no ads, no watermark. AI design, dynamic codes and print-ready export when you need them.

Download on the App Store