Senin, 22 September 2014

Belajar ISO 8583

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.