Short answer
Register every domain and subdomain that shows the payment form on the Payment method domains page, in live mode as well as each sandbox. If the form sits in an iframe, register both domains. Then confirm the wallets are on in your Payment Method Configurations, and test on a device with a real card in the wallet, outside a private window.
Why the wallet button is missing, and the fix
01
The domain isn’t registered, or only in one environment
“You must register every domain and sub-domain separately for each environment, including live mode and each sandbox.” Stripe, Test Apple and Google wallet rendering
Stripe needs each web domain that shows Elements or the embedded Checkout form registered, including www and other subdomains. A domain registered in a sandbox doesn’t cover live mode, while Stripe says a domain registered in live mode is also registered in your sandboxes automatically. Add it on the Payment method domains page in the Dashboard, or with the API.
curl https://api.stripe.com/v1/payment_method_domains \ -u "sk_test_...:" \ -d "domain_name=example.com"02
The payment form is inside an iframe
“If the top-level domain differs from the iframe domain, the top-level domain and the iframe’s source domain must both be registered payment method domains on the associated account.” Stripe, Register payment method domains
If your checkout loads in an iframe from another domain, Stripe needs both domains registered. For Apple Pay, the iframe also needs allow="payment", and browsers before Safari 17 need the two origins to match.
03
The wallets aren’t turned on for your integration
“Enable supported wallets in your Payment Method Configurations to make sure Dynamic Payment Methods can render them.” Stripe, Test Apple and Google wallet rendering
With dynamic payment methods, Stripe shows what your Payment Method Configuration allows. If you list payment method types yourself, wallets come with card: include card when you create the PaymentIntent or initialize Elements.
04
The test device doesn’t qualify
“Don’t use a Chrome incognito window or Safari private window.” Stripe, Test Apple and Google wallet rendering
The wallet needs at least one card, the browser must be allowed to check for payment methods, and the device and region must be supported. Stripe’s wallet test page shows whether your device can see the wallet at all, before you debug your own code.
Checked against the vendor’s docs on : Stripe docs: Register payment method domains; Stripe docs: Test Apple and Google wallet rendering; Stripe docs: Apple Pay on the web.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.See scope and start
Related: Stripe works in test mode but not live · Stripe card declined: generic_decline · Stripe subscription stuck incomplete · Stripe cancel at period end