QRIS Statis atau QRIS Dinamis untuk Toko Online
Kenapa QRIS statis menyusahkan toko online, bagaimana QRIS dinamis menyelesaikannya, dan aturan MDR resmi Bank Indonesia yang sering disalahpahami penjual.

Hampir semua panduan QRIS di internet ditulis untuk warung. QR ditempel di dekat kasir, pembeli scan, ketik nominal sendiri, selesai.
Untuk toko online, cara itu menimbulkan masalah yang tidak ada di warung: kamu tidak tahu pembayaran mana milik order mana.
Kenapa QRIS Statis Menyusahkan Toko Online
QRIS statis tidak membawa nominal. Pembeli yang mengetiknya sendiri.
Di warung itu tidak masalah, karena kasir melihat layar pembeli dan langsung tahu. Di toko online, yang kamu punya cuma daftar mutasi masuk berisi angka dan nama, tanpa keterangan order.
Praktisnya jadi begini. Ada tiga order yang sama-sama Rp 150.000 hari itu. Masuk dua pembayaran Rp 150.000. Order mana yang belum bayar?
Jawabannya cuma bisa didapat dengan bertanya ke pembeli, satu per satu.
Masalah kedua lebih halus: pembeli salah ketik nominal. Kurang seribu, lebih dua ribu, dan sekarang kamu punya pembayaran yang tidak cocok dengan order mana pun.
QRIS Dinamis: Nominal Menempel di QR-nya
QRIS dinamis membawa nominal di dalam kodenya. Pembeli scan, angkanya sudah terisi, dia tinggal mengonfirmasi.
Salah ketik hilang sebagai kategori masalah. Tapi tiga order Rp 150.000 tadi masih belum terpecahkan, karena nominalnya tetap sama.
Solusinya sederhana dan dipakai luas: kode unik. Sistem menambahkan angka kecil, biasanya nol sampai tiga digit, ke total tiap order.
| Order | Total belanja | Kode unik | Yang dibayar |
|---|---|---|---|
| A | Rp 150.000 | + 137 | Rp 150.137 |
| B | Rp 150.000 | + 412 | Rp 150.412 |
| C | Rp 150.000 | + 89 | Rp 150.089 |
Sekarang nominalnya sendiri yang jadi penanda. Mutasi masuk Rp 150.412 cuma bisa milik order B.
Selisihnya receh, dan pembeli hampir tidak pernah mempermasalahkannya karena praktik ini sudah lazim di Indonesia. Sebagian sistem mengurangi alih-alih menambah, supaya angkanya terlihat lebih murah. Keduanya bekerja sama baiknya.
Aturan MDR yang Sering Disalahpahami
MDR adalah biaya yang dipotong dari tiap transaksi QRIS. Dua hal tentang MDR sering salah dipahami penjual, dan dua-duanya diatur resmi.
Pertama, tarifnya berjenjang menurut jenis usaha. Bank Indonesia menjelaskan struktur MDR QRIS di halaman resminya. Bank Indonesia juga memperluas skema MDR nol persen untuk usaha mikro yang berlaku mulai 1 Oktober 2026, dengan batas nilai transaksi tertentu. Dicek 3 September 2026, dan karena tanggal berlakunya belum lewat saat tulisan ini dibuat, cek ulang halamannya sebelum mengambil keputusan.
Kedua, dan ini yang paling sering dilanggar tanpa sadar: MDR ditanggung penjual dan tidak boleh dibebankan ke pembeli.
Artinya menaikkan harga khusus untuk pembayaran QRIS, atau menambahkan baris "biaya QRIS 0,7%" di checkout, bertentangan dengan ketentuannya. Banyak toko melakukannya karena mengira itu wajar seperti biaya admin transfer.
Kalau MDR terasa memberatkan, jalannya menaikkan harga jual untuk semua metode, bukan menambah biaya khusus di satu metode.
Kalau Kamu Membuat QR Dinamis Sendiri dari QRIS Statis
Secara teknis, QRIS dinamis bisa dibuat dari QRIS statis milikmu sendiri, tanpa lewat penyedia pembayaran. Isinya cuma data terstruktur yang bisa dimodifikasi lalu dihitung ulang kode pemeriksanya.
Struktur itu bukan rahasia. Halaman edukasi QRIS Bank Indonesia menjelaskan bahwa QRIS disusun Bank Indonesia bersama ASPI dengan mengacu standar internasional EMV Co, dan ketentuan pelaksanaannya diterbitkan resmi sejak 2019. Dicek 3 September 2026.
Saya pernah mengerjakannya, dan bagian yang memakan waktu bukan menulis kodenya. Bagian yang memakan waktu adalah menemukan kenapa QR hasil buatan sendiri ditolak aplikasi pembayaran dengan pesan "kode bermasalah".
Empat hal yang saya temukan lewat percobaan, bukan dari dokumentasi:
- Urutan data asli harus dipertahankan. Godaan pertama saya adalah mengurutkan ulang bidangnya supaya rapi. Itu yang membuat QR ditolak. Sisipkan bidang nominal di posisi yang benar, jangan menyusun ulang sisanya.
- Penanda jenis QR harus diubah dari statis ke dinamis. Kalau tidak, sebagian aplikasi tetap meminta pembeli mengetik nominal, dan seluruh usahanya sia-sia.
- Jangan menyentuh blok data tambahan. Untuk QR dompet digital pribadi, blok itu memuat rujukan internal milik penerbitnya. Menambahkan apa pun ke sana merusak QR-nya.
- Kode pemeriksa harus dihitung ulang setelah semua perubahan. Ini yang paling sering terlupa, dan gejalanya persis sama dengan kesalahan lain: ditolak tanpa penjelasan.
Satu anggapan yang ternyata keliru dan sempat membuat saya berhenti: QRIS dompet digital pribadi tetap bisa dijadikan dinamis. Ia tidak terkunci seperti yang saya kira.
Bagian yang Benar-benar Sulit: Tahu Bahwa Uangnya Sudah Masuk
Membuat QR-nya cuma separuh pekerjaan. Separuh lagi adalah mengetahui kapan pembayaran diterima, supaya status order berubah sendiri.
Kalau kamu memakai penyedia pembayaran, mereka mengirim pemberitahuan otomatis dan bagian ini selesai. Kalau kamu memakai QRIS sendiri untuk menghindari biaya, tidak ada yang mengabarimu apa pun.
Cara yang dipakai orang biasanya membaca notifikasi masuk di ponsel lalu meneruskannya ke sistem. Itu bekerja, dan saya sudah mengujinya, tapi ada satu hal yang harus kamu terima sejak awal.
Deteksi otomatis semacam itu tidak akan pernah seratus persen. Notifikasi bisa tidak muncul, ponsel bisa mati, aplikasi bisa dibersihkan sistem operasi. Realistisnya di angka sembilan puluhan persen, bukan sembilan koma sembilan.
Karena itu jalur konfirmasi manual, yaitu pembeli mengunggah bukti transfer, harus dipasang sebagai jaring pengaman permanen, bukan fitur sementara sambil menunggu otomatisasi sempurna. Ia tidak akan pernah sempurna.
Ada juga tabrakan yang perlu kamu antisipasi: kalau ada dua pembayaran dengan nominal persis sama, sistem tidak bisa membedakannya. Itu alasan kode unik harus benar-benar unik selama order masih menunggu pembayaran, bukan sekadar acak.
Jadi Pilih yang Mana
Saya sebut rekomendasinya langsung, bukan "tergantung kebutuhan".
Kalau ordermu di bawah sekitar sepuluh per hari, QRIS statis plus konfirmasi manual masih masuk akal. Kode unik saja sudah menyelesaikan sebagian besar kebingungan pencocokan, dan kamu tidak perlu membangun apa pun.
Di atas itu, pakai penyedia pembayaran. Biaya per transaksinya nyata, tapi lebih murah daripada waktumu mencocokkan mutasi setiap malam, dan jauh lebih murah daripada satu order yang salah ditandai lunas.
Membangun QRIS dinamis sendiri masuk akal kalau volumemu besar, marginmu tipis, dan kamu punya akses ke orang yang bisa merawatnya. Kalau salah satu dari tiga itu tidak ada, biaya penyedia lebih murah daripada kelihatannya.
Checklist
- Kode unik aktif, dan dipastikan tidak bertabrakan antar order yang masih menunggu.
- Tidak ada biaya tambahan yang dibebankan ke pembeli khusus untuk QRIS.
- Ada jalur konfirmasi manual yang selalu tersedia, bukan hanya saat otomatis gagal.
- Ada batas waktu pembayaran, supaya kode unik bisa dipakai ulang.
- Uji satu pembayaran sungguhan bernilai kecil sampai status order berubah sendiri.
- Nama penerima yang muncul di aplikasi pembeli sudah dicek, dan dikenali sebagai tokomu.
Nomor enam sering dilewati dan sering jadi sumber pembeli batal bayar. Kalau nama yang muncul adalah nama pribadi yang asing, sebagian orang berhenti di situ.
Mulai dari Mana
Nyalakan kode unik dulu, bahkan kalau QRIS-mu masih statis. Itu perubahan paling kecil dengan dampak paling besar terhadap waktu rekonsiliasimu.
Jalankan sebulan, catat berapa pembayaran yang masih perlu kamu tanyakan manual. Angka itu yang menentukan apakah kamu butuh naik ke penyedia pembayaran, bukan perasaan bahwa sistemmu kurang canggih.
Untuk membandingkan dengan metode pembayaran lain, langkah setupnya ada di tutorial setup Midtrans. Dan kalau kamu belum punya badan usaha, syarat pendaftarannya dibahas terpisah di payment gateway untuk perorangan.

