Skip to main content
POST

Register Payment Method Domain

Registers the domain that hosts your checkout page as a Stripe payment method domain. This is required for Apple Pay to appear in the Stripe Payment Element rendered from a Create Charge client_secret. Google Pay does not require domain registration, but registering keeps its status visible alongside Apple Pay. Registration runs on every Stripe account that can render the Payment Element for you:
  • The Khaime US and UK platform accounts (platform-routed charges)
  • Your business’s own Stripe connected account (direct charges)
  • Every active sub-merchant’s connected account, if you operate a marketplace (marketplace charges are created on the sub-merchant’s account, so the domain must be registered there too)
The response reports the result per account, so a partial failure on one account never blocks the others.
Before calling this endpoint, host Stripe’s Apple Pay domain association file at:https://<your-domain>/.well-known/apple-developer-merchantid-domain-associationDownload the file from Stripe’s docs. If the file isn’t live when you register, Apple Pay validation fails — fix the file, then call this endpoint again to re-validate.

Request Body

string
required
The bare domain that hosts your checkout page, e.g. checkout.example.com. Protocols, paths, and ports are stripped automatically (https://checkout.example.com/paycheckout.example.com). Subdomains must be registered individually — registering example.com does not cover checkout.example.com.

Response

string
The normalized domain that was registered.
string
live or sandbox, derived from your API key.
array
One entry per Stripe account the domain was registered on.

Enabling wallets end-to-end

Registering the domain is one of three steps. To actually show Apple Pay / Google Pay on your checkout:
1

Host the association file, then register your domain

Serve the domain association file at the well-known path above, then call this endpoint. Confirm every result shows apple_pay_status: "active" (use the status endpoint to re-check later).
2

Render the Payment Element (not a card-only element)

Wallets only appear in the unified Payment Element. Mount it with the client_secret and publishable_key from Create Charge.Critical for marketplace/direct charges: when the charge response includes stripe_account_id, you must pass it when initializing Stripe.js — otherwise the wallet validation on the connected account is never picked up:
3

Serve checkout over HTTPS and test in a wallet-capable browser

Apple Pay renders only in Safari (macOS/iOS) with a card in Apple Wallet; Google Pay renders in Chrome with a saved card. Not seeing a wallet button in other browsers is expected behavior, not a configuration error.
Wallets appear on one-time charges only. Subscription charges are intentionally card-only because renewals require a reusable card payment method.