Get balances
curl --request GET \
--url https://api.qbank.cl/platform/v1/balances \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/balances"
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/balances', 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/balances",
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/balances"
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/balances")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/balances")
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{
"account_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"balances": [
{
"asset": "USDT",
"available": "125.430000",
"held": "10.000000",
"updated_at": "2026-07-07T12:00:00Z"
},
{
"asset": "USDC",
"available": "50.000000",
"held": "0.000000",
"updated_at": "2026-07-08T09:00:00Z"
},
{
"asset": "BTC",
"available": "0.00060000",
"held": "0.00000000"
},
{
"asset": "GOLD",
"available": "12.500000",
"held": "0.000000"
},
{
"asset": "SILVER",
"available": "1.070000",
"held": "0.000000"
},
{
"asset": "PLATINUM",
"available": "35.000000",
"held": "0.000000"
},
{
"asset": "BANK_USD",
"available": "7500.00",
"held": "0.00",
"custody": "banking",
"updated_at": "2026-07-08T09:00:00Z"
}
]
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}Get balances
The ten independent virtual balances of the calling account (USD — the principal currency —, USDT, USDC, BTC, GOLD in grams of fine gold, SILVER in grams of fine silver, PLATINUM in grams of fine platinum, and fiat BOB, MXN and ARS with two decimals). Every supported asset is always present, with zeros if the account has not used that currency yet. If the account uses Banking, its BANK_USD/BANK_EUR mirror balances are also listed with the custody marker set to banking (the authoritative balance lives at the bank; these balances are not spendable inside the platform).
GET
/
v1
/
balances
Get balances
curl --request GET \
--url https://api.qbank.cl/platform/v1/balances \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/balances"
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/balances', 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/balances",
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/balances"
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/balances")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/balances")
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{
"account_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"balances": [
{
"asset": "USDT",
"available": "125.430000",
"held": "10.000000",
"updated_at": "2026-07-07T12:00:00Z"
},
{
"asset": "USDC",
"available": "50.000000",
"held": "0.000000",
"updated_at": "2026-07-08T09:00:00Z"
},
{
"asset": "BTC",
"available": "0.00060000",
"held": "0.00000000"
},
{
"asset": "GOLD",
"available": "12.500000",
"held": "0.000000"
},
{
"asset": "SILVER",
"available": "1.070000",
"held": "0.000000"
},
{
"asset": "PLATINUM",
"available": "35.000000",
"held": "0.000000"
},
{
"asset": "BANK_USD",
"available": "7500.00",
"held": "0.00",
"custody": "banking",
"updated_at": "2026-07-08T09:00:00Z"
}
]
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}