curl --request GET \
--url https://api.qbank.cl/platform/v1/rates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/rates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.qbank.cl/platform/v1/rates', 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.qbank.cl/platform/v1/rates",
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.qbank.cl/platform/v1/rates"
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.qbank.cl/platform/v1/rates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/rates")
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{
"base": "USD",
"rates": {
"chile": {
"currency": "CLP",
"rate": "950.25",
"rate_source": "lot",
"payin_rate": "955.10",
"payin_rate_source": "lot"
},
"mexico": {
"currency": "MXN",
"rate": "17.50",
"rate_source": "spot",
"payin_rate": "17.62"
},
"peru": {
"currency": "PEN",
"rate": "3.72",
"rate_source": "spot",
"payin_rate": "3.75"
}
},
"asset_prices": {
"USDT": {
"currency": "USD",
"unit": "usdt",
"price": "1"
},
"USDC": {
"currency": "USD",
"unit": "usdc",
"price": "1"
},
"BTC": {
"currency": "USD",
"unit": "btc",
"price": "109853.24",
"updated_at": "2026-07-07T11:59:41Z",
"settlement_grade": true
},
"GOLD": {
"currency": "USD",
"unit": "gram",
"price": "107.5341",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
},
"SILVER": {
"currency": "USD",
"unit": "gram",
"price": "1.0700",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
},
"PLATINUM": {
"currency": "USD",
"unit": "gram",
"price": "35.0000",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
}
},
"lot_quote": {
"currency": "CLP",
"amount": "100000.00000000",
"market_rate": "13.42150000",
"rate_source": "blend",
"marked_rate": "13.28728500",
"indicative": true
},
"settlement": {
"default_asset": "USDT",
"assets": [
{
"asset": "USDT",
"available": true,
"settlement_rate": "1"
},
{
"asset": "USDC",
"available": true,
"settlement_rate": "0.99900000"
},
{
"asset": "BTC",
"available": true,
"settlement_rate": "109029.34070000"
},
{
"asset": "BOB",
"available": true,
"settlement_rate": "1",
"same_currency_only": true
},
{
"asset": "GOLD",
"available": true,
"settlement_rate": "106.99642950"
}
]
},
"updated_at": "2026-07-07T12:00:00Z",
"fees": [
{
"id": "3c2b1a09-8d7e-6f5a-4b3c-2d1e0f9a8b7c",
"org_id": "1c9e7a2b-5f6d-4e3a-8c1b-2a9d8e7f6a5b",
"account_id": "",
"service": "payout",
"country": "CL",
"asset": "USDT",
"percent": "0",
"fixed_amount": "0.30",
"status": "active",
"updated_at": "2026-07-07T12:00:00Z"
}
]
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}{
"error": "rates_unavailable",
"message": "could not fetch fx rates"
}Get my FX rates and fees
Returns the exchange rates that apply to the calling account for each country — the same rates used when operations execute (local_amount / rate = USDT) — plus the account’s effective fee configuration — org defaults already resolved against your account’s overrides — so clients can compute the exact cost of an operation before creating it. rate is the payout (dispersal) side and payin_rate the payin (deposit) side. When rate_source is lot, the payout-side quote is backed by the oldest open FIFO lot for that currency; when it is spot, no eligible lot backs the quote. For USDT payins, payin_rate_source is lot when enabled payin FIFO inventory backs the quote and spot otherwise. Card payins remain spot-priced. Use the optional lot_quote for an amount-specific indicative quote. asset_prices carries the USD reference price of each virtual balance asset (BTC per unit, GOLD per gram; stablecoins are 1 by convention) for display/valuation. The settlement block shows, per enabled asset, the effective settlement price your account would get right now if it paid an operation from that balance (settlement_rate, spread included) and whether the asset is currently available — use it to estimate before sending settlement_asset in a payout.
curl --request GET \
--url https://api.qbank.cl/platform/v1/rates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/rates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.qbank.cl/platform/v1/rates', 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.qbank.cl/platform/v1/rates",
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.qbank.cl/platform/v1/rates"
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.qbank.cl/platform/v1/rates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/rates")
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{
"base": "USD",
"rates": {
"chile": {
"currency": "CLP",
"rate": "950.25",
"rate_source": "lot",
"payin_rate": "955.10",
"payin_rate_source": "lot"
},
"mexico": {
"currency": "MXN",
"rate": "17.50",
"rate_source": "spot",
"payin_rate": "17.62"
},
"peru": {
"currency": "PEN",
"rate": "3.72",
"rate_source": "spot",
"payin_rate": "3.75"
}
},
"asset_prices": {
"USDT": {
"currency": "USD",
"unit": "usdt",
"price": "1"
},
"USDC": {
"currency": "USD",
"unit": "usdc",
"price": "1"
},
"BTC": {
"currency": "USD",
"unit": "btc",
"price": "109853.24",
"updated_at": "2026-07-07T11:59:41Z",
"settlement_grade": true
},
"GOLD": {
"currency": "USD",
"unit": "gram",
"price": "107.5341",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
},
"SILVER": {
"currency": "USD",
"unit": "gram",
"price": "1.0700",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
},
"PLATINUM": {
"currency": "USD",
"unit": "gram",
"price": "35.0000",
"updated_at": "2026-07-07T09:12:05Z",
"settlement_grade": true
}
},
"lot_quote": {
"currency": "CLP",
"amount": "100000.00000000",
"market_rate": "13.42150000",
"rate_source": "blend",
"marked_rate": "13.28728500",
"indicative": true
},
"settlement": {
"default_asset": "USDT",
"assets": [
{
"asset": "USDT",
"available": true,
"settlement_rate": "1"
},
{
"asset": "USDC",
"available": true,
"settlement_rate": "0.99900000"
},
{
"asset": "BTC",
"available": true,
"settlement_rate": "109029.34070000"
},
{
"asset": "BOB",
"available": true,
"settlement_rate": "1",
"same_currency_only": true
},
{
"asset": "GOLD",
"available": true,
"settlement_rate": "106.99642950"
}
]
},
"updated_at": "2026-07-07T12:00:00Z",
"fees": [
{
"id": "3c2b1a09-8d7e-6f5a-4b3c-2d1e0f9a8b7c",
"org_id": "1c9e7a2b-5f6d-4e3a-8c1b-2a9d8e7f6a5b",
"account_id": "",
"service": "payout",
"country": "CL",
"asset": "USDT",
"percent": "0",
"fixed_amount": "0.30",
"status": "active",
"updated_at": "2026-07-07T12:00:00Z"
}
]
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}{
"error": "rates_unavailable",
"message": "could not fetch fx rates"
}Authorizations
Session JWT (from register/login) or API key (pk_...).
X-API-Key: <token> is accepted as an alternative header.
Query Parameters
Local currency for an indicative FIFO lot quote. Send with amount.
Positive local-currency amount for an indicative FIFO lot quote. Send with currency.
Response
Rates, reference asset prices and fees.
"USD"
Show child attributes
Show child attributes
USD reference price per virtual balance asset (display/valuation).
Show child attributes
Show child attributes
Optional indicative quote against FIFO fiat inventory. Execution is resolved under debit locks.
Show child attributes
Show child attributes
Effective settlement pricing for the calling account.
Show child attributes
Show child attributes
Show child attributes
Show child attributes