Halo :)
Jadi ceritanya malam ini saya sedang mempelajari mengenai ISO 8583. Belajar dari pepatah, ikatlah ilmu dengan menuliskannya mengetiknya. Maka saya coba rangkum apa yang saya dapat dari hasil browsing.
Jadi ISO 8583 itu adalah ISO standard yang mendefinisikan format pesan dan standar komunikasi untuk transaksi elektronik menggunakan kartu pembayaran, sehingga sistem yang berbeda dapat bertukar transaksi request dan respon.
MTI | Bitmap | Data Element |
Message Type Indicator (MTI)
MTI merupakan 4 digit bilangan numerik yang mengklasifikasikan tipe pesan. Setiap digit merepresentasikan suatu informasi.
1. Digit pertama merepresentasikan versi ISO 8583
2. Digit kedua merepresentasikan Message class
3. Digit ketiga merepresentasikan Message function
4. Digit keempat merepresentasikan asal pesan
Untuk list lengkap semua arti digit dapat dilihat di wikipedia.
Nah disini saya akan mencontohkan arti dari MTI 2210
2xxx | Versi dari ISO 8583 (2003 version) |
x2xx | Message class (Financial message) |
xx1x | Message function (Request response) |
xxx0 | Asal pesan (Acquirer) |
Sehingga menurut wikipedia MTI 2210 berarti “Issue response to financial request” atau Issuer (Penerbit kartu) merespon permintaan dana.
Bitmaps
Bitmaps adalah field yang berisi informasi mengenai data yang terdapat dan tidak terdapat di data element. Bitmaps ini dapat mengandung paling tidak satu bitmap, bitmap dapat ditambah jika memang data element yang dikirim panjang.
Primary bitmap atau bitmap pertama, merepresentasikan bahwa terdapat data elemen 1 sampai 64. Bitmap kedua, merepresentasikan bahwa terdapat data elemen dari 65 sampai 128. Dan seterusnya.
Bitmap dapat dikirim sebagai 8 bytes binary atau sebagai 16 hexadicimal character.
Contohnya: Bitmap B220000000100000. Jika kita convert ke binary maka kita akan mendapatkan sebagai berikut
1011001000100000000000000000000000000000000100000000000000000000
Dapat dilihat dari repesentasi binary, data elemen di pesan adalah 1, 3, 4, 7, 11,44.
Bit pertama disini mempunyai arti khusus, jika bit pertama adalah 1 maka artinya ada bitmap tambahan.
Sehingga sebenarnya bitmap yang lengkap adalah B2200000001000000000000000800000 dan jika kita convert ke binary menghasilkan 10110010001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000100000000000000000000000
dari bitmap dapat kita lihat data elemen yang terdapat di pesan adalah 3,4,7,11,44,105
Data Element
Data elemen ini adalah field yang membawa data transaksi. Ia mengandung informasi mengenai transaksi (nomor nasabah, jumlah, tipe transaksi, dll).
Setiap data elemen memiliki formatnya, atribut dan panjang.
Setiap nomor data elemen memiliki tujuan masing-masing. List full dapat dilihat dari wikipedia.
Kita ambil contoh dari bitmap yang telah kita hitung sebelumnya.
- #3 – Processing code (Type: n 6 atau numeric 6 )
- #4 – Amount, transaction (Type : n 12)
- #7 – Transmission date and time (Type : n 10)
- #11 – System trace and audit number (Type : n 6)
- #44 – Additional response data (Type: an ..25)
- #105 – Reserved for ISO use (Type: ans …999)
Contohnya kita akan mengirimkan pesan berikut:
- DE #3 : 201409
- DE #4 : 250000
- DE #7 : 2209142300
- DE #11 : 123456
- DE #44 : A5DFGR
- DE #105 : ABCDEFGHIJ 1234567890
Berdasarkan tipe data maka setiap value akan di format:
- a : alpha
- n : nilai numerik
- s : special character
- x (no dot) : panjang x (fixed)
- .x : maksimal panjang x (dengan 1 digit pertama sebagai info panjang)
- ..x : maksimal panjang x (dengan 2 digit pertama sebagai info panjang)
- …x : maksimal panjang x (dengan 3 digit pertama sebagai info panjang)
Maka akan dihasilkan
DE | Type | Value | Result | Note |
#3 | n 6 | 201409 | 201234 | Numeric – fixed length : 6 |
#4 | n 12 | 250000 | 000000250000 | Numeric – fixed length : 12 |
#7 | n 10 | 2209142300 | 2209142300 | Numerix – fixed length : 10 |
#11 | n 6 | 123456 | 123456 | Numeric – fixed length : 6 |
#44 | an ..25 | A5DFGR | 06A5DFGR | Alphanumeric – panjang max 25 dengan dua digit di depan sebagai info panjang |
$105 | ans …229 | ABCDEFGHIJ 1234567890 | 021ABCDEFGHIJ 1234567890 | Alphanumeric special – dengan panjang max 229 dan dengan 3 digit di depan sabagai info panjang |
ISO Message
Sehingga dari contoh di atas ISO message akan seperti
2210 | B2200000001000000000000000800000 | 201234000000250000220914230012345606A5DFGR021ABCDEFGHIJ 1234567890 |
Ok, sampai disini dahulu. Semoga tulisan ini dapat membantu saya untuk mengingat ilmu ISO 8583 dan semoga ada pengunjung yang mungkin terbantu dengan adanya tulisan ini. Jikalau masih ada kesalahan dalam tulisan ini, jangan ragu untuk meninggalkan komentar.
Big thanks to Jimmod’s Blog for excellent example.