Apple Pay in a cross-origin iframe fails with "Payment Not Completed"

Request
Allow Apple Pay via the Web Payments SDK when the payment form is in a cross-origin iframe, e.g. by letting us pass the top-level page’s domain for merchant validation when that domain is registered for Apple Pay with our application.

Use case
We’re a ticketing platform. Organizers embed our checkout on their own websites in an iframe (e.g. page example.com, checkout tickets.example.com). Card and Google Pay work there, but Apple Pay opens and immediately closes with “Payment Not Completed”.

Partner support confirmed this is because the SDK validates the merchant against the iframe’s domain while Apple checks the top-level page’s domain, and the SDK can’t see the top-level domain. Registering and verifying both domains doesn’t help.

Current workaround
When embedded, we open Apple Pay in a new tab. It works, but adds an extra step for buyers and takes them away from the organizer’s site.

Welcome to the Developer Forum!

Registering both domains doesn’t change the domain selected for the payment session. Apple’s cross-origin support still requires that session to use the top-level domain, and the SDK doesn’t currently document an option to supply it. Your working new-tab checkout remains the practical workaround for now.

I’ve passed this along as a feature request to the Web Payments SDK team. I can’t give a timeline, but we’ll update this thread if anything changes. Thank you so much for your feedback!

1 Like