Hide last authors
Kristian Lingsom 4.1 1 (% class="WordSection1" %)
2 (((
Kristian Lingsom 19.1 3 = Overview =
Kristian Lingsom 5.2 4
Dani Alexander Berentzen 30.24 5 The H2H PayEx link enables authorization and capture of card transactions. Depending on the card, PayEx is either a PSP or the end host (card issuer). The third party host acts as a gateway between payment terminals and PayEx.
Kristian Lingsom 5.2 6
7
Cecilie Tyldum 35.1 8 [[image:architecture.png]]
Kristian Lingsom 5.2 9
10
Kristian Lingsom 19.1 11 The third party host can be a single or dual host system.
12 PayEx has a fully redundant system, with an active/active configuration.
Dani Alexander Berentzen 30.23 13 The third party host(s) connects to a load balancer at PayEx.
Kristian Lingsom 19.1 14
15
Pål-Eirik Askerød 35.3 16 == Test system ==
17
18 Our test system is reachable over internet.
19
20 Host: **pospaydirecttx.externaltest.payex.com**
21
22 TCP Port: **9046**
23
24 For production, secure connection are required. Contact PayEx for production setup.
25
Dani Alexander Berentzen 35.2 26 == Supported message types ==
Kristian Lingsom 19.1 27
Kristian Lingsom 4.1 28
Kristian Lingsom 21.1 29 |=Message Type|=Reference
Kristian Lingsom 23.1 30 |1100/1110|[[AUTHORISATION REQUEST>>doc:AUTHORISATION REQUEST 1100/1110]]
Kristian Lingsom 23.2 31 |1200/1210|[[FINANCIAL TRANSACTION REQUEST>>doc:.FINANCIAL TRANSACTION REQUEST 1200/1210.WebHome]]
32 |1220/1221/1230|[[FINANCIAL TRANSACTION ADVICE>>doc:FINANCIAL TRANSACTION ADVICE 1220/1221/1230]]
33 |1420/1421/1430|[[REVERSAL ADVICE>>doc:REVERSAL ADVICE 1420/1421/1430]]
34 |1820/1830|[[NETWORK MANAGEMENT>>doc:.NETWORK MANAGEMENT 1820/1830.WebHome]]
Pål-Eirik Askerød 30.3 35 |1520/1521/1530|RECONCILIATION REQUEST (**Currently not supported)**
Kristian Lingsom 4.1 36
Pål-Eirik Askerød 30.15 37 * Message types included in the table above are supported unless otherwise specified. E-g reconciliation is not currently supported.
38 Use links to different message types for details on specific messages.
Pål-Eirik Askerød 30.31 39 Only the Financial transaction advice (1220), Reversal Advice (1420) use repeat messages(1221 and 1421). Repeats are to be sent according to rules below.
40 * 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 with exponential wait period between retires. After 6 retry attempts have failed manual intervention by third party and PayEx support must be initiated.
Kristian Lingsom 4.1 41
Kristian Lingsom 19.1 42 == Message layout ==
43
Kristian Lingsom 16.1 44 This section covers message types and fields supported by PayEx
Kristian Lingsom 4.1 45
Kristian Lingsom 17.2 46
Kristian Lingsom 16.1 47 |=Presence|=Title|=Description
48 |C|Conditional|The data element’s presence depends on specific circumstances, witch are described either directly or by reference in the message content table.
49 |CE|Conditional echo|The response message must have the same data element if the data element was present in the original message
50 |M|Mandatory|Data element must be present in the specified message
51 |ME|Mandatory echo|The response message must have the same data element and value as sent in the original message request or advice message
52 |O|Optional|The data element may or may not be present in the message
Kristian Lingsom 17.2 53 )))
Kristian Lingsom 4.1 54
Pål-Eirik Askerød 30.15 55 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.
Kristian Lingsom 17.2 56
57 The third party host must ignore unknown fields included in the response messages.
58
59 When no usage notes are given in the field description, the field should be used as described in IFSF [1].
60
61 The “Format”-column can contain following info:
62
63 * 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.
64 * 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.
65 * Date/time field formats, YYMMDDhhmmss (or variations), where:
66 ** YY : Last 2 digits of the year, 00 through 99
67 ** MM: Month, 01 through 12.
68 ** DD: Day, 01 through 31
69 ** hh: Hour, 00 through 23
70 ** mm: Minutes, 00 through 59
71 ** ss: Seconds, 00 through 59
72
73 The “Type”-column can contain:
74
75 * a : Alphabetic character [a..z,A..Z]
76 * n : Numeric BCD-digit. [0..9]
77 * ans: alphabetic, numeric and special characters
78 * an : alphabetic and numeric.
79 * s : Special characters.
80 * b : Binary
81 * p: pad character, space
82 * x: “C” for credit, “D” for debit and shall always be associated with a numerical amount data element.
83
84 The “Size”-column can contain:
85
86 * Variable length fields have a size that looks like “..nn”, where nn is the maximum number of characters or bytes.
87 * A fixed length field has “n” as size content, with n the number of characters or bytes.
88
89 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.
90
91
Kristian Lingsom 24.2 92 == Message protocol ==
Kristian Lingsom 17.2 93
Kristian Lingsom 24.2 94 All messages are transferred using TCP/IP sockets.
95
96 The message will be encapsulated in a transmission frame as follows:
97
98 * 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.
99 * This 4-digit length field is immediately followed by the message ID, also in ASCII (decimal value, most significant digit first).
Dani Alexander Berentzen 30.26 100 * An 8 byte message bitmap, which is a binary field (not ASCII encoded).
Kristian Lingsom 24.2 101 * 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:
102 ** All fixed length numeric data element values shall be right justified with leading zeroes.
103 ** All fixed length data elements with alphabetic or special characters shall be left justified with trailing blanks.
104 ** All fixed length binary data elements shall be right justified with leading zeroes.
105 ** 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])
106 ** No trailer is included.
107
108 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 109
Kristian Lingsom 24.2 110
Kristian Lingsom 24.3 111 |=Length|=(((
112 Message ID
113 )))|=Bitmap
Kristian Lingsom 24.2 114 |=0x30 0x30 0x31 0x32|=0x30 0x33 0x30 0x30|=0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
115
Kristian Lingsom 24.3 116 Example: An 1820 message, without MAC, will be transmitted as follows: Message bytes (hex):
117 303035303138323002300101000000003039313031353238343133383239313030393039313031353238343138333130353130303331
118
119
120 |=Field|=Format|=Encoding|=Data|=Parsed
121 |Message Length|n|ASCII|30303530|0050
Dani Alexander Berentzen 30.26 122 |Message ID|n|ASCII|31383230|1820
Pål-Eirik Askerød 30.9 123 |Bitmap|b|Binary|0230010100000000|
Kristian Lingsom 24.3 124 |7 - Date/Time|n|ASCII|30393130313532383431|0910152841
125 |11 - STAN|n|ASCII|333832393130|382910
126 |12 - Date/Time|n|ASCII|303930393130313532383431|090910152841
127 |24 - Function code|n|ASCII|383331|831
Pål-Eirik Askerød 30.9 128 |33 - Forwarding institution identification code|n|ASCII|(((
129 30323135
130 )))|15
Kristian Lingsom 24.3 131
Pål-Eirik Askerød 30.19 132 The PayEx response timeout is set to 35 seconds. If after 35+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)
Kristian Lingsom 24.3 133
Dani Alexander Berentzen 30.27 134 The third party host has the possibility to perform offline stand-in, thought this needs to be agreed with the individual card issuers. Otherwise the merchant might not be reimbursed.
Kristian Lingsom 24.3 135
Pål-Eirik Askerød 30.31 136 == ==
Pål-Eirik Askerød 30.13 137
Kristian Lingsom 25.1 138 == PIN Validation ==
139
Pål-Eirik Askerød 29.2 140 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.
Kristian Lingsom 25.1 141
142 Fields required for PIN validation are:
143
144 * P-48-14 – PIN encryption Methodology
145 * P-52 – PIN data
146 * P-53 – Security related information
147
Kristian Lingsom 32.1 148 (% class="wikigeneratedid" id="H-1" %)
Pål-Eirik Askerød 30.16 149 See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] for details.
Pål-Eirik Askerød 30.13 150
Pål-Eirik Askerød 30.7 151 == Security documentation ==
152
Pål-Eirik Askerød 30.22 153 Here you can find details regarding the security elements of this H2H integration.
Pål-Eirik Askerød 30.7 154
Pål-Eirik Askerød 30.13 155 __[[SECURITY SPECIFICATION>>doc:.PayEx IFSF H2H Security specification.WebHome]]__
Pål-Eirik Askerød 30.12 156
Pål-Eirik Askerød 30.21 157 == Response codes ==
158
159 Here you can find the response codes which may be returned from PayEx.
160
161 [[RESPONSE CODES>>doc:.Response codes.WebHome]]
162
Pål-Eirik Askerød 30.31 163 == ==
Pål-Eirik Askerød 30.21 164
Pål-Eirik Askerød 30.18 165 == Message field overview ==
Kristian Lingsom 26.1 166
167 **P-3 PROCESSING CODE**
168
Dani Alexander Berentzen 30.28 169 Code used to describe the effect of a transaction on the customer account and the accounts affected. Currently fixed 000000 : Goods and services
Kristian Lingsom 26.1 170
Pål-Eirik Askerød 30.13 171
Kristian Lingsom 26.1 172 **P-4 AMOUNT, TRANSACTION**
173
Dani Alexander Berentzen 30.29 174 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 : NOK 1 = 100
Kristian Lingsom 26.1 175
Pål-Eirik Askerød 30.13 176
Kristian Lingsom 26.1 177 **P-7 DATE AND TIME, TRANSMISSION**
178
179 Date and time of message transmission from the third party host.
180
Pål-Eirik Askerød 30.13 181
Kristian Lingsom 26.1 182 **P-11 SYSTEM TRACE AUDIT NUMBER**
183
Dani Alexander Berentzen 30.28 184 Number assigned by the third party host to assist in identifying a transaction uniquely. Range from 000001 to 999999. Every message must have a new STAN, repeats use the same STAN as the original message.
Pål-Eirik Askerød 30.13 185
186
Kristian Lingsom 26.1 187 **P-12 DATE AND TIME, LOCAL TRANSACTION**
188
189 Date and time of the transaction when performed on the POS.
190
Pål-Eirik Askerød 30.13 191
Kristian Lingsom 26.1 192 **P-22 POINT OF SERVICE DATA CODE**
193
194 A series of codes intended to identify terminal capability, terminal environment and presentation security data.
195
196
197 **P-24 FUNCTION CODE**
198
199 |=Function code|=Description
200 |101|Original authorization, amount estimated used in 1100
201 |200|Original financial request/advice Used in 1200/1220/1221
202 |201|Previously approved authorisation, amount the same Used in 1220/1221
203 |202|Previously approved authorisation, amount differs Used in 1220/1221
204 |400|Full reversal Used in 1420/1421
205 |831|Echo test Used in 1820
206
207 **P-25 MESSAGE REASON CODE**
208
209 |=reason code |=Description
Pål-Eirik Askerød 30.19 210 |1003|Card issuer unavailable
Kristian Lingsom 26.1 211 |1004|Terminal processed
Pål-Eirik Askerød 30.20 212 |1005|ICC processed
Kristian Lingsom 26.1 213 |1508|On-line forced by terminal
214 |4000|Customer cancellation
215 |4020|Invalid response, no action taken
216 |4021|Timeout waiting for response
217 |4351|Cancellation - unmatched signature
218
219 **P-30 ORIGINAL AMOUNT**
220
221 The original amount data element is a constructed element of two parts with a total of 24 positions:
222 a) Original amount transaction, n 12;
223 b) Original amount reconciliation, n 12.
224 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.
225
Pål-Eirik Askerød 30.13 226
Kristian Lingsom 26.1 227 **P-33 FORWARDING INSTITUTION IDENTIFICATION CODE**
228
229 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.
230
Pål-Eirik Askerød 30.13 231
Kristian Lingsom 26.1 232 **P-38 APPROVAL CODE**
233
234 Code assigned by the authorising institution indicating approval.
235
Pål-Eirik Askerød 30.13 236
Kristian Lingsom 26.1 237 **P-39 ACTION CODE**
238
Dani Alexander Berentzen 30.30 239 See action code page for codes that can be returned by PayEx.
Kristian Lingsom 27.1 240
Pål-Eirik Askerød 30.13 241
Kristian Lingsom 27.1 242 **P-41 Card acceptor terminal identification**
Dani Alexander Berentzen 30.30 243 Needs to be unique per POS terminal at the merchant site.
Kristian Lingsom 27.1 244
Pål-Eirik Askerød 30.13 245
Kristian Lingsom 27.1 246 **P-42 Card acceptor identification code**
247
248 8 digit unique ID provided by PayEx for each merchant.
249
Pål-Eirik Askerød 30.13 250
Kristian Lingsom 27.1 251 **P-43 Card acceptor name/location**
252
253 The name and location of the card acceptor.
254
Pål-Eirik Askerød 30.13 255
Kristian Lingsom 27.1 256 **P-48 MESSAGE CONTROL DATA ELEMENTS**
257 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.
258
259
Pål-Eirik Askerød 30.13 260 **P-48-4 BATCH/SEQUENCE NUMBER**
261
Kristian Lingsom 27.1 262 This field identifies the transactions associated with a particular settlement period. This number starts at one and increments with each Reconciliation.
263
264
Pål-Eirik Askerød 30.13 265 **P-48-8 CUSTOMER DATA**
266
Kristian Lingsom 27.1 267 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.
268
269 |=Element|=Name|=Attribute|=Description
270 |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.
271 |48-8-2|Type of customer data|an 1|Identifies the type of customer data entered. (see P48-8-2)
272 |48-8-3|Value of customer data|ans...99|Data entered by customer orcashier.
273
Kristian Lingsom 28.1 274 **P-48-8-2 TYPE OF CUSTOMER DATA**
Kristian Lingsom 27.1 275
Pål-Eirik Askerød 30.19 276 1 - Vehicle ID
Kristian Lingsom 28.1 277 3 - Driver ID
278 4 - Mileage
Pål-Eirik Askerød 30.19 279
Kristian Lingsom 27.1 280
Pål-Eirik Askerød 30.19 281 **P-48-9 TRACK II OF VEHICLE CARD**
Kristian Lingsom 27.1 282
Pål-Eirik Askerød 30.19 283 Used to specify the second card in a transaction if a special card is needed in addition to the payment card to link a transaction to a loyalty account.
Kristian Lingsom 27.1 284
285
Pål-Eirik Askerød 30.13 286 **P-48-14 PIN ENCRYPTION METHODOLOGY**
Pål-Eirik Askerød 30.5 287
Pål-Eirik Askerød 30.13 288 See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
Pål-Eirik Askerød 30.5 289
Kristian Lingsom 27.1 290
291 **P-48-37 VEHICLE IDENTIFICATION ENTRY MODE**
292 Only present when a vehicle number is available (P48-8). Defines how the vehicle number was entered:
293
294 0 - Manual entry
295 1- On the Card
Pål-Eirik Askerød 30.19 296 2 - Automatic License Plate Recognition
Kristian Lingsom 27.1 297
Pål-Eirik Askerød 30.13 298
Kristian Lingsom 27.1 299 **P-48-38 PUMP LINKED INDICATOR**
300
Kristian Lingsom 28.1 301 Indicating whether the fuel pump reading is is linked to the payment terminal:
Kristian Lingsom 27.1 302 0 – Unspecified
303 1 – Pump-linked
304 2 – Pump not linked
305
306
307 **P-48-39 DELIVERY NOTE NUMBER**
308 Number allocated by the terminal given to the customer as printed on the ticket.
309
Pål-Eirik Askerød 30.13 310
Kristian Lingsom 27.1 311 **P-49 CURRENCY CODE , TRANSACTION**
312 All transactions are in local currency, as defined during system installation. Actual value is as defined by ISO 4217.
313
Pål-Eirik Askerød 30.13 314
Kristian Lingsom 27.1 315 **P-52 PIN DATA**
Kristian Lingsom 28.1 316
Pål-Eirik Askerød 30.13 317 See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
Kristian Lingsom 28.1 318
Pål-Eirik Askerød 30.13 319
Kristian Lingsom 28.1 320 **P-53 SECURITY RELATED CONTROL INFORMATION**
321
Pål-Eirik Askerød 30.13 322 See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
Kristian Lingsom 28.1 323
324
Kristian Lingsom 28.2 325 **P-56 ORIGINAL DATA ELEMENTS**
326
327 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.
Pål-Eirik Askerød 30.19 328 In Payment advice : Link to previous Authorization dialog
329 In reversal advice : Link to previous Authorization request or previous Payment request being reversed.
Kristian Lingsom 28.1 330
Kristian Lingsom 28.2 331
332 **P-62 PRODUCT SETS AND MESSAGE DATA**
333
334 This field contains allowed product sets and message data.
335
336 |=Number|=Name|=Format|=Attribute|=Description
337 |62| |n|3|LLLVAR length field. Sets the length of P-62 data
338 |62-1|Allowed products|ans|...99|LLVAR field, contains the products that are allowed
339 |62-2|Device text|n|1|For what device 62-3 is to be sent to
Dani Alexander Berentzen 30.29 340 |62-3|Message text|ans|...999|LLLVAR field. Display text
Kristian Lingsom 28.2 341
342 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.
343
Kristian Lingsom 28.3 344
345 **P-63 PRODUCT DATA**
346
347 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.
348
Pål-Eirik Askerød 30.19 349 Each product is represented by seven fields: Product Code, Unit of Measure, Quantity, Unit Price, Amount, Tax code and Additional product code. The variable length fields and the succeeding entry are separated by a back-slash (\).
Kristian Lingsom 28.3 350 Unit price and amount may be negative or positive, but the sum of the amounts in the product data must equal the transaction amount.
351 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.
352 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.
353
354 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:
355
356
357 |=Number|=Format|=Field|=Description
358 |63|n 3|Product data|LLLVAR length field. Sets the length of P-63 data
359 |63-1|a 1|Service level|(((
360 S - Self-serve
361 F - Full serve
362 Space - Information not available
363 )))
364 |63-2|n 2|Number of products|Count of products (sale item) reported for this transaction.
365
366 Each Sales item consists of the following components:
367
368
369 |=Number|=Format|=Field|=Description
370 |63-3|n 3 |Product code|3-digit product code that defines the type of product sold
Pål-Eirik Askerød 30.13 371 |63-4|a 1 |Unit of measure|Indicates the meaning of the Quantity field. ‘U’ Sold per Unit
372 ‘O’ Unit of Measurement undefined ‘L’ Sold per Litre.
Kristian Lingsom 28.3 373 |63-5|n 9|Quantity|Number of product units
374 | | |Separator|‘\’ To separate Quantity from Unit-Price
375 |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
376 | | |Separator|‘\’ To separate Unit price from Amount
377 |63-7|sn 12|Amount|Starts with a minus sign in case Item amount is negative. 2 decimals are always implied.
378 | | |Separator|‘\’ To separate the Amount from the Vat Code
379 |63-8|an 1|Tax code|1 digit VAT code
380 |63-9|n 14|Additional Product code|Up to 14 digits article number as known in the POS
Pål-Eirik Askerød 30.13 381 | | |Terminator |‘\’ To mark the end of this sales item
Kristian Lingsom 28.3 382
383 **P-64 MAC**
384
Pål-Eirik Askerød 30.14 385 See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] for details.
Kristian Lingsom 28.3 386
387
Pål-Eirik Askerød 30.11 388 **P-127 Encrypted data**
389
Pål-Eirik Askerød 30.13 390 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.
Pål-Eirik Askerød 30.14 391
Pål-Eirik Askerød 30.17 392
393 **P-128 MAC**
394
Pål-Eirik Askerød 30.19 395 **This field is used for MAC if P-127 is present**. See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] for details.