WooCommercePaymentsUpdated for 2026

WooCommerce Apple Pay Not Working

IN
Reviewed by the Instant Nerds Team|Last updated: June 2026
Quick summary

A missing Apple Pay button is usually not a broken store, it is an unmet requirement. Apple Pay only shows in Safari on an Apple device with a card in Apple Wallet, so the first thing to rule out is that you are testing in the wrong browser. After that, the technical requirement most setups miss is domain verification: Apple has to be able to fetch a file from /.well-known/apple-developer-merchantid-domain-association on your domain, and a security plugin or CDN blocking that path is a common reason it fails. The button also needs valid HTTPS and the express checkout switched on in the gateway. This page walks each requirement and how to get the button showing and taking payments.

Key facts at a glance

WooCommerce Apple Pay in 2026

Last updated

Rule this out first
Apple Pay only shows in Safari on a Mac, iPhone, or iPad with a card in Apple Wallet. It never shows in Chrome on Windows or on Android, so the wrong test browser is the most common false alarm.
The technical requirement most miss
Domain verification. Apple must fetch apple-developer-merchantid-domain-association from /.well-known/. If it is blocked or missing, the button never appears.
The common verification breaker
A security plugin or CDN like Cloudflare returning a challenge page or block on the /.well-known/ path, so Apple gets that instead of the file. Allowlist the path.
HTTPS is mandatory
A valid SSL certificate across the whole site. Apple Pay refuses on HTTP, localhost, or an expired or mismatched certificate. An lapsed certificate makes the button vanish.
Where to enable it
WooCommerce, Settings, Payments, Stripe, then the express checkout section. Apple Pay and Google Pay are enabled together, and you pick the checkout, product, and cart pages.
If it shows but will not pay
That is the account, not the button. Apple Pay not enabled on the Stripe account, an unsupported currency, or a test and live key mismatch. The dashboard notes the reason.

Source: the Apple Pay on the Web troubleshooting technote and requirements, the Stripe Apple Pay and account-enablement documentation, the WooCommerce express checkout documentation, and our hands-on store payment work. Get a quote in 60 seconds →

Why the button is missing is usually not a bug

The most useful thing to know about Apple Pay is that it is conditional. The button does not simply appear because you turned it on. Apple only renders it when a specific set of conditions is met, and when any one of them is not, the button quietly does not show, with no error message on the page. So the right way to think about a missing Apple Pay button is not what is broken, but which requirement is unmet, because almost always it is a requirement rather than a fault.

The first and most common of these trips up nearly every store owner at least once. Apple Pay is an Apple technology, so it only runs in Safari on an Apple device, a Mac, an iPhone, or an iPad, and only when that device has a card saved in Apple Wallet. It does not run in Chrome, even on a Mac, it does not run in any browser on Windows, and it does not run on Android. So if you set up Apple Pay and then check your store in Chrome on your laptop, you will not see the button, and nothing is wrong. The store is fine. You are simply looking from a device that cannot show Apple Pay.

Once you are testing in Safari on an Apple device with a card in Wallet and the button still does not show, then you have a real configuration issue, and it is almost always one of three: the domain has not been verified with Apple, the site is not on valid HTTPS, or the express checkout is not enabled in the gateway. The rest of this page is those requirements in order, starting with the four that must all be true for the button to appear.

The four requirements for the button

For the Apple Pay button to appear, all four of these have to be true at once. If the button is missing, one of them is not, and this is the checklist to walk.

RequirementWhat it means
An eligible visitorSafari on a Mac, iPhone, or iPad, with a card saved in Apple Wallet. The button never shows in Chrome, Firefox, or on Android.
A verified domainApple must be able to fetch the apple-developer-merchantid-domain-association file from /.well-known/ on your domain.
Valid HTTPSA valid SSL certificate across the whole site. Apple Pay refuses on HTTP, localhost, or an expired or mismatched certificate.
Express checkout enabledThe express or Payment Request buttons switched on in the gateway, and the pages you want them on selected.

The first requirement is about the visitor and is the one to check before anything else, because it explains most false alarms. The other three are configuration on your side, and the one that most often goes wrong, and is the hardest to spot, is domain verification, which has its own section below.

Which symptom matches yours

Find the row that matches what you see. Each one points to a specific requirement and fix.

