Sebelum 2019, meja kasir warung kopi di kota besar sering ditempeli empat sampai lima stiker kode QR sekaligus. Satu untuk GoPay, satu untuk OVO, satu untuk DANA, satu lagi untuk aplikasi bank. Pembeli harus mencari stiker yang cocok dengan aplikasinya, dan pedagang harus membuka beberapa aplikasi untuk mengecek uang masuk. QRIS adalah jawaban Bank Indonesia atas kerumitan itu: satu kode QR yang bisa dipindai oleh aplikasi pembayaran mana pun.

Dalam artikel ini kita akan membahas QRIS dari dua sisi. Dari sisi pedagang, kita bahas cara kerja, jenis, biaya MDR terbaru, dan risiko yang perlu diwaspadai. Dari sisi developer, kita akan membuka isi kode QRIS dan melihat data apa saja yang sebenarnya dibaca aplikasi saat Anda memindainya.

Apa Itu QRIS?

QRIS adalah standar nasional kode QR untuk pembayaran yang ditetapkan Bank Indonesia. Kepanjangan QRIS adalah Quick Response Code Indonesian Standard, dan Bank Indonesia menganjurkan membacanya "kris". Standar ini diluncurkan pada 17 Agustus 2019 dan wajib dipakai seluruh penyelenggara pembayaran berbasis QR sejak 31 Desember 2019.

Dasar hukumnya adalah Peraturan Anggota Dewan Gubernur (PADG) No. 21/18/PADG/2019, yang sudah tiga kali diubah. Perubahan terakhir, PADG No. 3 Tahun 2025, sekaligus menjadi dasar QRIS Tap. Secara teknis, QRIS mengacu pada standar internasional EMVCo, yaitu standar yang juga dipakai sistem pembayaran QR di banyak negara lain.

Inti QRIS terletak pada kata "standar". Sebelum QRIS, setiap penyedia membuat format kode QR sendiri. Setelah QRIS, semua penyedia wajib memakai format yang sama. Hasilnya, kode QRIS milik pedagang yang terdaftar lewat bank A tetap bisa dibayar dengan dompet digital B. Banyak orang menyebutnya "barcode QRIS", padahal yang dipakai adalah kode QR dua dimensi, bukan barcode bergaris.

Skalanya kini sangat besar. Per Juni 2026, QRIS dipakai oleh 44,86 juta merchant, dan 96,68% di antaranya adalah UMKM. Jumlah penggunanya mencapai 67 juta per Juli 2026, dengan total sekitar 15 miliar transaksi sepanjang Januari–Juli 2026.

Cara Kerja QRIS: Dari Pindai sampai Saldo Merchant Bertambah

Satu transaksi QRIS melibatkan empat pihak. Pembeli dan pedagang hanya melihat dua di antaranya, sedangkan dua pihak lain bekerja di belakang layar.

PihakPeran dalam transaksi QRIS
Penerbit (issuer)Aplikasi milik pembeli, misalnya m-banking atau dompet digital. Memotong saldo pembeli
Lembaga switchingJalur penghubung antarpenyelenggara, sehingga aplikasi A bisa membayar merchant yang terdaftar di B
Pengakuisisi (acquirer)Penyelenggara jasa pembayaran (PJP) tempat merchant mendaftar. Menerbitkan kode QRIS dan meneruskan dana ke merchant
MerchantPenjual yang menampilkan kode QRIS dan menerima pembayaran

Alurnya berjalan berurutan dari pembeli sampai merchant. Pembeli memindai kode dengan aplikasi penerbit. Aplikasi membaca data merchant dari kode itu, lalu meminta pembeli memasukkan PIN. Setelah saldo dipotong, permintaan pembayaran diteruskan melalui lembaga switching ke pengakuisisi. Pengakuisisi kemudian mengirim notifikasi ke merchant bahwa pembayaran sudah diterima.

Cara kerja QRIS: pembeli memindai, penerbit memotong saldo, switching meneruskan, pengakuisisi mengabari merchant.
Cara kerja QRIS: pembeli memindai, penerbit memotong saldo, switching meneruskan, pengakuisisi mengabari merchant.

Perlu dibedakan antara notifikasi dan pencairan dana. Notifikasi masuk dalam hitungan detik, tetapi dana baru benar-benar berpindah ke rekening merchant pada proses settlement (penyelesaian dana). Jadwal settlement berbeda di tiap PJP, jadi tanyakan saat Anda mendaftar.

