Apple Pay Payment Request Structure
Represents an ApplePayPaymentRequest used to configure an Apple Pay payment session, specifying the merchant capabilities, supported networks, payment amount, and optional shipping and billing requirements.
Type: object
Properties: 16
Required: 5
AppleContactless PaymentsDigital WalletE-CommerceMobile PaymentsPayments
Apple Pay Payment Request is a JSON Structure definition published by Apple Pay, describing 16 properties, of which 5 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"name": "Apple Pay Payment Request",
"$id": "https://developer.apple.com/schemas/apple-pay/payment-request.json",
"description": "Represents an ApplePayPaymentRequest used to configure an Apple Pay payment session, specifying the merchant capabilities, supported networks, payment amount, and optional shipping and billing requirements.",
"type": "object",
"properties": {
"countryCode": {
"type": "string",
"description": "The two-letter ISO 3166-1 alpha-2 country code for the merchant's country of operation",
"pattern": "^[A-Z]{2}$",
"examples": [
"US",
"GB",
"CA"
]
},
"currencyCode": {
"type": "string",
"description": "The three-letter ISO 4217 currency code for the payment",
"pattern": "^[A-Z]{3}$",
"examples": [
"USD",
"GBP",
"EUR"
]
},
"supportedNetworks": {
"type": "array",
"description": "The payment networks the merchant supports",
"items": {
"type": "string",
"enum": [
"visa",
"masterCard",
"amex",
"discover",
"jcb",
"chinaUnionPay",
"interac",
"privateLabel",
"eftpos",
"cartesBancaires",
"iD",
"quicPay",
"suica",
"mada",
"bancomat",
"bancontact",
"girocard"
]
},
"minItems": 1
},
"merchantCapabilities": {
"type": "array",
"description": "The payment capabilities the merchant supports",
"items": {
"type": "string",
"enum": [
"supports3DS",
"supportsEMV",
"supportsCredit",
"supportsDebit"
]
},
"minItems": 1
},
"total": {
"$ref": "#/$defs/LineItem",
"description": "The total amount for the payment, including the merchant name as the label"
},
"lineItems": {
"type": "array",
"description": "A list of line items explaining the charges, such as subtotal, tax, discount, and shipping",
"items": {
"$ref": "#/$defs/LineItem"
}
},
"requiredBillingContactFields": {
"type": "array",
"description": "The billing contact fields required to process the payment",
"items": {
"$ref": "#/$defs/ContactField"
}
},
"requiredShippingContactFields": {
"type": "array",
"description": "The shipping contact fields required to fulfill the order",
"items": {
"$ref": "#/$defs/ContactField"
}
},
"shippingMethods": {
"type": "array",
"description": "Available shipping methods for the order",
"items": {
"$ref": "#/$defs/ShippingMethod"
}
},
"shippingType": {
"type": "string",
"description": "The type of shipping used for this request, which determines the wording on the payment sheet",
"enum": [
"shipping",
"delivery",
"storePickup",
"servicePickup"
],
"default": "shipping"
},
"shippingContactEditingMode": {
"type": "string",
"description": "Controls whether the shipping contact can be edited on the payment sheet",
"enum": [
"enabled",
"storePickup"
]
},
"applicationData": {
"type": "string",
"description": "Base64-encoded application-specific data that is included in the payment token hash for verification"
},
"supportedCountries": {
"type": "array",
"description": "A list of ISO 3166-1 alpha-2 country codes for cards that can be used for payment. If not specified, all countries are supported",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
}
},
"recurringPaymentRequest": {
"$ref": "#/$defs/RecurringPaymentRequest"
},
"automaticReloadPaymentRequest": {
"$ref": "#/$defs/AutomaticReloadPaymentRequest"
},
"multiTokenContexts": {
"type": "array",
"description": "An array of payment token contexts for multi-merchant payments",
"items": {
"$ref": "#/$defs/PaymentTokenContext"
}
}
},
"required": [
"countryCode",
"currencyCode",
"supportedNetworks",
"merchantCapabilities",
"total"
]
}