Empezando
¿Cuál es la URL base de la API?
¿Cuál es la URL base de la API?
https://api.qbank.cl/platform — todos los endpoints de esta
documentación cuelgan de ahí (por ejemplo
https://api.qbank.cl/platform/v1/balances).¿Hay un ambiente sandbox de pruebas?
¿Hay un ambiente sandbox de pruebas?
¿Cómo pongo saldo en mi cuenta para empezar?
¿Cómo pongo saldo en mi cuenta para empezar?
POST /v1/crypto/wallets y envía USDT a esa dirección (TRON o Ethereum);
(2) cobra fiat con un payin (QR, transferencia
anunciada, etc.). En ambos casos el saldo se acredita solo y te llega un
webhook.¿Necesito pasar KYC/KYB antes de operar?
¿Necesito pasar KYC/KYB antes de operar?
403 verification_required. Pide tu link con
POST /v1/me/verification/link y completa el wizard —
guía completa. Si algo te responde 403 account_blocked,
contacta al equipo de CBPay.¿Por qué una operación me responde 403 service_disabled?
¿Por qué una operación me responde 403 service_disabled?
GET /v1/services para ver el
mapa completo de lo que tienes habilitado — úsalo también para decidir qué
mostrar en tu UI — y contacta al equipo de CBPay si necesitas activar algo.
Las lecturas y el dinero en tránsito nunca se bloquean.¿Qué credencial uso: sesión JWT o API key?
¿Qué credencial uso: sesión JWT o API key?
pk_…, no
expira). Las sesiones JWT (24 h) son para front-ends con usuarios que
inician sesión. Ambas van en Authorization: Bearer <token> (o
X-API-Key).Dinero y tasas
¿En qué moneda está mi saldo?
¿En qué moneda está mi saldo?
rate para payouts, payin_rate para payins). Ver
modelo de dinero.¿Cómo sé cuánto me va a costar un payout antes de crearlo?
¿Cómo sé cuánto me va a costar un payout antes de crearlo?
GET /v1/rates (devuelve tu tasa por país) y calcula:fx_rate, usdt_amount,
fee, total_debit) calculados por el servidor.¿La tasa que veo en /v1/rates está garantizada?
¿La tasa que veo en /v1/rates está garantizada?
fx_rate de cada operación para auditoría.¿Hay montos mínimos o máximos?
¿Hay montos mínimos o máximos?
invalid_amount o un débito
antieconómico). Los máximos dependen de tu configuración con CBPay.¿Qué comisiones me aplican y dónde las veo?
¿Qué comisiones me aplican y dónde las veo?
GET /v1/rates devuelve tu lista efectiva en el campo fees (y los
porcentajes de FX ya vienen dentro de la tasa cotizada). Detalle en
comisiones.Payouts
¿Cuánto tarda un payout en llegar?
¿Cuánto tarda un payout en llegar?
payout_status_changed: no asumas tiempos fijos ni hagas polling.¿Qué pasa exactamente si un payout falla?
¿Qué pasa exactamente si un payout falla?
available, automáticamente, y te llega el webhook con status: failed y
un status_code explicando la causa. Corrige los datos y reintenta con
una idempotency_key nueva.¿Puedo reintentar sin riesgo de pagar dos veces?
¿Puedo reintentar sin riesgo de pagar dos veces?
idempotency_key: si repites la misma
clave, recibes el payout original (idempotency_hit: true) sin crear ni
debitar nada nuevo. Usa una clave distinta solo cuando realmente quieras
crear otro pago. Ver idempotencia.¿Cómo sé qué campos lleva el beneficiary de cada país?
¿Cómo sé qué campos lleva el beneficiary de cada país?
GET /v1/payouts/banks?country=XX te da los códigos de banco vigentes
cuando aplican.¿Un QR escaneado se puede pagar dos veces?
¿Un QR escaneado se puede pagar dos veces?
provider_reference del scan admite un solo confirm. Reintentos
con la misma idempotency_key devuelven el payout original.¿Puedo cancelar o editar un payout en processing?
¿Puedo cancelar o editar un payout en processing?
processing el rail bancario ya lo tiene; no
existe cancelación por API. Espera el estado final: si el rail lo rechaza,
el reembolso completo es automático. Verifica los datos del beneficiario
antes de crear (el qr/scan gratuito existe justamente para confirmar
el destinatario antes de pagar un QR).¿Hay montos mínimos, máximos o límites diarios?
¿Hay montos mínimos, máximos o límites diarios?
Payins y depósitos
¿Cuándo se acredita mi saldo tras un cobro?
¿Cuándo se acredita mi saldo tras un cobro?
payin_credited con el
monto neto acreditado.Mi cliente transfirió sin la referencia, ¿se perdió el dinero?
Mi cliente transfirió sin la referencia, ¿se perdió el dinero?
unassigned y el equipo de CBPay lo
asigna manualmente a tu cuenta (al asignarse se acredita con tu tasa y
comisiones normales). Mientras tanto no aparece en tu saldo — si esperas
un depósito que no llega, avisa a tu administrador con el monto, moneda y
hora aproximada para acelerar la asignación. Para evitarlo, usa la
cuenta CLABE dedicada en México, la página de pago en Chile, o
insiste en que la referencia viaje en la descripción de la transferencia.¿Cuánto tarda en confirmarse un depósito crypto?
¿Cuánto tarda en confirmarse un depósito crypto?
crypto_deposit_credited cierra el ciclo con el
tx_id para que lo verifiques en el explorador.¿Cómo saco un estado de cuenta para mi contador?
¿Cómo saco un estado de cuenta para mi contador?
format=pdf o
format=xlsx para descargar el documento con branding CBPay, o json
para mostrarla en tu web.¿El saldo de banking y mi saldo USDT son lo mismo?
¿El saldo de banking y mi saldo USDT son lo mismo?
GET /v1/banking/accounts/{id}/balance. Tu saldo CBPay es USDT y solo se
toca para cobrar las comisiones fijas de banking (que se reembolsan si la
operación falla).¿Un depósito crypto y un payin son lo mismo?
¿Un depósito crypto y un payin son lo mismo?
funding). Ambos terminan
en el mismo saldo USDT, con webhooks distintos (payin_credited vs
crypto_deposit_credited).Webhooks y errores
¿Los webhooks son obligatorios?
¿Los webhooks son obligatorios?
GET /v1/payouts/{id}, GET /v1/payins/{id}…) en cualquier momento.¿Cómo pruebo webhooks desde mi máquina (localhost)?
¿Cómo pruebo webhooks desde mi máquina (localhost)?
¿Cuál es la diferencia entre GET /v1/movements y la cartola?
¿Cuál es la diferencia entre GET /v1/movements y la cartola?
movements es la vista programática paginada (para
conciliación automática y tu UI); la cartola es el snapshot del período con
totales, desgloses y cuadratura garantizada (para cierres contables).
Nunca discrepan. Detalle en
movimientos y conciliación.¿Por qué recibí el mismo webhook dos veces?
¿Por qué recibí el mismo webhook dos veces?
X-Webhook-Event-ID, que es único por
evento.