> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daimo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Methods

> Localized payment methods for every user, or a single pinned rail

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](/api-reference/create-session):

| Mode                             | Behavior                                                                |
| -------------------------------- | ----------------------------------------------------------------------- |
| `{ "mode": "auto" }`             | Localized picker: Daimo picks and orders methods per user. Recommended. |
| `{ "mode": "fixed", "type": … }` | Exactly one payment method, no picker.                                  |

<Info>
  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](#migrating-from-paymentoptions).
</Info>

## 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.

```bash theme={null}
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 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                        |

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](/guides/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.

```bash theme={null}
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

| `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)                  |

A fixed session accepts only matching
[`POST /paymentMethods`](/api-reference/create-payment-method) 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](/guides/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" }`                    |

The full legacy reference lives in
[Advanced Sessions](/advanced/sessions#payment-options-legacy).

## Reference

* [Create Session](/api-reference/create-session) — `display.paymentMethods`.
* [Fiat](/guides/fiat) — supported rails, verification, and org configuration.
* [Sessions](/guides/sessions) — lifecycle, statuses, and the credential model.
* [Advanced Sessions](/advanced/sessions#payment-options-legacy) — legacy `paymentOptions` reference.
