# QRIS

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

Specifications:
- [Quick Response Code Indonesian Standard — Bank Indonesia](https://www.bi.go.id/en/fungsi-utama/sistem-pembayaran/ritel/kanal-layanan/qris/default.aspx)
- [QRIS — ASPI (Indonesian Payment System Association)](https://aspi-indonesia.or.id/standar-dan-layanan/qris/)
- [EMV QR Code Specifications — EMVCo](https://www.emvco.com/emv-technologies/qr-codes/)

## Overview

QRIS (Quick Response Code Indonesian Standard) is **Indonesia's unified national QR payment standard**, jointly issued by Bank Indonesia (BI) and the Indonesian Payment System Association (ASPI) <sup>[1][1], [2][2]</sup>. It was launched on **17 August 2019** — Indonesia's 74th Independence Day — and became mandatory across the payment industry on **31 December 2019** <sup>[1][1], [3][3]</sup>. The standard is **EMVCo Merchant-Presented Mode (MPM)** based, with Indonesia-specific extensions for the country's bank + e-wallet + state-bank-fragmented market <sup>[1][1], [4][4]</sup>. By end-2025 it had **59 million users and 42 million merchants** (~90 % of which are MSMEs), processing **13.66 billion transactions in 2025** — more than 2× Bank Indonesia's original 6.5 B target. BI's **"17-8-45" 2026 strategy** targets 17 B annual transactions, 8 cross-border partner countries, and 45 M merchants <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

Indonesia introduced **QRIS Tap** (NFC variant) in March 2025, adding tap-to-pay capability alongside the QR scanning <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

## History

In **2018–2019** Bank Indonesia and ASPI ran a two-phase pilot of the QRIS specification: phase 1 (September–November 2018) and phase 2 (April–May 2019) <sup>[1][1]</sup>. The pilot validated technical interoperability across Indonesia's fragmented payment landscape — state banks (Mandiri, BRI, BNI), private banks (BCA), and a thriving e-wallet sector (GoPay, OVO, Dana, LinkAja, ShopeePay) <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

**Launch dates** <sup>[1][1], [3][3]</sup>:
- **17 August 2019** — official QRIS launch, coinciding with Indonesia's 74th Independence Day.
- **31 December 2019** — QRIS mandatory: all QR payment service providers in Indonesia must accept QRIS.
- **25 February 2022** — Bank Indonesia issues PADG No. 24/1/PADG/2022 amending the implementation regulation (PADG No. 21/18/PADG/2019).
- **March 2025** — QRIS Tap (NFC variant) launched <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.
- **August 2025** — Japan becomes first non-ASEAN country with QRIS cross-border live <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

**Pre-QRIS landscape**: Indonesia had ~40 different QR payment standards in production by 2018, with each major bank and e-wallet running its own QR — a fragmentation problem QRIS was designed explicitly to solve <sup>[5][5]</sup>.

## Technical specification

QRIS adopts **EMVCo's Merchant-Presented Mode (MPM)** QR specification with Indonesia-specific customisations <sup>[1][1], [4][4]</sup>.

**EMVCo MPM foundation** <sup>[4][4]</sup>:
- Payload format: **TLV (Tag-Length-Value)** plain-text string
- Integrity: CRC-16/CCITT-FALSE appended as field `63`
- Underlying symbology: [QR Code](https://docs.barcoder.ai/docs/standards/qr-code) (ISO/IEC 18004)
- Currency code: 360 (IDR)

**Modes supported** <sup>[1][1]</sup>:
- **MPM Statis** (Merchant-Presented Mode, Static) — fixed printed QR, customer enters amount.
- **MPM Dinamis** (Merchant-Presented Mode, Dynamic) — QR already contains the transaction amount; faster and reduces input error.
- **CPM** (Consumer-Presented Mode) — consumer's app displays a QR scanned by merchant POS.

**Implementation regulation**: Peraturan Anggota Dewan Gubernur (PADG) **No. 21/18/PADG/2019** as amended by **PADG No. 24/1/PADG/2022** <sup>[1][1]</sup>.

**MDR (Merchant Discount Rate) tiers** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>:

| Merchant type | MDR |
|---|---|
| Regular merchants | 0.7 % |
| Micro merchants (UMI) — transactions < IDR 500K | 0 % |
| Education / Government | 0 % |
| Social / Donations | 0 % |

The zero-MDR-for-micro tier is structural — it removes the cost-of-acceptance barrier for the small-vendor segment that comprises 92.5 % of merchants <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

## Use cases

QRIS spans essentially all retail payment contexts in Indonesia:

- **MSME merchants** — 38 million micro / small / medium enterprises display printed static QRIS at warungs (small shops), warteg (cheap eateries), street food carts, market stalls. The zero MDR for sub-IDR-500K transactions is the policy lever that drove this scale <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.
- **Modern retail** — dynamic QRIS at chain supermarket POS (Indomaret, Alfamart), shopping malls, restaurants.
- **E-commerce** — server-generated dynamic QRIS at checkout; consumer pays via GoPay/OVO/Dana/etc.
- **Government services and tax payments** — zero MDR.
- **Educational institutions** — tuition fee collection, zero MDR.
- **Social / religious donations** — mosque and church donation collection.
- **Cross-border tourism** — outbound for Indonesian tourists in SG/MY/TH/JP/CN/KR; inbound for tourists from those countries <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

Adoption rate (Q1 2024 → Q1 2025) <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>:

| Metric | Q1 2024 | Q1 2025 | Δ |
|---|---|---|---|
| Users | 48 M | 56.3 M | +17 % |
| Merchants | 32 M | 38.1 M | +19 % |
| Quarterly transactions | — | 2.6 B | — |

## Implementations

QRIS integration is mediated by Bank Indonesia–licensed Payment Service Providers (banks and e-wallets), so open-source library availability is limited — production integration goes through bank/PSP APIs.

**Production wallets and apps** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>:
- **GoPay** (~50 M+ users)
- **OVO** (~40 M+ users, Grab partnership)
- **Dana** (~30 M+ users, Ant Group-backed)
- **LinkAja** (~20 M+ users, state consortium)
- **ShopeePay** (Shopee ecosystem)
- **BCA Mobile / myBCA, BRImo, Livin' by Mandiri, BNI Mobile Banking, OCTO Mobile** (bank apps)

**Vendor / acquirer SDKs:**
- **BRI API** — `qris-merchant-presented-mode-mpm-dynamic-notification` — official Bank Rakyat Indonesia developer docs for QRIS MPM Dynamic integration <sup>[7][7]</sup>.
- **Antom (Ant Group's international payment platform)** — provides QRIS-as-a-payment-method for international merchants accepting Indonesian customers <sup>[8][8]</sup>.

**General EMVCo MPM libraries** that can read QRIS payloads (since QRIS is EMVCo MPM with Indonesia-specific tag values): <sup>[thalesog/pix-utils][9]</sup> for the Brazilian variant of the same EMVCo family; any compliant TLV decoder works at the data-format level.

The ecosystem gap (no widely-starred open-source QRIS encoder library, unlike Pix or PromptPay) reflects that QRIS is operationally bank/wallet-mediated rather than self-served by merchants.

## Comparison

**vs. [SGQR](https://docs.barcoder.ai/docs/standards/sgqr) (Singapore) and [DuitNow QR](https://docs.barcoder.ai/docs/standards/duitnow-qr) (Malaysia) and [PromptPay QR](https://docs.barcoder.ai/docs/standards/promptpay-qr) (Thailand)** — Same EMVCo MPM family; same era (all 2018–2019 launches); same central-bank-affiliated operator pattern. The key differentiator is **merchant composition**: QRIS is the most MSME-heavy of the four (92.5 % micro/small), reflecting Indonesia's economic structure. All four are connected in the ASEAN cross-border QR network and QRIS extended first beyond ASEAN to Japan in August 2025 <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID), [Singapore report](https://docs.barcoder.ai/docs/payments/SG), [Malaysia report](https://docs.barcoder.ai/docs/payments/MY), [Thailand report](https://docs.barcoder.ai/docs/payments/TH)</sup>.

**vs. [Pix](https://docs.barcoder.ai/docs/standards/pix) (Brazil)** — Both are state-led mandatory national payment standards. Pix is bank-rail-only with instant settlement (~10 seconds); QRIS works across banks AND e-wallets, with settlement timing dependent on the specific scheme. Pix charges merchants ~0.33 %; QRIS uses a tiered MDR with 0 % for micro and 0.7 % for regular <sup>[pix-ref], [Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

**vs. [UPI QR](https://docs.barcoder.ai/docs/standards/upi-qr) (India)** — UPI uses a `upi://pay?...` deep link; QRIS uses EMVCo TLV. QRIS includes the e-wallet sector as first-class participants from launch; UPI was bank-account-only until later PPI (prepaid payment instrument) onboarding. Both achieved MSME-merchant ubiquity within ~5 years of launch <sup>[India report](https://docs.barcoder.ai/docs/payments/IN), [Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

## Fun facts

QRIS's transaction volume grew by **226 %+ in 2024** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup> — a multi-year-running case of the steepest national QR adoption curves on record, alongside Brazil's Pix and Malaysia's DuitNow.

In 2025 the **United States Trade Representative formally labelled QRIS as a non-tariff trade barrier** in its annual report on foreign trade obstacles — apparently because the mandatory standard's geo-restrictions disadvantage non-Indonesian wallet providers (US-headquartered card networks, Western fintechs) in serving Indonesian merchants <sup>[10][10], [Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>. Bank Indonesia's response framed this as a payment-system sovereignty issue.

QRIS launched on **17 August 2019, Indonesia's 74th Independence Day** <sup>[1][1]</sup> — a deliberately symbolic choice. The system was promoted as digital-economy independence: an Indonesian-controlled standard replacing dependence on foreign card networks (Visa, Mastercard) and foreign wallets (Alipay, WeChat).

**38 million Indonesian merchants display a QRIS sticker** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>. That's roughly **one QRIS merchant per 7 Indonesian residents** (or per 4 working-age residents) — among the highest QR-acceptance densities in the world.

## Status

**Active, mandatory, and rapidly expanding domestically and internationally.** Most recent metrics:

- **56.3 M users; 38.1 M merchants (Q1 2025)** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>
- **2.6 B quarterly transactions (Q1 2025)** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>
- **226 % YoY 2024 transaction growth** <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>

**QRIS Tap (NFC variant) live since March 2025**, with iOS support planned <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>. **Cross-border footprint**:
- Active: Singapore, Malaysia, Thailand, Japan (Aug 2025) <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>
- MoU / pilot: South Korea (Aug 2024), UAE (Aug 2024), China (2025 target) <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>

Bank Indonesia's Payment System Blueprint 2025–2030 positions QRIS as the canonical retail payment rail for the next half-decade. No deprecation planned; the standard is foundational national infrastructure <sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>.

## Sources

[1]: https://www.bi.go.id/en/fungsi-utama/sistem-pembayaran/ritel/kanal-layanan/qris/default.aspx
[2]: https://aspi-indonesia.or.id/standar-dan-layanan/qris/
[3]: https://en.wikipedia.org/wiki/QRIS
[4]: https://www.emvco.com/emv-technologies/qr-codes/
[5]: https://www.nfcw.com/2019/08/20/364163/national-qr-mobile-payments-service-to-go-live-in-indonesia/
[6]: https://www.thejakartapost.com/news/2019/05/27/bank-indonesia-launches-national-standard-qr-code.html
[7]: https://developers.bri.co.id/en/docs/qris-merchant-presented-mode-mpm-dynamic-notification
[8]: https://knowledge.antom.com/qris-indonesia-payment-guide
[9]: https://github.com/thalesog/pix-utils
[10]: https://theconversation.com/us-labels-qris-a-trade-barrier-whats-next-for-indonesias-digital-payment-system-257616
[id-cro]: https://docs.barcoder.ai/docs/payments/ID
[sg-cro]: https://docs.barcoder.ai/docs/payments/SG
[my-cro]: https://docs.barcoder.ai/docs/payments/MY
[th-cro]: https://docs.barcoder.ai/docs/payments/TH
[in-cro]: https://docs.barcoder.ai/docs/payments/IN
[pix-ref]: https://docs.barcoder.ai/source/standards/pix

1. [QRIS — Bank Indonesia][1]
2. [QRIS — ASPI][2]
3. [QRIS — Wikipedia][3]
4. [EMV QR Code Specifications — EMVCo][4]
5. [Indonesia national QR launch — NFCW][5]
6. [Bank Indonesia launches QR standard — Jakarta Post][6]
7. [BRI QRIS MPM Dynamic Notification — Developer Docs][7]
8. [QRIS Indonesia Payment Guide — Antom][8]
9. [thalesog/pix-utils — adaptable EMVCo MPM library][9]
10. [US labels QRIS a trade barrier — The Conversation][10]
11. [ID-indonesia.md]<sup>[Indonesia report](https://docs.barcoder.ai/docs/payments/ID)</sup>

## Deployments

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

- **ID** — [ID-indonesia.md](https://docs.barcoder.ai/docs/payments/ID)
- **JP** — [JP-japan.md](https://docs.barcoder.ai/docs/payments/JP)
- **MY** — [MY-malaysia.md](https://docs.barcoder.ai/docs/payments/MY)
- **SG** — [SG-singapore.md](https://docs.barcoder.ai/docs/payments/SG)
- **TH** — [TH-thailand.md](https://docs.barcoder.ai/docs/payments/TH)