SymptomMost likely root cause
The Apple Pay button never shows, even at checkoutEither you are testing where it cannot appear, not Safari on an Apple device, or the domain is not verified with Apple. Test in Safari on an iPhone or Mac, then check verification.
It shows in Safari on your Mac but not for some customersThose customers are on a non-Apple device or browser, or have no card in Apple Wallet. This is expected, not a fault.
The gateway says "Apple Pay domain registration failed"Apple cannot fetch the verification file. It is missing, behind a redirect, or blocked by a security plugin or CDN on the /.well-known/ path.
The button shows but the payment fails when tappedA payment-account issue: Apple Pay not enabled on the account, an unsupported currency, or a test and live key mismatch. The gateway dashboard notes the reason.
It worked, then stopped after a host or domain change or adding CloudflareDomain verification or the /.well-known/ file did not survive the move, or a new security layer is intercepting the path. Re-register and allowlist the path.
The button is missing only on product or cart pagesExpress checkout is enabled but those pages are not selected in the gateway settings. Turn the buttons on for the product and cart pages.

The six causes

Apple Pay not working on WooCommerce is almost always one of these six, in roughly this order of likelihood.

1. Testing where Apple Pay cannot appear

The most common cause, and not a fault. Apple Pay only shows in Safari on a Mac, iPhone, or iPad with a card in Apple Wallet. Checking in Chrome, on Windows, or on Android will never show the button. Test on the right device before assuming anything is broken.

2. The domain is not verified with Apple

The top technical cause. Apple verifies you own the domain by fetching the apple-developer-merchantid-domain-association file from /.well-known/. If it is missing or registration has not been completed in the gateway, Apple will not render the button. Covered in detail below.

3. A security plugin or CDN blocking the path

The most common reason verification fails even when the file exists. A security plugin, firewall, or CDN like Cloudflare can intercept the /.well-known/ path with a challenge, a redirect, or a block, so Apple receives that instead of the file. Allowlisting the path so it is served directly fixes it.

4. No HTTPS or an invalid certificate

Apple Pay requires a valid SSL certificate across the whole site and will not run on HTTP or with an expired or mismatched certificate. A lapsed certificate or mixed content can make the button silently disappear, so confirming clean HTTPS is a quick, worthwhile check.

5. Express checkout not enabled, or not on the right pages

Apple Pay rides on the express checkout, or Payment Request, buttons in the Stripe gateway, which cover Apple Pay and Google Pay together. If that is off, there is no button anywhere. If it is on but a page is missing, the button shows on some pages and not others, which is just the page selection in the settings.

6. The payment account is not eligible

If the button shows but the payment fails, Apple Pay may not be enabled on your Stripe account, your store currency may not be supported, or your keys may not match the mode you are in. This is an account-side issue rather than a domain or browser one, and the gateway dashboard usually explains the decline.

The domain verification file

This is the requirement worth understanding in detail, because it is the most common technical reason Apple Pay does not show and the hardest to spot, since it fails silently. Before Apple will render the button on your domain, it has to confirm you control that domain. It does this by fetching a specific file from a specific path: https://your-domain.com/.well-known/apple-developer-merchantid-domain-association. Your payment provider supplies the contents of that file, and in WooCommerce the Stripe gateway normally registers your domain automatically through its API, placing the file and completing the exchange with Apple for you.

The trouble starts when Apple cannot fetch that file cleanly. The path has to return the file itself, directly, over HTTPS, with no redirect and nothing standing in front of it. So verification fails if the file was never placed, if a migration left it behind, or, most commonly, if something on your site intercepts the request. A security plugin can answer the path with a login or a challenge. A firewall or a CDN like Cloudflare can serve a bot-challenge page or a cached block instead of the file. A redirect rule can bounce the path elsewhere. In every one of these cases the file is effectively unreachable to Apple, registration fails, and the button never appears, even though everything else is correct.

The one test that tells you

Open https://your-domain.com/.well-known/apple-developer-merchantid-domain-association in a browser. If it downloads or shows the file contents, the path is reachable and verification should work. If you get a 404, a login or challenge page, or a redirect, that is exactly what Apple is getting too, and it is why the button is missing. The fix is to make that path serve the file directly, by re-registering the domain in the gateway and allowlisting /.well-known/ through any security or CDN layer.

DIY vs hand it off

