ISO 8583 EBCDIC Field 55 Implementation

793 views
Skip to first unread message

Tejaswini Belekar

unread,
Mar 7, 2018, 9:45:33 AM3/7/18
to jPOS Users


Hello There,

I am trying to prepare request for Amex with chip data, i.e., populating field 55 of ISO 8583 (EBCDIC format) request message. JPOS library version used is 2.0.2.

Expected Hex representation of field 55 of ISO request message is as below
F0F4F5C1C7D5E20001A83AAD88B56F55AF06020103A40002

i.e., 
3 bytes Variable Length Indicator - F0F4F5
6 bytes Header - C1C7D5E20001
Subfields - 1: A83AAD88B56F55AF, 2: 06020103A40002

I am trying to prepare field 55 using a sub XML as below

<isopackager emitBitmap="false" headerLength="6">
<isofield id="1" length="16" name="APPLICATION CRYPTOGRAM (AC)" class="org.jpos.iso.IFB_BINARY" />
<isofield id="2" length="64" name="ISSUER APPLICATION DATA (IAD)" class="org.jpos.iso.IFB_LLBINARY" />
</isopackager>

and parent XML as

 <isopackager>
  <isofield
      id="0"
      length="4"
      name="MESSAGE TYPE INDICATOR"
      pad="true"
      class="org.jpos.iso.IFE_NUMERIC"/>
  <isofield
      id="1"
      length="16"
      name="BIT MAP"
      class="org.jpos.iso.IFB_BITMAP"/>
  <isofield
      id="55"
      length="255"
      name="INTEGRATED CARD CIRCUIT SYSTEM RELATED DATA"
      class="org.jpos.iso.IFE_LLLCHAR"/>
  </isopackager>


Java code for packing request message is as follows

GenericPackager p = new GenericPackager("ICCDataIsoEBCDICProtocol.xml");

p.setHeaderLength(8);
ISOMsg df55 = new ISOMsg(55);
df55.setHeader("AGNS0001".getBytes());
df55.setPackager(p);
df55.set(new ISOField(1, "FEA7844EDDA049E8"));
df55.set(new ISOField(2, "0110A04009248000000000000000000000FF"));


GenericPackager p = new GenericPackager("IsoEBCDICProtocol.xml");
ISOMsg isoReq = new ISOMsg();

isoReq.setPackager(p);
isoReq.setMTI("1100");
isoReq.set(55, df55.pack());

isoReq.pack();

On packing iso message using above code, request message prepared is 
F1F1F0F00000000000000200006141474E53303030314645413738343445444441303439453836303131304130343030393234383030303030303030303030303030303030303030304646

Which is far from expected format.

I have tried with different combinations of Data Types for isofield 55 like IFE_LLNUM, IF_CHAR, IFB_LLLBINARY but no luck. Every time it gives a different format.

Can anyone please help on above.

Alejandro Revilla

unread,
Mar 7, 2018, 4:08:58 PM3/7/18
to jPOS Users
If you have a packager that already takes care of field 55's subfields, then I suggest you use IFB_LLLBINARY in your outer field 55 definition.

But perhaps you can do everything in one shot, using an isosubfieldpackager.

In your spec, when you say:

i.e., 
3 bytes Variable Length Indicator - F0F4F5
6 bytes Header - C1C7D5E20001
Subfields - 1: A83AAD88B56F55AF, 2: 06020103A40002

It is not clear to me if the first 3 bytes are field 55's length, or another length indicator of your field 55's payload.


--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+unsubscribe@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/70856978-3913-4848-b8b8-737d4cec0c71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Andy Orrock

unread,
Mar 7, 2018, 4:24:51 PM3/7/18
to jpos-...@googlegroups.com
I have a working AMEX implementation in production

  <isofield
      id="55"
      length="255"
      name="INTEGRATED CARD CIRCUIT SYSTEM RELATED DATA"
      class="org.jpos.iso.IFE_LLLBINARY"/>

We handle it opaquely like this & deal with the split in code.

(yes, AMEX's EMV implementation is odd)

--------
Andy

Vinoth Kanna

unread,
Mar 7, 2018, 10:00:17 PM3/7/18
to jPOS Users
hum true, some Amex implementations do have extra elements packed in the message 

I used to use TLVMsg () , TLVList();  classes to implement custom editor for  such implementations. 

doing a search on this forum good get most help. 
<isofield
id="55"
length="999"
name=" INTEGRATED CARD CIRCUIT SYSTEM RELATED DATA "
class="org.jpos.iso.IFE_LLLBINARY"/>


For more options, visit https://groups.google.com/d/optout.



--
Best Regards
Vinoth/Vidu/

Andy Orrock

unread,
Mar 7, 2018, 10:28:52 PM3/7/18
to jpos-...@googlegroups.com
Yeah!  Who was that guy who wrote about AMEX's cherry-picking ways?

--------
Andy

Priya Mukundan

unread,
Jan 25, 2021, 4:52:10 PM1/25/21
to jPOS Users
Andy we are having trouble with Field  60.  we need to specify only the Sub Field 7 and all the header.  Do you have an working sample that you can share


--------
Andy



To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.

To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/70856978-3913-4848-b8b8-737d4cec0c71%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.

To post to this group, send email to jpos-...@googlegroups.com.



--
Best Regards
Vinoth/Vidu/

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.

To post to this group, send email to jpos-...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages