When using Ingenico On-Guard SDE format for P2PE, the following fields should be set:
p2pe.format
should be set to "03".p2pe.data
should be set depending on the input method, as described in the sections below:
When using Ingenico On-Guard SDE, the API request must be processed through our hosted REST servers. It cannot be processed through a locally installed UTG.
The emv.tlvdata
field should contain all EMV tags in standard TLV format except for tags 5A (Primary Account Number) & 57 (Track 2 Equivalent Data)
The p2pe.data
field should contain the encrypted TLV data for tags 5A and 57.
The p2pe.data
field should contain the encrypted data.
After decryption, the format would look like standard track data including start and end sentinels:
%B4444333327271111^MICROS TEST CARD^1612999999?;4444333327271111=1612999999?
The p2pe.data
field should contain the encrypted data.
After decryption, the format would look like: cardnumber|expirationdate|CSC
.
When using Shift4 TDES DUKPT format for P2PE, the following fields should be set:
p2pe.ksn
should be set to the key serial number which was used to encrypt the data.p2pe.format
should be set to "05".- additional fields should be set depending on the input method, as described in the sections below:
The emv.tlvdata
field should contain all EMV tags in standard TLV format including the P2PE encrypted tags (5A & 57)
Get Track 2 data and remove the beginning, end sentinel sentinels. Replace separator between the card number and expiration date with D and add F at the end if needed to ensure whole bytes.
5413330089020508D25122010727005691234F
TLV encode the data adding tag - 57 and tag Length in hex – 13 (19 bytes) for the above data.
57135413330089020508D25122010727005691234F
Add zero padding as needed. In my example below, I padded up to 24 bytes (18-hex) 48 characters.
57135413330089020508D25122010727005691234F000000
Encrypt the data.
4F56E663EBCE800B767C683BDFCA3B247166BF950CE3B065
TLV encode the encrypted data adding tag -57 and tag length in hex 18 (24 bytes) for the above data.
57184F56E663EBCE800B767C683BDFCA3B247166BF950CE3B065
Get the card number and pad with F to ensure whole bytes if needed.
4761730000000011
(Example of Visa card)6799998900000070017F
(Example of a 19 digit Maestro card)TLV encode the data adding tag - 5A and tag Length in hex 08 (8 bytes)
5A084761730000000011
5A0A6799998900000070017F
Add zero padding as needed. In the examples below it is always padding up to 16 bytes (10-Hex) 32 characters
5A084761730000000011000000000000
5A0A6799998900000070017F00000000
Encrypt the data
20F0C8FA57D52C07D4A829200D200D7D
5DA37134CCF54D3892606E9B0AD7736E
TLV encode the data adding tag 5A and tag length 10 (16 bytes)
5A1020F0C8FA57D52C07D4A829200D200D7D
5A105DA37134CCF54D3892606E9B0AD7736E
The p2pe.data
field should contain the encrypted data.
After decryption, the format would look like:
%B4444333327271111^MICROS TEST CARD^1612999999?;4444333327271111=1612999999?
The p2pe.data
field should contain the encrypted data.
After decryption, the format would look like: cardnumber|expirationdate|CSC
.