display.paymentMethods when
creating a session:
| Mode | Behavior |
|---|---|
{ "mode": "auto" } | Localized picker: Daimo picks and orders methods per user. Recommended. |
{ "mode": "fixed", "type": … } | Exactly one payment method, no picker. |
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:| User country | Localized methods (in order) |
|---|---|
| United States | Apple Pay, Bank transfer, Cash App, Coinbase |
| Canada | Bank transfer, Coinbase |
| United Kingdom | Binance / Coinbase |
| Europe (SEPA) | Bank transfer, Binance / Coinbase |
| Switzerland | Bank transfer, Mt Pelerin |
| Argentina | Bank transfer, Binance / Lemon, USDT on Tron |
| Brazil | Binance, USDT on Tron |
| Mexico | Binance, USDT on Tron |
| Japan | Bank transfer, Binance, USDT on Tron |
| Other / unrecognized | Binance, USDT on Tron |
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 checkout, a bank-transfer-only
deposit.
Fixed types
type | Payment method |
|---|---|
ConnectedWallet | The user’s connected browser wallet |
Interac | Interac (Canada) |
ACH | ACH bank transfer (US) |
SEPA | SEPA bank transfer (Europe) |
ApplePay | Apple Pay (US) |
CashApp | Cash App (US) |
Coinbase | Coinbase |
Binance | Binance |
Lemon | Lemon (Argentina) |
BitgetExchange | Bitget |
BybitExchange | Bybit |
MtPelerin | Mt Pelerin (Switzerland) |
Tron | USDT deposit on Tron |
ARS | ARS bank transfer (Argentina) |
JPYC | JPYC (Japan and more) |
Stripe | Stripe onramp (US) |
POST /paymentMethods requests: a
session fixed to Coinbase rejects { "type": "fiat" }.
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:
| If you set… | Use instead |
|---|---|
| Nothing | paymentMethods: { mode: "auto" } |
paymentOptions: ["Coinbase"] (single rail) | paymentMethods: { mode: "fixed", type: "Coinbase" } |
| A curated multi-option array | paymentMethods: { mode: "auto" } |
Reference
- Create Session —
display.paymentMethods. - Fiat — supported rails, verification, and org configuration.
- Sessions — lifecycle, statuses, and the credential model.
- Advanced Sessions — legacy
paymentOptionsreference.