Skip to main content
Daimo localizes the deposit experience to the user’s country: Apple Pay and bank transfer in the US, Interac in Canada, SEPA in Europe, Binance and USDT in Argentina — plus self-custody wallets and deposit addresses everywhere. Control what the user sees with display.paymentMethods when creating a session:
ModeBehavior
{ "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.
curl -X POST https://api.daimo.com/v1/sessions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": {
      "type": "evm",
      "address": "0xYourAddress",
      "chainId": 8453,
      "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amountUnits": "25.00"
    },
    "display": {
      "title": "Deposit to Acme",
      "verb": "Deposit",
      "paymentMethods": { "mode": "auto" }
    }
  }'

What auto renders

Featured methods by country:
User countryLocalized methods (in order)
United StatesApple Pay, Bank transfer, Cash App, Coinbase
CanadaBank transfer, Coinbase
United KingdomBinance / Coinbase
Europe (SEPA)Bank transfer, Binance / Coinbase
SwitzerlandBank transfer, Mt Pelerin
ArgentinaBank transfer, Binance / Lemon, USDT on Tron
BrazilBinance, USDT on Tron
MexicoBinance, USDT on Tron
JapanBank transfer, Binance, USDT on Tron
Other / unrecognizedBinance, USDT on Tron
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 checkout, a bank-transfer-only deposit.
curl -X POST https://api.daimo.com/v1/sessions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": {
      "type": "evm",
      "address": "0xYourAddress",
      "chainId": 8453,
      "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amountUnits": "25.00"
    },
    "display": {
      "title": "Deposit to Acme",
      "verb": "Deposit",
      "paymentMethods": { "mode": "fixed", "type": "Coinbase" }
    }
  }'

Fixed types

typePayment method
ConnectedWalletThe user’s connected browser wallet
InteracInterac (Canada)
ACHACH bank transfer (US)
SEPASEPA bank transfer (Europe)
ApplePayApple Pay (US)
CashAppCash App (US)
CoinbaseCoinbase
BinanceBinance
LemonLemon (Argentina)
BitgetExchangeBitget
BybitExchangeBybit
MtPelerinMt Pelerin (Switzerland)
TronUSDT deposit on Tron
ARSARS bank transfer (Argentina)
JPYCJPYC (Japan and more)
StripeStripe onramp (US)
A fixed session accepts only matching 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
NothingpaymentMethods: { mode: "auto" }
paymentOptions: ["Coinbase"] (single rail)paymentMethods: { mode: "fixed", type: "Coinbase" }
A curated multi-option arraypaymentMethods: { mode: "auto" }
The full legacy reference lives in Advanced Sessions.

Reference

  • Create Sessiondisplay.paymentMethods.
  • Fiat — supported rails, verification, and org configuration.
  • Sessions — lifecycle, statuses, and the credential model.
  • Advanced Sessions — legacy paymentOptions reference.