Asyik Bermain Kode QRIS

Sandi Fajariadi
4 min readMay 16, 2020

--

QRIS lagi, QRIS lagi. Ada apa sih dengan QRIS? Kenapa harus tahu QRIS? Kok yang ikutan di QRIS makin banyak saja sih, bagaimana nanti pas scan gambar QRIS nya, bingung ga tuh aplikasinya?

Nah, kita coba telaah isi jeroan gambar QRIS nya, jadi setidaknya tahu apa yang terjadi waktu kita beli kopi dan bayar pakai QRIS, tidak sekedar jadi gambar di gallery saja.

Sebenarnya kalau kamu scan gambar QRIS itu dengan scanner bawaan HP kamu atau menggunakan scanner camera yang generik, maka akan terlihat isi data dari gambar QRIS tersebut secara jelas.

Contoh suatu gambar QRIS dengan data hasil scan:

00020101021226640013COM.MYWEB.WWW01181234567890123456780214123456789012340303UKE5405100005912QRIS WANTUNO6013Jakarta Pusat6304XXXX

(Contoh sederhana dari gambar QRIS untuk memudahkan penjelasan, data QRIS asli memiliki konten yang lebih panjang)

Yes, isi data hanya berupa Plain Text, dengan format tertentu dan kode tertentu, tapi secara kasat mata akan terlihat beberapa bagian yang bisa dimengerti langsung. Tidak ada data yang di enkripsi atau di sembunyikan pada image QRIS. Data apa yang didapat pada saat di scan, data itulah yang membentuk gambar QRIS yang kita lihat.

Apa saja data yang ada pada gambar QRIS di atas? Mari kita jelajahi satu persatu.

Cara membacanya ada tekniknya dan sebenarnya sederhana. Format QRIS mengikuti standar QR nya EMV Co. Di 2 digit pertama menandakan Data Object, di 2 digit kedua menandakan panjang dari value nya dan setelahnya adalah value dengan panjang sesuai definisi di 2 digit kedua.

2 digit pertama menandakan Data Object, di 2 digit kedua menandakan panjang dari value

Kode QRIS selalu diawali dengan Data Object 00 dan diakhiri dengan Data Object 63. Data Object 00 merupakan Payload Format Indicator, untuk menandakan versi dari format QRIS nya. Data Object 63 merupakan checksum dari keseluruhan kode QRIS minus 4 digit paling akhir yang merupakan hasil checksum.

Di awal terdapat 000201 artinya Data Object 00 dengan panjang value nya 2 digit dan isinya adalah 01, artinya versi yang digunakan adalah versi 1.

Setelahnya terdapat 010212 artinya Data Object 01 dengan panjang value nya 2 digit dan isinya adalah 12, artinya QRIS ini adalah tipe dinamis.

Nah yang berikutnya ini menarik, karena di dalam Data Object ini terdapat sub data. Data nya adalah 26640013COM.MYWEB.WWW01181234567890123456780214123456789012340303UKE. Jadi ini adalah Data Object 26 dengan panjang value nya 64. Tapi di dalamnya masih bisa kita pecah pecahin lagi. Kita ambil dulu 2664, dan sisanya adalah 0013COM.MYWEB.WWW01181234567890123456780214123456789012340303UKE. Kita bagi bagi lagi menjadi :

  • 0013COM.MYWEB.WWW
  • 0118123456789012345678
  • 021412345678901234
  • 0303UKE

Nah, lebih jelas bukan.

Untuk 0013COM.MYWEB.WWW artinya Sub Data 00 dengan panjang value 13, isinya adalah reverse domain dari Merchant pemilik gambar QRIS.

Untuk 0118123456789012345678 artinya Sub Data 01 dengan panjang value 18, isinya adalah nomor ID akun Merchant yang terdaftar secara global.

Untuk 021412345678901234 artinya Sub Data 02 dengan panjang value 14, isinya adalah Merchant ID yang terdaftar di Acquirer nya Merchant.

Untuk 0303UKE artinya Sub Data 03 dengan panjang value 3, isinya UKE itu menandakan Merchant ini bisnisnya Usaha Kecil.

Berikutnya sudah masuk ke Data Object berikutnya, yaitu 54. Datanya adalah 540510000 artinya Data Object 54 ini panjang valuenya 5 dan isinya 10000. Ini adalah nilai yang harus dibayar oleh user saat melakukan scan, yaitu ceban (10 ribu).

Next kita ketemu 5912QRIS WANTUNO, sama seperti sebelumnya, Data Object 59 panjang value nya 12 dan isinya QRIS WANTUNO. Ini adalah nama merchant pemilik gambar QRIS.

Berikutnya 6013Jakarta Pusat ini adalah Data Object untuk penjelasan kota tempat merchant berada.

Terakhir adalah checksum. Isi data nya adalah 6304XXXX. Ini adalah Data Obejct 63 penanda checksum, panjang value nya 4, dan hasil checksumnya adalah XXXX. Jadi hal pertama yang kita lakukan untuk mengecek kode QRIS adalah melihat apakah ada Data Obejct 00 dan 63, lalu hitung checksumnya apakah sesuai atau tidak (atau dibalik juga ga apa2).

Jadi hal pertama yang kita lakukan untuk mengecek kode QRIS adalah melihat apakah ada Data Obejct 00 dan 63, lalu hitung checksumnya apakah sesuai atau tidak (atau dibalik juga ga apa2)

Ok sobat ambyar, jadi begitu kira2 gambaran sederhana isi kode QRIS. Daripada pusing misah2in datanya sendiri, pakai aplikasi yang sudah jadi saja seperti QRIS wantuno, pokoknya kalau Want to Know more about QRIS just use QRIS wantuno 😁

--

--

Sandi Fajariadi

10+ years deep in payment systems, always curious about QRIS. Let's talk!