Standards/sgqr-plus
SGQR+
Overview
SGQR+ is the enhanced, scheme-expanded successor to sgqr — Singapore's national unified QR payment code [1, 2]. NETS announced its islandwide rollout on 7 November 2024 following a one-year proof-of-concept that began in November 2023 [1, 3]. SGQR+ adds international and additional domestic payment schemes to the original SGQR multi-scheme model, bringing the total to 18 schemes/issuers across 35,000+ acceptance points (24,000 base + hawker segment extension) [3, sg-cro].
The "plus" delta is principally scheme participation and acceptance breadth — the underlying EMVCo Merchant-Presented Mode (MPM) wire format is shared with sgqr [1].
History
November 2023 — NETS launched a proof-of-concept for SGQR+ at a limited set of merchants in Singapore [1, 3]. The PoC validated that the multi-scheme expansion (especially the addition of international card networks and Chinese wallets on the same QR as domestic schemes) worked operationally without disrupting existing sgqr acceptance.
7 November 2024 — at the Singapore Fintech Festival, NETS announced the islandwide rollout of SGQR+ [1, 4, 3]. The technical go-live target was Q4 2024 for the bulk of issuers; the remaining issuers (dtcpay, MariBank) were scheduled for Q2 2025 [3].
Late 2024 / 2025 — rollout expanded into the hawker segment, taking total acceptance from the initial ~24,000 base merchants to 35,000+ [sg-cro, 3].
The November 2024 launch was timed deliberately to coincide with Singapore Fintech Festival, positioning SGQR+ as MAS's signature payments announcement of the year [4].
Technical specification
SGQR+ uses the same EMVCo MPM v1.1 TLV wire format as the original sgqr [1]. The "plus" delta is in:
- Number of supported merchant-account-information templates within a single QR — more schemes can claim a slot, requiring careful field-ordering to fit within the QR's byte budget [5].
- Cross-border scheme participation — international wallets and card networks have their own merchant-account-information templates baked in, so a foreign tourist's app finds its template in the SGQR+ payload [3, sg-cro].
- NETS-operated registry and issuer onboarding — NETS, rather than MAS/IMDA directly, operates the SGQR+ scheme [1].
The original sgqr technical specification (v1.x, 2018) remains the wire-format baseline; SGQR+ extends scheme participation without changing the EMVCo TLV layout SG.
SGQR's distinctive reverse-DNS GUIDs. Where most EMVCo MPM national profiles use a numeric AID (e.g. A0000006150001 for DuitNow, A000000727 for VietQR), SGQR's merchant-account-information templates carry reverse-DNS-style identifiers in sub-tag 00, picked from the Singapore Standards Registry [11]:
| GUID | Scheme |
|---|---|
SG.PAYNOW |
PayNow (bank rail) |
SG.COM.NETS |
NETS |
SG.COM.OCBC |
OCBC |
SG.COM.UOB |
UOB |
SG.COM.DASH.WWW |
Singtel Dash |
SG.COM.EZLINK |
EZ-Link |
SG.EZI |
EZ-Link (alt) |
COM.GRAB |
GrabPay |
SG.SGQR |
SGQR central reference (the registry ID itself) |
In SGQR+, additional templates appear for the international card networks (Visa/Mastercard/Amex/UnionPay/Diners) and Chinese wallets (Alipay+/WeChat Pay), each in its own MAI slot.
Tag-51 — Merchant Information, Country of Origin [11]. SGQR uniquely re-purposes EMVCo tag 51 as a merchant-information container that carries the SGQR registry identifier (SG.SGQR), the merchant's registered SGQR number, version and POS terminal information — the field that lets MAS/NETS reconcile a single sticker back to a registered merchant across all the schemes co-embedded in the payload.
Other header tags [11]:
- Tag
00Payload Format Indicator ="01", two-char length02. - Tag
01Point of Initiation Method ="11"(static) /"12"(dynamic). - Tag
52Merchant Category Code (4 digits). - Tag
53Currency =702(SGD). - Tag
58Country Code =SG. - Tag
59/60Merchant Name / City (Singapore). - Tag
62Additional Data (bill numbers, store labels, reference labels). - Tag
63CRC = CRC-16/CCITT-FALSE over the whole payload up to6304.
A worked Singapore merchant payload begins 0002010102… and terminates with 6304XXXX per the EMVCo MPM CRC convention [11].
Participating schemes / issuers (as of Nov 2024) [3]:
| Category | Schemes |
|---|---|
| Singapore bank rails | PayNow (banks), NETS, FAST |
| Local e-wallets | GrabPay, ShopeePay, dtcpay, MariBank |
| International cards | Visa, Mastercard, UnionPay, American Express, Diners/Discover |
| Chinese mobile wallets | Alipay, Alipay+, WeChat Pay |
| Cross-border national QRs | DuitNow (MY), PromptPay (TH), QRIS (ID) via cross-border integrations |
| Other | Google Pay, EZ-Link, Singtel Dash |
Total 18 unique payment-scheme/issuer templates can fit in one SGQR+ payload [3].
Use cases
SGQR+'s product positioning is the same as sgqr's — a single merchant QR accepting many schemes — but broadened internationally:
- Hawker centres and small merchants — the original sgqr use case, but now with international card and wallet acceptance baked in SG.
- Inbound tourism payments — Chinese tourists pay via Alipay+, Malaysian tourists via DuitNow, Thai tourists via PromptPay, Indonesian tourists via QRIS — all by scanning the same SGQR+ label SG.
- Cross-border merchant acceptance — Singapore merchants who serve regional/international customers benefit from one-sticker-many-flags acceptance without per-scheme onboarding [3].
- Tourist-facing F&B and retail — restaurants, hotels, taxi services where foreign-customer mix is high.
- All sgqr use cases — SGQR+ is a strict superset; merchants who had SGQR continue to operate it during/after rollout [1].
The hawker segment extension was specifically called out by NETS as the key adoption-density move taking acceptance from 24K to 35K+ [3].
The SGQR+ scheme is operationally closed (NETS-mediated merchant onboarding) so issuance is via NETS, not via self-service libraries. The shared EMVCo MPM wire format means any sgqr-compatible decoder also reads SGQR+ payloads at the data-format level — the extra schemes just appear as additional merchant-account-information templates.
Open-source encoders/decoders — populate tag 26-51 merchant templates with the appropriate SG.* / COM.* reverse-DNS GUID in sub-tag 00:
| Repo | Language | Stars | License | Last release | Notes |
|---|---|---|---|---|---|
| hisenyuan/EMVCo-SGQR-encode-decode-crc | Java | 17 | — | 2024 | The one SGQR-named community library on GitHub; CRC encode + TLV decode of a real Singapore merchant QR, plus an example payload to validate against [6] |
| mvallim/emv-qrcode | Java | 128 | Apache-2.0 | v0.1.5, May 2026 | Production-grade MPM v1.1 + CPM v1.1 encode/decode with CRC16 + duplicate-tag checks; handles SGQR+ once tag 26-51 + SG.* sub-tag GUIDs are configured [7] |
| mercari/go-emv-code | Go | 70 | MIT | v0.1.5, Aug 2023 | Encoder/decoder for both Merchant- and Consumer-Presented modes; Mercari-built [8] |
| dongri/emv-qrcode | Go | 58 | — | 2024 | Independent Go MPM/CPM encoder/parser [9] |
Production wallets/apps SG:
- DBS PayLah!, OCBC Digital, UOB TMRW (bank apps with SGQR+ support)
- GrabPay, ShopeePay, dtcpay, MariBank (e-wallets)
- International: Alipay, Alipay+, WeChat Pay (Chinese wallets), Visa/Mastercard/UnionPay/Amex network apps
- Cross-border QRs from DuitNow (MY), PromptPay (TH), QRIS (ID)
NETS-mediated merchant onboarding — production deployment happens via NETS's SGQR+ merchant registration workflow [1]. There is no public self-service merchant API; an open-source encoder produces a valid SGQR+ TLV payload but the merchant identifiers it carries must be issued by NETS for acceptance to settle.
Comparison
vs. base sgqr (2018) — Strict superset. Same wire format (EMVCo MPM TLV). Adds: more scheme participation (18 vs original ~12), international card/wallet networks first-class, NETS-operated rather than MAS/IMDA-only. Existing SGQR labels continue to work; SGQR+ is rolled out via label-replacement at merchants opting in [1, sg-cro].
vs. duitnow-qr (Malaysia) and qris (Indonesia) — All three are EMVCo MPM unified national QR standards in the ASEAN region. SGQR+ is the only one that natively bundles international card networks (Visa, Mastercard, Amex, UnionPay) alongside the domestic bank rail in the same QR — Malaysia and Indonesia handle international cards via separate POS terminals [sg-cro, my-cro, id-cro].
vs. bharat-qr (India, also card-network-inclusive) — Both bundle international card networks (Visa/MC/Amex) into the QR. Bharat QR was the original 2017 implementer; SGQR+ extended the model with Chinese wallets (Alipay+/WeChat) and cross-border national QRs. Bharat QR's complementary upi-qr doesn't fit cleanly into an EMVCo bundle (different wire format); SGQR+ doesn't have this constraint since all participating schemes use EMVCo MPM [in-cro, sg-cro].
vs. cross-border bilateral QR links (PromptPay↔PayNow, DuitNow↔SGQR etc.) — Those bilateral integrations operate at the network layer between independent national QR standards. SGQR+ collapses that integration into the QR payload itself — a Chinese tourist's Alipay app finds its template in the SGQR+ TLV without any cross-border link infrastructure [1, sg-cro].
Fun facts
NETS announced SGQR+ on 7 November 2024 at Singapore Fintech Festival — the largest annual fintech event in Asia, deliberately chosen for visibility [4]. The PoC had been running for exactly one year (November 2023 → November 2024) before islandwide launch [3], a notable example of MAS/NETS's pattern of long pilot phases before scale rollout.
By total scheme count (18), SGQR+ is the broadest single multi-scheme payment QR in the world as of 2024 [3, sg-cro]. Bharat QR has card-network multi-scheme but doesn't natively bundle e-wallets; QRIS has bank+e-wallet multi-scheme but not international cards. SGQR+'s 18-scheme single payload is unique.
The expansion strategy explicitly targets the hawker segment — Singapore's cherished open-air food court ecosystem with ~6,000 stalls across 110+ centres SG. Adding hawker centres lifted SGQR+ acceptance from 24K to 35K, a meaningful adoption-density move because hawker centres are where Singapore residents transact most frequently in cash historically.
Status
Active and rolling out. Most recent metrics [3, sg-cro]:
- 35,000+ acceptance points (24,000 base + hawker extension)
- 18 schemes/issuers in scope
- Rollout completion: Q4 2024 for primary issuers; Q2 2025 for the dtcpay and MariBank cohort
- Cross-border: China (Alipay+, WeChat), Malaysia (DuitNow), Thailand (PromptPay), Indonesia (QRIS), India (via PayNow-UPI link)
- Planned: Cambodia, Hong Kong expansion [3]
The base sgqr continues to operate in parallel; SGQR+ adoption is being rolled out merchant-by-merchant through label replacement. No deprecation of SGQR planned — SGQR+ is positioned as an evolution adopting merchants opt into [1].
Sources
- NETS announces SGQR+ islandwide rollout — NETS press release, 7 Nov 2024
- SGQR — Monetary Authority of Singapore
- SGQR+ launched by NETS — The Edge Singapore
- SGQR+ Islandwide Rollout — Fintech News Singapore
- Enhanced SGQR+ Payment Scheme — Asia Biz Today
- hisenyuan/EMVCo-SGQR-encode-decode-crc — GitHub
- mvallim/emv-qrcode — GitHub
- mercari/go-emv-code — GitHub
- dongri/emv-qrcode — GitHub
- SG-singapore.md
- A quick guide into how SGQR works (reverse-DNS GUIDs, tag layout) — Victor Liew, Medium
- MY-malaysia.md
- ID-indonesia.md
Deployments
Found in the following country reports (grep across reports/countries/):
- SG — SG-singapore.md