Cover Image for Mastering QRIS: Mengenal Lebih Dalam dan Bagaimana Membaca Data dalam QRIS
Fariz Rifqi

Mastering QRIS: Mengenal Lebih Dalam dan Bagaimana Membaca Data dalam QRIS

Hingga tahun 2023 ini kita telah menyaksikan QRIS merajalela di berbagai aspek kehidupan kita. Kode QRIS ini muncul di hampir setiap sudut, mulai dari saat berbelanja hingga nongkrong di kafe.

Meskipun penggunaan QRIS mulai efektif sejak tahun 2020, namun pada artikel ini saya akan mencoba membawa lebih dalam untuk memahami pentingnya QRIS dan memberikan wawasan mendalam tentang cara membaca dan memahaminya.

Disclaimer: Artikel ini murni untuk tujuan edukasi. Untuk pembaca berjanjilah untuk tidak menggunakan pengetahuan ini untuk merugikan orang lain.

Apa Itu QRIS?

QRIS adalah singkatan dari "Quick Response Code Indonesian Standard." QRIS adalah standar kode QR yang dikembangkan oleh Bank Indonesia (BI), otoritas moneter Indonesia, untuk memfasilitasi pembayaran elektronik dan transaksi keuangan lainnya. QRIS memungkinkan pedagang dan konsumen untuk melakukan transaksi dengan cepat dan mudah melalui kode QR.

Mengapa Bank Indonesia Mengembangkan QRIS

QRIS menggantikan standar sebelumnya yang digunakan untuk kode QR di Indonesia, sehingga menyederhanakan proses pembayaran dan meningkatkan interoperabilitas antara berbagai penyedia pembayaran elektronik. Dengan QRIS, berbagai jenis layanan pembayaran, seperti kartu debit, dompet digital, dan bank, dapat digunakan dengan satu kode QR yang sama.

Melalui QRIS, pembeli dapat melakukan pembayaran dengan mudah dengan memindai kode QR yang diberikan oleh pedagang atau penyedia layanan. Ini merupakan salah satu langkah untuk mendukung perkembangan pembayaran digital dan meningkatkan inklusi keuangan di Indonesia.

Jenis QRIS

QRIS Statis

Dalam QRIS statis, kode QR memiliki informasi pembayaran yang tetap. Ini berarti setiap kali kode QR tersebut dipindai, informasi yang muncul adalah sama. QRIS statis cocok untuk transaksi yang berulang. Contohnya seperti kita membuat sebuah QRIS untuk sebuah produk. Tentu setiap pembeli melakukan scan akan menampilkan nominal yang sama seperti dengan yang kita atur sehingga pembeli tidak perlu lagi mengisi dan bahkan bertanya "berapa biayanya?".

QRIS Dinamis

QRIS dinamis menghasilkan kode QR yang berbeda setiap kali dipindai. Ini biasanya mencakup informasi tambahan seperti jumlah pembayaran atau nomor referensi yang unik untuk setiap transaksi. QRIS dinamis lebih fleksibel dan cocok untuk berbagai jenis transaksi, terutama di mana jumlah pembayaran atau detail lainnya berubah. Misalnya untuk membayarkan sebuah jasa. Tentunya harga di sepakati tidak menentu, penjual tidak mencantumkan harga pasti untuk jasa tersebut. Sehingga ketika melakukan scan QRIS dinamis, pembeli dapat memasukkan nominal serta keterangan yang diberikan oleh penjual.

Pemilihan antara QRIS statis dan dinamis tergantung pada kebutuhan bisnis atau penggunaan pribadi Anda. QRIS statis cocok untuk situasi di mana informasi pembayaran tetap dan transaksi berulang, sementara QRIS dinamis lebih cocok untuk situasi di mana Anda ingin fleksibilitas dalam mengubah detail transaksi atau menciptakan tingkat keamanan yang lebih tinggi.

Mengapa QRIS Penting

