🇪🇸 EspañolAPIsCuentas bancarias

Cuentas bancarias

Endpoints para listar bancos, tipos de documento, crear y listar cuentas bancarias de terceros asociadas al usuario. Estas cuentas se usan en Retiros y en Exchange (FX) para dispersión.

Todos los endpoints requieren autenticación con Authorization: Bearer [TOKEN] y x-api-key.


Resumen de endpoints

EndpointMétodoDescripción
/bank_list_third_party_withdraw/GETListar bancos disponibles por país
/base/document_type/GETListar tipos de documento
/create_third_party_banks/POSTCrear cuenta bancaria
/list_third_party_banks/GETListar cuentas del usuario (filtro por país)
/api/v1/thirdpartybank/thirdpartybankPUTActualizar cuenta USD: nombre o desactivar
/api/v1/usd/accountsGETListar cuentas USD del usuario
🔒

Las cuentas Third Party (CO, MX, BR, US clásicas) son inmutables: no hay endpoints para modificar ni eliminar. Las cuentas en USD (identificadas por ID alfanumérico) sí permiten actualizar el alias y desactivar (ocultar).


Países y tipos de cuenta

El sistema soporta Colombia (CO), Estados Unidos (US), México (MX) y Brasil (BR). Cada país tiene tipos de cuenta y validaciones propias.

Tipos de cuenta por país

Paísaccount_typeDescripción
CO, US0Ahorros
CO, US1Corriente
MX2CLABE (18 dígitos)
BR3PIX Email
BR4PIX CPF (11 dígitos)
BR5PIX CNPJ (14 dígitos)
BR6PIX Teléfono (10-11 dígitos)
BR7PIX Aleatorio (1-37 caracteres)

Cuentas USA: campos obligatorios

Para country_registered: "US" son obligatorios: wire, routing_number, address y nickname.


Listar bancos disponibles

Obtiene la lista de bancos disponibles para retiros/transferencias según el país.

Endpoint

GET /bank_list_third_party_withdraw/

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Accept: application/json

Respuesta (200)

200 OK
[
  { "id": 0, "name": "Bancolombia" },
  { "id": 1, "name": "Banco de Bogota" },
  { "id": 2, "name": "Davivienda" },
  { "id": 3, "name": "BBVA Colombia" }
]
💡

Usa el id del banco en bank_name al crear la cuenta. El sistema soporta 35+ bancos en Colombia, 50+ en USA, y bancos en México (CLABE) y Brasil (PIX).


Listar tipos de documento

Obtiene los tipos de documento de identidad válidos para el titular de la cuenta.

Endpoint

GET /base/document_type/

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Accept: application/json

Respuesta (200)

200 OK
[
  { "id": 0, "name": "CC" },
  { "id": 1, "name": "CE" },
  { "id": 2, "name": "NIT" },
  { "id": 3, "name": "TI" },
  { "id": 4, "name": "PPT" }
]

El id se usa en account_holder_document_type. Los tipos válidos dependen del país.


Crear cuenta bancaria

Registra una cuenta bancaria de terceros asociada al usuario. La cuenta se usa luego en retiros o en movimientos Exchange (dispersión).

Endpoint

POST /create_third_party_banks/

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Content-Type: application/json

Request (campos comunes y por país)

CampoTipoRequeridoDescripción
account_holder_namestringNombre completo del titular
account_typeintVer tabla por país (0-1 CO/US, 2 MX, 3-7 BR)
account_holder_document_typeintID del tipo de documento
account_holder_documentstringNúmero de documento
account_numberstringNúmero de cuenta (formato según tipo)
bank_nameintID del banco
country_registeredstringCO, US, MX o BR
nicknamestringAlias (opcional en CO/MX/BR; obligatorio en US)
wirestringNombre del banco para SWIFT (obligatorio en US)
routing_numberstringRouting/ABA (obligatorio en US)
addressstringDirección del banco (obligatorio en US)

Validaciones

  • Banco por país: bank_name debe ser un banco válido para country_registered.
  • Tipo de cuenta por país: account_type debe ser uno de los permitidos para ese país.
  • Formato de cuenta: Para CLABE (MX) y PIX (BR) se valida el formato con regex (ej.: CLABE 18 dígitos, PIX CPF 11 dígitos).
  • Tipo de documento por país: El tipo de documento debe ser válido para el país.
  • Cuenta duplicada: No se permite registrar la misma cuenta (mismo número, documento, titular, tipo, país) dos veces.
  • USA: Para country_registered: "US" son obligatorios wire, routing_number, address y nickname.

Respuesta exitosa (200)

200 OK
{
  "code_transaction": "OK",
  "data": {
    "id": 85,
    "account_holder_name": "Sofia Martin",
    "account_type": 0,
    "account_holder_document_type": 0,
    "account_holder_document": "12345678",
    "account_number": "58200011161",
    "bank_name": 0,
    "country_registered": "CO",
    "wire": null,
    "routing_number": null,
    "address": null,
    "nickname": "Cuenta Principal"
  }
}
💾