Testing on the right device and toggling express checkout is a reasonable self-fix. A blocked verification path, a CDN config, or an account eligibility issue is where handing it off saves time. If the left column matches you can likely do this. If the right column matches, get help.

Realistic on your own

  • You can test in Safari on an iPhone or Mac with a card in Wallet
  • You just need to enable express checkout and pick the pages
  • The Register Domain button in the gateway completes successfully
  • The .well-known file loads directly when you visit it
  • Your SSL certificate is valid and the site is fully HTTPS
  • It is a page-selection issue, showing on checkout but not product pages

Hand it off, save the time

  • Domain registration keeps failing and you cannot see why
  • The .well-known path returns a challenge or redirect you cannot clear
  • A CDN or security layer needs configuring to allowlist the path
  • The button shows but payments are declined at the account level
  • Apple Pay broke after a migration or going behind Cloudflare
  • It is a live store losing the faster Apple Pay checkout on every sale

How to diagnose it

Work in this order. The first step prevents the most common wasted hour.

1
Test on an Apple device in Safari

Open your store in Safari on an iPhone or Mac that has a card in Apple Wallet. If the button shows there, Apple Pay is working and any other browser not showing it is expected.

2
Load the verification file directly

Visit your-domain.com/.well-known/apple-developer-merchantid-domain-association. If you get the file, the path is fine. A 404, a challenge, or a redirect is your cause.

3
Check the gateway domain registration

In the Stripe gateway settings, confirm your domain is registered for Apple Pay. If it says registration failed, that ties to the file being unreachable above.

4
Confirm HTTPS is valid sitewide

Make sure the site loads over HTTPS with a valid, current certificate and no mixed content. An expired certificate quietly disables Apple Pay.

5
Confirm express checkout is enabled

In WooCommerce, Settings, Payments, Stripe, check the express checkout or Payment Request buttons are on, and that the product, cart, and checkout pages are selected.

6
For a failed payment, read the dashboard

If the button works but the charge fails, the Stripe dashboard notes whether it was Apple Pay not enabled on the account, an unsupported currency, or a key or mode mismatch.

How to fix it

Each branch matches a cause. Verify on a real Apple device in Safari after each change.

Verify the domain with Apple

In the Stripe gateway settings, use the option to register or verify your domain for Apple Pay, which places the file and completes the exchange. Then confirm the file is reachable.

# This must return the file directly, no redirect, no challenge
https://your-domain.com/.well-known/apple-developer-merchantid-domain-association

# Quick check from a terminal: expect HTTP 200 and a file body
curl -I https://your-domain.com/.well-known/apple-developer-merchantid-domain-association

Unblock the /.well-known/ path

If the path returns a challenge, login, or redirect, allowlist it so it is served directly. In a security plugin or firewall, add an exception for the path. In Cloudflare, add a rule that skips security and caching for it.

Allowlist this path through every security and CDN layer:
  /.well-known/apple-developer-merchantid-domain-association

- Security plugin: add the path to its allowlist or whitelist
- Cloudflare: a configuration rule to skip the challenge and cache
- Redirect rules: make sure none rewrite or bounce /.well-known/

Then re-register the domain in the gateway so Apple fetches the file successfully.

Enable express checkout and pick the pages

Turn on the express checkout buttons in the gateway and select where they appear. Apple Pay and Google Pay are enabled together.

WooCommerce -> Settings -> Payments -> Stripe
  -> Payment methods / Express checkout
  -> Enable express checkout (Payment Request Buttons)
  -> Show on: Checkout, Product pages, Cart

Fix HTTPS or account eligibility

If the certificate has lapsed, install or renew a valid SSL certificate and force the whole site to HTTPS. If the button works but payments fail, enable Apple Pay on the Stripe account, confirm your currency is supported, and check your keys match the mode you are in.

Registration keeps failing, the path is blocked, or payments are declined at the account level?

Let us get Apple Pay working in 2 hours →

A real Apple Pay session

A composite from the store payment work we do most weeks, with identifying details removed.

Scenario

A store owner reported that Apple Pay was not showing anywhere, and they had been trying to debug it for a day. They were checking on a Windows laptop in Chrome, where Apple Pay can never appear, so the first thing was to get them onto an iPhone in Safari. Even there, the button still did not show.

Diagnosis

