From version 30.12
edited by Pål-Eirik Askerød
on 2017/11/01 12:21
To version 30.13
edited by Pål-Eirik Askerød
on 2017/11/01 13:14
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -124,6 +124,9 @@
124 124  
125 125  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.
126 126  
127 +(% class="wikigeneratedid" %)
128 +== ==
129 +
127 127  == PIN Validation ==
128 128  
129 129  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.
... ... @@ -134,36 +134,44 @@
134 134  * P-52 – PIN data
135 135  * P-53 – Security related information
136 136  
140 +(% class="wikigeneratedid" %)
141 +== ==
142 +
137 137  == Security documentation ==
138 138  
139 139  Here you can find details regarding the security aspects of this H2H integration.
140 140  
141 - __[[SECURITY SPECIFICATION>>doc:.PayEx IFSF H2H Security specification.WebHome]]__
147 +__[[SECURITY SPECIFICATION>>doc:.PayEx IFSF H2H Security specification.WebHome]]__
142 142  
143 -(% class="wikigeneratedid" %)
144 -== ==
149 +== ==
145 145  
146 146  == Message field details ==
147 147  
148 148  **P-3 PROCESSING CODE**
149 149  
150 -Code used to describe the effect of a transaction on the customer account and the accounts affected. Fixed 00000000 : Goods and services
155 +Code used to describe the effect of a transaction on the customer account and the accounts affected. Currently fixed 00000000 : Goods and services
151 151  
157 +
152 152  **P-4 AMOUNT, TRANSACTION**
153 153  
154 154  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
155 155  
162 +
156 156  **P-7 DATE AND TIME, TRANSMISSION**
157 157  
158 158  Date and time of message transmission from the third party host.
159 159  
167 +
160 160  **P-11 SYSTEM TRACE AUDIT NUMBER**
161 161  
162 162  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 +
163 163  **P-12 DATE AND TIME, LOCAL TRANSACTION**
164 164  
165 165  Date and time of the transaction when performed on the POS.
166 166  
177 +
167 167  **P-22 POINT OF SERVICE DATA CODE**
168 168  
169 169  A series of codes intended to identify terminal capability, terminal environment and presentation security data.
... ... @@ -228,38 +228,47 @@
228 228  b) Original amount reconciliation, n 12.
229 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 230  
242 +
231 231  **P-33 FORWARDING INSTITUTION IDENTIFICATION CODE**
232 232  
233 233  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.
234 234  
247 +
235 235  **P-38 APPROVAL CODE**
236 236  
237 237  Code assigned by the authorising institution indicating approval.
238 238  
252 +
239 239  **P-39 ACTION CODE**
240 240  
241 241  See action code page for codes that can be returned by PayEx.
242 242  
257 +
243 243  **P-41 Card acceptor terminal identification**
244 244  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.
245 245  
261 +
246 246  **P-42 Card acceptor identification code**
247 247  
248 248  8 digit unique ID provided by PayEx for each merchant.
249 249  
266 +
250 250  **P-43 Card acceptor name/location**
251 251  
252 252  The name and location of the card acceptor.
253 253  
271 +
254 254  **P-48 MESSAGE CONTROL DATA ELEMENTS**
255 255  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.
256 256  
257 -P-48-4 BATCH/SEQUENCE NUMBER
258 258  
276 +**P-48-4 BATCH/SEQUENCE NUMBER**
277 +
259 259  This field identifies the transactions associated with a particular settlement period. This number starts at one and increments with each Reconciliation.
260 260  
261 -P-48-8 CUSTOMER DATA
262 262  
281 +**P-48-8 CUSTOMER DATA**
282 +
263 263  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.
264 264  
265 265  |=Element|=Name|=Attribute|=Description
... ... @@ -277,22 +277,17 @@
277 277  D - Customer verification code
278 278  G - Alphanumeric entered data
279 279  
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.
280 280  
281 -The information encoded on track 2 of the magnetic stripe as defined in ISO7813, excluding beginning and ending sentinels and longitudinal redundancy check characters.**P-48-9 TRACK II OF VEHICLE CARD**
282 282  
283 -**P-48-14 PIN ENCRYPTION METHODOLOGY**
303 +**P-48-9 TRACK II OF VEHICLE CARD**
284 284  
285 - ‘13’: PayEx H2H shared keys
286 286  
287 - ‘33’: ZKA MS/SK PAC H2H (**Currently not supported**)
306 +**P-48-14 PIN ENCRYPTION METHODOLOGY**
288 288  
308 +See [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
289 289  
290 -When P-52 is present, this field must also be present. When field P-52 is NOT present, field 48-14 should also NOT be present.
291 291  
292 -The value currently supported by PayEx is ‘13’ and refers to PayEx H2H shared keys. **Other values are currently not supported**.
293 -
294 -PayEx H2H shared key scheme defines a pin encryption key that is used to encrypt the pin block. See security documentation section for details.
295 -
296 296  **P-48-32 VAT PERCENTAGES**
297 297  
298 298  List of VAT codes accompanied with their corresponding VAT percentage.
... ... @@ -310,6 +310,7 @@
310 310  1- On the Card
311 311  2 - Automatic Licence Plate Recognition
312 312  
328 +
313 313  **P-48-38 PUMP LINKED INDICATOR**
314 314  
315 315  Indicating whether the fuel pump reading is is linked to the payment terminal:
... ... @@ -321,37 +321,21 @@
321 321  **P-48-39 DELIVERY NOTE NUMBER**
322 322  Number allocated by the terminal given to the customer as printed on the ticket.
323 323  
340 +
324 324  **P-49 CURRENCY CODE , TRANSACTION**
325 325  All transactions are in local currency, as defined during system installation. Actual value is as defined by ISO 4217.
326 326  
344 +
327 327  **P-52 PIN DATA**
328 328  ISO 9564-1 format 0 PIN block encrypted with PIN encryption key.
329 329  
348 +See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
330 330  
350 +
331 331  **P-53 SECURITY RELATED CONTROL INFORMATION**
332 332  
333 -(% style="width:1468px" %)
334 -|=Element|=Name|=Format|=Attribute|=(% style="width: 731px;" %)Description
335 -|53| |n|2|(% style="width:731px" %)LLVAR length field
336 -|53-1|Master key generation number|n|1|(% style="width:731px" %)Identifies the master key generation. **Currently NOT supported**
337 -|53-2|Key version of master key|n|1|(% style="width:731px" %)Identifies the key version. **Currently NOT supported**
338 -|53-3|MAC random value|b|16|(% style="width:731px" %)ZKA MAC random value. **Currently NOT supported**
339 -|53-4|PAC random value|b|16|(% style="width:731px" %)(((
340 -ZKA PAC random value. Zero filled if no PIN block in the message. **Currently NOT supported**
341 -)))
342 -|53-5|Data encryption random value|b|16|(% style="width:731px" %)ZKA Data encryption random value. **Currently NOT supported**
343 -|53-6|H2H Key version|n|2|(% style="width:731px" %)Version of keys shared by PayEx with 3rd party.
353 +See[[ security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] section for details.
344 344  
345 -**PayEx shared key scheme**
346 -
347 -PayEx supplies key version to be sent in 53-6. This scheme defines 3 different keys for MAC, PIN and Data encryption which will be shared between PayEx and 3rd party. See security documentation section for details.
348 -
349 -
350 -**ZKA scheme (Currently not supported)**
351 -
352 -PayEx defines the value of 53-1 and 53-2. Note that a set of different values are defined for both test and production. Also values are unique for every third party (host).
353 -
354 -For optimal security it is a good practice to use different random values for the MAC and PAC. However the security impact of having the same random number for PAC and MAC is very limited. Especially because in the MK/SK security scheme an XOR of the Master key with a fixed Control Mask is done, where the Control Mask value is different for PIN and MAC. So even if the MAC session key would be compromised the PIN session key still cannot be determined even when the same random number is used. It is important to assure that different random numbers are used for every transaction.
355 355  
356 356  
357 357  **P-56 ORIGINAL DATA ELEMENTS**
... ... @@ -400,8 +400,8 @@
400 400  
401 401  |=Number|=Format|=Field|=Description
402 402  |63-3|n 3 |Product code|3-digit product code that defines the type of product sold
403 -|63-4|a 1 |Unit ofg measure|Indicates the meaning of the Quantity field. ‘U’ Sold per Unit
404 -‘O’ Unit of Measurement undefined ‘L’ Sold per Litre
403 +|63-4|a 1 |Unit of measure|Indicates the meaning of the Quantity field. ‘U’ Sold per Unit
404 +‘O’ Unit of Measurement undefined ‘L’ Sold per Litre.
405 405  |63-5|n 9|Quantity|Number of product units
406 406  | | |Separator|‘\’ To separate Quantity from Unit-Price
407 407  |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
... ... @@ -410,42 +410,15 @@
410 410  | | |Separator|‘\’ To separate the Amount from the Vat Code
411 411  |63-8|an 1|Tax code|1 digit VAT code
412 412  |63-9|n 14|Additional Product code|Up to 14 digits article number as known in the POS
413 -| | |Teminator |‘\’ To mark the end of this sales item
413 +| | |Terminator |‘\’ To mark the end of this sales item
414 414  
415 415  **P-64 MAC**
416 416  
417 -MAC is calculated/verified according to the “IFSF X9.19 Retail CBC MAC (3DES)” (see Appendix D in [2]), using the “Derivation of the MAC session key (see 5.2.2 Derivation of the MAC session key in [2]).
417 +MAC is calculated/verified according to the “ANS X9.9 Option 1 (binary data) procedure using ISO 16609 CBC-mode Triple-DES” (see [[security documentation>>doc:.PayEx IFSF H2H Security specification.WebHome]] for details).
418 418  
419 419  The input for the MAC calculation/verification will be the SHA-256 of the IFSF message. The message length header and the MAC block itself are not included, however the MAC bit in the bitmap is part of the message and is already set when calculating the MAC.
420 420  
421 421  
422 -In pseudo code it is as follows (the sign is used for assignment):
423 -Input :
424 -
425 -* The four 8-byte blocks B1 .. B4 from the SHA256
426 -* MAC session key <Kl, Kr> (left and right halfs)
427 -
428 -Output :
429 -
430 -* 8-byte MAC M
431 -
432 -Function X9.19retailMAC:
433 -
434 -* M <- 0x0000 0000 0000 0000
435 -
436 -For each 8-byte block b in B1 to B4 do:
437 -
438 -* M <- M XOR b
439 -* M <- 1DES_encrypt(Kl, M)
440 -
441 -Done
442 -
443 -* M <- 1DES_decrypt(Kr, M)
444 -* M <- 1DES_encrypt(Kl, M)
445 -
446 -End function
447 -
448 -
449 449  **P-127 Encrypted data**
450 450  
451 -This field contains the encrypted track2 data. See security documentation section for details on how to generate this field.
424 +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.