Point-to-Point Encryption (P2PE)
P2PE of cardholder data
End-to-End encryption support in Mastercard Gateway.
- Mastercard Gateway supports Advanced Encryption Standard (AES) and 3-Data Encryption Standard (3-DES) cyphers within Derived Unique Key Per Transaction (DUKPT) encryption as per the PCI P2PE guidelines.
- Mastercard Gateway provides the capability to decrypt the sensitive cardholder account data which reduces the merchant's exposure to Payment Card Industry (PCI) Data Security Standard (DSS) scope obligations.
WS API support
- Available from the version 84 onwards of the WS API.
-
Mastercard Gateway
allows for encryption to be performed by the customers terminal solution using the following
standards:
- DUKPT AES encryption
- AES supports AES 128-bits and 256-bits keys
- 3-DES encryption legacy
- DUKPT AES encryption
- Supported transaction types for P2PE are:
Following WS API P2PE fields are used for AES and 3-DES encryption.
API Field | Example Data | Details |
---|---|---|
sourceOfFunds.provided.card.p2pe |
Parameter Group | This holds the PAN in the case where it is encrypted by the terminal using the DUKPT key exchange. |
sourceOfFunds.provided.card.p2pe.cardBin |
"454742" | The BIN of the card. If you provide this field, the gateway checks that the decrypted PAN has these leading six digits. If the check fails, the gateway rejects the transaction. |
sourceOfFunds.provided.card.p2pe.encryptionState |
"VALID" | The P2PE encryption state as is determined by the terminal. |
sourceOfFunds.provided.card.p2pe.initializationVector |
"00000000000000000000000000000000" | The initialization vector supplied by the terminal to seed the encryption of this payload. |
sourceOfFunds.provided.card.p2pe.keySerialNumber |
"40F000000000000000000001" | The DUKPT key serial number supplied by the terminal. |
sourceOfFunds.provided.card.p2pe.payload |
"2D46DF475EC8F66A536017B0B294BFA76D5BE23F5561625E85172446F4256949" | The DUKPT encrypted payload supplied by the terminal |
posTerminal.serialNumber |
"13130PP800781435" | The unique serial number assigned by the manufacturer to the terminal device. Identify the PED instance (changes when the PED changes). Same as Europay, Mastercard, and Visa (EMV) tag 9F1E (Interface Device Serial Number). Note that this differs from the posTerminal.lane (The POS Terminal ID, identifying the business intent of the POS), that does not change when the PED changes. |
Prerequisites for using P2PE AES keys
- Merchants to initiate a Base Derivation Key (BDK) creation form.
- The generated BDK is shared with merchant to be configured at their side.
- The gateway also configures Hardware Security Modules (HSM) with the same key pair.
- The Key Set ID (KSI) and Key Serial Number (KSN) generation request to be initiated for the onboarded merchant.
- Once all configurations are done, a test transaction has to be initiated to validate the key (if successful the set-up is complete).
- Merchant can start using the AES-encrypted data.
DUKPT AES Encryption
Example: To encrypt the ciphers and clear data
- The key is obtained from PIN Encryption Key (PEK) according to ANSI X9.24-1-2017.
- Cardholder data that is ciphered is in the form of EMV tag 57 (Track2 equivalent) TLV tag.
- The track2 that is not 16 digits is right padded with zeros up to a multiple of 8 bytes.
- Cipher AES or Cipher Block Chaining (CBC) or NoPadding.
- The KSN is of length 24 Hex and consists of KSI = 8H, Device SN = 8H, and Transaction Counter = 8H.
Term | Key |
---|---|
Clear data (track2 equivalent/EMV tag 57)
The tag 57 value is only an example.
|
57133569990010082211D30122010000000000000F |
Initialization Vector (IV) | 00000000000000000000000000000000 |
Base Derivation Key (BDK) | A9E63DB4AEBE116D387D86D8EE512F8F |
Key Serial Number (KSN) 24 Hex | 3CE000000000000000000001 |
Database Encryption Key (DEK) (Both ways) | CF7B7C55A3DC9188062B260090E4C5F2 |
Ciphered data | 8BD61F7DD529741D7FD1BBBDC663C887319067428009DBDA806D67A6CB28D1D7 |
Examples of WS API request for the DUKPT AES payload
Example 1: AES 128 Mastercard Auth transaction with P2PE block and PAR in response
Request
{ "apiOperation": "AUTHORIZE", "order": { "amount": "100", "currency": "AUD" }, "posTerminal": { "serialNumber": "13130PP800781435" }, "sourceOfFunds": { "provided": { "card": { "p2pe": { "cardBin": "512345", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "3CE000000000000000000001", "payload": "1A984A8E5B91E4CBFF5F76AFE6913D2F4FF1F0FF271B61664F08AA734722C183" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT" } }
Response
{ "authorizationResponse": { "commercialCard": "123", "commercialCardIndicator": "1", "date": "0930", "financialNetworkCode": "MCC", "posData": "9000004000000", "posEntryMode": "010", "processingCode": "003000", "responseCode": "00", "stan": "94056", "time": "101413", "transactionIdentifier": "508843844", "transactionIntegrityClass": "A1" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER2", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "FINAL", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-09-30T10:14:13.203Z", "currency": "AUD", "id": "762727948", "lastUpdatedTime": "2024-09-30T10:14:13.578Z", "merchantAmount": 100.00, "merchantCategoryCode": "4111", "merchantCurrency": "AUD", "status": "AUTHORIZED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "attended": "UNKNOWN_OR_UNSPECIFIED", "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED", "serialNumber": "13130PP800781435" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "encryption": "DUKPT", "expiry": { "month": "1", "year": "39" }, "fundingMethod": "DEBIT", "issuer": "AFRILAND FIRST BANK", "number": "512345xxxxxx2298", "paymentAccountReference": "1234567890123456TC020MDESDE56", "scheme": "MASTERCARD", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-09-30T10:14:13.578Z", "timeOfRecord": "2024-09-30T10:14:13.341Z", "transaction": { "acquirer": { "batch": 20240930, "date": "0930", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "transactionId": "508843844" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "239699406", "receipt": "427410094056", "source": "CARD_PRESENT", "stan": "94056", "terminal": "0002", "type": "AUTHORIZATION" }, "version": "100" }
Example 2: AES 256 Visa Pay transaction with P2PE block and PAR in response
Request
{ "apiOperation": "PAY", "order": { "amount": "100", "currency": "AUD" }, "posTerminal": { "serialNumber": "13130PP800781435" }, "sourceOfFunds": { "provided": { "card": { "p2pe": { "cardBin": "454742", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "40F000000000000000000001", "payload": "2D46DF475EC8F66A536017B0B294BFA76D5BE23F5561625E85172446F4256949" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT" } }
Response
{ "authorizationResponse": { "cardLevelIndicator": "XX", "commercialCard": "123", "commercialCardIndicator": "1", "date": "0930", "marketSpecificData": "A", "posData": "9000000000000", "posEntryMode": "010", "processingCode": "003000", "responseCode": "00", "returnAci": "Y", "stan": "95106", "time": "110801", "transactionIdentifier": "510836465571779" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER1", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-09-30T11:08:01.456Z", "currency": "AUD", "id": "878635016", "lastUpdatedTime": "2024-09-30T11:08:01.699Z", "merchantAmount": 100.00, "merchantCategoryCode": "1234", "merchantCurrency": "AUD", "status": "CAPTURED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 100.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "attended": "UNKNOWN_OR_UNSPECIFIED", "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED", "serialNumber": "13130PP800781435" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "VISA", "deviceSpecificExpiry": { "month": "12", "year": "30" }, "deviceSpecificNumber": "454742xxxxxx0978", "encryption": "DUKPT", "fundingMethod": "UNKNOWN", "number": "xxxxxxxxxxxx0978", "paymentAccountReference": "12345678901234567TC020VSADE56", "scheme": "VISA", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-09-30T11:08:01.699Z", "timeOfRecord": "2024-09-30T11:08:01.527Z", "transaction": { "acquirer": { "batch": 20240930, "date": "0930", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "settlementDate": "2024-09-30", "timeZone": "+1000", "transactionId": "510836465571779" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "53111847", "receipt": "427411095106", "source": "CARD_PRESENT", "stan": "95106", "terminal": "0001", "type": "PAYMENT" }, "version": "100" }
DUKPT 3-DES Encryption legacy
Example: To encrypt ciphers and clear data:
- The P2PE sample within 3-DES DUKPT.
- The KEY is obtained from PEK according to ANSI X9.24-2004.
- Cardholder data (PAN/track2) that is ciphered is in the form of EMV TLV tag.
- PAN/track2 that is not 16 digits is right-padded with zeros up to a multiple of 8 bytes.
Term | Key |
---|---|
Clear data (track2 equivalent/EMV tag 57)
The tag 57 value is only an example.
|
57133569990010082211D30122010000000000000F |
Initialization Vector (IV) | |
Base Derivation Key (BDK) | 0123456789ABCDEFFEDCBA9876543210 |
Key Serial Number (KSN) 24 Hex | FFFF9876543210E00021 |
Public Key Cryptogram (PEK) | 35BBFE4D4C021CED96CBAFCBACEEC6F4 |
KEY | FFD4B1D73F0B590C31ADBBEAF8754637 |
Ciphered data | 238EBB9D8B842F4005E52F37DBD44878A7435B0EEA2F4B79 |
Example of WS API request for 3-DES payload
Example 1: 3DS auth transaction with P2PE block and PAR in response
Request
{ "apiOperation": "AUTHORIZE", "order": { "amount": "200", "currency": "AUD" }, "posTerminal": { "address": { "city": "Abu Dhabi", "country": "ARE" }, "attended": "UNATTENDED", "cardholderActivated": "SELF_SERVICE_TERMINAL", "cardPresenceCapability": "CARD_PRESENT", "inputCapability": "CONTACTLESS_CHIP", "lane": "Lane_03", "location": "MERCHANT_TERMINAL_ON_PREMISES", "onlineReasonCode": "OVER_FLOOR_LIMIT", "panEntryMode": "CONTACTLESS", "pinEntryCapability": "PIN_NOT_SUPPORTED", "serialNumber": "12345678" }, "sourceOfFunds": { "provided": { "card": { "emvRequest": { "5F2A": "036", "5F34": "099", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000010000", "9F03": "000000000000", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "036", "9F1C": "01", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F39": "07", "9F6E": "0101" }, "p2pe": { "cardBin": "541333", "encryptionState": "VALID", "initializationVector": "712BA056491BDCB9", "keySerialNumber": "FFFF0000000000000029", "payload": "43458845BE6275B4A8EC1A79E8AED307C4742644EC7CFACF98468E968C0013A71759AF5A3C48290D272B2798C0BCD52A62F06226880F6B24745AB997EAAB9FCEBA3342BDAFF9B7C508CA73632B2AB2580BF47922CE623CCCBF04D4156FB6C40FC2F4080AB5EA47F54F888C39CEAEF6FED25284B3FC7DBD31784CFEF8EDF01E11759B7121719ADFC19EB90AB5790A20FB3C4D29A3F8AFC292DE9299517EAF14A21CB3D73E85D82A031C94A2FAF11703F7685EF8439B523BA7704555199D5D68DEAF5DE79C7394F2E8F61E946E62D47BE9088177C73F6A9E001837EF3897EAFE9EA0DE0748508ECC59" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT" } }
Response
{ "authorizationResponse": { "commercialCard": "123", "commercialCardIndicator": "1", "date": "0930", "financialNetworkCode": "MCC", "posData": "1000004002300", "posEntryMode": "072", "processingCode": "003000", "responseCode": "00", "stan": "96126", "time": "111948", "transactionIdentifier": "173846500", "transactionIntegrityClass": "A1" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER2", "order": { "amount": 200.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "FINAL", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-09-30T11:19:47.883Z", "currency": "AUD", "id": "261005269", "lastUpdatedTime": "2024-09-30T11:19:48.282Z", "merchantAmount": 200.00, "merchantCategoryCode": "4111", "merchantCurrency": "AUD", "status": "AUTHORIZED", "totalAuthorizedAmount": 200.00, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "address": { "city": "Abu Dhabi", "country": "ARE" }, "attended": "UNATTENDED", "cardPresenceCapability": "CARD_PRESENT", "cardholderActivated": "SELF_SERVICE_TERMINAL", "inputCapability": "CONTACTLESS_CHIP", "lane": "Lane_03", "location": "MERCHANT_TERMINAL_ON_PREMISES", "onlineReasonCode": "OVER_FLOOR_LIMIT", "panEntryMode": "CONTACTLESS", "pinEntryCapability": "PIN_NOT_SUPPORTED", "serialNumber": "12345678" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "emvRequest": { "5F2A": "036", "5F34": "099", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000010000", "9F03": "000000000000", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "036", "9F1C": "01", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F39": "07", "9F6E": "0101" }, "emvResponse": { "72": "9F180408041215860E04DA9F5809030691D72E6F027DC6", "91": "B7D5309D4B3E6CDB3030" }, "encryption": "DUKPT", "expiry": { "month": "12", "year": "14" }, "fundingMethod": "CREDIT", "issuer": "MASTERCARD EUROPE", "number": "541333xxxxxx3560", "scheme": "MASTERCARD", "sequenceNumber": "099", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-09-30T11:19:48.282Z", "timeOfRecord": "2024-09-30T11:19:48.018Z", "transaction": { "acquirer": { "batch": 20240930, "date": "0930", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "transactionId": "173846500" }, "amount": 200.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "810797069", "receipt": "427411096126", "source": "CARD_PRESENT", "stan": "96126", "terminal": "0002", "type": "AUTHORIZATION" }, "version": "100" }
Examples of AES 128-bit and 256-bit keys
Example 1: AES 128-bit Mastercard Auth transaction with P2PE block and PAR in response
Request
{ "apiOperation": "AUTHORIZE", "order": { "amount": "100", "currency": "AUD" }, "posTerminal": { "serialNumber": "13130PP800781435" }, "sourceOfFunds": { "provided": { "card": { "p2pe": { "cardBin": "512345", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "3CE000000000000000000001", "payload": "1A984A8E5B91E4CBFF5F76AFE6913D2F4FF1F0FF271B61664F08AA734722C183" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT" } }
Response
{ "authorizationResponse": { "commercialCard": "123", "commercialCardIndicator": "1", "date": "0930", "financialNetworkCode": "MCC", "posData": "9000004000000", "posEntryMode": "010", "processingCode": "003000", "responseCode": "00", "stan": "94056", "time": "101413", "transactionIdentifier": "508843844", "transactionIntegrityClass": "A1" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER2", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "FINAL", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-09-30T10:14:13.203Z", "currency": "AUD", "id": "762727948", "lastUpdatedTime": "2024-09-30T10:14:13.578Z", "merchantAmount": 100.00, "merchantCategoryCode": "4111", "merchantCurrency": "AUD", "status": "AUTHORIZED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "attended": "UNKNOWN_OR_UNSPECIFIED", "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED", "serialNumber": "13130PP800781435" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "encryption": "DUKPT", "expiry": { "month": "1", "year": "39" }, "fundingMethod": "DEBIT", "issuer": "AFRILAND FIRST BANK", "number": "512345xxxxxx2298", "paymentAccountReference": "1234567890123456TC020MDESDE56", "scheme": "MASTERCARD", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-09-30T10:14:13.578Z", "timeOfRecord": "2024-09-30T10:14:13.341Z", "transaction": { "acquirer": { "batch": 20240930, "date": "0930", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "transactionId": "508843844" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "239699406", "receipt": "427410094056", "source": "CARD_PRESENT", "stan": "94056", "terminal": "0002", "type": "AUTHORIZATION" }, "version": "100" }
Example 2: AES 256-bit Visa Pay transaction with P2PE block and PAR in response
Request
{ "apiOperation": "PAY", "order": { "amount": "100", "currency": "AUD" }, "posTerminal": { "serialNumber": "13130PP800781435" }, "sourceOfFunds": { "provided": { "card": { "p2pe": { "cardBin": "454742", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "40F000000000000000000001", "payload": "2D46DF475EC8F66A536017B0B294BFA76D5BE23F5561625E85172446F4256949" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT" } }
Response
{ "authorizationResponse": { "cardLevelIndicator": "XX", "commercialCard": "123", "commercialCardIndicator": "1", "date": "0930", "marketSpecificData": "A", "posData": "9000000000000", "posEntryMode": "010", "processingCode": "003000", "responseCode": "00", "returnAci": "Y", "stan": "95106", "time": "110801", "transactionIdentifier": "510836465571779" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER1", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-09-30T11:08:01.456Z", "currency": "AUD", "id": "878635016", "lastUpdatedTime": "2024-09-30T11:08:01.699Z", "merchantAmount": 100.00, "merchantCategoryCode": "1234", "merchantCurrency": "AUD", "status": "CAPTURED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 100.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "attended": "UNKNOWN_OR_UNSPECIFIED", "cardholderActivated": "NOT_CARDHOLDER_ACTIVATED", "serialNumber": "13130PP800781435" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "VISA", "deviceSpecificExpiry": { "month": "12", "year": "30" }, "deviceSpecificNumber": "454742xxxxxx0978", "encryption": "DUKPT", "fundingMethod": "UNKNOWN", "number": "xxxxxxxxxxxx0978", "paymentAccountReference": "12345678901234567TC020VSADE56", "scheme": "VISA", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-09-30T11:08:01.699Z", "timeOfRecord": "2024-09-30T11:08:01.527Z", "transaction": { "acquirer": { "batch": 20240930, "date": "0930", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "settlementDate": "2024-09-30", "timeZone": "+1000", "transactionId": "510836465571779" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "53111847", "receipt": "427411095106", "source": "CARD_PRESENT", "stan": "95106", "terminal": "0001", "type": "PAYMENT" }, "version": "100" }
Examples of P2PE for Transit WS API
Example 1: AES P2PE Aggregated Fare Transit auth transaction
Request
{ "apiOperation": "AUTHORIZE", "order": { "amount": "100", "currency": "AUD" }, "sourceOfFunds": { "provided": { "card": { "p2pe": { "cardBin": "512345", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "3CE000000000000000000001", "payload": "1A984A8E5B91E4CBFF5F76AFE6913D2F4FF1F0FF271B61664F08AA734722C183" }, "emvRequest": { "5F2A": "826", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000001099", "9F03": "000000000000", "9F06": "010101010101", "9F07": "0101", "9F09": "0101", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "826", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F41": "0123", "9F53": "A", "9F6E": "0101" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT", "transit": { "aggregatedFare": { "type": "FARE", "aggregationStartDate": "2022-05-05", "transportationMode": "TRAIN" } } }, "posTerminal": { "attended": "UNATTENDED", "location": "MERCHANT_TERMINAL_ON_PREMISES", "cardholderActivated": "SELF_SERVICE_TERMINAL", "panEntryMode": "CONTACTLESS", "inputCapability": "CONTACTLESS_CHIP", "lane": "street1", "pinEntryCapability": "PIN_NOT_SUPPORTED" } }
Response
{ "authorizationResponse": { "commercialCard": "123", "commercialCardIndicator": "1", "date": "1121", "financialNetworkCode": "MCC", "posData": "1000001002300", "posEntryMode": "072", "processingCode": "003000", "responseCode": "00", "stan": "103066", "time": "054013", "transactionIdentifier": "082941307", "transactionIntegrityClass": "A1" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER2", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "FINAL", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-11-21T05:40:13.485Z", "currency": "AUD", "id": "AKS_593694924", "lastUpdatedTime": "2024-11-21T05:40:13.695Z", "merchantAmount": 100.00, "merchantCategoryCode": "4111", "merchantCurrency": "AUD", "status": "AUTHORIZED", "totalAuthorizedAmount": 100.00, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "address": { "country": "GBR" }, "attended": "UNATTENDED", "cardholderActivated": "SELF_SERVICE_TERMINAL", "inputCapability": "CONTACTLESS_CHIP", "lane": "street1", "location": "MERCHANT_TERMINAL_ON_PREMISES", "panEntryMode": "CONTACTLESS", "pinEntryCapability": "PIN_NOT_SUPPORTED", "serialNumber": "0123ABCD" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "emvRequest": { "5F2A": "826", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000001099", "9F03": "000000000000", "9F06": "010101010101", "9F07": "0101", "9F09": "0101", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "826", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F41": "0123", "9F53": "A", "9F6E": "0101" }, "emvResponse": { "72": "9F180408041215860E04DA9F5809030691D72E6F027DC6", "91": "B7D5309D4B3E6CDB3030" }, "encryption": "DUKPT", "expiry": { "month": "1", "year": "39" }, "fundingMethod": "DEBIT", "number": "512345xxxxxx2298", "paymentAccountReference": "1234567890123456TC020MDESDE56", "scheme": "MASTERCARD", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-11-21T05:40:13.695Z", "timeOfRecord": "2024-11-21T05:40:13.526Z", "transaction": { "acquirer": { "batch": 20241121, "date": "1121", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "transactionId": "082941307" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "378417650", "receipt": "432605103066", "source": "CARD_PRESENT", "stan": "103066", "terminal": "0002", "transit": { "aggregatedFare": { "aggregationStartDate": "2022-05-05", "transportationMode": "TRAIN", "type": "FARE" } }, "type": "AUTHORIZATION" }, "version": "100" }
Example 2: AES P2PE Known Fare Transit auth transaction
Request
{ "apiOperation": "AUTHORIZE", "order": { "amount": "200", "currency": "AUD" }, "posTerminal": { "address": { "city": "Abu Dhabi", "country": "ARE" }, "attended": "UNATTENDED", "cardholderActivated": "SELF_SERVICE_TERMINAL", "cardPresenceCapability": "CARD_PRESENT", "inputCapability": "CONTACTLESS_CHIP", "lane": "Lane_03", "location": "MERCHANT_TERMINAL_ON_PREMISES", "onlineReasonCode": "OVER_FLOOR_LIMIT", "panEntryMode": "CONTACTLESS", "pinEntryCapability": "PIN_NOT_SUPPORTED", "pinLengthCapability": "6", "serialNumber": "12345678" }, "sourceOfFunds": { "provided": { "card": { "emvRequest": { "5F2A": "036", "5F34": "099", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000010000", "9F03": "000000000000", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "036", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F6E": "0101", "9F39": "07", "9F1C": "01" }, "p2pe": { "cardBin": "454742", "encryptionState": "VALID", "initializationVector": "00000000000000000000000000000000", "keySerialNumber": "40F000000000000000000001", "payload": "2D46DF475EC8F66A536017B0B294BFA76D5BE23F5561625E85172446F4256949" } } }, "type": "CARD" }, "transaction": { "source": "CARD_PRESENT", "transit": { "knownFare": { "type": "FARE_REAL_TIME_AUTHORIZATION" } } } }
Response
{ "authorizationResponse": { "cardLevelIndicator": "XX", "commercialCard": "123", "commercialCardIndicator": "1", "date": "1121", "marketSpecificData": "A", "posData": "1000004002300", "posEntryMode": "072", "processingCode": "003000", "responseCode": "00", "returnAci": "Y", "stan": "100966", "time": "052325", "transactionIdentifier": "795810461157469" }, "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "CYG_S2I_MER2", "order": { "amount": 200.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "certainty": "FINAL", "chargeback": { "amount": 0, "currency": "AUD" }, "creationTime": "2024-11-21T05:23:25.486Z", "currency": "AUD", "id": "706592334", "lastUpdatedTime": "2024-11-21T05:23:25.831Z", "merchantAmount": 200.00, "merchantCategoryCode": "4111", "merchantCurrency": "AUD", "status": "AUTHORIZED", "totalAuthorizedAmount": 200.00, "totalCapturedAmount": 0.00, "totalDisbursedAmount": 0.00, "totalRefundedAmount": 0.00 }, "posTerminal": { "address": { "city": "Abu Dhabi", "country": "ARE" }, "attended": "UNATTENDED", "cardPresenceCapability": "CARD_PRESENT", "cardholderActivated": "SELF_SERVICE_TERMINAL", "inputCapability": "CONTACTLESS_CHIP", "lane": "Lane_03", "location": "MERCHANT_TERMINAL_ON_PREMISES", "onlineReasonCode": "OVER_FLOOR_LIMIT", "panEntryMode": "CONTACTLESS", "pinEntryCapability": "PIN_NOT_SUPPORTED", "pinLengthCapability": 6, "serialNumber": "12345678" }, "response": { "acquirerCode": "00", "acquirerMessage": "Approved", "gatewayCode": "APPROVED", "gatewayRecommendation": "NO_ACTION" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "VISA", "deviceSpecificExpiry": { "month": "12", "year": "30" }, "deviceSpecificNumber": "454742xxxxxx0978", "emvRequest": { "5F2A": "036", "5F34": "099", "82": "0000", "84": "010101010101", "95": "0000000000", "9A": "161021", "9B": "0101", "9C": "00", "9F02": "000000010000", "9F03": "000000000000", "9F10": "06011103A000000A0100000000000BB0ABAD", "9F1A": "036", "9F1C": "01", "9F1E": "0123ABCD", "9F26": "D1F722D47FCA8273", "9F27": "40", "9F33": "E0B8C8", "9F34": "1E0300", "9F35": "12", "9F36": "0002", "9F37": "2A4E1690", "9F39": "07", "9F6E": "0101" }, "emvResponse": { "72": "9F180408041215860E04DA9F5809030691D72E6F027DC6", "91": "B7D5309D4B3E6CDB3030" }, "encryption": "DUKPT", "fundingMethod": "UNKNOWN", "number": "454742xxxxxx0978", "paymentAccountReference": "12345678901234567TC020VSADE56", "scheme": "VISA", "sequenceNumber": "099", "storedOnFile": "NOT_STORED", "trackDataProvided": true } }, "type": "CARD" }, "timeOfLastUpdate": "2024-11-21T05:23:25.831Z", "timeOfRecord": "2024-11-21T05:23:25.583Z", "transaction": { "acquirer": { "batch": 20241121, "date": "1121", "id": "CYG_TESTACQ_S2I", "merchantId": "9808", "transactionId": "795810461157469" }, "amount": 200.00, "authenticationStatus": "AUTHENTICATION_NOT_IN_EFFECT", "authorizationCode": "112233", "currency": "AUD", "id": "684351255", "receipt": "432605100966", "source": "CARD_PRESENT", "stan": "100966", "terminal": "0001", "transit": { "knownFare": { "type": "FARE_REAL_TIME_AUTHORIZATION" } }, "type": "AUTHORIZATION" }, "version": "100" }