Guides

Exchange Routes

Exchange routes define the available conversion paths between fiat currencies and digital assets. Before creating an order, you should verify that the desired route is supported and currently available.

List All Routes

Retrieve the full list of supported exchange routes.

Endpoint:

GET /v1/exchange-routes/

Request:

curl https://api.stablegate.com/v1/exchange-routes/ \
  --header 'X-Api-Key: YOUR_API_KEY'

Response:

[
  {
    "source": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    },
    "destination": {
      "rail": "ethereum",
      "asset": {
        "code": "USDT",
        "fraction_digits": 6
      }
    }
  },
  {
    "source": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    },
    "destination": {
      "rail": "ethereum",
      "asset": {
        "code": "USDC",
        "fraction_digits": 6
      }
    }
  },
  {
    "source": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    },
    "destination": {
      "rail": "ethereum",
      "asset": {
        "code": "EURC",
        "fraction_digits": 6
      }
    }
  },
  {
    "source": {
      "rail": "ethereum",
      "asset": {
        "code": "USDT",
        "fraction_digits": 6
      }
    },
    "destination": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    }
  },
  {
    "source": {
      "rail": "ethereum",
      "asset": {
        "code": "USDC",
        "fraction_digits": 6
      }
    },
    "destination": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    }
  },
  {
    "source": {
      "rail": "ethereum",
      "asset": {
        "code": "EURC",
        "fraction_digits": 6
      }
    },
    "destination": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    }
  }
]

Response Fields

FieldTypeDescription
source.railstringPayment rail code for the incoming side (e.g., sepa, ethereum)
source.asset.codestringCurrency code for the incoming asset (e.g., EUR, USDT)
source.asset.fraction_digitsintegerMaximum decimal places for amounts in this asset
destination.railstringPayment rail code for the outgoing side
destination.asset.codestringCurrency code for the outgoing asset
destination.asset.fraction_digitsintegerMaximum decimal places for amounts in this asset

Understanding fraction_digits

The fraction_digits value indicates the maximum decimal precision for amounts:

  • EUR has fraction_digits: 2 — amounts can have up to 2 decimal places (e.g., 1000.50)
  • USDC has fraction_digits: 6 — amounts can have up to 6 decimal places (e.g., 1000.123456)

Always respect fraction_digits when specifying amounts in order creation or fee checks.

Check Route Availability

A route may exist in the system but be temporarily unavailable. Before creating an order, check that the specific route is currently operational.

Endpoint:

POST /v1/exchange-routes/check/

Request Body

FieldTypeRequiredDescription
source.railstringYesSource payment rail code
source.asset_codestringYesSource currency code
destination.railstringYesDestination payment rail code
destination.asset_codestringYesDestination currency code

Example: Route Available

Request:

curl https://api.stablegate.com/v1/exchange-routes/check/ \
  --request POST \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "source": {
    "rail": "sepa",
    "asset_code": "EUR"
  },
  "destination": {
    "rail": "ethereum",
    "asset_code": "USDC"
  }
}'

Response:

{
  "available": true,
  "route": {
    "source": {
      "rail": "sepa",
      "asset": {
        "code": "EUR",
        "fraction_digits": 2
      }
    },
    "destination": {
      "rail": "ethereum",
      "asset": {
        "code": "USDC",
        "fraction_digits": 6
      }
    }
  }
}

Example: Route Unavailable

Request:

curl https://api.stablegate.com/v1/exchange-routes/check/ \
  --request POST \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "source": {
    "rail": "swift",
    "asset_code": "USD"
  },
  "destination": {
    "rail": "ethereum",
    "asset_code": "USDC"
  }
}'

Response:

{
  "available": false,
  "route": null
}

Response Fields

FieldTypeDescription
availablebooleantrue if the route is currently operational, false otherwise
routeobject | nullRoute details when available, null when not

Best Practices

  • Cache routes locally but refresh periodically. Routes don't change frequently, but availability can.
  • Always check availability before creating an order to avoid unnecessary errors.
  • Use the check endpoint rather than filtering the list response — it validates the full route configuration.

Rail Codes Reference

CodeTypeDescription
sepaBankSEPA — European bank transfers in EUR
swiftBankSWIFT — International bank transfers
achBankACH — US domestic bank transfers
ethereumCryptoEthereum mainnet
polygonCryptoPolygon (MATIC) network
tronCryptoTron (TRX) network
algorandCryptoAlgorand network
rippleCryptoRipple (XRP) network
stellarCryptoStellar network
xinfinCryptoXinFin (XDC) network
Not all rails are active for exchange routes. Query the API for the current list of supported combinations.

Asset Codes Reference

CodeTypeDescription
EURFiatEuro
USDFiatUS Dollar
GBPFiatBritish Pound
CHFFiatSwiss Franc
USDTStablecoinTether USD
USDCStablecoinUSD Coin
EURCStablecoinEuro Coin
EURSStablecoinSTASIS Euro
Not all assets are available on all rails. The exchange routes endpoint returns the exact supported combinations.

Ready to integrate?

Tell us about your use case and we will enable Partner API access for your account.
Copyright © 2026