2

I am faced with the task of sending ISO 8583 Rev 93 messages and am using openiso8583.net. The company that is consuming my messages gave message samples and I am unclear about the following Field attributes:

Special Characters Alphabetic & Numeric Characters Alphabetic & Special Characters Number & Special Characters Alphabetic, Numeric, & Special Characters

Here is the example:

Signon Reply
0810822000000200000004000000000000000501130427000005F0F00001
NUM  |FLDNAME |FIELD DESCRIPTION              |LEN |T|FIELD VALUE
-----|--------|-------------------------------|----|-|--------------------------
N/A  |MSGTYPE |MESSAGE TYPE                   |F2  |H|0810`
N/A  |BITMAP1 |FIRST BITMAP                   |B8  |H|8220000002000000`
1    |BITMAP2 |SECOND BITMAP                  |B8  |H|0400000000000000`
7    |MISDTMDT|TRANSMISSION DATE AND TIME     |F5  |H|0501130427`
11   |MISDSTAN|SYSTEM TRACE AUDIT NUMBER      |F3  |H|000005`
39   |MISDRSPC|RESPONSE CODE                  |F2  |C|00`      <------?
70   |MISDNMIC|NETWORK MANAGEMENT INFO CODE   |F2  |H|0001`

First, take a look at the message bytes: 0810822000000200000004000000000000000501130427000005*F0F0*0001

My question is how the two bytes { 0xF0, 0xF0 } translates to "00". If the company was sending ASCII, I would expect "00" to be { 0x30, 0x30 }. BCD is used for Numeric values but I can't seem to figure out how character values are being encoded.

Here is the description for field 39:

039:
Network Response Code

Attributes: 
an 2*

Description:
A field that indicates the result of a previous related request. It will indicate
approval or reason for rejection if not approved. It is also used to indicate to the
device processor whether or not machines that are capable of retaining the customer's
card should do so.

Format:
In transaction replies, the response code must contain one of the following values
with their corresponding meanings. For debit/host-data-capture 0220 / 0420 messages, a
response code of '00' must be returned to indicate the transaction was approved. For
EBT transactions, please refer to section 4.8 EBT Transaction Receipt Requirements.

an2 means Alphabetic & Numeric Characters

Bitmap 1 is 64 bits

Bitmap 2 is 64 bits

Msg Type is 4 bytes

Field 7 is Numeric 4-bit BCD (Packed unsigned) 10, 5 bytes

Field 11 is Numeric 4-bit BCD (Packed unsigned) 6, 3 bytes

Field 39 is an 2, I assume 2 bytes

Field 70 is Numeric 4-bit BCD (Packed unsigned) 3, 2 bytes

Any clues or pointers would be greatly appreciated. Maybe someone knows of some encoding I clearly do not or can give a general explenation of how characters are encoded for ISO 8583 Rev 93. I do realize that each company can have different implementations though.

aelstonjones
  • 382
  • 2
  • 8
  • 25

1 Answers1

2

I hate answering my own questions quickly but...I just found the answer.

EBCDIC

I guess not being a programmer in the days of punch cards slowed me down on this one

0xF0 = '0'

aelstonjones
  • 382
  • 2
  • 8
  • 25
  • 1
    Look at modifying your message `Template` to format field 39 with an EBCDIC formatter. I haven't ever needed to do so, so you'll need to make your own formatters. Have a look at the code for `AsciiFormatter` and `FieldDescriptor.AsciiFixed` for the starting point. You may have some issues with variable length formatters as well. – John Oxley Jul 16 '12 at 13:36