Setiap transaksi juga mendapat RRN (Retrieval Reference Number), yaitu nomor rujukan unik yang tercantum di bukti bayar. RRN inilah yang diminta petugas saat Anda mengajukan komplain, misalnya saldo sudah terpotong tetapi merchant tidak menerima notifikasi.

Jenis QRIS dan Kapan Masing-Masing Dipakai

Bank Indonesia membagi QRIS menjadi beberapa mode. Dua yang paling sering Anda temui adalah QRIS MPM (Merchant Presented Mode), yaitu merchant yang menampilkan kode dan pembeli yang memindai.

QRIS Statis vs QRIS Dinamis

QRIS MPM punya dua bentuk. QRIS statis adalah kode tetap tanpa nominal, biasanya dicetak sebagai stiker atau papan akrilik. Pembeli mengetik sendiri jumlah yang harus dibayar. QRIS dinamis adalah kode yang dibuat baru untuk setiap transaksi dan sudah berisi nominal, ditampilkan di layar mesin EDC, aplikasi kasir, atau halaman checkout.

AspekQRIS StatisQRIS Dinamis
NominalDiketik pembeliSudah tertanam di kode
Masa pakaiBerkali-kaliSatu transaksi
Perangkat merchantCukup stiker cetakEDC, aplikasi kasir, atau website
Risiko salah nominalAdaHampir tidak ada
Cocok untukWarung, pedagang kaki lima, donasiMinimarket, restoran, toko online

QRIS CPM: Pembeli yang Menunjukkan Kode

QRIS CPM (Customer Presented Mode) membalik arahnya. Pembeli menampilkan kode QR dari aplikasinya, lalu kasir memindainya dengan alat pemindai. Mode ini lazim di gerai ritel besar karena antrean bergerak lebih cepat: pembeli tidak perlu mengetik nominal maupun menunggu kode dicetak.

QRIS Tap, QRIS Antarnegara, dan QRIS TUNTAS

QRIS Tap memungkinkan pembayaran tanpa memindai, cukup menempelkan HP ke perangkat merchant. Teknologinya memakai NFC, sehingga hanya bekerja di HP yang punya fitur tersebut.

QRIS Antarnegara (cross border) memungkinkan wisatawan membayar dengan aplikasi dari negaranya sendiri. Hingga Juli 2026, mitranya meliputi Thailand, Malaysia, Singapura, Jepang, Korea Selatan, dan Tiongkok. Sementara itu, QRIS TUNTAS memperluas fungsi QRIS ke tarik tunai, transfer, dan setor tunai di ATM atau agen.

Cara Baca Kode QRIS: Data yang Sebenarnya Dibaca Aplikasi

Bagian ini ditujukan untuk developer, tetapi kesimpulannya penting bagi siapa pun. Kode QRIS sebenarnya hanyalah sebaris teks, yang kemudian digambar sebagai kotak hitam-putih. Teks itu disusun dengan format TLV (Tag-Length-Value): dua digit nomor tag, dua digit panjang isi, lalu isinya.

Sebagai contoh, potongan 5907WARKOP1 berarti tag 59 (nama merchant), panjang 07, dan isinya WARKOP1. Aplikasi membaca teks itu potong demi potong dari kiri ke kanan. Berikut tag yang paling penting:

TagIsiContoh
00Versi format01
01Metode: statis atau dinamis11 statis, 12 dinamis
26Akun merchant di PJP pengakuisisiDomain PJP dan MPAN (nomor akun merchant)
51Data QRIS nasional, berisi NMIDID.CO.QRIS.WWW
52Kategori usaha (MCC)5812 (rumah makan)
53Mata uang360 (Rupiah)
54Nominal, hanya di QRIS dinamis25000
59 / 60Nama dan kota merchantWARUNG KOPI
63CRC, kode pemeriksa kerusakan data2E20

NMID (National Merchant ID) adalah nomor identitas merchant yang berlaku secara nasional. Nomor ini tersimpan di dalam tag 51, dan juga dicetak di bawah stiker QRIS resmi.

Cara baca kode QRIS per tag: 00 versi, 01 statis atau dinamis, 51 NMID, 54 nominal, 59 nama merchant, 63 CRC.
Cara baca kode QRIS per tag: 00 versi, 01 statis atau dinamis, 51 NMID, 54 nominal, 59 nama merchant, 63 CRC.

Untuk membuktikannya, kami menulis pengurai pendek dengan Python. Skrip ini membaca isi kode, mencetak data merchant, lalu menghitung ulang CRC dengan algoritma yang ditetapkan spesifikasi EMVCo (CRC-16 polinomial 1021, nilai awal FFFF). Simpan sebagai cek_qris.py:

