Wiki source code of Payment Service provider API ISO8583_2 ( IFSF) H2H description
Version 25.1 by Kristian Lingsom on 2017/10/16 14:28
1 | (% class="WordSection1" %) |
2 | ((( |
3 | = Overview = |
4 | |
5 | The purpose of the H2H PayEx link is to enable authorization and settlement of card transactions, where PayEx is end host for that card, or just an PSP. The third party host acts as a gateway in between payment terminals and PayEx. |
6 | |
7 | |
8 | [[image:pos server.png]] |
9 | |
10 | |
11 | |
12 | |
13 | The third party host can be a single or dual host system. |
14 | PayEx has a fully redundant system, with an active/active configuration. |
15 | The third party host(s) connect to PayEx loadbalanser |
16 | |
17 | |
18 | == Supported massage types == |
19 | |
20 | |
21 | |=Message Type|=Reference |
22 | |1100/1110|[[AUTHORISATION REQUEST>>doc:AUTHORISATION REQUEST 1100/1110]] |
23 | |1200/1210|[[FINANCIAL TRANSACTION REQUEST>>doc:.FINANCIAL TRANSACTION REQUEST 1200/1210.WebHome]] |
24 | |1220/1221/1230|[[FINANCIAL TRANSACTION ADVICE>>doc:FINANCIAL TRANSACTION ADVICE 1220/1221/1230]] |
25 | |1420/1421/1430|[[REVERSAL ADVICE>>doc:REVERSAL ADVICE 1420/1421/1430]] |
26 | |1820/1830|[[NETWORK MANAGEMENT>>doc:.NETWORK MANAGEMENT 1820/1830.WebHome]] |
27 | |
28 | * Message types not included in the table above are not supported. E-g reconciliation is not supported |
29 | Only the Financial transaction advice (1220), Reversal Advice (1420) use repeat messages. Repeats are to be sent according to xxxxxxx rules |
30 | * Advice can be declined by PayEx for technical reasons. In this case the third party host need to retry the advice until manual intervention or the advice has been accepted. It’s expected that the third party implement a retry delay (to-be-defined). After 6 retry attemps have failed manual intervention by third party and PayEx support must be initiated. |
31 | |
32 | == Message layout == |
33 | |
34 | This section covers message types and fields supported by PayEx |
35 | |
36 | |
37 | |=Presence|=Title|=Description |
38 | |C|Conditional|The data element’s presence depends on specific circumstances, witch are described either directly or by reference in the message content table. |
39 | |CE|Conditional echo|The response message must have the same data element if the data element was present in the original message |
40 | |M|Mandatory|Data element must be present in the specified message |
41 | |ME|Mandatory echo|The response message must have the same data element and value as sent in the original message request or advice message |
42 | |O|Optional|The data element may or may not be present in the message |
43 | ))) |
44 | |
45 | Optional fields may always be present in requests, even when not needed. In such case, they will be ignored. Requests received missing a mandatory field will be 904 - Format Error. |
46 | |
47 | The third party host must ignore unknown fields included in the response messages. |
48 | |
49 | When no usage notes are given in the field description, the field should be used as described in IFSF [1]. |
50 | |
51 | The “Format”-column can contain following info: |
52 | |
53 | * LL: Variable length field, max 99 bytes as data. The field contains 2 bytes holding the length of the data. Example: 303101 a one byte field with LL = 3031 and the data is 01. |
54 | * LLL: Variable length field, max 999 bytes as data. The field contains 3 bytes holding the length of the data. Example: 30303101 a one byte field with LLL = 303031 and the data is 01. |
55 | * Date/time field formats, YYMMDDhhmmss (or variations), where: |
56 | ** YY : Last 2 digits of the year, 00 through 99 |
57 | ** MM: Month, 01 through 12. |
58 | ** DD: Day, 01 through 31 |
59 | ** hh: Hour, 00 through 23 |
60 | ** mm: Minutes, 00 through 59 |
61 | ** ss: Seconds, 00 through 59 |
62 | |
63 | The “Type”-column can contain: |
64 | |
65 | * a : Alphabetic character [a..z,A..Z] |
66 | * n : Numeric BCD-digit. [0..9] |
67 | * ans: alphabetic, numeric and special characters |
68 | * an : alphabetic and numeric. |
69 | * s : Special characters. |
70 | * b : Binary |
71 | * p: pad character, space |
72 | * x: “C” for credit, “D” for debit and shall always be associated with a numerical amount data element. |
73 | |
74 | The “Size”-column can contain: |
75 | |
76 | * Variable length fields have a size that looks like “..nn”, where nn is the maximum number of characters or bytes. |
77 | * A fixed length field has “n” as size content, with n the number of characters or bytes. |
78 | |
79 | All fixed length “n” data elements are assumed to be right justified with leading zeroes. All other fixed length data elements are left justified with trailing spaces. In all “b” data elements, blocks of 8 bits are assumed to be left justified with trailing zeroes. |
80 | |
81 | |
82 | == Message protocol == |
83 | |
84 | All messages are transferred using TCP/IP sockets. |
85 | |
86 | The message will be encapsulated in a transmission frame as follows: |
87 | |
88 | * The first 4 digits contain the length of the message in ASCII (decimal value, most significant digit first). The length field includes all bytes from the first byte of the message ID up to the last byte of the last field. |
89 | * This 4-digit length field is immediately followed by the message ID, also in ASCII (decimal value, most significant digit first). |
90 | * An 8 byte message bitmap, which is a binary field (so not ASCII encoded). |
91 | * Message fields, which could be ASCII or binary encoded. The fields with format ‘n, ns, an, ans, anp or x’ are ASCII encoded, while the fields with format ‘b’ are binary encoded. The following conventions shall be applied to all data elements: |
92 | ** All fixed length numeric data element values shall be right justified with leading zeroes. |
93 | ** All fixed length data elements with alphabetic or special characters shall be left justified with trailing blanks. |
94 | ** All fixed length binary data elements shall be right justified with leading zeroes. |
95 | ** The position of a character or a bit in a data element shall be counted from the left beginning with one (1).(See also section 5.1 Attribute specification in [01]) |
96 | ** No trailer is included. |
97 | |
98 | Example: An imaginary message which consists only of a message ID “0300” and an empty bitmap (all zeros) will be transmitted as follows: |
99 | |
100 | |
101 | |=Length|=((( |
102 | Message ID |
103 | )))|=Bitmap |
104 | |=0x30 0x30 0x31 0x32|=0x30 0x33 0x30 0x30|=0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
105 | |
106 | Example: An 1820 message, without MAC, will be transmitted as follows: Message bytes (hex): |
107 | 303035303138323002300101000000003039313031353238343133383239313030393039313031353238343138333130353130303331 |
108 | |
109 | |
110 | |=Field|=Format|=Encoding|=Data|=Parsed |
111 | |Message Length|n|ASCII|30303530|0050 |
112 | |Massage ID|n|ASCII|31383230|1820 |
113 | |Bitmat|b|Binary|0230010100000000| |
114 | |7 - Date/Time|n|ASCII|30393130313532383431|0910152841 |
115 | |11 - STAN|n|ASCII|333832393130|382910 |
116 | |12 - Date/Time|n|ASCII|303930393130313532383431|090910152841 |
117 | |24 - Function code|n|ASCII|383331|831 |
118 | |32 - Acquiring institution identification code|n|ASCII|TODO eksempel|TODO eksempel |
119 | |
120 | The PayEx response timeout is set to XX seconds. If after xx+1 seconds, no response has been received, the third party host needs to take the appropriate action based on the message type. (E.g. send a reversal) |
121 | |
122 | The third party host has the possibility to perform offline stand-in, thought this needs to be agreed with the indididual card issuers. Otherwise the station might not be reimbursed. |
123 | |
124 | |
125 | == PIN Validation == |
126 | |
127 | PayEx perform online PIN validation on paye,ent cards where PayEx is the acquirer, on all other cartds PIN is validated by the third party acuirer. PayEx will not interpret P-22 Point-Of-Service code to determine if it needs to validate PIN or not on PayEx fuel cards, but 3rd patry aquirers might so it's good practice to use P-22 correctly. |
128 | |
129 | Fields required for PIN validation are: |
130 | |
131 | * P-48-14 – PIN encryption Methodology |
132 | * P-52 – PIN data |
133 | * P-53 – Security related information |
134 | |
135 |