ISO8583 Java Parser

Long time back, circa 2003, when I was running Osprey Software Technology, I had experimented with a lightweight ISO8583 parser. I had forgotten about it, but recently when I started working on Mobile Payment and Financial Inclusion convergence, I hunted the source code out of my archives and put some XML wrappers around it.  

The advantage of this bolted on XML approach is that, it can be used in client side, like Point of Sales (PoS) devices, without the XML parsing overheads and in server side, where XML parsing is not an issue, the messages can be wrapped and un-wrapped with XML for SOA (Service Oriented Architecture) support.

For ISO8583 messaging format, refer the Wiki site here.  And, for Mobile Banking message mapping please refer to the MPFI pdf here.

NOTE: This is not the reference implementation, nor this is an authorized MPFI version. This code is being submitted for review to MPFI, and if approved after testing, The Reference Implementation  source can be downloaded from MPFI site

The source code and binaries are provided on as-is where-is basis, with no explicit nor implicit warranties. The source has dual Open Source Licenses, GPL v2 and CDDL

Git Hub Project Files Contents

Getting Started

Design Overview

This Open Source pure Java ISO8583 parser has a lightweight design, so that it can be executed in both small footprint embedded devices as well as in server side, with SOA (Service Oriented Architecture) frameworks. It is designed as a library and can work with IOC (Inversion of Control) frameworks like Spring and Google Guice. 

Since its a parser library, it does not directly handle sockets, by design, so that it can be adapted to various socket frameworks like JCA, Service Bus adapters (like Apache Service Mix or Oracle Service Bus Adapter), Apache Camel Endpoint , NIO frameworks like Apache MINA or your own custom socket framework.   

The parser consists of just 11 classes and interfaces. However, there are some embedded helper classes and  7 test classes are provided to help you debug your messages and application. 

The parser has the top level package name :

Under this are three  sub packages : .dict , .parser and .xml . Of these the xml package is optional. 

Test programs can be found in a separate package called .test, and all the test classes have  main() method, so that they can be run from the command line.

The Dictionary Package

The Parser Implementation

The XML Package

The Test Package