Tuesday, February 5, 2008

ISO 8583 is a bit..

It appeared complex, but is simple to tame with appropriate tools. ISO 8583 is a financial messaging standard mostly used to talk to financial switches.

At a very basic level it specifies:
  • hundreds of fields relevant to financial messaging
  • format of each field
  • a bitmap based mechanism to indicate the set of fields being exchanged
It is also important to understand what it DOES NOT specify. It does not specify the exact fields to be sent for any particular action. It depends on the institution. Therefore to integrate with a financial institution, you need the ISO 8583 message specification specific to the institution.

I would recommend the following to anyone who is starting to dabble to ISO 8583:
As first steps, go through the Wikipedia article to get an overview of ISO 8583. Glance through the FDR specifications to get a feel of how message formats are specified. I found the illustrations in the specification useful to understand the message structure.

Then build and run the j8583 client and server samples. Play around with the sample configuration file by adding your own fields to create your own message. The sample configuration file has five sections -
  • Section that specifies the headers
  • Section that specifies the fields and its values that the client would send
  • Section that specifies the field values that the server would send. The server would copy the values from client request if not overridden here.
  • Section that specifies all the fields and their formats that the server may expect in the request
  • Section that specifies all the fields and their formats that the server may need to send in the response

Other examples of financial messaging:
  • Visa BASE 1 is a ISO 8583 based messaging meant only for the authorization step. After authorization, clearing and settlement in case of Visa is done through Visa BASE 2 messaging which is NOT ISO 8583. Visa BASE 2 is a batch oriented mechanism. By the way, BASE stands for "Bank of America Systems Engineering". Visa was earlier "Bank America Card". History of Visa makes interesting reading!
  • XMLPay by Verisign is a XML based protocol for financial transactions. I have not been able to get the specification document though. The current Verisign site also doesn't talk about it much.

The next tough nut to crack would be jPOS. More on that later.


Unknown said...

I am in need of some help on a ISO-8583 project. I am looking for paid help. Its actually a simple project of taking an ISO-8583 message and converting it XML and then back to ISO-8583.

How can I contact you?>

Rist said...

I'm in need of an advice. We developed an authorization server and now we need to convert ISO8583 messages into Base 2 and vice versa. Please tell me if you know of any algorithm or document that describes this in detail. My email is alexandru.irimiea@gmail.com. Any help is appreciated!
Thank you!

Anonymous said...

Did you finally post about jPOS?
It is a commercial product, isnt it!

Tanmay said...

jPOS has a community edition project that is hosted at sourceforge and sources are available from sourceforge svn repository here: http://jpos.svn.sourceforge.net/viewvc/jpos/.

But that was actually not enough for me to start using jPOS. I needed some documentation; the programming guide was (sadly but understandably) not open source. I got it from http://www.jpos.org/products ($50).

I did get to play around with it a bit, but not enough to write anything substantial.

jPOS also has a Professional edition which is licensed (http://www.jpos.org/products/pep), but I never went that far.