Payment setup config
ThepaymentSetupConfig is the runtime payment configuration for a store. It tells your client code:
- Which payment methods are enabled for this merchant
- How each method is wired (which processor handles it)
- What metadata your browser code needs to render the right UI
Discover what a merchant has enabled
setup is a flat object keyed by "{method}" or "{method}:{provider}":
The two-dimensional shape
Every entry has two coordinates:| Field | Question it answers | Examples |
|---|---|---|
method | What does the customer see? | card, apple_pay, google_pay, klarna, ideal, bancontact, twint, paypal |
provider | Which infrastructure handles it? | tagada, apple_pay (native), google_pay (native), stripe, airwallex, adyen, oceanpayment |
method can ship through different providers. This is intentional — merchants legitimately need Klarna through Stripe in EU and Klarna through Airwallex in APAC, for example.
The key naming convention:
| Pattern | Meaning |
|---|---|
"card" | The default card flow (provider implicit) |
"apple_pay" | Native wallet path (provider = apple_pay) |
"apple_pay:stripe" | Wallet routed through Stripe Payment Request |
"klarna:stripe" | Klarna routed through Stripe |
"klarna:airwallex" | Klarna routed through Airwallex |
"express_checkout:proc_xxx" | Stripe Express Checkout Element (one widget, multiple methods) |
Field reference
Common patterns
Render the right buttons
Filter by currency
Filter by country
Provider catalog
| Provider | Methods commonly available | Browser SDK loaded |
|---|---|---|
tagada | card, paypal (native), redirect APMs via Tagada-managed processors | None |
apple_pay | apple_pay only | Apple Pay JS SDK |
google_pay | google_pay only | Google Pay JS SDK |
stripe | card (cascade), apple_pay, google_pay, link, klarna, ideal, bancontact, twint, blik, affirm, paypal, afterpay | Stripe.js (only if you render express_checkout or card:stripe) |
airwallex | card, klarna, afterpay, ideal, bancontact, twint, paypal, skrill | Airwallex SDK (when needed) |
adyen | card, redirect APMs | Adyen Web Components (when needed) |
oceanpayment | card, regional APMs | None |
hipay | card, oney | HiPay SDK (when needed) |
ngenius | card, regional MENA APMs | None |
mastercard | card | None |
What changes after the call?
paymentSetup.get(storeId) is a snapshot. It can change:
- A merchant turns on a new payment method via your dashboard
- An operator adjusts processor routing
- A KYB review unlocks an additional capability
- Page reload
- Currency change (some methods filter by
presentmentCurrencies) - Country change (some filter by
supportedCountries)
Versioning
ThepaymentSetupConfig shape is stable — new fields are added in a backwards-compatible way. We don’t remove or rename fields without a major version bump of the API.
If you see an unfamiliar key (e.g. a new method), the safe behavior is to ignore it. Your existing code keeps working until you opt into rendering the new method.