# UnionPay QR

> Source: https://docs.barcoder.ai/docs/standards/unionpay-qr
> research date 2026-05-30 · extracted at 2026-10-06
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [EMV QR Code Specifications — EMVCo](https://www.emvco.com/emv-technologies/qr-codes/)
- [UnionPay QR Code Payment — UnionPay International](https://m.unionpayintl.com/en/servicesProducts/MobilePayment/QRCodePayment/)
- [In-store QR Code Payment — UnionPay International Developer](https://developer.unionpayintl.com/cjweb/business/product/detail/introduction/26)

# UnionPay QR

## Overview

**UnionPay QR** (often presented under the **QuickPass** / **云闪付 (Cloud QuickPass)** brand) is China UnionPay's QR-code payment scheme, operated internationally by **UnionPay International (UPI)** <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>. Its merchant-presented form is built on **EMVCo Merchant-Presented Mode (MPM)** — the same TLV container used by the broader national-QR family — so a UnionPay QR is, at the wire level, an EMVCo MPM payload carrying UnionPay's scheme identifier [[emv]]. UnionPay's card and acceptance network reaches **180+ countries and regions**, and its QR acceptance rides on that same global footprint <sup>[China report](https://docs.barcoder.ai/docs/payments/CN), [upi]</sup>.

China's domestic payment surface is dominated by Alipay and WeChat Pay; UnionPay QR is the bank-card-network entrant, and notably QR-code interoperability has been pursued between Alipay, WeChat Pay, and UnionPay <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.

UnionPay (China UnionPay, 中国银联) is the bank-card network founded in **2002** under the People's Bank of China, with **UnionPay International** established to run its overseas business <sup>[China report](https://docs.barcoder.ai/docs/payments/CN), [upi]</sup>.

**12 December 2015 — QuickPass launched** in Beijing with over 20 Chinese commercial banks, originally as a contactless service centred on NFC/HCE/TSM and tokenisation technologies <sup>[7][7]</sup>.

**2016 — UnionPay QR Code payment launched** <sup>[8][8]</sup>. The product extended the QuickPass brand from contactless cards to scannable EMVCo MPM merchant QR codes, positioning UnionPay's bank-card consortium as the bank industry's response to wallet-led Alipay and WeChat Pay <sup>[7][7], [8][8]</sup>.

**2017 — major-bank rollout.** UnionPay partnered with all top-tier Chinese commercial banks — Bank of China, Agricultural Bank of China, ICBC and others — to roll the QR product into their mobile-banking apps <sup>[8][8]</sup>.

**11 December 2017 — Cloud QuickPass (云闪付) launched.** UnionPay merged the legacy *UnionPay app* and *UnionPay Wallet* into a single consumer mobile + online payment app under the new "云闪付" (Cloud QuickPass / *Yúnshǎnfù*) brand <sup>[9][9]</sup>. The merged app supports QR-code payments, in-app online payments and NFC QuickPass contactless on a single credential, designed to compete directly with Alipay and WeChat Pay <sup>[9][9]</sup>.

**24 October 2018 — Cloud QuickPass Partners Programme** launched at the inaugural Partners Conference in Wuhan; by 2018 the app had passed **100 million users** <sup>[7][7], [8][8]</sup>. By **Q1 2022** UnionPay reported **650 million UnionPay QR Code users** <sup>[8][8]</sup>.

**2021 — international footprint reaches 33 QR-code countries** (contactless: 51) <sup>[9][9]</sup>. By 2024 the merchant-acceptance picture inside China included **47 major cities** with QR-enabled metro fare, buses across **1,500+ prefectures and counties**, **550,000+ merchants**, **~200,000 convenience stores** and **300,000+ self-service terminals** <sup>[8][8]</sup>.

China's broader QR ecosystem reached **interoperability** between Alipay, WeChat Pay, and UnionPay, and a **unified cross-border QR pilot** launched in 2024 (reported at 427M CNY processed) <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>. By June 2024 China counted **969 million mobile-payment users** and a **38.3 % QR-payment penetration**, the highest in the world <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.

## Technical specification

UnionPay QR's merchant-presented form is an **EMVCo Merchant-Presented Mode (MPM)** payload [[emv]].

**EMVCo MPM foundation** [[emv]]:
- Payload format: **TLV (Tag-Length-Value)** plain-text string, rendered as a [QR Code](https://docs.barcoder.ai/docs/standards/qr-code) symbol.
- **Payload Format Indicator** (tag `00`) = `"01"`.
- Integrity: **CRC-16/CCITT-FALSE** appended as the final field, tag `63`.
- Static and dynamic QR variants are supported by the MPM container.
- Country Code carried in tag `58`, Transaction Currency in tag `53`, Merchant Name in tag `59`, Merchant City in tag `60`, Merchant Category Code (MCC) in tag `52`.

**UnionPay scheme identity** <sup>[emv], [China report](https://docs.barcoder.ai/docs/payments/CN)</sup>:
- UnionPay's scheme is identified by the EMV **Application Identifier (AID)** `A000000333010101` (the registered application identifier under UnionPay's RID `A000000333`).
- Inside an EMVCo MPM payload, a payment scheme occupies one **Merchant Account Information** template (tags `02`–`51`), whose first sub-element is a **Globally Unique Identifier (GUI)** carrying the scheme AID.

**Merchant-template tag — honest caveat:**
The **exact tag number** that UnionPay's merchant-account-information template occupies is **not pinned by the public EMVCo example set** — the published EMVCo MPM examples do not assign a fixed slot to UnionPay. By convention, and per UnionPay's documented reserved international-scheme slot, this is described as **tag `15`** <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>. The interactive playground on this page therefore uses **tag `15`** with GUI `A000000333010101` purely to illustrate the EMVCo MPM container shape for a UnionPay-branded code; it should be read as "conventionally / per UnionPay sub-spec," not as a value lifted from the public EMVCo example set.

**Defaults used by the 
## Use cases

- **Merchant-presented retail QR** — a printed or POS-displayed EMVCo MPM code that any UnionPay-enabled wallet (Cloud QuickPass and partner bank apps) can scan to pay <sup>[emv], [China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.
- **Cross-border acceptance** — UnionPay's 180+ country/region acceptance network extends to QR acceptance, making UnionPay QR a tool for Chinese cardholders abroad and for inbound acceptance of UnionPay credentials <sup>[China report](https://docs.barcoder.ai/docs/payments/CN), [upi]</sup>.
- **Interoperable domestic QR** — within China, QR-code interoperability has been pursued between Alipay, WeChat Pay, and UnionPay, so a single merchant code can be scanned across schemes <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.
- **Embedded inside other national QR schemes** — UnionPay merchant-account-information templates also appear inside India's [Bharat QR](https://docs.barcoder.ai/docs/standards/bharat-qr), which carries Visa, Mastercard, RuPay and UnionPay templates in one EMVCo MPM code.

China-market context <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>:
- **969 million** mobile-payment users (June 2024)
- **38.3 %** QR-payment penetration (world-leading)
- Unified cross-border QR pilot launched 2024 (427M CNY reported)

UnionPay QR's merchant-presented form is a standard **EMVCo MPM** payload; the UnionPay-specific part is the **AID `A000000333010101`** inside a merchant-account-information template (tag 26-51 sub-tag `00`) [[emv]]. There is no UnionPay-branded open-source encoder; the implementation surface is the EMVCo-MPM library ecosystem with the UnionPay AID configured.

**Generic EMVCo-MPM encoder/decoder libraries** — populate a tag-26 (or other 26-51) MAI template with sub-tag `00 = A000000333010101` to emit a UnionPay-acceptance code:

| Repo | Language | Stars | License | Last release | Notes |
|---|---|---:|---|---|---|
| [mvallim/emv-qrcode](https://github.com/mvallim/emv-qrcode) | Java | 128 | Apache-2.0 | v0.1.5, May 2026 | Full MPM v1.1 + CPM v1.1 encode/decode with CRC16 + duplicate-tag checks; "production ready (uses in several projects)" per README <sup>[10][10]</sup> |
| [mercari/go-emv-code](https://github.com/mercari/go-emv-code) | Go | 70 | MIT | v0.1.5, Aug 2023 | Encoder/decoder for both Merchant- and Consumer-Presented modes; built by **Mercari** for its payments stack — production-grade Go reference <sup>[11][11]</sup> |
| [dongri/emv-qrcode](https://github.com/dongri/emv-qrcode) | Go | 58 | — | 2024 | Independent Go MPM/CPM encoder/parser <sup>[12][12]</sup> |

**UnionPay's own integration paths** (closed-source):
- **UnionPay International Developer Portal** — *In-store QR Code Payment* product covers merchant-presented and consumer-presented flows for cross-border UnionPay QR acceptance [[upi-dev]].
- **Cloud QuickPass (云闪付)** app — the consumer wallet that issues UnionPay QR for sending and scans EMVCo MPM merchant codes (including the interoperable Alipay/WeChat/UnionPay QR codes) <sup>[7][7], [9][9]</sup>.

UnionPay QR also appears as a **template inside multi-scheme national QR codes** (notably India's [Bharat QR](https://docs.barcoder.ai/docs/standards/bharat-qr)), where the same AID `A000000333010101` is co-embedded alongside Visa, Mastercard and RuPay templates in one EMVCo MPM code.

## Comparison

**vs. [EMVCo MPM](https://docs.barcoder.ai/docs/standards/emvco-mpm)** — UnionPay QR is a *branded profile of* EMVCo MPM, not a separate wire format. The container, CRC, and tag grammar are EMVCo's; UnionPay contributes the scheme AID `A000000333010101` and (per its sub-spec) a reserved merchant-template slot.

**vs. [Alipay QR](https://docs.barcoder.ai/docs/standards/alipay-qr) / [WeChat Pay QR](https://docs.barcoder.ai/docs/standards/wechat-pay-qr)** — Alipay and WeChat Pay are wallet-native QR schemes that historically used their own proprietary payloads and dominate the Chinese consumer market (92 % / 85 % preference) <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>. UnionPay QR is the **bank-card-network** scheme; the three have pursued QR interoperability so merchants need not maintain three separate codes <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.

**vs. [Bharat QR](https://docs.barcoder.ai/docs/standards/bharat-qr)** — Bharat QR is a multi-scheme EMVCo MPM code carrying several card-network templates at once, **including a UnionPay template**. UnionPay QR is the single-scheme expression of the same UnionPay template; Bharat QR shows it composed alongside Visa/Mastercard/RuPay.

## Fun facts

**Card-network-first path to QR ubiquity.** UnionPay is one of the **largest card networks in the world by cards issued**, and its acceptance footprint of **180+ countries and regions** means a UnionPay QR rides the same rails that already accept UnionPay cards <sup>[China report](https://docs.barcoder.ai/docs/payments/CN), [upi]</sup> — the opposite of the wallet-first paths Alipay and WeChat Pay took. By Q1 2022 UnionPay reported **650 million UnionPay QR Code users**, a scale built largely through bank-app distribution rather than a single dominant super-app <sup>[8][8]</sup>.

**A single physical merchant QR in China can be scheme-agnostic.** Thanks to Alipay / WeChat Pay / UnionPay QR interoperability, one EMVCo MPM code can route across all three rails — three of the largest payment networks on earth resolving to one printed sticker <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>.

**An eight-year retrofit from contactless to QR to merger.** UnionPay's QuickPass brand launched **12 December 2015** as a *contactless* (NFC/HCE) product; the QR-code form arrived in **2016**; the two were merged with the legacy UnionPay app/wallet into the unified **Cloud QuickPass (云闪付)** app on **11 December 2017** — almost exactly two years to the day after the original QuickPass launch <sup>[7][7], [9][9]</sup>. The mid-2018 Wuhan Partners Conference then made the consortium a co-marketing programme across 20+ banks <sup>[7][7]</sup>.

## Status

**Active.** UnionPay QR operates as part of the QuickPass / Cloud QuickPass ecosystem and rides UnionPay International's global acceptance network <sup>[China report](https://docs.barcoder.ai/docs/payments/CN), [upi]</sup>. China's QR-payment market continues to lead the world in penetration (38.3 %, 969M mobile-payment users as of June 2024), with a unified cross-border QR pilot active since 2024 <sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>. No deprecation is indicated.

## Sources

[emv]: https://www.emvco.com/emv-technologies/qr-codes/
[upi]: https://www.unionpayintl.com/en/
[upi-dev]: https://developer.unionpayintl.com/cjweb/business/product/detail/introduction/26
[cn-cro]: https://docs.barcoder.ai/docs/payments/CN
[7]: https://www.prnewswire.com/news-releases/unionpay-and-its-partners-jointly-launch-quickpass--innovative-finance-benefits-public-welfare-and-shapes-the-blueprint-of-mobile-payment-300192909.html
[8]: https://www.silkpay.eu/blog/unionpay-qr-code-payment-conquers-the-asian-and-overseas-market
[9]: https://en.wikipedia.org/wiki/UnionPay_(application)
[10]: https://github.com/mvallim/emv-qrcode
[11]: https://github.com/mercari/go-emv-code
[12]: https://github.com/dongri/emv-qrcode

1. [EMV QR Code Specifications — EMVCo][emv]
2. [UnionPay International][upi]
3. [CN-china.md (in-corpus country report)]<sup>[China report](https://docs.barcoder.ai/docs/payments/CN)</sup>
4. [In-store QR Code Payment — UnionPay International Developer][upi-dev]
5. [UnionPay and partners jointly launch QuickPass (Dec 2015) — PR Newswire][7]
6. [UnionPay QR Code Payment conquers Asia & overseas — Silkpay][8]
7. [UnionPay (application) — Wikipedia][9]
8. [mvallim/emv-qrcode — GitHub][10]
9. [mercari/go-emv-code — GitHub][11]
10. [dongri/emv-qrcode — GitHub][12]

## Deployments

Found in the following country reports (grep across `reports/countries/`):

- **CN** — [CN-china.md](https://docs.barcoder.ai/docs/payments/CN)

## Deployments

Found in the following country reports (grep across `reports/countries/`):

- **CN** — [CN-china.md](https://docs.barcoder.ai/docs/payments/CN)
- **LA** — [LA-laos.md](https://docs.barcoder.ai/docs/payments/LA)
