curl --request GET \
--url https://api.qbank.cl/platform/v1/reports/statement \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/reports/statement"
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/reports/statement', 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/reports/statement",
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/reports/statement"
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/reports/statement")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/reports/statement")
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": {
"account_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"display_name": "Example Company SpA",
"email": "ops@example.com",
"type": "company"
},
"period": {
"from": "2026-01-01",
"to": "2026-07-07",
"timezone": "UTC"
},
"generated_at": "2026-07-07T15:00:00Z",
"summary": {
"opening_balance": "0.000000",
"total_in": "985633.540000",
"total_out": "38099.870000",
"net_change": "947533.670000",
"closing_balance": "947533.670000",
"balanced": true,
"counts": {
"payouts": 51,
"payins": 12,
"crypto_deposits": 18,
"crypto_withdrawals": 3,
"transfers": 4,
"service_charges": 2,
"movements": 771
},
"fees_by_service": {
"payout": "15.300000",
"funding": "897.550000"
},
"total_fees": "912.850000"
},
"assets": [
{
"asset": "GOLD",
"opening_balance": "0.000000",
"total_in": "12.500000",
"total_out": "2.000000",
"net_change": "10.500000",
"closing_balance": "10.500000",
"balanced": true,
"movements": [
{
"created_at": "2026-07-09T10:00:00Z",
"type": "adjustment",
"reference": "adjustment gold-load-1",
"amount": "12.500000",
"balance_after": "12.500000"
}
]
}
],
"breakdown": {
"by_product": [
{
"product": "payouts",
"count": 51,
"usdt_in": "0.000000",
"usdt_out": "38099.870000",
"fees": "15.300000"
}
],
"by_country": [
{
"flow": "payouts",
"country": "BO",
"currency": "BOB",
"count": 14,
"local_amount": "28748.58",
"usdt_amount": "2902.210000"
}
],
"by_currency": [
{
"currency": "BOB",
"payout_local": "28748.58",
"payin_local": "700.00"
}
],
"by_month": [
{
"month": "2026-01",
"usdt_in": "985633.540000",
"usdt_out": "35100.000000"
}
]
},
"payouts": [
{
"created_at": "2026-03-19T22:57:00Z",
"payout_id": "0d4f2a10-1b2c-3d4e-5f60-718293a4b5c6",
"idempotency_key": "bo-90",
"country": "BO",
"currency": "BOB",
"method": "bank_transfer",
"beneficiary": "Juan Quispe",
"detail": "1234567890",
"local_amount": "90.00",
"fx_rate": "6.91",
"usdt_amount": "13.024600",
"fee": "0.300000",
"fee_percent": "0.200000",
"fee_fixed": "0.100000",
"total_debit": "13.324600",
"status": "completed"
}
],
"payins": [],
"crypto_deposits": [],
"crypto_withdrawals": [],
"transfers": [],
"card_transactions": [
{
"created_at": "2026-03-20T10:12:00Z",
"transaction_id": "5f6a7b8c-9d0e-1f2a-3b4c-5d6e7f8a9b0c",
"card_id": "c0de0791-0000-0000-0000-000000000003",
"kind": "purchase",
"merchant": "AMAZON.COM",
"amount_usd": "25.00",
"spend_asset": "USDT",
"spend_amount": "25.000000",
"status": "settled"
}
],
"swaps": [
{
"created_at": "2026-03-21T09:00:00Z",
"swap_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"from_asset": "USDT",
"to_asset": "BTC",
"from_amount": "10.000000",
"to_amount": "0.00015433",
"rate": "0.00001543",
"status": "completed"
}
],
"banking_operations": [
{
"created_at": "2026-03-22T14:30:00Z",
"operation_id": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"direction": "out",
"type": "wire",
"currency": "USD",
"amount": "150.00",
"counterparty": "Acme Inc",
"status": "completed"
}
],
"service_charges": [
{
"created_at": "2026-03-23T08:00:00Z",
"type": "banking_fee",
"service": "banking_customer",
"fee_model": "fixed",
"reference": "cust-001",
"amount": "-0.500000",
"balance_after": "139.100000"
}
],
"movements": [
{
"created_at": "2026-03-19T22:57:00Z",
"type": "payout_debit",
"reference": "payout 0d4f2a10-1b2c-3d4e-5f60-718293a4b5c6",
"amount": "-13.324600",
"balance_after": "139.600000"
}
]
}{
"error": "invalid_range",
"message": "from and to are required (YYYY-MM-DD)"
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}Cartola / estado de cuenta (JSON, PDF o Excel)
Consolida todos los movimientos del período — payouts, payins, depósitos y retiros crypto, transferencias internas y cargos por servicio — en una cartola auditable con cuadratura exacta: opening_balance + total_in − total_out = closing_balance, verificada contra el ledger (balanced). El resumen y los movimientos cubren el saldo operativo USDT; cada otro saldo virtual (USDC, BTC, GOLD) con actividad concilia por separado dentro de assets. Pide format=pdf o format=xlsx para descargar el archivo con branding CBPay (Content-Disposition: attachment).
curl --request GET \
--url https://api.qbank.cl/platform/v1/reports/statement \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/reports/statement"
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/reports/statement', 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/reports/statement",
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/reports/statement"
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/reports/statement")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/reports/statement")
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": {
"account_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"display_name": "Example Company SpA",
"email": "ops@example.com",
"type": "company"
},
"period": {
"from": "2026-01-01",
"to": "2026-07-07",
"timezone": "UTC"
},
"generated_at": "2026-07-07T15:00:00Z",
"summary": {
"opening_balance": "0.000000",
"total_in": "985633.540000",
"total_out": "38099.870000",
"net_change": "947533.670000",
"closing_balance": "947533.670000",
"balanced": true,
"counts": {
"payouts": 51,
"payins": 12,
"crypto_deposits": 18,
"crypto_withdrawals": 3,
"transfers": 4,
"service_charges": 2,
"movements": 771
},
"fees_by_service": {
"payout": "15.300000",
"funding": "897.550000"
},
"total_fees": "912.850000"
},
"assets": [
{
"asset": "GOLD",
"opening_balance": "0.000000",
"total_in": "12.500000",
"total_out": "2.000000",
"net_change": "10.500000",
"closing_balance": "10.500000",
"balanced": true,
"movements": [
{
"created_at": "2026-07-09T10:00:00Z",
"type": "adjustment",
"reference": "adjustment gold-load-1",
"amount": "12.500000",
"balance_after": "12.500000"
}
]
}
],
"breakdown": {
"by_product": [
{
"product": "payouts",
"count": 51,
"usdt_in": "0.000000",
"usdt_out": "38099.870000",
"fees": "15.300000"
}
],
"by_country": [
{
"flow": "payouts",
"country": "BO",
"currency": "BOB",
"count": 14,
"local_amount": "28748.58",
"usdt_amount": "2902.210000"
}
],
"by_currency": [
{
"currency": "BOB",
"payout_local": "28748.58",
"payin_local": "700.00"
}
],
"by_month": [
{
"month": "2026-01",
"usdt_in": "985633.540000",
"usdt_out": "35100.000000"
}
]
},
"payouts": [
{
"created_at": "2026-03-19T22:57:00Z",
"payout_id": "0d4f2a10-1b2c-3d4e-5f60-718293a4b5c6",
"idempotency_key": "bo-90",
"country": "BO",
"currency": "BOB",
"method": "bank_transfer",
"beneficiary": "Juan Quispe",
"detail": "1234567890",
"local_amount": "90.00",
"fx_rate": "6.91",
"usdt_amount": "13.024600",
"fee": "0.300000",
"fee_percent": "0.200000",
"fee_fixed": "0.100000",
"total_debit": "13.324600",
"status": "completed"
}
],
"payins": [],
"crypto_deposits": [],
"crypto_withdrawals": [],
"transfers": [],
"card_transactions": [
{
"created_at": "2026-03-20T10:12:00Z",
"transaction_id": "5f6a7b8c-9d0e-1f2a-3b4c-5d6e7f8a9b0c",
"card_id": "c0de0791-0000-0000-0000-000000000003",
"kind": "purchase",
"merchant": "AMAZON.COM",
"amount_usd": "25.00",
"spend_asset": "USDT",
"spend_amount": "25.000000",
"status": "settled"
}
],
"swaps": [
{
"created_at": "2026-03-21T09:00:00Z",
"swap_id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"from_asset": "USDT",
"to_asset": "BTC",
"from_amount": "10.000000",
"to_amount": "0.00015433",
"rate": "0.00001543",
"status": "completed"
}
],
"banking_operations": [
{
"created_at": "2026-03-22T14:30:00Z",
"operation_id": "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"direction": "out",
"type": "wire",
"currency": "USD",
"amount": "150.00",
"counterparty": "Acme Inc",
"status": "completed"
}
],
"service_charges": [
{
"created_at": "2026-03-23T08:00:00Z",
"type": "banking_fee",
"service": "banking_customer",
"fee_model": "fixed",
"reference": "cust-001",
"amount": "-0.500000",
"balance_after": "139.100000"
}
],
"movements": [
{
"created_at": "2026-03-19T22:57:00Z",
"type": "payout_debit",
"reference": "payout 0d4f2a10-1b2c-3d4e-5f60-718293a4b5c6",
"amount": "-13.324600",
"balance_after": "139.600000"
}
]
}{
"error": "invalid_range",
"message": "from and to are required (YYYY-MM-DD)"
}{
"error": "unauthorized",
"message": "invalid or missing credentials"
}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
Fecha inicial (YYYY-MM-DD, UTC, inclusive).
Fecha final (YYYY-MM-DD, UTC, inclusive). Rango máximo: 400 días.
json para la vista web; pdf/xlsx descargan el archivo con branding.
json, pdf, xlsx Idioma del PDF/Excel.
es, en Respuesta
La cartola (JSON) o los bytes del archivo (pdf/xlsx).
The response is of type object.