Apple Pay Payload
4 min readUpdated Apr 2, 2026
Payment Method Identifier: APPLE_PAY | Payment Type: MOBILE_WALLET
This method allows you to accept Apple Pay payments via the S2S API. Customers authorize payment using Face ID, Touch ID, or passcode on their Apple device. The Apple Pay token can be submitted either encrypted (Exirom decrypts) or with the decrypted card data included.
For integration details, see the Apple Pay guide.
#Required Request Fields
Top-Level Fields
| Field | Type | Description |
|---|---|---|
callbackUrl | String | URL to receive transaction status updates |
successRedirectUrl | String | URL to redirect the customer after successful payment |
failureRedirectUrl | String | URL to redirect the customer after failed payment |
Billing Details (ApmBillingDetails)
| Field | Type | Description |
|---|---|---|
email | String | The customer's email address used for communication or receipts |
#Payload Structure
{
"paymentMethod": "APPLE_PAY",
"paymentType": "MOBILE_WALLET",
"token": {
"paymentData": {
"data": "<encrypted-payment-data>",
"header": {
"publicKeyHash": "<public-key-hash>",
"transactionId": "<transaction-id>",
"ephemeralPublicKey": "<ephemeral-public-key>"
},
"version": "EC_v1",
"signature": "<signature>"
},
"paymentMethod": {
"type": "debit",
"network": "Visa",
"displayName": "Visa 3742"
},
"transactionIdentifier": "<transaction-id>"
},
"decrypted": {
"applicationPrimaryAccountNumber": "<card-pan>",
"applicationExpirationDate": "311231",
"currencyCode": "978",
"transactionAmount": "5000",
"deviceManufacturerIdentifier": "040010030273",
"paymentDataType": "3DSecure",
"paymentData": {
"onlinePaymentCryptogram": "<cryptogram>",
"eciIndicator": "5"
}
}
}Payload Fields
| Field | Type | Required | Description |
|---|---|---|---|
paymentMethod | Enum | Yes | Must be set to APPLE_PAY |
paymentType | Enum | Yes | Must be set to MOBILE_WALLET |
token | Object | Yes | The Apple Pay token object received from the Apple Pay JS API |
decrypted | Object | No | The decrypted payment data. Include this if you decrypt the token yourself; omit or set to null if Exirom handles decryption |
Token Object (token)
| Field | Type | Required | Description |
|---|---|---|---|
paymentData.data | String | Yes | Base64-encoded encrypted payment data |
paymentData.header.publicKeyHash | String | Yes | Hash of the public key used for encryption |
paymentData.header.transactionId | String | Yes | Apple Pay transaction identifier |
paymentData.header.ephemeralPublicKey | String | Yes | Ephemeral public key for key exchange |
paymentData.version | String | Yes | Token version (always EC_v1) |
paymentData.signature | String | Yes | Signature for payment data verification |
paymentMethod.type | String | Yes | Card type (e.g., debit, credit) |
paymentMethod.network | String | Yes | Card network (e.g., Visa, Mastercard) |
paymentMethod.displayName | String | Yes | Display name (e.g., Visa 3742) |
transactionIdentifier | String | Yes | Unique identifier for the Apple Pay transaction |
Decrypted Data (decrypted) — only when merchant handles decryption
| Field | Type | Required | Description |
|---|---|---|---|
applicationPrimaryAccountNumber | String | Yes | The card PAN (DPAN or FPAN) |
applicationExpirationDate | String | Yes | Card expiration date in YYMMDD format |
currencyCode | String | Yes | ISO 4217 numeric currency code (e.g., 978 for EUR) |
transactionAmount | String | Yes | Transaction amount in minor units |
deviceManufacturerIdentifier | String | Yes | Device manufacturer identifier |
paymentDataType | String | Yes | Always 3DSecure for Apple Pay |
paymentData.onlinePaymentCryptogram | String | Yes | Payment cryptogram for 3D Secure |
paymentData.eciIndicator | String | No | ECI value (e.g., 5 for Visa 3DS) |
#Expected apmResponseData (ApplePayResponseData)
{
"paymentMethod": "APPLE_PAY",
"paymentType": "MOBILE_WALLET",
"actionType": "NONE",
"isFinal": true,
"authCode": "5BS7B0",
"providerTransactionId": "payment_e5363ba7d4248237e12e62f96fe488f0"
}#Response Fields
| Field | Type | Description |
|---|---|---|
paymentMethod | Enum | Always APPLE_PAY |
paymentType | Enum | Always MOBILE_WALLET |
actionType | Enum | Always NONE — no customer redirect needed |
isFinal | Boolean | Always true — the result is final |
authCode | String | Authorization code from the payment provider |
providerTransactionId | String | Unique transaction ID from the payment provider |
Was this helpful?