The paymentpermission policy is required.In test mode, the frame uses window.confirm to simulate the Apple Pay payment. If your iframe uses the sandbox attribute, you will need to include allow-modals.
When a complete event has status: "failed", the failureCode field indicates the failure category. Use this value — not failureReason — for programmatic branching. failureReason is a human-readable fallback suitable for display when you do not have custom copy for a given code.
failureCode is optional. When the frame cannot classify a failure, it sends
failureReason alone — fall back to showing that message to the customer.
failureCode
Default failureReason
When it fires
Recommended handling
applePayMerchantUnavailable
”Apple Pay is temporarily unavailable. Please try again later.”
Apple Pay merchant validation failed.
Retry after a short delay or offer an alternative payment method.
transactionNotAllowed
”This transaction is not allowed for your account.”
Payment method or account is not eligible (for example, region restriction or KYC limit).
Show the failureReason and guide the customer to resolve the issue or choose a different payment method.
Verification is required before the transaction can proceed. Render the
challenge frame at the provided URL. Do not
construct the URL yourself — use it as-is.
Provide a new quote to the frame. Pass signature as returned by the quote endpoint. Upon receiving this event, the frame disables the Apple Pay button until the quote is revalidated.