Saltar al contenido principal
Banking te da cuentas bancarias reales a nombre de tu perfil verificado: recibes fondos por rieles internacionales (SEPA, SWIFT, ACH según la moneda), mantienes saldo en moneda fiat y envías pagos a terceros. Es un producto distinto de tu saldo USDT: el dinero de banking vive en tus cuentas bancarias, no en el saldo CBPay.
Las comisiones de banking (banking_customer, banking_account, banking_operation) son fijas, se debitan de tu saldo USDT al ejecutar cada operación y se reembolsan automáticamente si la operación falla. Con comisión 0 (el default) el servicio es gratis. El campo banking_fee de cada respuesta te muestra lo cobrado.

El flujo completo

  1. Crea tu perfil bancario (POST /v1/banking/customer) — una sola vez.
  2. Sube documentos de verificación y envíalo a revisión.
  3. Cuando quede approved, abre cuentas por moneda.
  4. Registra beneficiarios (counterparties) para pagos a terceros.
  5. Envía pagos: cotiza con prepare y ejecuta con operations.
Los cambios de estado te llegan por los webhooks banking_customer_status_changed y banking_operation_status_changed (webhooks).

1. Crea tu perfil bancario

Una vez por cuenta. Si no envías type, name o email, se completan con los datos de tu cuenta CBPay:
Respuesta 201:
Si tu cuenta ya tiene perfil bancario — 409 banking_customer_exists. Consulta el estado en cualquier momento:

2. Documentos y verificación

Sube cada documento en base64 (gratis):
Y envía el perfil a revisión (gratis):
Estados del perfil: draftsubmittedunder_reviewapproved o rejected. El webhook banking_customer_status_changed te avisa cada cambio:

3. Abre cuentas bancarias

Con el perfil approved, crea una cuenta por moneda. Monedas disponibles: USD (rieles ACH/Fedwire/SWIFT) y EUR (SEPA/SWIFT):
Respuesta 201data incluye los datos para recibir (número de cuenta/IBAN, routing, banco):
Lista tus cuentas y consulta saldo:
Límite para cuentas persona: una cuenta persona puede tener máximo 1 cuenta bancaria. Al intentar la segunda recibirás 409 banking_account_limit. Las cuentas empresa no tienen límite.

Usuarios de terceros (solo empresas)

Si tu cuenta es empresa, además de tus cuentas propias puedes dar de alta usuarios banking de terceros — tus clientes finales (personas o empresas) — cada uno con su identidad y verificación propias y cuentas bancarias a su nombre. Sin límite de terceros ni de cuentas por tercero.

Alta del tercero

El alta exige el verification_id de una verificación KYC/KYB aprobada del tercero — su identidad única en CBPay. El tipo sale del kind de la verificación (KYC ⇒ INDIVIDUAL, KYB ⇒ COMPANY), los datos (nombre, email, dirección) se completan solos desde el perfil verificado (lo que envíes explícito gana) y los documentos ya validados se re-entregan automáticamente al proveedor bancario. Se cobra el fee de perfil bancario (se reembolsa si el alta falla):
Respuesta 201:
documents_synced cuenta los documentos de la verificación que quedaron cargados automáticamente en el perfil bancario del tercero. Si alguno no se pudo sincronizar (o el banco pide categorías adicionales), súbelo por el flujo manual de documentos de más abajo y luego haz submit.
Guarda el third_party_id: todas las rutas del tercero lo usan. Lista y consulta (el GET trae el estado de verificación en vivo):

Verificación del tercero (gratis)

Igual que tu propio perfil, pero sobre el tercero:

Cuentas del tercero

Con el tercero aprobado, ábrele cuentas (mismo fee banking_account) y opera igual que con las tuyas:
  • Cada tercero es tuyo y solo tuyo: otra cuenta CBPay jamás puede verlo ni operarlo (responde 404).
  • Una cuenta persona que intente crear terceros recibe 403 company_required.
  • Sin verification_id (o con una verificación no aprobada) el alta responde 422 verification_required / 422 verification_not_approved. Si envías un type que no calza con el kind de la verificación, 422 verification_kind_mismatch. Los terceros creados antes de esta regla siguen operando con normalidad.
  • Los terceros dados de alta alimentan la métrica “usuarios nuevos” de tu resumen de cuenta.

4. Registra beneficiarios

Para pagar a terceros, primero registra al beneficiario con sus datos bancarios (gratis; pasa por moderación antes de poder usarse):
Lista los tuyos con GET /v1/banking/counterparties y agrega más cuentas a un beneficiario existente con POST /v1/banking/counterparties/{id}/accounts.

5. Envía pagos

Dos tipos de operación: Cotiza primero (gratis, no mueve dinero):
Ejecuta con clave de idempotencia (se cobra banking_operation aquí):
Respuesta 202:
  • El estado final llega por el webhook banking_operation_status_changed (completed / failed); también puedes consultar GET /v1/banking/operations/{id}. Cuando la operación queda en estado final, el webhook incluye su receipt_url y puedes descargar el comprobante PDF con GET /v1/banking/operations/{id}/receipt (comprobantes).
  • Reintentos con la misma Idempotency-Key devuelven la operación original (idempotency_hit: true) sin volver a cobrar la comisión.
Trazabilidad completa. Cada operación bancaria queda registrada en tu cuenta: aparece en la sección banking_operations de la cartola, su dinero cuadra en los saldos espejo BANK_USD/BANK_EUR (sección assets), y su volumen suma al gross_volume de analytics. El saldo autoritativo sigue siendo el del banco: el espejo se reconcilia periódicamente.
El historial completo, con filtros:

Estados de operación

Errores

Última modificación el 11 de julio de 2026