> For the complete documentation index, see [llms.txt](https://docs.musepay.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.musepay.io/integration/acquiring-api/checkout-payment-methods.md).

# Checkout Payment Methods

Choose between multi-chain and specified-chain Checkout Mode payments.

Checkout Mode supports two payment experiences controlled by `payment_method`. Choose whether the user can select a supported USDT network on the checkout page or whether your order requires a specific network.

## At a glance

| Checkout experience      | `payment_method` | `currency` or `pay_currency`                | User experience                                                                    |
| ------------------------ | ---------------- | ------------------------------------------- | ---------------------------------------------------------------------------------- |
| Multi-chain checkout     | `on_line`        | `USDT`                                      | The checkout page lets the user choose any supported network for USDT.             |
| Specified-chain checkout | `on_chain`       | A chain-specific asset such as `USDT_TRC20` | The checkout page and returned payment address are fixed to the specified network. |

## Which currency field to use

The field depends on how the order amount is denominated:

* For a crypto-denominated order, set `currency` to `USDT` or a chain-specific USDT asset.
* For a fiat-denominated order, set `currency` to the fiat currency and use `pay_currency` to control how the user pays.

## Multi-chain checkout with `on_line`

Use `payment_method=on_line` when you want the user to choose the payment network on the hosted checkout page. Set the applicable payment asset field to the generic `USDT` code.

For a crypto-denominated order, the relevant fields are:

```json
{
  "payment_method": "on_line",
  "currency": "USDT"
}
```

For a fiat-denominated order, keep the fiat currency in `currency` and set `pay_currency` to `USDT`:

```json
{
  "payment_method": "on_line",
  "currency": "IDR",
  "pay_currency": "USDT"
}
```

The user can then choose any USDT network supported by MusePay.

<figure><img src="https://4031060132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F847OCU8wHOemogNwwSWc%2Fuploads%2Fgit-blob-1ea6742e7369b5d388e296a211c1ad6d988bac64%2Fcheckout-on-line.png?alt=media" alt="Hosted checkout generated with payment_method set to on_line"><figcaption><p>The <code>on_line</code> checkout lets the user select a supported USDT network before paying.</p></figcaption></figure>

{% content-ref url="/pages/HoJQJEilKz0f3nEgwNJ0" %}
[Multiple Chain Checkout](/reference/api-reference/acquiring-api/checkout-mode/multiple-chain-checkout.md)
{% endcontent-ref %}

## Specified-chain checkout with `on_chain`

Use `payment_method=on_chain` when the order must be paid on a specific network. Set the applicable payment asset field to a chain-specific code such as `USDT_TRC20`.

For a crypto-denominated order, the relevant fields are:

```json
{
  "payment_method": "on_chain",
  "currency": "USDT_TRC20"
}
```

For a fiat-denominated order, keep the fiat currency in `currency` and specify the network in `pay_currency`:

```json
{
  "payment_method": "on_chain",
  "currency": "IDR",
  "pay_currency": "USDT_TRC20"
}
```

The hosted checkout page and the address returned for the order will accept USDT on that network only.

{% content-ref url="/pages/OAfroRDTw59IpAnZrZWq" %}
[Specified Chain Checkout](/reference/api-reference/acquiring-api/checkout-mode/specified-chain-checkout.md)
{% endcontent-ref %}

{% hint style="warning" %}
Use the generic `USDT` code only with `on_line`. With `on_chain`, select a chain-specific USDT code from [Supported Assets](/reference/supported-assets.md). Sending funds over a different network may result in the payment not being credited.
{% endhint %}

## Related references

* [Create Checkout Order](/reference/api-reference/acquiring-api/checkout-mode.md)
* [Checkout Payment Amount Handling](/integration/acquiring-api/checkout-payment-amount-handling.md)
* [Order webhook](/integration/webhook/order.md)
