When using Ingenico On-Guard SDE format for P2PE, the following fields should be set:
p2pe.formatshould be set to "03".p2pe.datashould 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.ksnshould be set to the key serial number which was used to encrypt the data.p2pe.formatshould 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.
5413330089020508D25122010727005691234FTLV encode the data adding tag - 57 and tag Length in hex – 13 (19 bytes) for the above data.
57135413330089020508D25122010727005691234FAdd zero padding as needed. In my example below, I padded up to 24 bytes (18-hex) 48 characters.
57135413330089020508D25122010727005691234F000000Encrypt the data.
4F56E663EBCE800B767C683BDFCA3B247166BF950CE3B065TLV 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)
5A0847617300000000115A0A6799998900000070017FAdd zero padding as needed. In the examples below it is always padding up to 16 bytes (10-Hex) 32 characters
5A0847617300000000110000000000005A0A6799998900000070017F00000000Encrypt the data
20F0C8FA57D52C07D4A829200D200D7D5DA37134CCF54D3892606E9B0AD7736ETLV encode the data adding tag 5A and tag length 10 (16 bytes)
5A1020F0C8FA57D52C07D4A829200D200D7D5A105DA37134CCF54D3892606E9B0AD7736E
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.