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"
}Obtener mis tasas de cambio y comisiones
Devuelve las tasas de cambio que aplican a la cuenta que llama para cada país — las mismas tasas usadas cuando las operaciones se ejecutan (local_amount / rate = USDT) — más la configuración de comisiones efectiva de la cuenta — los defaults de la organización ya resueltos contra los overrides de tu cuenta — para calcular el costo exacto de una operación antes de crearla. rate es la punta de payouts (dispersiones) y payin_rate la de payins (depósitos). Cuando rate_source es lot, la cotización de payout usa el lote FIFO abierto más antiguo de esa moneda; cuando es spot, no existe un lote elegible y se usa spot. Para payins USDT, payin_rate_source es lot cuando el inventario FIFO payin habilitado respalda la cotización y spot en los demás casos. Los payins con tarjeta siguen usando spot. Usa lot_quote opcional para una cotización indicativa por monto. asset_prices trae el precio USD de referencia de cada saldo virtual (BTC por unidad, GOLD por gramo; los stablecoins valen 1 por convención) para valorizar. El bloque settlement muestra, por asset habilitado, el precio efectivo de settlement que tu cuenta obtendría ahora mismo si pagara una operación desde ese saldo (settlement_rate, spread incluido) y si el asset está available — úsalo para estimar antes de enviar settlement_asset en un 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"
}Autorizaciones
JWT de sesión (de register/login) o llave de API (pk_...).
X-API-Key: <token> se acepta como header alternativo.
Parámetros de consulta
Moneda local para una cotización FIFO indicativa. Enviar junto con amount.
Monto positivo en moneda local para una cotización FIFO indicativa. Enviar junto con currency.
Respuesta
Tasas, precios de referencia por activo y comisiones.
"USD"
Show child attributes
Show child attributes
Precio USD de referencia por activo del saldo virtual (display/valorización).
Show child attributes
Show child attributes
Cotización indicativa opcional contra inventario fiat FIFO. La ejecución se resuelve bajo locks del débito.
Show child attributes
Show child attributes
Pricing de settlement efectivo para la cuenta que llama.
Show child attributes
Show child attributes
Show child attributes
Show child attributes