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.
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
|
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
{
"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:
{
"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
{
"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:
{
"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
{
"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:
{
"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
}
]
}