QRIS mengubah cara kita melakukan transaksi keuangan di era digital. Lalu, mengapa QRIS begitu penting? Berikut beberapa alasan utama menurut saya:

  • Meningkatkan Kemudahan Bertransaksi: QRIS membawa kemudahan dalam bertransaksi. Dengan satu kode QRIS, kita dapat melakukan pembayaran di berbagai tempat, mulai dari toko kelontong hingga ke tempat belanja mewah seperti di mall, tanpa perlu mengeluarkan banyak uang tunai atau kartu kredit. Ini membuat pengalaman berbelanja lebih lancar dan cepat.

  • Interoperabilitas Antara Penyedia Pembayaran: Sebelum QRIS, berbagai penyedia pembayaran seringkali memiliki sistem yang tidak kompatibel satu sama lain. QRIS mengatasi masalah ini dengan menyediakan standar yang digunakan oleh semua penyedia pembayaran. Ini berarti kita dapat menggunakan dompet digital dari satu perusahaan untuk membayar di pedagang yang menerima pembayaran dari perusahaan lain, semuanya berkat QRIS.

  • Dukungan bagi Inklusi Keuangan: QRIS juga berkontribusi pada inklusi keuangan. Dalam banyak kasus, orang yang sebelumnya tidak memiliki akses ke rekening bank atau kartu kredit, sekarang dapat berpartisipasi dalam ekonomi digital. Mereka dapat membayar tagihan, melakukan pembelian, dan mengakses berbagai layanan keuangan dengan mudah melalui QRIS.

Dalam pandemi global beberapa tahun lalu (hingga sekarang), QRIS juga telah membantu mengurangi kontak fisik, menjadikannya lebih aman dan higienis selama bertransaksi. Inilah mengapa QRIS adalah elemen penting dalam perkembangan dunia pembayaran digital dan transformasi cara kita bertransaksi. Dengan QRIS, semuanya menjadi lebih sederhana, lebih terhubung, dan lebih inklusif.

Cara Membaca QRIS

Sekarang kita memasuki bagian yang paling ingin saya jelaskan. Jadi, ketika kita melakukan scan ke sebuah QRIS, bagaimana cara aplikasi kita mengetahui tujuan merchantnya? Apa saja informasi yang diterima oleh aplikasi kita dari QR tersebut? Dan, apa yang sebenarnya ada dibalik kode QR tersebut?

Apa Isi Dari QRIS?

Mari kita lakukan scan pada salah satu QRIS. Disini saya akan menggunakan QRIS pribadi saya yang di buat oleh DANA QRIS dan melakukan scan menggunakan website dari Google.

Dan hasilnya adalah seperti berikut:

00020101021126570011ID.DANA.WWW011893600915305146913802090514691380303UMI51440014ID.CO.QRIS.WWW0215ID10200384380620303UMI5204737253033605802ID5910Zera Store6015Kota Balikpapan6105761166304C52B

Jenis teks apa itu? Yap, benar. Hanya sebuah plain text, atau teks biasa. Namun sebenarnya, itu merupakan sebuah data sistem pembayaran yang dibungkus kedalam QR dengan format standar QR EMVCo.

Bagaimana cara membacanya?

Cara membaca teks tersebut sebenarnya tidaklah sulit. Teks tersebut merupakan payload atau data-data yang memiliki pengertian tertentu. Data tersebut memiliki format:

[kode][panjang_data][data]

Perlu diingat bahwa untuk tiap kode dan panjang_data adalah maksimal 2 digit. Kode dimulai dari 00 hingga 99. Namun untuk sekarang hanya digunakan hingga kode 64. Kode 65 bahkan masih berstatus RFU, atau Reserved for Future Use oleh EMVCo. Beberapa kali saya mencoba melakukan parse beberapa QRIS hanya sampai kode 63 saja.

Untuk panjang_data, perlu adanya penerapan zero padding untuk panjang data dibawah 10 agar tetap 2 digit.

Mari kita coba ambil satu data dari teks diatas menggunakan format dan peraturan diatas.

00 02 01

Kita mengetahui bahwa dua digit pertama yaitu 00 merupakan sebuah kode, dua digit selanjutnya yaitu 02 merupakan panjang data, dan 01 adalah isi utamanya.

Apabila kita coba memisahkan data-data dari kode diatas, hasilnya kurang lebih menjadi berikut:

000201

010211

26570011ID.DANA.WWW011893600915305146913802090514691380303UMI

51440014ID.CO.QRIS.WWW0215ID1020038438060303UMI

52047372

5303360

5802ID

5910Zera Store

6015Kota Balikpapan

610576116

6304C52B

Apa maksud dari tiap data tersebut?

Karena QRIS ini mengikuti standar QR EMVCo maka kode dari tiap data tersebut memiliki tujuan yang sama seperti yang dijelaskan di dokumen EMVCo.

000201 dengan kode 00 merupakan Payload Format Indicator alias versi format data QR. Berarti QR yang saya punya ini menggunakan versi 1.

