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": "America/New_York"
},
"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
},
"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
}
],
"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",
"bank_reference": "00761123456"
}
],
"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",
"asset": "USDT",
"reference": "cust-001",
"amount": "-0.500000",
"balance_after": "139.100000"
}
]
}{
"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 cubre el saldo USDT; cada otro saldo virtual (USD, USDC, BTC, GOLD, SILVER, PLATINUM, BOB, MXN, ARS) con actividad se reconcilia de forma independiente dentro de assets. La respuesta del cliente omite el ledger crudo; usa las secciones de producto para cuadrar y GET /v1/movements para una auditoría profunda. 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": "America/New_York"
},
"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
},
"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
}
],
"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",
"bank_reference": "00761123456"
}
],
"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",
"asset": "USDT",
"reference": "cust-001",
"amount": "-0.500000",
"balance_after": "139.100000"
}
]
}{
"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, zona horaria de la organización, inclusive).
Fecha final (YYYY-MM-DD, zona horaria de la organización, 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. Por defecto ingles.
en, es, zh Respuesta
La cartola (JSON) o los bytes del archivo (pdf/xlsx).
The response is of type object.