display.paymentMethods when
creating a session:
Note that
paymentMethods supersedes the older display.paymentOptions
array. Set one or the other, never both; omit both to keep the current default
behavior. See migrating from paymentOptions.Auto mode
{ "mode": "auto" } renders a payment method picker localized to the user’s
country: which methods appear, in what order, and how they’re grouped.
What auto renders
Featured methods by country:
Revolut Ramp is shown only for open-amount sessions. Coinbase is available
broadly except in Japan. Runtime provider availability can also remove a method
from the featured row.
Beyond the featured methods, users can always open the full list: self-custody
wallets, deposit addresses on every supported chain, and more exchanges.
Bank rails fold into a single Bank transfer entry that expands to the rails
available in the user’s country. Fiat rails appear only when enabled for your
org; see Fiat.
Fixed mode
{ "mode": "fixed", "type": … } pins the session to one payment method. The
user skips the picker and goes straight into that flow. Use it when you already
know how the user should pay: a Coinbase-only flow, a bank-transfer-only
deposit.
Fixed types
A fixed session accepts only matching
POST /paymentMethods requests: a
session fixed to Coinbase rejects { "type": "fiat" }.
Deeplink-only methods such as RevolutRamp navigate directly and do not call
POST /paymentMethods.
Fixing to a fiat type still requires that rail to be enabled for your org. See
Fiat.
Migrating from paymentOptions
display.paymentOptions keeps working for existing integrations. New
integrations should use paymentMethods:
The full legacy reference lives in
Advanced Sessions.
Reference
- Create Session -
display.paymentMethods. - Fiat - supported rails, verification, and org configuration.
- Sessions - lifecycle, statuses, and the credential model.
- Advanced Sessions - legacy
paymentOptionsreference.