Guarda el id (o data.id) para usarlo en retiros (third_party_bank_id) o en Exchange (bank_account_id).

Errores posibles

CódigoCausa
400Banco no válido para el país indicado
400Tipo de cuenta no válido para el país
400Formato de número de cuenta inválido (CLABE, PIX, etc.)
400Tipo de documento no válido para el país
400”La cuenta ya esta registrada en el sistema”
400Para US: faltan wire, routing_number, address o nickname

Listar cuentas bancarias del usuario

Lista las cuentas bancarias registradas por el usuario, con filtro opcional por país.

Endpoint

GET /list_third_party_banks/?country=CO

Parámetros query

ParámetroTipoDescripción
countrystringOpcional. Filtrar por país: CO, US, MX, BR

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Accept: application/json

Respuesta (200)

200 OK
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "pk": 85,
      "account_holder_name": "Sofia Martin",
      "account_type": 1,
      "account_holder_document_type": 0,
      "account_holder_document": "12345678",
      "account_number": "58200011161",
      "bank_name": 0,
      "state": "Creada",
      "country_registered": "CO",
      "wire": null,
      "routing_number": null
    }
  ]
}

Estados de cuenta

stateDescripción
CreadaCuenta recién registrada
En proceso de inscripciónEn validación
InscritaActiva
Tiene un problemaError

Cuentas USD (ID alfanumérico)

Las cuentas en dólares (USD) que se identifican por ID alfanumérico permiten retiros y depósitos en USD. A diferencia de las cuentas Third Party (ID numérico), en estas cuentas sí puedes cambiar el nombre/alias y desactivar la cuenta (ocultarla).

Diferencias con Third Party Banks

Third Party (CO, MX, BR, US)Cuentas USD (ID alfanumérico)
IDNumérico (ej. 85)Alfanumérico (ej. account_abc123)
AliasCampo nickname (solo al crear)Campo name (modificable con PUT)
Modificar / DesactivarNo disponibleSí: PUT para cambiar name o status: DEACTIVATED

Actualizar cuenta USD (cambiar nombre o desactivar)

Permite cambiar el alias (name) de la cuenta o desactivarla. No se puede desactivar y cambiar nombre en el mismo request.

Endpoint

PUT /api/v1/thirdpartybank/thirdpartybank

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Content-Type: application/json

Request

CampoTipoRequeridoDescripción
bank_account_idstringID de la cuenta USD (alfanumérico)
namestringNuevo alias/nombre de la cuenta
statusstringSolo valor permitido: DEACTIVATED (desactiva/oculta la cuenta)

Reglas: En un mismo request solo se envía o bien name o bien status=DEACTIVATED, no ambos. El name debe ser único entre las cuentas del usuario.

Solo cambiar alias
{
"bank_account_id": "account_abc123",
"name": "Mi Cuenta Principal USD"
}

Respuesta exitosa (200)

200 OK
{
  "code_transaction": "OK",
  "result": "The bank account have been updated"
}

Al desactivar (status: DEACTIVATED), el sistema actualiza el estado local y elimina la cuenta en el proveedor; la cuenta deja de aparecer en el listado.

Errores posibles

CódigoCausa
400”If client deactivated the account can not update the nickname” — Se enviaron name y status=DEACTIVATED juntos
400”The {status} is not allowed” — status distinto de DEACTIVATED
400”The {name} is already taken, please use another one” — Nombre ya usado por otra cuenta
404Cuenta USD no encontrada

Listar cuentas USD

Devuelve las cuentas en USD del usuario. Las cuentas desactivadas no se incluyen.

Endpoint

GET /api/v1/usd/accounts

Headers

Authorization: Bearer [ACCESS_TOKEN]
x-api-key: [API_KEY]
Accept: application/json

Respuesta (200)

200 OK
{
  "data": {
    "payment_types": [
      {
        "id": 1,
        "payment_method": "BANK_TRANSFER",
        "account_id": "account_abc123",
        "name": "Mi Cuenta Principal USD",
        "routing": "021000021",
        "account_number": "1234567890",
        "status": "DEPOSIT_ONLY",
        "type": "CHECKING",
        "created_at": "2026-02-03T10:00:00Z"
      }
    ]
  },
  "message": "ok"
}

Usa el account_id de cada cuenta como bank_account_id en el PUT para actualizar o desactivar.

📌

La desactivación es permanente. Solo se puede modificar el nombre (name) de la cuenta; no otros datos como routing o número de cuenta.


Uso de las cuentas

Una vez creada, la cuenta se usa en:

  • Retiros bancarios: POST /create/third_party_withdraw/ con el campo third_party_bank_id (Colombia COP) o en flujos USD.
  • Exchange (FX): POST /v2/exchange/initiate/ con el campo bank_account_id para la dispersión automática al completar el movimiento.

El sistema valida que la cuenta pertenezca al usuario autenticado antes de ejecutar el retiro o el movimiento.

📄

Para el flujo completo de retiros por país, consulta Retiros Bancarios. Para movimientos transfronterizos con dispersión, consulta Exchange (FX).