Python
import sys

def crc16(data):
    crc = 0xFFFF
    for b in data.encode():
        crc ^= b << 8
        for _ in range(8):
            if crc & 0x8000:
                crc = (crc << 1) ^ 0x1021
            else:
                crc <<= 1
            crc &= 0xFFFF
    return f"{crc:04X}"

def urai(s):
    i, hasil = 0, {}
    while i < len(s):
        tag = s[i:i+2]
        n = int(s[i+2:i+4])
        hasil[tag] = s[i+4:i+4+n]
        i += 4 + n
    return hasil

qr = sys.argv[1]
d = urai(qr)
t51 = urai(d.get("51", ""))
print("Metode :", d.get("01"))
print("Nama   :", d.get("59"))
print("Kota   :", d.get("60"))
print("Nominal:", d.get("54", "-"))
print("NMID   :", t51.get("02"))
ok = crc16(qr[:-4]) == qr[-4:]
print("CRC    :", "cocok" if ok else "RUSAK")

Teks kode QRIS bisa Anda peroleh dari aplikasi pemindai QR biasa, yang menampilkan isi mentahnya. Simpan teks itu ke variabel QR, lalu jalankan:

Bash
python3 cek_qris.py "$QR"

Pada kode QRIS statis contoh yang kami buat untuk pengujian, keluarannya seperti ini:

Code
Metode : 11
Nama   : WARUNG KOPI SEJAHTERA
Kota   : BANDUNG
Nominal: -
NMID   : ID1026123456789
CRC    : cocok

Saat satu huruf nama kota kami ubah, baris terakhir langsung berubah menjadi CRC : RUSAK. Di sinilah pelajaran terpentingnya. CRC hanya mendeteksi data yang rusak atau salah ketik, bukan memastikan keaslian. Penipu yang mendaftar sebagai merchant dengan akun miliknya sendiri akan menghasilkan kode dengan CRC cocok dan NMID sah. Pembeda satu-satunya adalah nama merchant yang tampil di aplikasi sebelum Anda memasukkan PIN.

Keuntungan QRIS bagi Pedagang dan Pembeli

Manfaat QRIS paling terasa bagi usaha kecil yang sebelumnya hanya menerima uang tunai. Berikut keuntungan utamanya:

  1. Satu kode untuk semua aplikasi: Pedagang cukup memajang satu stiker. Pembeli bebas memakai m-banking atau dompet digital apa pun.
  2. Tidak perlu uang kembalian: Pembayaran pas sampai ke rupiah terakhir, sehingga pedagang tidak perlu menyiapkan pecahan kecil setiap pagi.
  3. Catatan transaksi otomatis: Setiap pembayaran tercatat lengkap dengan waktu dan nominal. Catatan ini berguna untuk pembukuan dan sebagai riwayat transaksi saat mengajukan pinjaman usaha.
  4. Biaya nol untuk transaksi kecil: Sejak 1 Oktober 2026, transaksi hingga Rp100.000 bebas MDR untuk semua merchant. Rinciannya kita bahas di section biaya.
  5. Menjangkau wisatawan: Turis dari enam negara mitra bisa membayar dengan aplikasi negaranya. Hingga Juli 2026, transaksi turis asing di Indonesia mencapai 21 juta kali dengan nilai Rp5,90 triliun.

Kelemahan QRIS dan Risiko yang Perlu Anda Pertimbangkan

QRIS bukan tanpa kekurangan. Sebagian kelemahannya teknis, sebagian lagi berupa celah penipuan:

  1. Bergantung pada internet pembeli: Kalau sinyal HP pembeli lemah, transaksi gagal atau tertunda. Pedagang di lokasi bersinyal buruk tetap perlu menerima uang tunai.
  2. Batas Rp10 juta per transaksi: Transaksi di atas itu harus dipecah atau memakai transfer biasa. Penerbit juga boleh menetapkan batas harian sendiri.
  3. Salah ketik nominal di QRIS statis: Pembeli bisa mengetik Rp5.000 untuk tagihan Rp50.000. Pedagang wajib mengecek notifikasi masuk, bukan hanya melihat layar HP pembeli.
  4. Stiker QRIS palsu: Bank Indonesia sudah mengingatkan modus penempelan stiker palsu di atas QRIS asli milik pedagang dan tempat ibadah. Dana pembeli masuk ke rekening penipu.
  5. Quishing: Gabungan kata QR dan phishing, yaitu kode QR yang disebar lewat media sosial atau pesan untuk mengarahkan korban ke pembayaran atau situs palsu. Ini termasuk bentuk social engineering.

