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