Apple Pay Payment Request
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.
Properties
| Name | Type | Description |
|---|---|---|
| countryCode | string | The two-letter ISO 3166-1 alpha-2 country code for the merchant's country of operation |
| currencyCode | string | The three-letter ISO 4217 currency code for the payment |
| supportedNetworks | array | The payment networks the merchant supports |
| merchantCapabilities | array | The payment capabilities the merchant supports |
| total | object | The total amount for the payment, including the merchant name as the label |
| lineItems | array | A list of line items explaining the charges, such as subtotal, tax, discount, and shipping |
| requiredBillingContactFields | array | The billing contact fields required to process the payment |
| requiredShippingContactFields | array | The shipping contact fields required to fulfill the order |
| shippingMethods | array | Available shipping methods for the order |
| shippingType | string | The type of shipping used for this request, which determines the wording on the payment sheet |
| shippingContactEditingMode | string | Controls whether the shipping contact can be edited on the payment sheet |
| applicationData | string | Base64-encoded application-specific data that is included in the payment token hash for verification |
| supportedCountries | array | 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 |
| recurringPaymentRequest | object | |
| automaticReloadPaymentRequest | object | |
| multiTokenContexts | array | An array of payment token contexts for multi-merchant payments |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://developer.apple.com/schemas/apple-pay/payment-request.json",
"title": "Apple Pay Payment Request",
"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",
"required": [
"countryCode",
"currencyCode",
"supportedNetworks",
"merchantCapabilities",
"total"
],
"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"
}
}
},
"$defs": {
"LineItem": {
"type": "object",
"required": ["label", "amount"],
"properties": {
"label": {
"type": "string",
"description": "A short, localized description of the line item"
},
"amount": {
"type": "string",
"description": "The monetary amount of the line item as a string with decimal notation",
"pattern": "^-?\\d+\\.\\d{2}$"
},
"type": {
"type": "string",
"enum": ["final", "pending"],
"default": "final",
"description": "Whether this is a final or pending amount"
},
"paymentTiming": {
"type": "string",
"enum": [
"immediate",
"recurring",
"deferred",
"automaticReload"
],
"description": "When the payment will be taken"
},
"recurringPaymentStartDate": {
"type": "string",
"format": "date-time",
"description": "The start date for recurring payments"
},
"recurringPaymentIntervalUnit": {
"type": "string",
"enum": ["year", "month", "day", "hour", "minute"],
"description": "The interval unit for recurring payments"
},
"recurringPaymentIntervalCount": {
"type": "integer",
"minimum": 1,
"description": "The number of interval units between recurring payments"
},
"recurringPaymentEndDate": {
"type": "string",
"format": "date-time",
"description": "The end date for recurring payments"
},
"deferredPaymentDate": {
"type": "string",
"format": "date-time",
"description": "The date for a deferred payment"
},
"automaticReloadPaymentThresholdAmount": {
"type": "string",
"description": "The balance threshold that triggers an automatic reload"
}
}
},
"ContactField": {
"type": "string",
"enum": [
"email",
"name",
"phone",
"postalAddress",
"phoneticName"
],
"description": "A contact field that can be requested from the user"
},
"ShippingMethod": {
"type": "object",
"required": ["label", "detail", "amount", "identifier"],
"properties": {
"label": {
"type": "string",
"description": "A short description of the shipping method"
},
"detail": {
"type": "string",
"description": "A longer description of the shipping method"
},
"amount": {
"type": "string",
"description": "The cost of the shipping method",
"pattern": "^-?\\d+\\.\\d{2}$"
},
"identifier": {
"type": "string",
"description": "A unique identifier for the shipping method"
},
"dateComponentsRange": {
"type": "object",
"description": "Estimated delivery date range",
"properties": {
"startDateComponents": {
"$ref": "#/$defs/DateComponents"
},
"endDateComponents": {
"$ref": "#/$defs/DateComponents"
}
}
}
}
},
"DateComponents": {
"type": "object",
"properties": {
"era": { "type": "integer" },
"year": { "type": "integer" },
"month": { "type": "integer" },
"day": { "type": "integer" },
"hours": { "type": "integer" },
"minutes": { "type": "integer" },
"seconds": { "type": "integer" },
"calendar": { "type": "string" }
}
},
"RecurringPaymentRequest": {
"type": "object",
"required": [
"paymentDescription",
"regularBilling",
"managementURL"
],
"description": "Configuration for recurring payments",
"properties": {
"paymentDescription": {
"type": "string",
"description": "A description of the recurring payment"
},
"regularBilling": {
"$ref": "#/$defs/LineItem",
"description": "The regular billing amount and interval"
},
"trialBilling": {
"$ref": "#/$defs/LineItem",
"description": "The trial billing amount and interval, if applicable"
},
"billingAgreement": {
"type": "string",
"description": "A localized billing agreement for display to the user"
},
"managementURL": {
"type": "string",
"format": "uri",
"description": "A URL to manage the recurring payment"
},
"tokenNotificationURL": {
"type": "string",
"format": "uri",
"description": "A URL for receiving lifecycle notifications for the merchant token"
}
}
},
"AutomaticReloadPaymentRequest": {
"type": "object",
"required": [
"paymentDescription",
"automaticReloadBilling",
"managementURL"
],
"description": "Configuration for automatic reload payments (e.g., store cards)",
"properties": {
"paymentDescription": {
"type": "string",
"description": "A description of the automatic reload payment"
},
"automaticReloadBilling": {
"$ref": "#/$defs/LineItem",
"description": "The automatic reload billing amount"
},
"billingAgreement": {
"type": "string",
"description": "A localized billing agreement for display"
},
"managementURL": {
"type": "string",
"format": "uri",
"description": "A URL to manage the automatic reload"
},
"tokenNotificationURL": {
"type": "string",
"format": "uri",
"description": "A URL for receiving lifecycle notifications"
}
}
},
"PaymentTokenContext": {
"type": "object",
"required": [
"merchantIdentifier",
"externalIdentifier",
"merchantName",
"merchantDomain",
"amount"
],
"description": "Context for multi-merchant payment tokens",
"properties": {
"merchantIdentifier": {
"type": "string",
"description": "The merchant identifier for this context"
},
"externalIdentifier": {
"type": "string",
"description": "An external identifier for the merchant"
},
"merchantName": {
"type": "string",
"description": "The merchant's display name"
},
"merchantDomain": {
"type": "string",
"description": "The merchant's domain"
},
"amount": {
"type": "string",
"description": "The amount for this merchant's portion"
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/apple-pay-payment-request"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.