Risiko nomor 4 dan 5 tidak bisa ditangkal oleh teknologi QRIS itu sendiri. Seperti terlihat di section sebelumnya, kode palsu tetap lolos pemeriksaan CRC.

Biaya MDR QRIS Terbaru per Oktober 2026

MDR (Merchant Discount Rate) adalah potongan yang dikenakan pada setiap transaksi QRIS dan ditanggung merchant. Bank Indonesia menegaskan bahwa MDR tidak boleh dibebankan kepada pembeli. Jadi pedagang yang menambah "biaya QRIS" ke tagihan sebenarnya melanggar ketentuan.

Pada 17 Agustus 2026, Bank Indonesia mengumumkan perluasan MDR 0% yang berlaku sejak 1 Oktober 2026. Ringkasannya:

Kategori merchantTransaksi kecilDi atas ambang
Usaha mikro0% hingga Rp500.0000,3%
Usaha kecil, menengah, besar0% hingga Rp100.0000,7%
Pendidikan—0,6%
SPBU—0,4%
Bansos, pajak, donasi nirlaba0%0%

Agar lebih konkret, berikut hitungan untuk tiga nominal belanja:

  • Rp75.000: usaha mikro maupun usaha kecil sama-sama tidak dipotong.
  • Rp250.000: usaha mikro tidak dipotong, usaha kecil dipotong Rp1.750 (0,7%).
  • Rp1.000.000: usaha mikro dipotong Rp3.000 (0,3%), usaha kecil dipotong Rp7.000 (0,7%).
Potongan MDR QRIS: Rp75.000 gratis semua; Rp250.000 mikro Rp0, kecil Rp1.750; Rp1 juta mikro Rp3.000, kecil Rp7.000.
Potongan MDR QRIS: Rp75.000 gratis semua; Rp250.000 mikro Rp0, kecil Rp1.750; Rp1 juta mikro Rp3.000, kecil Rp7.000.

Kategori usaha Anda tercatat di dalam kode QRIS sebagai UMI, UKE, UME, atau UBE. Kalau kategori itu tidak sesuai dengan skala usaha Anda, ajukan koreksi ke PJP pengakuisisi. Untuk toko online yang menerima QRIS lewat payment gateway, cek juga tarif penyedianya, karena belum semua halaman tarif diperbarui mengikuti kebijakan Oktober 2026.

Cara Bayar Pakai QRIS dan Memastikan Penerimanya Benar

Cara menggunakan QRIS sebagai pembeli hanya butuh empat langkah. Langkah ketiga adalah yang paling sering dilewati, padahal justru langkah itu yang melindungi Anda dari stiker palsu.

Langkah #1: Buka Aplikasi Pembayaran

Buka m-banking atau dompet digital yang saldonya cukup, lalu pilih menu bayar atau ikon pemindai QR. Anda tidak perlu mencari logo yang cocok, karena semua aplikasi yang mendukung QRIS bisa memindai semua kode QRIS.

Langkah #2: Pindai Kode QRIS

Arahkan kamera ke kode. Pada QRIS statis, ketik nominal yang harus dibayar. Pada QRIS dinamis, nominal sudah terisi otomatis.

Langkah #3: Cocokkan Nama Merchant dan Nominal

Sebelum memasukkan PIN, baca nama merchant yang muncul di layar. Nama itu harus sama dengan nama toko di stiker atau papan QRIS. Jika berbeda, batalkan transaksi dan beri tahu pedagang. Periksa juga apakah ada stiker baru yang ditempel di atas stiker lama.

Langkah #4: Masukkan PIN dan Simpan Bukti

Setelah transaksi berhasil, tunjukkan bukti bayar ke pedagang dan simpan tangkapan layarnya. Bukti itu memuat RRN yang Anda butuhkan jika nanti terjadi masalah.

Cara bayar pakai QRIS: pindai, cocokkan nama merchant dengan stiker, batalkan bila beda, lalu masukkan PIN dan simpan bukti.
Cara bayar pakai QRIS: pindai, cocokkan nama merchant dengan stiker, batalkan bila beda, lalu masukkan PIN dan simpan bukti.

Cara Merchant Mendapatkan QRIS

