# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Decrypt an Apple Pay bundle The following is an example of an Apple Pay bundle decryption request. This request is the same whether your bundle or payload contains a standard Apple Pay token, an Apple Pay merchant token (MPAN ), or a multiple token (Multi-token). However, the decryption response for each type contains different fields as indicated in the example responses. You can decrypt standard Apple Pay bundle, Apple Pay bundle with MPAN or Multi-token by sending a `POST` request to the `/wallet-decryptions `endpoint using the following required fields. **Required fields for Apple Pay** | Field name | Description | | --- | --- | | encryptedPayloadText | Indicates the merchant provided an unreadable encrypted bundle or payload of the wallet provider. | | walletProvider | Identifies the type of wallet used as ApplePay. The valid values are - APPLE_PAY - GOOGLE_PAY - PAZE | | walletTransactionId | Transaction ID of the wallet provided by Apple Pay. | | walletApplicationData | A Base64-encoded string provided by Apple Pay. | | digitalSignature | The digital siginature for the payload provided by Apple Pay. | | version | Version of the Apple Pay wallet. | | keyHash | Identifies a hash value based only on primary keys for the dataset. | | publicKey | The associated cipher key for Apple Pay and Google Pay used to encrypt the payload. | **HTTP method**: `POST` **Endpoint**: `/wallet-decryptions` ```json { "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "walletApplicationData": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "encryptedPayloadText": "JMgSXGBxr8VWmBFcj9NGuRqiPQ89T0iBeQW0tXMXCx1wXc3+CLU+DnLkrLoJi/OTAgUG5kkHvUYVpyh+oahsWPzQ/+axPjjny5Ug+L9xgUXDjHb6mcdXdwCU/WSdZvwiyQnfboIfScblEKl535kGfQGBbV03qerhLA8ey2Q3kFBVdWfvlfHfvhqrLMxnICSetjWlJvkWUm4dMtz5YXDfMM4ytuib+zvevRSYLK0/NagGsCUWqwg59ERYfiuuLC2SgSicwOAwpfA2gCmp7qz21gJFEesk/EWhHAAN5cPAcq9zOVb7pUXxJKm8+WBvLIDkaA==", "walletProvider": "APPLE_PAY", "digitalSignature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBAACggDCCAWIwggEIoAMCAQICBgFdZTj7ATAKBggqhkjOPQQDAzA4MSEwHwYDVQQDDBhQYXltZW50ZWNoIE1vYmlsZSBTREsgQ0ExEzARBgNVBAoMClBheW1lbnRlY2gwHhcNMTcwNzIxMTI1NjU5WhcNMzQwNzIxMTI1NjU5WjA4MSEwHwYDVQQDDBhQYXltZW50ZWNoIE1vYmlsZSBTREsgQ0ExEzARBgNVBAoMClBheW1lbnRlY2gwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARCrlzB/UN22ZXpHk7iJqI8T7h0J8QOIyCohcBd8Dh+p0GPeGrDpiyy8LNyQ/bb9jNj+6aVJfeta9eWsOPBp69lMAoGCCqGSM49BAMDA0gAMEUCIQCL3CzFvN8IHbx9DIYtWSWvdwleW2OkbuRimP9LzW9ReAIgTuGzzqlu2EfBpSesfNt78fgAE04OYKHGBq4/Larj540AADGCAUMwggE/AgEBMEIwODEhMB8GA1UEAwwYUGF5bWVudGVjaCBNb2JpbGUgU0RLIENBMRMwEQYDVQQKDApQYXltZW50ZWNoAgYBXWU4+wEwCwYJYIZIAWUDBAIBoIGTMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI0MDEzMDIxMTE1MlowKAYJKoZIhvcNAQk0MRswGTALBglghkgBZQMEAgGhCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIOARCBNLkIUoLjdKJBfTDCiZZNewonocx3uCS+Y9UHEeMAoGCCqGSM49BAMCBEcwRQIgNxWrQ5+RMen93aq+iNPFdTty9+c0EFAeq8aLl1soGw4CIQCBFlPdDUUZGDkVTUJt1x9pLqJxNUyovsziC3BY7PbFbwAAAAAAAA==", "version": "EC_v1", "keyHash": "6tFxrnf0isurGIfHeTZQ5Oe0e+tuFwALZJkGxh/Xqqo=", "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDEHeaYB0xdV830jvSaY7nt7IJb4l8LheJL+SZ1WDgxZ3ZfO4N3CCG8VO0QUSsms6cAPiB7/ZnUC61q7QKa0T/A==" } ``` Response: ```json { "requestId": "9b0fab1c-0ced-4110-a96c-610c79906ef6", "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "messages": { "responseStatus": "OK", "responseCode": "200" }, "accountHolder": { "accountNumber": "4761220000000237", "expiry": { "monthNumber": "06", "yearNumber": "2026" }, "transactionAmount": 100, "currencyCode": "840" }, "cryptogramDetail": { "tokenAuthenticationValue": "AQAAAAAAR9O++icAAABMgxEAAAA=", "deviceManufacturerId": "040010030273", "paymentDataType": "3DSecure", "electronicCommerceIndicator": "7" } } ``` ## Decrypt Apple Pay bundle with MPAN An Apple Pay Merchant Token (MPAN) is a token issued by Apple Pay when a payment transaction is initiated through the Apple Pay wallet. An Apple Pay Merchant Token (MPAN) links a payment card, business, and customer, allowing card management in the Apple Wallet. Apple Pay recommends merchant tokens over device tokens (DPANs) because they: - Work across multiple devices - Support recurring payments without relying on a single device - Keep payment info active on new devices even if removed from the original one **HTTP method**: `POST` **Endpoint**: `/wallet-decryptions` ```json { "encryptedPayloadText": "0gGxh858yAs3cPp9/1qrQnvx5At1o2xFuEkvZyZETWrrVMaUrxKATkeSEUfaimUnso3O9ffoZO1xvCkh4/Jg7Ihrbl8t3qhSz8LuBCFNh4OPKuqUN0ob/+H8BMXYT6NVhIbkBkGhECG16MsUNZAu4qbD44l82UOxdvwwWkr8yUvCmwED9yn0DMhR8tomLRo1CK/xCuqSekW3w8cV3u7Ug4rY9tey8O6Ch7OoB/xVrtHzMp1OmFsYnmGjfC0vIHuJPQuaJUNc/x8h+eamMzDpGbb+/I9VHOJ+YueMiH/lnrG7p2swKvGHlmeG7OPYtgs4qaGlAi7qI530fMugLf6m0F1m/pOy9KNIYQewG6OWxApsDC9Qm+4tKOw55/htln5kvZ/GEPCl3BKYgTGmhf+Zg1Oy15wRraTGx5wXrvSF+InyzWCKAcelXcokMFpV3gaT9sIyc9B+C5Gkrqmkc1mAlrmrhdKSoOPivJ2sNi5gYyFSGk+OmAszVJMbEA8IW15fLekR+I6DRZFH50pksypdMM17tQMUsoq/UJ5KxWkNTAlR1xMn/bAKKzrNNZv8XoRrj6lCtjDeuy79n/24EuueYJag9cD/8nVB4FpBAHkGoH/t9CAZf7Fma7vtRlWE7Rf+AAYQ6BQTCsUP1tONgZyVxc2re1AYXfN5Y9QdyCdYWMS9uGyFGY6ML2yv3F0XAvrlJfSfYSTf1NTVqfS46gPQpjRAqWGxxs9jONpWEgdukGS2XTBUvfUg/0fwIbcP4j+g/YYJQrn3XzpdvOflpF8gVsdKnF6If/dyJ96pDmfH4LJAIQsYa9ikMfh5SpoSekU6aahleveQ5abflDwW+8hE+TmrZc9inq0XRI4zbmUwMbK1WhGUMj33GCh8Ar2Z27cTKgR3+m04Wto7/IVeIGaGIxHE8hNON+BLnIDpq/eyst+Gerlfyqy7pX2CQ8aEWa8m5oCenjJTG2etA+qjUcVCS7Fyo21UE1jSDrfY6GYLBvKGnKOAUNVgkN36ZJXr8mhk0oDzhmGUZmpSNh0wCdgLyE0mAtjHAzVVUfcPDoOEwOMwWG5lW3gUNUm1hQxXma7CELCpQFqb3OMlhqz4HfsyD242Xu2s4xLUvV5M9H0qbrcBE9RlFyV5lsHB7pAS7EfFVAL8up2McsX+ICLOYccZQkrvzskzmXD51XzcDmuR930jvEhqJa5ADSmbFxLXzTCSZJz/FLmsSaPt6uVlLQ==", "walletProvider": "APPLE_PAY", "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "walletApplicationData": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "digitalSignature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwCwYJKoZIhvcNAQcBoIAwggFiMIIBCKADAgECAgYBXWU4+wEwCgYIKoZIzj0EAwMwODEhMB8GA1UEAwwYUGF5bWVudGVjaCBNb2JpbGUgU0RLIENBMRMwEQYDVQQKDApQYXltZW50ZWNoMB4XDTE3MDcyMTEyNTY1OVoXDTM0MDcyMTEyNTY1OVowODEhMB8GA1UEAwwYUGF5bWVudGVjaCBNb2JpbGUgU0RLIENBMRMwEQYDVQQKDApQYXltZW50ZWNoMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQq5cwf1DdtmV6R5O4iaiPE+4dCfEDiMgqIXAXfA4fqdBj3hqw6YssvCzckP22/YzY/umlSX3rWvXlrDjwaevZTAKBggqhkjOPQQDAwNIADBFAiEAi9wsxbzfCB28fQyGLVklr3cJXltjpG7kYpj/S81vUXgCIE7hs86pbthHwaUnrHzbe/H4ABNODmChxgauPy2q4+eNAAAxggFDMIIBPwIBATBCMDgxITAfBgNVBAMMGFBheW1lbnRlY2ggTW9iaWxlIFNESyBDQTETMBEGA1UECgwKUGF5bWVudGVjaAIGAV1lOPsBMAsGCWCGSAFlAwQCAaCBkzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDA3MDgyMDEyNDJaMCgGCSqGSIb3DQEJNDEbMBkwCwYJYIZIAWUDBAIBoQoGCCqGSM49BAMCMC8GCSqGSIb3DQEJBDEiBCApyS76wnLoE50m8IN9nTK248Tj2K1je76z+IIKEH9OezAKBggqhkjOPQQDAgRHMEUCICX1jTpwsrHaEmjy4gJl+IRLdrIwcTuqJQN+f/qDpoxkAiEA8SdYhqpQXCWZOWWWPMbVu1PprUyQ4RlDcG9bA4wTggkAAAAAAAA=", "version": "EC_v1", "keyHash": "xVC/RhZQk4eWVtID9DMSnzoRnBoGF7z3jvm4iWztpis=", "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmwK0foCYZAwrPM4AzSkhemnkqr8ZWdYQKDGUENGwpP3xJyiiwckTP6cqgkzBHI4nXP1iGaFbh2KNIOBQ2nI0jw==" } ``` Response: ```json { "requestId": "96d74c8f-9195-432d-bbbe-5f3337052dbc", "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "messages": { "responseStatus": "OK", "responseCode": "200" }, "accountHolder": { "accountNumber": "4761220000000237", "expiry": { "monthNumber": "06", "yearNumber": "2026" }, "transactionAmount": 100, "walletCardData": { "cardArtList": [ { "name": "Bank Visa", "type": "VISA", "url": "https://bank.com/cardart/visa.png" }, { "name": "Bank Visa", "type": "VISA", "url": "https://bank.com/cardart/visa.png" } ], "cardMetadata": { "expirationDate": "090932", "accountSuffixNumber": "1276" }, "walletMerchantTokenReferenceId": "2e2a77c7-7f4b-41d9-894a-e857a8e07725" } }, "cryptogramDetail": { "tokenAuthenticationValue": "AAABAIcJIo7DIzAgVAkiAAAAAAA=", "deviceManufacturerId": "040010030273", "paymentDataType": "3DSecure", "electronicCommerceIndicator": "7" } } ``` ## Decrypt Apple Pay bundle with Multi-token Multiple payment tokens refer to a payment system where distinct tokens are used for various transactions within the same context. For instance, when booking a holiday package, separate tokens are utilized for each transaction, such as airline tickets, hotel accommodations, and car rentals. **HTTP method**: `POST` **Endpoint**:` /wallet-decryptions` ```json { "encryptedPayloadText": "0gGxh858yAs3cPp9/1qrQnvx5At1o2xFuEkvZyZETWrrVMaUrxKATkeSEUfaimUnso3O9ffoZO1xvCkh4/Jg7Ihrbl8t3qhSz8LuBCFNh4OPKuqUN0ob/+H8BMXYT6NVhIbkBkGhECG16MsUNZAu4qbD44l82UOxdvwwWkr8yUvCmwED9yn0DMhR8tomLRo1CK/xCuqSekW3w8cV3u7Ug4rY9tey8O6Ch7OoB/xVrtHzMp1OmFsYnmGjfC0vIHuJPQuaJUNc/x8h+eamMzDpGbb+/I9VHOJ+YueMiH/lnrG7p2swKvGHlmeG7OPYtgs4qaGlAi7qI530fMugLf6m0F1m/pOy9KNIYQewG6OWxApsDC9Qm+4tKOw55/htln5kvZ/GEPCl3BKYgTGmhf+Zg1Oy15wRraTGx5wXrvSF+InyzWCKAcelXcokMFpV3gaT9sIyc9B+C5Gkrqmkc1mAlrmrhdKSoOPivJ2sNi5gYyFSGk+OmAszVJMbEA8IW15fLekR+I6DRZFH50pksypdMM17tQMUsoq/UJ5KxWkNTAlR1xMn/bAKKzrNNZv8XoRrj6lCtjDeuy79n/24EuueYJag9cD/8nVB4FpBAHkGoH/t9CAZf7Fma7vtRlWE7Rf+AAYQ6BQTCsUP1tONgZyVxc2re1AYXfN5Y9QdyCdYWMS9uGyFGY6ML2yv3F0XAvrlJfSfYSTf1NTVqfS46gPQpjRAqWGxxs9jONpWEgdukGS2XTBUvfUg/0fwIbcP4j+g/YYJQrn3XzpdvOflpF8gVsdKnF6If/dyJ96pDmfH4LJAIQsYa9ikMfh5SpoSekU6aahleveQ5abflDwW+8hE+TmrZc9inq0XRI4zbmUwMbK1WhGUMj33GCh8Ar2Z27cTKgR3+m04Wto7/IVeIGaGIxHE8hNON+BLnIDpq/eyst+Gerlfyqy7pX2CQ8aEWa8m5oCenjJTG2etA+qjUcVCS7Fyo21UE1jSDrfY6GYLBvKGnKOAUNVgkN36ZJXr8mhk0oDzhmGUZmpSNh0wCdgLyE0mAtjHAzVVUfcPDoOEwOMwWG5lW3gUNUm1hQxXma7CELCpQFqb3OMlhqz4HfsyD242Xu2s4xLUvV5M9H0qbrcBE9RlFyV5lsHB7pAS7EfFVAL8up2McsX+ICLOYccZQkrvzskzmXD51XzcDmuR930jvEhqJa5ADSmbFxLXzTCSZJz/FLmsSaPt6uVlLQ==", "walletProvider": "APPLE_PAY", "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "walletApplicationData": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "digitalSignature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwCwYJKoZIhvcNAQcBoIAwggFiMIIBCKADAgECAgYBXWU4+wEwCgYIKoZIzj0EAwMwODEhMB8GA1UEAwwYUGF5bWVudGVjaCBNb2JpbGUgU0RLIENBMRMwEQYDVQQKDApQYXltZW50ZWNoMB4XDTE3MDcyMTEyNTY1OVoXDTM0MDcyMTEyNTY1OVowODEhMB8GA1UEAwwYUGF5bWVudGVjaCBNb2JpbGUgU0RLIENBMRMwEQYDVQQKDApQYXltZW50ZWNoMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQq5cwf1DdtmV6R5O4iaiPE+4dCfEDiMgqIXAXfA4fqdBj3hqw6YssvCzckP22/YzY/umlSX3rWvXlrDjwaevZTAKBggqhkjOPQQDAwNIADBFAiEAi9wsxbzfCB28fQyGLVklr3cJXltjpG7kYpj/S81vUXgCIE7hs86pbthHwaUnrHzbe/H4ABNODmChxgauPy2q4+eNAAAxggFDMIIBPwIBATBCMDgxITAfBgNVBAMMGFBheW1lbnRlY2ggTW9iaWxlIFNESyBDQTETMBEGA1UECgwKUGF5bWVudGVjaAIGAV1lOPsBMAsGCWCGSAFlAwQCAaCBkzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDA3MDgyMDEyNDJaMCgGCSqGSIb3DQEJNDEbMBkwCwYJYIZIAWUDBAIBoQoGCCqGSM49BAMCMC8GCSqGSIb3DQEJBDEiBCApyS76wnLoE50m8IN9nTK248Tj2K1je76z+IIKEH9OezAKBggqhkjOPQQDAgRHMEUCICX1jTpwsrHaEmjy4gJl+IRLdrIwcTuqJQN+f/qDpoxkAiEA8SdYhqpQXCWZOWWWPMbVu1PprUyQ4RlDcG9bA4wTggkAAAAAAAA=", "version": "EC_v1", "keyHash": "xVC/RhZQk4eWVtID9DMSnzoRnBoGF7z3jvm4iWztpis=", "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmwK0foCYZAwrPM4AzSkhemnkqr8ZWdYQKDGUENGwpP3xJyiiwckTP6cqgkzBHI4nXP1iGaFbh2KNIOBQ2nI0jw==" } ``` Response: ```json { "requestId": "96d74c8f-9195-432d-bbbe-5f3337052dbc", "walletTransactionId": "27ed51c15512070be3058fb6070c2e63ddd69ca2e75b3187e2af6faf92ba2901", "messages": { "responseStatus": "OK", "responseCode": "200" }, "accountHolder": { "accountNumber": "4761220000000237", "expiry": { "monthNumber": "06", "yearNumber": "2026" }, "transactionAmount": 100, "cryptogramDetail": { "tokenAuthenticationValue": "AAABAIcJIo7DIzAgVAkiAAAAAAA=", "deviceManufacturerId": "040010030273", "paymentDataType": "3DSecure", "electronicCommerceIndicator": "7" }, "multiTokenAuthenticationResponses": [ { "externalMerchantId": "32de34ec-77df-4f06-a62c-58541a36ea04", "walletServiceProviderCryptogram": "AAABAIcJIo7DIzAgVAkiAAAAAAA=", "transactionAmount": 40 }, { "externalMerchantId": "0442c25b-7be8-437b-b1bc-4da66b1d114a", "walletServiceProviderCryptogram": "AAABAIcJIo7DIzAgVAkiAAAAAAA=", "transactionAmount": 174 } ] } ```