> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.alphax.asia/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.alphax.asia/_mcp/server.

# Supported routes

A payment route converts money arriving at one end and pays it out at the other.
This page lists the combinations `POST /v1/payment-routes` accepts. Anything
outside them is rejected with a validation error naming the offending field.

## Route explorer

Below, you will find all the routes we support. You can use the filters to search
for the routes you are interested in. The last column is the `type` to send when
you create the route.

## On-ramp — fiat in, stablecoin out

You choose the **fiat currency to receive** and the **stablecoin and chain to pay
out on**. We open a deposit account in that currency; whatever lands there is
converted and sent to your address.

#### Deposit currencies

| `sourceCurrency` | Deposit account          |
| ---------------- | ------------------------ |
| `USD`            | US bank account          |
| `EUR`            | IBAN                     |
| `GBP`            | UK account and sort code |
| `MXN`            | CLABE                    |

You do not pick the deposit rails — the account accepts whichever the
currency supports, and they are listed in `source.paymentRails` when you read
the route back.

#### Payout stablecoins

| `destinationCurrency` |
| --------------------- |
| `USDC`                |
| `USDT`                |
| `USDB`                |

Paid out to `destinationAddress` on the chain you name in
`destinationPaymentRail`.

## Off-ramp — stablecoin in, fiat out

You choose the **stablecoin and chain to receive** and the **bank account to pay
out to**. We open a deposit address; stablecoin sent there is converted and paid
out over the rail you name.

| `sourceCurrency`       | `sourcePaymentRail` |
| ---------------------- | ------------------- |
| `USDC`, `USDT`, `USDB` | any chain below     |

### Payout currencies and rails

The rail must belong to the currency — this is the pairing most integrations get
wrong, and a mismatch is rejected with a `destinationPaymentRail` error.

| `destinationCurrency` | `destinationPaymentRail` | Bank fields required                                           |
| --------------------- | ------------------------ | -------------------------------------------------------------- |
| `USD`                 | `ach`                    | `accountNumber`, `routingNumber`, `checkingOrSavings`, `state` |
| `USD`                 | `wire`                   | `accountNumber`, `routingNumber`, `checkingOrSavings`, `state` |
| `USD`                 | `swift`                  | `accountNumber`, `bic`                                         |
| `EUR`                 | `sepa`                   | `iban`, `bic`, `ibanCountry` (or `country`)                    |
| `GBP`                 | `fps`                    | `accountNumber` (8 digits), `sortCode` (6 digits)              |

`accountOwnerName`, `bankName`, `addressLine1`, `city` and `postalCode` are
required on every off-ramp route.

## Chains

Both directions accept these for `destinationPaymentRail` (on-ramp) and
`sourcePaymentRail` (off-ramp):

| Chain             | Value               |
| ----------------- | ------------------- |
| Arbitrum          | `arbitrum`          |
| Avalanche C-Chain | `avalanche_c_chain` |
| Base              | `base`              |
| Ethereum          | `ethereum`          |
| Optimism          | `optimism`          |
| Polygon           | `polygon`           |
| Solana            | `solana`            |
| Stellar           | `stellar`           |
| Tron              | `tron`              |

Not every stablecoin is issued on every chain. Send a stablecoin to an address on
a chain that does not carry it — or to an address for a different asset — and the
funds are generally **unrecoverable**. Confirm the pairing with us before opening
a route on a combination you have not used before.

## Before a route will open

Two conditions apply regardless of the combination you pick:

* The company must be **activated** by AlphaX, or you get `403 COMPANY_NOT_ACTIVE`.
  See the [Overview](/swap/overview).
* Payment routes must be enabled for the company, and **off-ramp is enabled
  separately from on-ramp** — either being off gives `403 FEATURE_NOT_ENABLED`.