Show last authors
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) connects through PayEx load balanser.
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 |1520/1521/1530|RECONCILIATION REQUEST (**Currently not supported)**
28
29 * Message types included in the table above are supported unless otherwise specified. E-g reconciliation is not currently supported.
30 Use links to different message types for details on specific messages.
31 Only the Financial transaction advice (1220), Reversal Advice (1420) use repeat messages. Repeats are to be sent according to xxxxxxx rules
32 * 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 attempts have failed manual intervention by third party and PayEx support must be initiated.
33
34 == Message layout ==
35
36 This section covers message types and fields supported by PayEx
37
38
39 |=Presence|=Title|=Description
40 |C|Conditional|The data element’s presence depends on specific circumstances, witch are described either directly or by reference in the message content table.
41 |CE|Conditional echo|The response message must have the same data element if the data element was present in the original message
42 |M|Mandatory|Data element must be present in the specified message
43 |ME|Mandatory echo|The response message must have the same data element and value as sent in the original message request or advice message
44 |O|Optional|The data element may or may not be present in the message
45 )))
46
47 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 get action code 904 - Format Error.
48
49 The third party host must ignore unknown fields included in the response messages.
50
51 When no usage notes are given in the field description, the field should be used as described in IFSF [1].
52
53 The “Format”-column can contain following info:
54
55 * 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.
56 * 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.
57 * Date/time field formats, YYMMDDhhmmss (or variations), where:
58 ** YY : Last 2 digits of the year, 00 through 99
59 ** MM: Month, 01 through 12.
60 ** DD: Day, 01 through 31
61 ** hh: Hour, 00 through 23
62 ** mm: Minutes, 00 through 59
63 ** ss: Seconds, 00 through 59
64
65 The “Type”-column can contain:
66
67 * a : Alphabetic character [a..z,A..Z]
68 * n : Numeric BCD-digit. [0..9]
69 * ans: alphabetic, numeric and special characters
70 * an : alphabetic and numeric.
71 * s : Special characters.
72 * b : Binary
73 * p: pad character, space
74 * x: “C” for credit, “D” for debit and shall always be associated with a numerical amount data element.
75
76 The “Size”-column can contain:
77
78 * Variable length fields have a size that looks like “..nn”, where nn is the maximum number of characters or bytes.
79 * A fixed length field has “n” as size content, with n the number of characters or bytes.
80
81 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.
82
83
84 == Message protocol ==
85
86 All messages are transferred using TCP/IP sockets.
87
88 The message will be encapsulated in a transmission frame as follows:
89
90 * 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.
91 * This 4-digit length field is immediately followed by the message ID, also in ASCII (decimal value, most significant digit first).
92 * An 8 byte message bitmap, which is a binary field (so not ASCII encoded).
93 * 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:
94 ** All fixed length numeric data element values shall be right justified with leading zeroes.
95 ** All fixed length data elements with alphabetic or special characters shall be left justified with trailing blanks.
96 ** All fixed length binary data elements shall be right justified with leading zeroes.
97 ** 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])
98 ** No trailer is included.
99
100 Example: An imaginary message which consists only of a message ID “0300” and an empty bitmap (all zeros) will be transmitted as follows:
101
102
103 |=Length|=(((
104 Message ID
105 )))|=Bitmap
106 |=0x30 0x30 0x31 0x32|=0x30 0x33 0x30 0x30|=0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
107
108 Example: An 1820 message, without MAC, will be transmitted as follows: Message bytes (hex):
109 303035303138323002300101000000003039313031353238343133383239313030393039313031353238343138333130353130303331
110
111
112 |=Field|=Format|=Encoding|=Data|=Parsed
113 |Message Length|n|ASCII|30303530|0050
114 |Massage ID|n|ASCII|31383230|1820
115 |Bitmap|b|Binary|0230010100000000|
116 |7 - Date/Time|n|ASCII|30393130313532383431|0910152841
117 |11 - STAN|n|ASCII|333832393130|382910
118 |12 - Date/Time|n|ASCII|303930393130313532383431|090910152841
119 |24 - Function code|n|ASCII|383331|831
120 |33 - Forwarding institution identification code|n|ASCII|(((
121 30323135
122 )))|15
123
124 The PayEx response timeout is set to 30 seconds. If after 30+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)
125
126 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.
127
128 == ==
129
130 == PIN Validation ==
131
132 PayEx perform online PIN validation on payment 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.
133
134 Fields required for PIN validation are:
135
136 * P-48-14 – PIN encryption Methodology
137 * P-52 – PIN data
138 * P-53 – Security related information
139
140 (% class="wikigeneratedid" id="H-1" %)
141 See security documentation for details.
142
143
144 == Security documentation ==
145
146 Here you can find details regarding the security aspects of this H2H integration.
147
148 __[[SECURITY SPECIFICATION>>doc:.PayEx IFSF H2H Security specification.WebHome]]__
149
150
151 == Message field details ==
152
153 **P-3 PROCESSING CODE**
154
155 Code used to describe the effect of a transaction on the customer account and the accounts affected. Currently fixed 00000000 : Goods and services
156
157
158 **P-4 AMOUNT, TRANSACTION**
159
160 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
161
162
163 **P-7 DATE AND TIME, TRANSMISSION**
164
165 Date and time of message transmission from the third party host.
166
167
168 **P-11 SYSTEM TRACE AUDIT NUMBER**
169
170 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.
171
172
173 **P-12 DATE AND TIME, LOCAL TRANSACTION**
174
175 Date and time of the transaction when performed on the POS.
176
177
178 **P-22 POINT OF SERVICE DATA CODE**
179
180 A series of codes intended to identify terminal capability, terminal environment and presentation security data.
181
182 |=Point of service date code|=Description
183 |POS 1: Card data input capabilities|2: magnetic stripe read A: RFID
184 B: Magnetic stripe reader and key entry
185 C: Magnetic stripe reader, ICC and key entry
186 D: Magnetic stripe reader and ICC
187 |Pos 2: Cardholder authentication capability|1: PIN
188 Y: Signature,plaintext/enciphered PIN offline and ‘no cvm’ capable, enciphered pin online
189 |Pos 3: Card capture capability|0:None
190 T: None and SDA/DDA/CDA capable
191 |Pos 4: Operating environment|(((
192 1: On premises of card acceptor, attended
193 2: On premises of card acceptor, unattended
194 )))
195 |Pos 5: Cardholder present|0: Cardholder present
196 |Pos 6: Card present|1: Card present
197 |Pos 7: Card data input mode|2: Magnetic stripe read
198 3: Bar code
199 5: ICC
200 6: Key entered A: RFID
201 D: Magnetic stripe read following failed chip card read
202 |Pos 8: Cardholder authentication method|0: Not authenticated
203 1: PIN
204 5: Manual signature verification
205 |Pos 9: Cardholder authentication entity|0: Not authenticated
206 1: ICC
207 2: Card acceptor device 3: Authorizing Agent
208 |Pos 10: Card data output capability|1: None
209 3: ICC
210 |Pos 11: Terminal output capability|2: Printing
211 4: Printing and display
212 |Pos 12: PIN capture capability|C: Twelve characters
213
214 **P-24 FUNCTION CODE**
215
216 |=Function code|=Description
217 |101|Original authorization, amount estimated used in 1100
218 |200|Original financial request/advice Used in 1200/1220/1221
219 |201|Previously approved authorisation, amount the same Used in 1220/1221
220 |202|Previously approved authorisation, amount differs Used in 1220/1221
221 |400|Full reversal Used in 1420/1421
222 |831|Echo test Used in 1820
223
224 **P-25 MESSAGE REASON CODE**
225
226 |=reason code |=Description
227 |1003|Card issuer unabailable
228 |1004|Terminal processed
229 |1508|On-line forced by terminal
230 |4000|Customer cancellation
231 |4020|Invalid response, no action taken
232 |4021|Timeout waiting for response
233 |4351|Cancellation - unmatched signature
234
235 **P-30 ORIGINAL AMOUNT**
236
237 The original amount data element is a constructed element of two parts with a total of 24 positions:
238 a) Original amount transaction, n 12;
239 b) Original amount reconciliation, n 12.
240 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.
241
242
243 **P-33 FORWARDING INSTITUTION IDENTIFICATION CODE**
244
245 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.
246
247
248 **P-38 APPROVAL CODE**
249
250 Code assigned by the authorising institution indicating approval.
251
252
253 **P-39 ACTION CODE**
254
255 See action code page for codes that can be returned by PayEx.
256
257
258 **P-41 Card acceptor terminal identification**
259 Needs to be unique per POS terminal at the merchant site. For Indoor terminals use the range 1-99 and for outdoor terminals 100-199. PayEx needs to be informed of how many terminals that are installed at the merchant site.
260
261
262 **P-42 Card acceptor identification code**
263
264 8 digit unique ID provided by PayEx for each merchant.
265
266
267 **P-43 Card acceptor name/location**
268
269 The name and location of the card acceptor.
270
271
272 **P-48 MESSAGE CONTROL DATA ELEMENTS**
273 Used for the control of messages between the POS and the FEP. These are present in field 48 as a variable content data element. It uses a standard bit map to identify the specific data elements present in field 48. The format is LLLVAR with a maximum length of 999. The 8 byte bit map is the first item (element 48-0) in the data element.
274
275
276 **P-48-4 BATCH/SEQUENCE NUMBER**
277
278 This field identifies the transactions associated with a particular settlement period. This number starts at one and increments with each Reconciliation.
279
280
281 **P-48-8 CUSTOMER DATA**
282
283 The customer data is any data entered by the customer or cashier as required by the authorizer to complete the transaction. Transactions requiring customer data may be related to fleet fuelling, cheque authorizations or any other type of retail store management functions. Up to sixteen separate entries are supported. Each entry consists of two elements, the type of customer data entered and the variable length value of the entered data. Successive entries are separated by a back-slash (\). (Note: the LVAR method is not used for these entries.) The entire data element has a maximum length of 250 bytes and is parsed as an LLLVAR field.
284
285 |=Element|=Name|=Attribute|=Description
286 |48-8-1|Number of customer data fields|n2|Count of customer data entries to follow.Note: this value must be from 1 to 16.
287 |48-8-2|Type of customer data|an 1|Identifies the type of customer data entered. (see P48-8-2)
288 |48-8-3|Value of customer data|ans...99|Data entered by customer orcashier.
289
290 **P-48-8-2 TYPE OF CUSTOMER DATA**
291
292 1 - Vehicle Number
293 3 - Driver ID
294 4 - Mileage
295 5 - Driver license number
296 B - Unit number/fleet ID
297 D - Customer verification code
298 G - Alphanumeric entered data
299
300 The information encoded on track 2 of the magnetic stripe as defined in ISO7813, excluding beginning and ending sentinels and longitudinal redundancy check characters.
301
302
303 **P-48-9 TRACK II OF VEHICLE CARD**
304
305
306 **P-48-14 PIN ENCRYPTION METHODOLOGY**
307
308 See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
309
310
311 **P-48-32 VAT PERCENTAGES**
312
313 List of VAT codes accompanied with their corresponding VAT percentage.
314
315 The purpose of this field is to link the VAT codes as used in field P-63 Product data, P-63-8 tax code, to actual VAT percentages. As the incoming link can be multi-country, and PayEx does not have product codes per VAT rate, the VAT rates need to be provided in every transaction.
316
317 Individual items are separated with a backslash character.
318 Only VAT codes used in the product data (P-63) need to be described in this array. Others will be ignored.
319
320
321 **P-48-37 VEHICLE IDENTIFICATION ENTRY MODE**
322 Only present when a vehicle number is available (P48-8). Defines how the vehicle number was entered:
323
324 0 - Manual entry
325 1- On the Card
326 2 - Automatic Licence Plate Recognition
327
328
329 **P-48-38 PUMP LINKED INDICATOR**
330
331 Indicating whether the fuel pump reading is is linked to the payment terminal:
332 0 – Unspecified
333 1 – Pump-linked
334 2 – Pump not linked
335
336
337 **P-48-39 DELIVERY NOTE NUMBER**
338 Number allocated by the terminal given to the customer as printed on the ticket.
339
340
341 **P-49 CURRENCY CODE , TRANSACTION**
342 All transactions are in local currency, as defined during system installation. Actual value is as defined by ISO 4217.
343
344
345 **P-52 PIN DATA**
346 ISO 9564-1 format 0 PIN block encrypted with PIN encryption key.
347
348 See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
349
350
351 **P-53 SECURITY RELATED CONTROL INFORMATION**
352
353 See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
354
355
356 **P-56 ORIGINAL DATA ELEMENTS**
357
358 Data elements of original transaction which contains the original “message identifier”, original “STAN” and original “date and time – local transaction”. This must be present if the message is preceded by an 1100 Authorisation Request, it can be omitted if the message is as a result of a store and forward transaction.
359 In Payment advice : Link to previous Authorisation dialog
360 In reversal advice : Link to previous Authorisation request or previous Payment request being reversed.
361
362
363 **P-62 PRODUCT SETS AND MESSAGE DATA**
364
365 This field contains allowed product sets and message data.
366
367 |=Number|=Name|=Format|=Attribute|=Description
368 |62| |n|3|LLLVAR length field. Sets the length of P-62 data
369 |62-1|Allowed products|ans|...99|LLVAR field, contains the products that are allowed
370 |62-2|Device text|n|1|For what device 62-3 is to be sent to
371 |62-3|Massage text|ans|...999|LLLVAR field. Display text
372
373 All subfields must be present when bit 62 is set. Field 62 shall not be sent if none of the three subfields need to be sent. If one of the subfields needs to be sent, all three subfields shall be sent.
374
375
376 **P-63 PRODUCT DATA**
377
378 This data element provides the detailed information on the products purchased or selected by the customer. The first two fields (63-1, 63-2) appear once per transaction. The next seven fields can be repeated up to 18 times.
379
380 Each product is represented by seven fields: Product Code, Unit of Measure, Quantity, Unit Price, Amount, Taxcode and Additional product code. The variable length fields and the succeeding entry are separated by a back-slash (\).
381 Unit price and amount may be negative or positive, but the sum of the amounts in the product data must equal the transaction amount.
382 The values of Quantity and Unit price may have a value that includes both integer and fractional values. The format of these fields consists of a single digit, which specifies the number of fractional digits following the integer, followed by the numeric value.
383 The value must be numeric. The number of fractional digits has a maximum of 4. The Amount field may have fractional digits. The number of fractional digits is specified by the currency code.
384
385 The list of sales items can contain a mixture of normal sales items and refund items. These are included in the online Host message as follows:
386
387
388 |=Number|=Format|=Field|=Description
389 |63|n 3|Product data|LLLVAR length field. Sets the length of P-63 data
390 |63-1|a 1|Service level|(((
391 S - Self-serve
392 F - Full serve
393 Space - Information not available
394 )))
395 |63-2|n 2|Number of products|Count of products (sale item) reported for this transaction.
396
397 Each Sales item consists of the following components:
398
399
400 |=Number|=Format|=Field|=Description
401 |63-3|n 3 |Product code|3-digit product code that defines the type of product sold
402 |63-4|a 1 |Unit of measure|Indicates the meaning of the Quantity field. ‘U’ Sold per Unit
403 ‘O’ Unit of Measurement undefined ‘L’ Sold per Litre.
404 |63-5|n 9|Quantity|Number of product units
405 | | |Separator|‘\’ To separate Quantity from Unit-Price
406 |63-6|sn 9|Unit price|Starts with a Minus sign when Unit price is negative. First digit is exponent. Typically 3 for fuels, and 2 for shop articles. Remaining digits are actual unit price
407 | | |Separator|‘\’ To separate Unit price from Amount
408 |63-7|sn 12|Amount|Starts with a minus sign in case Item amount is negative. 2 decimals are always implied.
409 | | |Separator|‘\’ To separate the Amount from the Vat Code
410 |63-8|an 1|Tax code|1 digit VAT code
411 |63-9|n 14|Additional Product code|Up to 14 digits article number as known in the POS
412 | | |Terminator |‘\’ To mark the end of this sales item
413
414 **P-64 MAC**
415
416 MAC is calculated/verified according to the “ANS X9.9 Option 1 (binary data) procedure using ISO 16609 CBC-mode Triple-DES”.
417
418 See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] for details.
419
420
421 **P-127 Encrypted data**
422
423 This field contains the encrypted track2 data. See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details on how to generate this field.
424
425