Skip to content
Last updated

Ingenico On-Guard SDE - Format 03

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.

EMV

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.

Track information

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?

Manual Entry

The p2pe.data field should contain the encrypted data.

After decryption, the format would look like: cardnumber|expirationdate|CSC.

TDES DUKPT - Format 05

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:

EMV

The emv.tlvdata field should contain all EMV tags in standard TLV format including the P2PE encrypted tags (5A & 57)

Tag 57 Track 2 Equivalent Data

  1. 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

  2. TLV encode the data adding tag - 57 and tag Length in hex – 13 (19 bytes) for the above data.

    57135413330089020508D25122010727005691234F

  3. Add zero padding as needed. In my example below, I padded up to 24 bytes (18-hex) 48 characters.

    57135413330089020508D25122010727005691234F000000

  4. Encrypt the data.

    4F56E663EBCE800B767C683BDFCA3B247166BF950CE3B065

  5. TLV encode the encrypted data adding tag -57 and tag length in hex 18 (24 bytes) for the above data.

    57184F56E663EBCE800B767C683BDFCA3B247166BF950CE3B065

Tag 5A Primary Account Number

  1. 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)

  2. TLV encode the data adding tag - 5A and tag Length in hex 08 (8 bytes)

    5A084761730000000011

    5A0A6799998900000070017F

  3. Add zero padding as needed. In the examples below it is always padding up to 16 bytes (10-Hex) 32 characters

    5A084761730000000011000000000000

    5A0A6799998900000070017F00000000

  4. Encrypt the data

    20F0C8FA57D52C07D4A829200D200D7D

    5DA37134CCF54D3892606E9B0AD7736E

  5. TLV encode the data adding tag 5A and tag length 10 (16 bytes)

    5A1020F0C8FA57D52C07D4A829200D200D7D

    5A105DA37134CCF54D3892606E9B0AD7736E

Track information

The p2pe.data field should contain the encrypted data.

After decryption, the format would look like:

%B4444333327271111^MICROS TEST CARD^1612999999?;4444333327271111=1612999999?

Manual Entry

The p2pe.data field should contain the encrypted data.

After decryption, the format would look like: cardnumber|expirationdate|CSC.