curl --request GET \
--url https://api.qbank.cl/platform/v1/payins/{payinID} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/payins/{payinID}"
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/payins/{payinID}', 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/payins/{payinID}",
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/payins/{payinID}"
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/payins/{payinID}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/payins/{payinID}")
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_bodyObtener un payin
curl --request GET \
--url https://api.qbank.cl/platform/v1/payins/{payinID} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qbank.cl/platform/v1/payins/{payinID}"
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/payins/{payinID}', 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/payins/{payinID}",
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/payins/{payinID}"
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/payins/{payinID}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/payins/{payinID}")
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_bodyAutorizaciones
JWT de sesión (de register/login) o llave de API (pk_...).
X-API-Key: <token> se acepta como header alternativo.
Parámetros de ruta
Respuesta
El payin.
Instrumento de depósito dedicado que recibió el payin; se omite en cobros genéricos y payins históricos.
Metadatos del instrumento dedicado, presentes cuando existe la fila del instrumento.
Show child attributes
Show child attributes
qr, collect, push, card, checkout, pos Monto en la moneda local, como texto decimal plano (por ejemplo "5000000"). Nunca en notación científica.
El saldo virtual en que se liquida el payin. Los payins de checkout y POS denominan el cobro en el asset de su link (sin currency/local_amount hasta que se usa un método de pago local; el monto del cobro es asset_amount en este asset). Los demás payins acreditados lo traen cuando el asset de liquidación difiere del asset del crédito (cuentas con un default_payin_asset distinto del asset acreditado; los payins directos en USD y los retenidos en fiat local no convierten).
USD, USDT, USDC, BTC, GOLD, SILVER, PLATINUM Solo payins de checkout y POS — el monto del cobro denominado en settlement_asset (presente en todo estado, incluidos pendiente y vencido).
Estado de la auto-conversión — en payins de checkout/POS cuando el pago llegó en un asset distinto de settlement_asset, y en los demás payins cuando la cuenta configuró un default_payin_asset distinto del asset acreditado. pending_retry se reintenta automáticamente. Se omite cuando no aplica conversión.
pending_retry, done pending, credited, unassigned, expired, failed Tu idempotency key del request de creación, devuelta tal cual. Ausente cuando el payin se creó sin una (o lo creó la propia plataforma — las keys internas jamás se exponen).
Solo cobros pagados con tarjeta que tienen una demora de settlement configurada — payins directos con tarjeta y cobros checkout/POS pagados con tarjeta — cuándo queda disponible el SALDO de este payin (created_at más las settlement_hours de la comisión payin_card). El payin queda confirmado de inmediato: el estado es credited y el webhook payin_credited se emite al momento del pago; lo que espera al settle_at es solo el crédito del saldo (y la auto-conversión, cuando está configurada). Un payin cuya demora ya venció al aprobarse o asignarse se liquida de inmediato. Ausente cuando el saldo se liquida al confirmarse.
Presente (true) mientras el saldo de un payin credited pagado con tarjeta sigue programado para su settle_at — cubre payins directos con tarjeta y cobros checkout/POS pagados con tarjeta. Mientras esté presente, el payin no se puede devolver (422 settlement_pending) — la plata aún no está en tu saldo. Ausente una vez que el saldo cae en el ledger.
Cuándo cayó realmente en tu ledger el saldo de este payin acreditado — al confirmarse para payins sin demora de settlement, o cuando corrió el settlement programado (o un org-admin lo liberó antes) para payins con tarjeta diferidos.
Tu tasa de payin al momento del abono (presente una vez que el pago fue recibido y convertido).
Origen de la cotización payin cuando se cargó; se omite en filas históricas sin cotización.
lot, spot Monto abonado al saldo. También presente SIN fx_rate en cobros checkout/POS liquidados en crypto o vía transferencia CBPay (no aplica cotización FX).
Activo realmente acreditado (USDT o fiat local retenido).
USD, USDT, BOB, MXN, ARS Monto fiat local; solo aparece cuando credit_asset es fiat.
Presente solo cuando el payin tiene devoluciones o un contracargo. Se deriva de los montos acumulados — el status del payin nunca se reescribe.
partial, full USDT acumulado debitado por devoluciones y contracargos de este payin.
Monto acumulado devuelto en la moneda local original.
Presente solo cuando el payin queda failed en cobros activos: dónde se originó el rechazo (provider = el banco del pagador, core = la validación previa al cobro) más el código y mensaje concretos.
Show child attributes
Show child attributes
Transferencias anunciadas y depósitos — de dónde salió la identidad del pagador. declared la enviaste tú, account_identity usa por defecto el documento verificado del titular, none no hay identidad disponible (solo la referencia puede conciliar), bank_event lo reporta el banco, también en un QR pagado vinculado mediante charge_link; si el riel no informa un valor, se omite el campo correspondiente.
declared, account_identity, none, bank_event Identidad del pagador asociada al payin, cuando se conoce.
Show child attributes
Show child attributes
Snapshot congelado de la cuenta bancaria de destino anunciada al pagador (payins bank_transfer anunciados en corredores con instrucciones configuradas — hoy CL, PY y US). El texto nunca cambia tras la creación; la imagen QR se regenera al leer con tu branding vigente. En el corredor US/USD este bloque es el riel doméstico (routing number ABA).
Show child attributes
Show child attributes
Snapshot congelado del riel internacional SWIFT (BIC + banco corresponsal), presente solo en el corredor US/USD cuando tu organización tiene configurada la variante swift. El pagador elige cualquiera de los dos rieles; ambos comparten la misma reference.
Show child attributes
Show child attributes
Cómo se concilió la transferencia con este payin (traza de auditoría). charge_link significa que el abono pagó el cobro creado para este payin (QR, link de checkout o tarjeta) y se vinculó uno a uno por ese cobro — la señal más fuerte, sin heurísticas. manual_assign significa que un admin de la org lo ruteó a mano.
charge_link, reference, payer_document, payer_account, payer_name, amount_single_candidate, dedicated_clabe, collect_settlement, manual_assign Por qué el depósito NO se pudo conciliar automáticamente, en payins unassigned — no_match, ambiguous_amount (dos o más anuncios comparten el monto), ambiguous_payer, claim_lost (otro evento tomó el anuncio primero), checkout_link_expired (el checkout link había vencido) o assigned_to:<payin_id>.
Cantidad de anuncios pendientes que coincidían con el monto y la moneda de un depósito unassigned (2 o más significa que el depósito era ambiguo).