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.
| Pihak | Peran dalam transaksi QRIS |
|---|---|
| Penerbit (issuer) | Aplikasi milik pembeli, misalnya m-banking atau dompet digital. Memotong saldo pembeli |
| Lembaga switching | Jalur 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 |
| Merchant | Penjual 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.

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.
| Aspek | QRIS Statis | QRIS Dinamis |
|---|---|---|
| Nominal | Diketik pembeli | Sudah tertanam di kode |
| Masa pakai | Berkali-kali | Satu transaksi |
| Perangkat merchant | Cukup stiker cetak | EDC, aplikasi kasir, atau website |
| Risiko salah nominal | Ada | Hampir tidak ada |
| Cocok untuk | Warung, pedagang kaki lima, donasi | Minimarket, 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:
| Tag | Isi | Contoh |
|---|---|---|
| 00 | Versi format | 01 |
| 01 | Metode: statis atau dinamis | 11 statis, 12 dinamis |
| 26 | Akun merchant di PJP pengakuisisi | Domain PJP dan MPAN (nomor akun merchant) |
| 51 | Data QRIS nasional, berisi NMID | ID.CO.QRIS.WWW |
| 52 | Kategori usaha (MCC) | 5812 (rumah makan) |
| 53 | Mata uang | 360 (Rupiah) |
| 54 | Nominal, hanya di QRIS dinamis | 25000 |
| 59 / 60 | Nama dan kota merchant | WARUNG KOPI |
| 63 | CRC, kode pemeriksa kerusakan data | 2E20 |
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.

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:
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:
python3 cek_qris.py "$QR"Pada kode QRIS statis contoh yang kami buat untuk pengujian, keluarannya seperti ini:
Metode : 11
Nama : WARUNG KOPI SEJAHTERA
Kota : BANDUNG
Nominal: -
NMID : ID1026123456789
CRC : cocokSaat 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:
- Satu kode untuk semua aplikasi: Pedagang cukup memajang satu stiker. Pembeli bebas memakai m-banking atau dompet digital apa pun.
- Tidak perlu uang kembalian: Pembayaran pas sampai ke rupiah terakhir, sehingga pedagang tidak perlu menyiapkan pecahan kecil setiap pagi.
- Catatan transaksi otomatis: Setiap pembayaran tercatat lengkap dengan waktu dan nominal. Catatan ini berguna untuk pembukuan dan sebagai riwayat transaksi saat mengajukan pinjaman usaha.
- Biaya nol untuk transaksi kecil: Sejak 1 Oktober 2026, transaksi hingga Rp100.000 bebas MDR untuk semua merchant. Rinciannya kita bahas di section biaya.
- 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:
- Bergantung pada internet pembeli: Kalau sinyal HP pembeli lemah, transaksi gagal atau tertunda. Pedagang di lokasi bersinyal buruk tetap perlu menerima uang tunai.
- Batas Rp10 juta per transaksi: Transaksi di atas itu harus dipecah atau memakai transfer biasa. Penerbit juga boleh menetapkan batas harian sendiri.
- 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.
- 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.
- 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 merchant | Transaksi kecil | Di atas ambang |
|---|---|---|
| Usaha mikro | 0% hingga Rp500.000 | 0,3% |
| Usaha kecil, menengah, besar | 0% hingga Rp100.000 | 0,7% |
| Pendidikan | — | 0,6% |
| SPBU | — | 0,4% |
| Bansos, pajak, donasi nirlaba | 0% | 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%).

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 Merchant Mendapatkan QRIS
Bank Indonesia merangkum proses pendaftaran QRIS merchant dalam empat tahap:
- Pilih PJP berizin: Daftar PJP penyelenggara QRIS tersedia di situs Bank Indonesia. PJP bisa berupa bank maupun perusahaan dompet digital.
- Daftar di kantor atau secara online: Banyak PJP kini menyediakan pendaftaran lewat aplikasi atau situsnya.
- Tunggu verifikasi dokumen: Setelah dokumen dinyatakan lengkap, PJP membuatkan Merchant ID dan kode QRIS.
- 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.




