curl --request PUT \
--url https://api.qbank.cl/platform/v1/settlement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC"
}
'import requests
url = "https://api.qbank.cl/platform/v1/settlement"
payload = {
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({default_settlement_asset: 'BTC', default_payin_asset: 'USDC'})
};
fetch('https://api.qbank.cl/platform/v1/settlement', 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/settlement",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'default_settlement_asset' => 'BTC',
'default_payin_asset' => 'USDC'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qbank.cl/platform/v1/settlement"
payload := strings.NewReader("{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.qbank.cl/platform/v1/settlement")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/settlement")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}"
response = http.request(request)
puts response.read_body{
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC",
"enabled_assets": [
"USD",
"USDT",
"USDC",
"BTC",
"GOLD",
"SILVER",
"PLATINUM"
],
"volatile_op_limit_usdt": "10000.000000",
"volatile_daily_limit_usdt": "50000.000000"
}{
"error": "settlement_asset_disabled",
"message": "settlement asset is disabled for this organization"
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}Set my default balances (payouts and payins)
Changes your default balances. default_settlement_asset is the balance your payouts and service fees debit from when a request does not send an explicit settlement_asset. default_payin_asset is the balance your payins settle into — with USD (the default for new accounts) the net is credited directly in USD cents; with any other target the net amount is auto-converted through the swap engine at the real price, with no extra swap spread (the payin already paid its fee and rate; checkout and POS payins keep their per-link asset). Any of USD, USDT, USDC, BTC, GOLD, SILVER or PLATINUM (if enabled for your organization). Send one or both fields. The change applies to new operations only; nothing in flight is re-quoted.
curl --request PUT \
--url https://api.qbank.cl/platform/v1/settlement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC"
}
'import requests
url = "https://api.qbank.cl/platform/v1/settlement"
payload = {
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({default_settlement_asset: 'BTC', default_payin_asset: 'USDC'})
};
fetch('https://api.qbank.cl/platform/v1/settlement', 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/settlement",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'default_settlement_asset' => 'BTC',
'default_payin_asset' => 'USDC'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qbank.cl/platform/v1/settlement"
payload := strings.NewReader("{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.qbank.cl/platform/v1/settlement")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/settlement")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"default_settlement_asset\": \"BTC\",\n \"default_payin_asset\": \"USDC\"\n}"
response = http.request(request)
puts response.read_body{
"default_settlement_asset": "BTC",
"default_payin_asset": "USDC",
"enabled_assets": [
"USD",
"USDT",
"USDC",
"BTC",
"GOLD",
"SILVER",
"PLATINUM"
],
"volatile_op_limit_usdt": "10000.000000",
"volatile_daily_limit_usdt": "50000.000000"
}{
"error": "settlement_asset_disabled",
"message": "settlement asset is disabled for this organization"
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}{
"error": "account_required",
"message": "this endpoint requires an account credential"
}Authorizations
Session JWT (from register/login) or API key (pk_...).
X-API-Key: <token> is accepted as an alternative header.
Body
Balance payouts and service fees debit from by default. Optional.
USD, USDT, USDC, BTC, GOLD, SILVER, PLATINUM Balance payins settle into by default. With USD the net is credited directly in USD cents; with any other target the net amount is auto-converted via the swap engine at the real price (no extra swap spread). Optional.
USD, USDT, USDC, BTC, GOLD, SILVER, PLATINUM Response
Updated settlement settings.
Balance operations debit from when no per-request override is sent. Fiat values are accepted by the contract but return 503 pricing_unavailable until fiat settlement pricing is available.
USD, USDT, USDC, BTC, GOLD, SILVER, PLATINUM, BOB, MXN, ARS Balance payins settle into by default. Credits land in the account's principal asset (USD is the principal balance); when set to a different asset, the net amount is auto-converted via the swap engine at the real price, with no extra swap spread. Checkout/POS payins keep their per-link asset.
USD, USDT, USDC, BTC, GOLD, SILVER, PLATINUM Assets your organization currently allows as settlement source. Ledger fiat BOB, MXN and ARS use two decimals; fiat execution returns 503 pricing_unavailable in v1. Ledger fiat BOB, MXN and ARS use two decimals; fiat execution returns 503 pricing_unavailable in v1. Ledger fiat BOB, MXN and ARS use two decimals; fiat execution returns 503 pricing_unavailable in v1.
Per-operation limit (USDT equivalent) for volatile assets (BTC/GOLD/SILVER/PLATINUM).
Rolling 24h volume cap (USDT equivalent) per account for volatile assets (BTC/GOLD/SILVER/PLATINUM).