The Stripe settings showed Apple Pay domain registration had failed. Loading /.well-known/apple-developer-merchantid-domain-association directly returned the security plugin’s bot-challenge page rather than the file, so Apple could not fetch it to verify the domain. HTTPS and the express checkout setting were both fine; the block on that one path was the entire problem.

Resolution

We allowlisted the /.well-known/ path in the security plugin so it served the file directly, confirmed the file then loaded cleanly, and re-ran the domain registration in Stripe, which succeeded. On an iPhone in Safari the Apple Pay button appeared on the product, cart, and checkout pages, and a test purchase went through.

Total elapsed
Apple Pay live again well inside the 2-hour window, once the verification path was unblocked.

When to stop and hand it off

Testing on the right device and flipping a setting is a fine self-fix. Hand it off when verification will not complete. First, domain registration keeps failing and you cannot tell why. Second, the verification path returns a challenge or redirect you cannot clear, often needing security-plugin or CDN configuration. Third, the button shows but payments are declined at the account level, which is a Stripe account and currency question. Fourth, Apple Pay broke after a migration or going behind Cloudflare and you need it back fast on a live store. We test on a real Apple device, make the verification file reachable, allowlist the path through any security or CDN layer, re-register the domain, enable express checkout on the pages you want, and confirm the account is eligible for your currency. Flat $49 to $149, done in two hours when scope fits, money back if we cannot get Apple Pay showing and taking payments for eligible visitors.

Get a quote in 60 seconds

WooCommerce Apple Pay FAQ

Why is the Apple Pay button not showing on my WooCommerce store?

Most often because the visitor, or you while testing, is not eligible to see it, and that is not a bug. Apple Pay only appears in Safari on an Apple device, a Mac, iPhone, or iPad, and only when that device has a card saved in Apple Wallet. It will never show in Chrome on Windows, in Chrome or Firefox on a Mac, or on an Android phone, because those cannot run Apple Pay. So the single most common reason a store owner thinks Apple Pay is broken is that they checked in the wrong browser. The reliable test is to open your store in Safari on an iPhone or a Mac that has a card in Wallet. If the button shows there, Apple Pay is working. If it does not show even there, then the real causes apply, the top one being that your domain has not been verified with Apple, which is the technical requirement most setups miss.

What is the apple-developer-merchantid-domain-association file and why does it matter?

It is the file Apple uses to confirm you own the domain that is showing the Apple Pay button, and without it verified, Apple refuses to render the button. The verification works by Apple fetching a specific file from your site at the exact path /.well-known/apple-developer-merchantid-domain-association. Your payment provider, usually Stripe in WooCommerce, supplies this file and normally registers your domain automatically through its API, handling the exchange with Apple for you. The problem is when Apple cannot fetch that file: it is missing, it is being blocked by a security plugin or a CDN, it is behind a redirect, or it returns something other than the file itself. When that happens you see domain registration failed in the gateway settings, and the button never appears. So a large share of Apple Pay problems come down to making sure that one file is reachable at that one path, returned directly with no redirect and no security challenge in the way.

I get "Apple Pay domain registration failed" in my Stripe settings. How do I fix it?

That message means Apple tried to fetch the verification file from your domain and could not, so the fix is to make the file reachable and then re-register. Walk it in order. First, load the file directly in a browser by visiting your-domain.com/.well-known/apple-developer-merchantid-domain-association, and see what comes back. If you get a 404, the file is not there, so re-register through the gateway, which should place it, or upload the file your provider supplies. If you get a security challenge page, a login, or a redirect instead of the file, then a security plugin, firewall, or CDN like Cloudflare is intercepting the path, and you need to allowlist /.well-known/ so it is served directly. If the file loads correctly but registration still fails, confirm the site is on HTTPS with a valid certificate, since Apple will not verify an insecure domain. Once the file is reachable and HTTPS is valid, re-run the domain registration in the gateway and it succeeds.

Does Apple Pay need HTTPS?

Yes, and it is strict about it. Apple Pay on the web only works on a domain served over HTTPS with a valid SSL certificate, across the whole site, not just the checkout page. It will not run on an HTTP page, on localhost, or on a domain whose certificate is expired, mismatched, or otherwise invalid. This is a security requirement of Apple Pay itself, not a WooCommerce setting, so there is no way around it. In practice this means that if your SSL certificate has lapsed or your site is serving any mixed content, Apple Pay can quietly stop appearing. So when the button goes missing, confirming that the site loads cleanly over HTTPS with a valid certificate is a quick and worthwhile check, alongside the domain verification. Most hosts provide a free certificate, so fixing this is usually a matter of installing or renewing it and making sure the whole site is forced to HTTPS.

