Hide last authors
Kristian Lingsom 4.1 1 (% class="WordSection1" %)
2 (((
Kristian Lingsom 19.1 3 = Overview =
Kristian Lingsom 5.2 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
Kristian Lingsom 4.1 12
Kristian Lingsom 19.1 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
Kristian Lingsom 20.1 18 == Supported massage types ==
Kristian Lingsom 19.1 19
Kristian Lingsom 4.1 20
Kristian Lingsom 21.1 21 |=Message Type|=Reference
Kristian Lingsom 23.1 22 |1100/1110|[[AUTHORISATION REQUEST>>doc:AUTHORISATION REQUEST 1100/1110]]
Kristian Lingsom 23.2 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]]
Kristian Lingsom 4.1 27
Kristian Lingsom 23.3 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.
Kristian Lingsom 4.1 31
Kristian Lingsom 19.1 32 == Message layout ==
33
Kristian Lingsom 16.1 34 This section covers message types and fields supported by PayEx
Kristian Lingsom 4.1 35
Kristian Lingsom 17.2 36
Kristian Lingsom 16.1 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
Kristian Lingsom 17.2 43 )))
Kristian Lingsom 4.1 44
Kristian Lingsom 17.2 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
Kristian Lingsom 24.2 82 == Message protocol ==
Kristian Lingsom 17.2 83
Kristian Lingsom 24.2 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:
Kristian Lingsom 17.2 99
Kristian Lingsom 24.2 100
Kristian Lingsom 24.3 101 |=Length|=(((
102 Message ID
103 )))|=Bitmap
Kristian Lingsom 24.2 104 |=0x30 0x30 0x31 0x32|=0x30 0x33 0x30 0x30|=0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
105
Kristian Lingsom 24.3 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
Kristian Lingsom 25.1 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
Kristian Lingsom 26.1 135
136
137 == Message field details ==
138
139
140 **P-2 PAN**
141
142 Personal Account Number, identifies the card.Only mandatory for Manual PAN transactions (replacement for Track2Data P35)
143
144 **P-3 PROCESSING CODE**
145
146 Code used to describe the effect of a transaction on the customer account and the accounts affected. Fixed 00000000 : Goods and services
147
148 **P-4 AMOUNT, TRANSACTION**
149
150 The amount is a numeric value, expressed without a decimal separator. Where a minor unit of currency applies, the relevant minor unit data element indicates the number of decimal places in the relevant amount. Example : 1 kr = 100
151
152 **P-7 DATE AND TIME, TRANSMISSION**
153
154 Date and time of message transmission from the third party host.
155
156 **P-11 SYSTEM TRACE AUDIT NUMBER**
157
158 Number assigned by the third party host to assist in identifying a transaction uniquely. Range 000001 till 999999. Every message must have a new STAN, repeats use the same STAN as the original message.
159 **P-12 DATE AND TIME, LOCAL TRANSACTION**
160
161 Date and time of the transaction when performed on the POS.
162
163 **P-14 DATE EXPIRY**
164
165 Month and year of card expiry. Only mandatory for a manual PAN transaction
166
167 **P-22 POINT OF SERVICE DATA CODE**
168
169 A series of codes intended to identify terminal capability, terminal environment and presentation security data.
170
171 |=Point of service date code|=Description
172 |POS 1: Card data input capabilities|2: magnetic stripe read A: RFID
173 B: Magnetic stripe reader and key entry
174 C: Magnetic stripe reader, ICC and key entry
175 D: Magnetic stripe reader and ICC
176 |Pos 2: Cardholder authentication capability|1: PIN
177 Y: Signature,plaintext/enciphered PIN offline and ‘no cvm’ capable, enciphered pin online
178 |Pos 3: Card capture capability|0:None
179 T: None and SDA/DDA/CDA capable
180 |Pos 4: Operating environment|(((
181 1: On premises of card acceptor, attended
182 2: On premises of card acceptor, unattended
183 )))
184 |Pos 5: Cardholder present|0: Cardholder present
185 |Pos 6: Card present|1: Card present
186 |Pos 7: Card data input mode|2: Magnetic stripe read
187 3: Bar code
188 5: ICC
189 6: Key entered A: RFID
190 D: Magnetic stripe read following failed chip card read
191 |Pos 8: Cardholder authentication method|0: Not authenticated
192 1: PIN
193 5: Manual signature verification
194 |Pos 9: Cardholder authentication entity|0: Not authenticated
195 1: ICC
196 2: Card acceptor device 3: Authorizing Agent
197 |Pos 10: Card data output capability|1: None
198 3: ICC
199 |Pos 11: Terminal output capability|2: Printing
200 4: Printing and display
201 |Pos 12: PIN capture capability|C: Twelve characters
202
203 **P-24 FUNCTION CODE**
204
205 |=Function code|=Description
206 |101|Original authorization, amount estimated used in 1100
207 |200|Original financial request/advice Used in 1200/1220/1221
208 |201|Previously approved authorisation, amount the same Used in 1220/1221
209 |202|Previously approved authorisation, amount differs Used in 1220/1221
210 |400|Full reversal Used in 1420/1421
211 |831|Echo test Used in 1820
212
213 **P-25 MESSAGE REASON CODE**
214
215 |=reason code |=Description
216 |1003|Card issuer unabailable
217 |1004|Terminal processed
218 |1508|On-line forced by terminal
219 |4000|Customer cancellation
220 |4020|Invalid response, no action taken
221 |4021|Timeout waiting for response
222 |4351|Cancellation - unmatched signature
223
224 **P-30 ORIGINAL AMOUNT**
225
226 The original amount data element is a constructed element of two parts with a total of 24 positions:
227 a) Original amount transaction, n 12;
228 b) Original amount reconciliation, n 12.
229 Absence of data shall be indicated by zeroes. These parts shall be used when attempting to perform a partial approval and shall contain the original amounts.
230
231 **P-32 ACQUIRING INSTITUTION IDENTIFICATION CODE**
232
233 ISO 3166 - numeric country code of country where the POS transaction took place.
234
235 |=Country|=ISO numeric country code
236 |Norway|
237 |Sweden|
238 |Danmark|
239 |Finland|
240
241 **P-33 FORWARDING INSTITUTION IDENTIFICATION CODE**
242
243 10 digit code identifying the 3rd patry host. Each 3rd party integrated with PayEx will be assigned a unique code that they are to use in all messages where P-33 is specified.
244
245
246 **P-35 TRACK 2 DATA**
247
248 The information encoded on track 2 of the magnetic stripe as defined in ISO7813, excluding beginning and ending sentinels and longitudinal redundancy check characters as defined therein.
249
250 Example: 123456789012345=00112233
251
252
253 **P-38 APPROVAL CODE**
254
255 Code assigned by the authorising institution indicating approval.
256
257
258 **P-39 ACTION CODE**
259
260 The following action codes are supported by OASE. Every action code not present in this table should be considered as declined.