Bank Indonesia merangkum proses pendaftaran QRIS merchant dalam empat tahap:

  1. Pilih PJP berizin: Daftar PJP penyelenggara QRIS tersedia di situs Bank Indonesia. PJP bisa berupa bank maupun perusahaan dompet digital.
  2. Daftar di kantor atau secara online: Banyak PJP kini menyediakan pendaftaran lewat aplikasi atau situsnya.
  3. Tunggu verifikasi dokumen: Setelah dokumen dinyatakan lengkap, PJP membuatkan Merchant ID dan kode QRIS.
  4. Pasang kode di kasir: Kode siap dipakai menerima pembayaran.

Biaya dan persyaratan dokumen berbeda di tiap PJP, jadi bandingkan dua atau tiga penyedia sebelum mendaftar.

Untuk memilih bentuk QRIS, pegangan praktisnya sebagai berikut. Warung atau lapak tanpa mesin kasir cukup memakai QRIS statis. Usaha dengan aplikasi kasir atau EDC sebaiknya memakai QRIS dinamis, supaya tidak ada salah ketik nominal. Untuk toko online, QRIS dinamis biasanya dibuat otomatis oleh payment gateway lewat API. Status lunasnya dikirim ke server Anda lewat webhook.

Kalau Anda memakai QRIS statis, rawat stikernya seperti merawat laci uang. Pasang di tempat yang selalu terlihat dari kasir, lapisi dengan akrilik atau plastik bening, dan periksa setiap pagi sebelum mulai berjualan.

Pertanyaan yang Sering Diajukan

Apakah QRIS bisa dipakai tanpa internet?

Tidak di sisi pembeli. Aplikasi pembeli harus terhubung ke internet untuk memotong saldo dan meneruskan pembayaran. Merchant yang memakai QRIS statis tidak butuh perangkat apa pun untuk menerima pembayaran, tetapi tetap butuh internet untuk melihat notifikasi masuk.

Apa itu NMID pada QRIS?

NMID (National Merchant ID) adalah nomor identitas merchant QRIS yang berlaku nasional, biasanya diawali huruf ID. Nomor ini tercetak di bawah kode QRIS resmi. Kode tanpa NMID patut dicurigai, tetapi kode yang memiliki NMID belum tentu milik pedagang di depan Anda. Nama merchant di layar tetap harus dicocokkan.

Uang dari QRIS masuk ke mana?

Dana masuk ke rekening bank atau akun dompet digital merchant di PJP tempat ia mendaftar. Pembeli boleh memakai aplikasi apa saja, dana tetap mengalir ke akun merchant di PJP pengakuisisinya.

Apakah membuat QRIS harus punya rekening bank?

Tidak selalu. Merchant butuh akun di PJP pengakuisisi, dan PJP itu bisa berupa bank maupun dompet digital. Jika mendaftar lewat dompet digital, dana masuk ke saldo akun merchant di aplikasi tersebut.

QRIS bisa dibayar pakai aplikasi apa?

QRIS bisa dibayar dengan semua m-banking dan dompet digital yang terdaftar sebagai penerbit QRIS, tanpa melihat tempat merchant mendaftar. Kode QRIS milik merchant yang terdaftar lewat dompet digital tetap bisa dibayar dari m-banking, dan sebaliknya. Wisatawan dari negara mitra QRIS Antarnegara memakai aplikasi pembayaran negaranya sendiri.

Berapa biaya membuat QRIS?

Menurut panduan Bank Indonesia, biaya pendaftaran dan syaratnya ditentukan masing-masing PJP, jadi tanyakan langsung ke penyedia pilihan Anda. Biaya yang diatur Bank Indonesia adalah MDR per transaksi, yang kini 0% untuk transaksi hingga Rp100.000, atau hingga Rp500.000 bagi usaha mikro.

Kesimpulan

QRIS adalah standar kode QR pembayaran dari Bank Indonesia yang menyatukan semua aplikasi bank dan dompet digital dalam satu kode. Di balik satu pindaian ada empat pihak: penerbit, switching, pengakuisisi, dan merchant. Gunakan QRIS statis untuk usaha tanpa mesin kasir dan QRIS dinamis untuk kasir digital maupun toko online. Sejak 1 Oktober 2026, transaksi hingga Rp100.000 bebas MDR untuk semua merchant, dan hingga Rp500.000 untuk usaha mikro.

Bagi developer, satu hal perlu diingat: CRC di dalam kode QRIS hanya pemeriksa kerusakan data, bukan bukti keaslian. Bagi pembeli, kebiasaan mencocokkan nama merchant sebelum memasukkan PIN adalah perlindungan yang paling efektif.

Semoga artikel ini membantu.