How do I actually turn Apple Pay on in WooCommerce?

In the WooCommerce Stripe gateway it lives under the express checkout settings, and Apple Pay is enabled as part of that group rather than on its own. Go to WooCommerce, then Settings, then Payments, then the Stripe gateway, and open its payment method or express checkout section. There you enable the express checkout, sometimes called Payment Request Buttons, which covers Apple Pay and Google Pay together, the two cannot be switched on separately in the WooCommerce Stripe integration. Once enabled, you choose which pages show the buttons: the checkout page, individual product pages, and the cart page, so if Apple Pay appears at checkout but not on product pages, that is just a page selection you can change. You also need to have connected your Stripe account and verified your domain with Apple, which the gateway prompts you to do. With the express checkout enabled, the pages selected, the domain verified, and HTTPS valid, the button appears for eligible visitors.

The button shows but the payment fails when a customer taps it. What is wrong?

That is a different problem from the button not appearing, and it points at the payment account rather than the domain or the browser. If the Apple Pay sheet opens and then the payment is declined or errors, the usual causes are that Apple Pay is not fully enabled on your Stripe account, that the transaction currency is one your account does not support for Apple Pay, or that the store is in test mode with live keys or the reverse, so the payment cannot complete. Check that Apple Pay is enabled in your Stripe account settings, that your store currency is supported, and that your API keys match the mode you are operating in. A gateway-side decline will usually leave a note in the Stripe dashboard explaining the reason, which is the fastest way to see whether it was an account, currency, or authentication issue. Once the account is correctly enabled for Apple Pay in your currency, the payment completes.

Apple Pay worked, then stopped after I moved hosts or added Cloudflare. Why?

Because the move changed how your domain serves the verification file, and Apple can no longer fetch it. Two things commonly break Apple Pay after an infrastructure change. First, a migration can leave the domain unverified on the new setup, or the /.well-known/apple-developer-merchantid-domain-association file may not have come across, so the verification Apple relied on is gone and the button disappears until you re-register. Second, putting the site behind Cloudflare or a new security layer can start intercepting the /.well-known/ path with a challenge, a cache rule, or a firewall block, so Apple gets a challenge page instead of the file. The fix is to confirm the file is reachable on the new setup, allowlist the /.well-known/ path through any security or CDN layer so it is served directly, and re-register the domain in the gateway. After a host or domain change it is worth checking Apple Pay deliberately, since it fails quietly rather than throwing an obvious error.

Can you get Apple Pay working on my store quickly?

Yes, and it is a common fix for us. We start by confirming what is actually happening, testing in Safari on an Apple device with a card in Wallet so we are not chasing a false alarm from the wrong browser. Then we work the real requirements in order: confirm HTTPS is valid across the domain, load the apple-developer-merchantid-domain-association file directly to see whether it is reachable or being blocked, allowlist the /.well-known/ path through any security plugin or CDN, re-register the domain with Apple through the gateway, enable express checkout on the pages you want, and confirm Apple Pay is enabled on your payment account for your currency. Each of these is quick once you know which one is failing, and the diagnosis is what we are fast at. Flat $49 to $149, done in two hours when scope fits, money back if we cannot get Apple Pay showing and taking payments for eligible visitors.

Sources and further reading

Every technical claim on this page traces back to the Apple Pay on the Web documentation, the Stripe Apple Pay documentation, or the WooCommerce express checkout documentation.

Why we get Apple Pay working faster than trial and error

2h

2-Hour Guarantee

Apple Pay showing and paying in 2 hours or your money back. We know exactly which requirement is failing.

$49

Flat Rate $49 to $149

No hourly billing. Domain verification, the blocked path, HTTPS, and the gateway settings sorted.

100%

Money-Back Guarantee

Cannot get Apple Pay working? You do not pay. Zero risk to you.

Get Apple Pay working on your store

We fix the missing Apple Pay button every week, from domain verification to a blocked path to the gateway settings, and confirm it takes payments. Flat $49 to $149, done in 2 hours when scope fits, money back if we cannot.

Get Apple Pay Working