Skip to main content
Not available yet. Both rate endpoints answer 503 not_configured. No FX pricing source is wired to this deployment, and a made-up rate is a price somebody moves money on. The shape below is the contract they will answer with.
Two ways to read FX for the bank rail. GET /v1/rates lists the live rate for every pair - use it for display. POST /v1/rates/quote locks a rate for one conversion - use it when you show a user a figure they will act on. For card payments, rates come from GET /v1/card/rate instead - the card rail prices differently.

GET /v1/rates

Lists every currency pair with its live rate. No parameters.
array
One entry per pair.
A listed rate is indicative. It moves with the market and nothing is held for you. Anything a user commits money against goes through /v1/rates/quote.

POST /v1/rates/quote

Locks a rate for one conversion. The rate holds for two minutes - convert within the window or quote again.
string
required
ISO 4217 code of the currency being converted from.
string
required
ISO 4217 code of the currency being converted to.
string
Amount to convert, as a decimal string in currencyIn’s major unit. Send either this or amountOut, not both.
string
Amount that must land, as a decimal string in currencyOut’s major unit. The input side is solved backwards from it.

Response

string
The quote id.
string
Echo of the input currency.
string
Echo of the output currency.
string
What goes in, as a decimal string.
string
What comes out, as a decimal string.
string
The locked rate: units of currencyOut per one unit of currencyIn, spread included.
number
The spread inside rate, in basis points.
string
ISO 8601 timestamp when the lock ends - two minutes after creation. After it, the quote is only a record of what was once offered.

Errors