Sunday, September 7, 2014

How to parse DE55

DE 55, also called Field 55, in ISO-8583 is Integrated Chip Data; so, it's easy to deduce that the EMV tags of an online transaction should be put in DE 55 when creating the corresponding ISO-8583 financial transaction message. But how?

Well, firstly, one needs to know that EMV tags are BER-TLV encoded in Field 55. Secondly, once you know the encoding itself, it's just a matter of putting all tags together one after another and you get your DE 55---no delimiters and no meta information; it's as simple as that. The only extra stuff that you might need will be the length/ encoding required by the ISO-8583 variant you are implementing. For example, if DE 55 is an LLVAR field, you'll need to add the overall length of the EMV data as LL in DE 55 before putting in all the EMV data.

Below is an example of DE 55 in an ISO-8583 message.

01495F2A0201245F34010182021C008407A0000000031010950580000000009A031102249B0268009C01009F02060000000000009F03060000000000009F0607A00000000310109F0802008C9F0902008C9F100706010A039000009F1A0201249F2608423158936ED6C38F9F2701809F3303E0B0C89F34034103029F3501229F360200019F3704ACAC66E89F5800DF0100DF0200DF0400

Here, 0149 is the LL-part of the LLVAR field, which indicates that the data is 149 bytes (or 298 hex characters), starting from 5F and ending at 00. You can copy this data, excluding the starting 0149, into EMV Lab's TLV Utilities and get this decoding by just a click of the button:

Tag Value
5F2A 0124
5F34 01
...and so on

11 comments:

  1. How to get de55 from emv card?

    ReplyDelete
  2. Manoj, DE 55 is not created by the card as it's related to a transaction and not the card only. The tag is created by the terminal. DE55 has various elements within it; some of them are read from/ created by the card (when the terminal asks) and the rest are provided by the terminal based on the transaction being carried out. You might find the article on ARQC interesting. http://chipnpin.blogspot.co.uk/2012/01/what-is-arqc.html

    ReplyDelete
    Replies
    1. i have gone through all your blogs. Thank you so much for the information. I (we) are going implement EMV for our client , if possible, could you share more info about EMV process flows, a high level picture.

      u can share the info to vishgitt@gmail.com

      Thank you so so much Muhammad

      Delete
  3. Its necessary to supply DE55 eventhough its only for transaction is only for PINBLOCK generation?

    ReplyDelete
  4. If you could message me with any hints & tips on how you made your blog look this cool, I would be appreciative!
    opening a foreign bank account

    ReplyDelete
  5. Hi Ali, im using IFB_LLLBINARY in my packager xml for DE 55 for Visa. is it correct? the bianry value what im getting seems wrong. 0100034F01AA --> so when i decode it using the link given , 03 is considered as tag which is wrong. Please help me.

    ReplyDelete
  6. please can you help how and where to find DE 55 in an ISO-8583 message?

    thank you!

    ReplyDelete
  7. Please can someone explain what this mean "In Read Record, Tag 5A (PAN) = 6799978900000020024" and can I see this value of Tag 5A in the host (Simulator) log?

    ReplyDelete
  8. If please provide the mandatory emv tags for all transactions.

    ReplyDelete
    Replies
    1. https://developer-eu.elavon.com/docs/eisop/field-descriptions/field-55-icc-data

      Delete