Changes for page Payment Service Provider API ISO 8583:1993 (IFSF) H2H description
Last modified by Bjørnar Ruud on 2021/03/18 10:47
From version 30.12
edited by Pål-Eirik Askerød
on 2017/11/01 12:21
on 2017/11/01 12:21
To version 30.13
edited by Pål-Eirik Askerød
on 2017/11/01 13:14
on 2017/11/01 13:14
Change comment: There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
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 - 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 services155 +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- 14PIN ENCRYPTIONMETHODOLOGY**303 +**P-48-9 TRACK II OF VEHICLE CARD** 284 284 285 - ‘13’: PayEx H2H shared keys 286 286 287 - ‘33’: ZKA MS/SKPAC 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 of gmeasure|Indicates the meaning of the Quantity field. ‘U’ Sold per Unit404 -‘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 “ IFSFX9.19RetailCBCMAC (3DES)” (seeAppendix D in[2]), usingthe“DerivationftheMACsession key”(see 5.2.2 Derivationf theMAC sessionkeyin [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.