Data berikutnya yaitu 010211. Kode 01 menunjukkan jenis QR tersebut. Untuk QR Statis, nilainya adalah 11 dan untuk dinamis adalah 12.

Dan begitu seterusnya. Namun ada catatan untuk beberapa kode.

Kode 02 - 51

Kode 02 hingga 51 merupakan informasi merchant. Sehingga didalamnya terdapat payload yang mengidentifikasi merchant tersebut.

Untuk QRIS umumnya menggunakan kode 26 hingga 51 karena mulai dari 02 hingga 25 digunakan oleh merek-merek besar seperti Visa, Mastercard, Discover, dll.

Kita ambil satu contoh data merchant dari kode diatas.

26570011ID.DANA.WWW011893600915305146913802090514691380303UMI

Dua angka awal, yaitu 26, mengidentifikasi bahwa data tersebut adalah informasi merchant dengan panjang data 57. Dan isi dari data tersebut adalah

0011ID.DANA.WWW011893600915305146913802090514691380303UMI

Bisa dilihat bahwa isi data merchant tersebut dapat kita pecah lagi menjadi

0011ID.DANA.WWW

0118936009153051469138

0209051469138

0303UMI

Kode 63

Di QRIS, ini merupakan kode terakhir. Kode ini merupakan checksum untuk keseluruhan data menggunakan algoritma CRC (Cyclic Redundancy Check) dengan polinomial 1021 (hex). Panjang dari data ini 4-digit. Sehingga apabila kita mendapatkan checksum 3-digit, kita perlu menambahkan nol didepannya.

Saat melakukan encode, kita perlu menambahkan kode dan panjangnya terlebih dahulu, yaitu 6403. Untuk QRIS saya, checksum-nya adalah C52B. Checksum tersebut dihasilkan dari melakukan encode data:

00020101021126570011ID.DANA.WWW011893600915305146913802090514691380303UMI51440014ID.CO.QRIS.WWW0215ID10200384380620303UMI5204737253033605802ID5910Zera Store6015Kota Balikpapan6105761166304

Sehingga kode checksum pasti akan berbeda setiap satu karakter yang kita ubah dalam QRIS kita.

Mungkin cukup segitu untuk penjelasan cara membaca QRIS disini. Selebihnya bisa mencari bacaan sendiri di Google, namun saya disini 2 referensi, yaitu dokumen EMVCo dan European Payment Council.

Saya juga menyiapkan sebuah website untuk membaca dan mengubah QRIS. Dapat digunakan untuk mempermudah dalam belajar memahami QRIS. Website dapat diakses di qris.farizrifqi.link.

Keamanan QRIS

Ketika menggunakan QRIS dalam transaksi keuangan, penting untuk memprioritaskan keamanan. Di sini, saya memberi beberapa hal penting untuk memastikan bahwa penggunaan QRIS aman dan terhindar dari potensi penipuan. Karena tempo hari terjadi beberapa kasus yang menyangkut QRIS ini.

Beberapa hal yang digunakan sebagai celah oleh penipu:

  • Merubah nama merchant

  • Merubah akun merchant (kode 02 - kode 51)

  • Mengganti keseluruhan QRIS

Untuk membuat QRIS sebenarnya telah melalui verifikasi identitas yang berlapis. Namun jaman sekarang, penipu kalau ingin menipu, ya pasti dilakukan, entah apapun itu risikonya.

Validasi Penjual dan Data Pada QRIS

Perlukah kita mengecek ini? Tentu. Pastikan penjual yang hendak kita bayar menggunakan QRIS tidak menggunakan nama merchant orang lain. Contoh, ditakutkan ada seseorang yang berniat menipu, mengaku dari sebuah kafe A. Dia menawarkan sebuah produk kepadamu secara personal. Untuk membuatmu percaya, tentu dia akan merubah nama merchant pada QRIS menjadi nama kafe A.

Untuk contoh tersebut, alangkah baiknya memvalidasi QRIS tersebut sesuai yang tercantum di sosial media kafe tersebut atau tidak. Jika tidak ada di sosial media, coba saja untuk kontak langsung.

Kesimpulan

QRIS telah mengubah cara kita melakukan transaksi keuangan, membawa kemudahan, interoperabilitas, dan inklusi keuangan. Namun, tidak adanya enkripsi yang lebih aman membuat data didalam QRIS dapat diubah dan menjadi celah bagi orang-orang jahat. Itulah pentingnya untuk tetap memahami isi dari QRIS guna menghindari modifikasi data yang tidak seharusnya dan mengarah ke mencurigakan.