• We are available from 16:00 to 20:00 GMT
  • Main office: Sabat Pebet 1234, Suite 1603, Montevideo, Uruguay
  • Call us +1.305.704.3620

ISO-8583 C lightweight library

Despite the fact that our Java version is more powerful and convenient for many users, we have received quite a lot of inquires for a lightweight C version (mainly for embedded devices).

So we've developed a little C library capable of packing and unpacking ISO-8583 messages. What you get is just three files written in ANSI C called "iso8583.c", "iso8583.h" and "demo.c" with basically the following functions:

void isomsg_init   (isomsg *m);
int  isomsg_pack   (isomsg *m, iso_packager *p, void *packbuf);
int  isomsg_unpack (isomsg *m, iso_packager *p, void *packbuf, int len);
void isomsg_dump   (FILE *fp, isomsg *m);
void isomsg_free   (isomsg *m);
        

Here is a sample demo.c:

int main (int argc, char **argv) {
    int len;
    isomsg m, r;
    char buf[1024];

    isomsg_init (&m);
    m.fld[0]  = "0800";
    m.fld[2]  = "454000000000003";
    m.fld[3]  = "000000";
    m.fld[28] = "C1200";
    m.fld[11] = "000001";
    m.fld[34] = "12345";
    m.fld[41] = "12345678";
    m.fld[70] = "301";

    isomsg_dump (stdout, &m);
    len = isomsg_pack (&m, iso87packager, buf);
    dumpbuf (stdout, buf, len);
    len = isomsg_unpack (&r, iso87packager, buf, len);

    isomsg_dump (stdout, &r);
    isomsg_free (&r);

    return 0;
}
        

and here is the output:

<isomsg>
  <field id="0" value="0800"/>
  <field id="2" value="454000000000003"/>
  <field id="3" value="000000"/>
  <field id="11" value="000001"/>
  <field id="28" value="C1200"/>
  <field id="34" value="12345"/>
  <field id="41" value="12345678"/>
  <field id="70" value="301"/>
</isomsg>
<dump length="54"/>
  08 00 E0 20 00 10 40 80 00 00 04 00 00 00 00 00
  00 00 15 45 40 00 00 00 00 00 30 00 00 00 00 00
  01 43 00 00 12 00 05 31 32 33 34 35 31 32 33 34
  35 36 37 38 03 01
</dump>
<isomsg>
  <field id="0" value="0800"/>
  <field id="2" value="454000000000003"/>
  <field id="3" value="000000"/>
  <field id="11" value="000001"/>
  <field id="28" value="C00001200"/>
  <field id="34" value="12345"/>
  <field id="41" value="12345678"/>
  <field id="70" value="301"/>
</isomsg>
        

So the point is that our C code is just able to pack and unpack ISO-8583 messages, you don't get all the bells and whistles offered by jPOS, the open source version.

We want to make sure you understand that what you'll get is just three files (iso8583.c, iso8583.h and demo.c). That's quite little code, compared to jPOS, but if you want to deal with ISO-8583 messages from C language we guess that's all you need.

Product Price
High performance ISO-8583 lightweight library USD 1250
Initial setup e-mail based assistance free
10-hour support pack (covers up to one year) USD 1.000
Contact us