Reference · v1

FX rates

Merchant offramp rate and OnSwitch onramp reference quotes.

Two rate endpoints, two directions. Offramp is what you use for settlement and checkout today; onramp is a live OnSwitch reference quote for planning (Xpend does not process onramps yet).

Offramp — merchant settlement rate

GET/v1/fx-ratesGet merchant offramp FX rate

Query params: fiat_currency (default NGN), optional storefront_id for storefront-scoped pricing. Any valid merchant API key may call this endpoint.

{
  "data": {
    "environment": "test",
    "direction": "offramp",
    "fiat_currency": "NGN",
    "fiat_currency_meta": {
      "code": "NGN",
      "display_name": "Nigerian Naira",
      "symbol": "₦",
      "display_decimals": 4
    },
    "crypto_chain": "ethereum",
    "crypto_token": "usdc",
    "merchant_rate": "1485.50",
    "rate_unit": "fiat_per_stablecoin",
    "quoted_at": "2026-07-08T12:00:00.000Z",
    "storefront_id": null
  }
}

merchant_rate is your dedicated platform offramp rate (fiat per 1 stablecoin), including merchant pricing adjustments. It is not the raw OnSwitch provider rate.

Onramp — provider reference rate

GET/v1/fx-rates/onrampGet onramp FX reference rate

Query params: fiat_currency (default NGN). Any valid merchant API key may call this endpoint.

{
  "data": {
    "environment": "test",
    "direction": "onramp",
    "country": "NG",
    "fiat_currency": "NGN",
    "fiat_currency_meta": {
      "code": "NGN",
      "display_name": "Nigerian Naira",
      "symbol": "₦",
      "display_decimals": 4
    },
    "crypto_chain": "ethereum",
    "crypto_token": "usdc",
    "provider_asset": "ethereum:usdc",
    "provider_rate": "1500.50",
    "channel": "BLOCKCHAIN",
    "rate_unit": "fiat_per_stablecoin",
    "quoted_at": "2026-07-08T12:00:00.000Z"
  }
}

Onramp vs offramp

This calls OnSwitch POST /onramp/rate (fiat → stablecoin), not /offramp/rate. provider_rate is not merchant-adjusted. Xpend does not execute onramps today — use this for display, quoting, or future product planning.