Get an FX quote
curl --request GET \
--url https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"quoteId": "fxq_8a2c4e6f",
"currencyOne": "GBP",
"currencyTwo": "HKD",
"amountCurrency": "GBP",
"amount": 100,
"rate": 10.2345,
"price": 1023.45,
"tenor": "SPOT",
"valueDate": "2026-06-20T00:00:00Z",
"validUntil": "2026-06-18T10:33:00Z"
}
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}Payments
Get an FX quote
Get a rate before sending money abroad.
GET
/
v1
/
accounts
/
{accountId}
/
fx
/
quote
Get an FX quote
curl --request GET \
--url https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.next.orenda.finance/v1/accounts/{accountId}/fx/quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"quoteId": "fxq_8a2c4e6f",
"currencyOne": "GBP",
"currencyTwo": "HKD",
"amountCurrency": "GBP",
"amount": 100,
"rate": 10.2345,
"price": 1023.45,
"tenor": "SPOT",
"valueDate": "2026-06-20T00:00:00Z",
"validUntil": "2026-06-18T10:33:00Z"
}
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}{
"success": false,
"code": "<string>",
"message": "<string>"
}This gives you a rate for changing one currency into another. You then pass the
quoteId
to the International transfer endpoint. A quote only
lasts until the validUntil time, so use it before then.
Not every program supports FX quotes. If yours doesn’t, this endpoint returns
501 not_available — treat that as “this feature is off for my program.” See
Program capabilities.amountCurrency must match either currencyOne or currencyTwo. It tells us which side
of the pair your amount is in.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Account identifier. The account determines which optional features and limits apply.
Query Parameters
Source currency (ISO 4217)
Required string length:
3Target currency (ISO 4217)
Required string length:
3Which currency amount is denominated in; must equal currencyOne or currencyTwo.
Required string length:
3Available options:
ON, TN, SPOT Optional valuation date.
⌘I