🇪🇸 EspañolAPIsRetiros Bancarios

Retiros Bancarios

Endpoints para enviar dinero a cuentas bancarias en Colombia y Estados Unidos.

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


Resumen por Moneda

PaísMonedaMétodo
🇨🇴 ColombiaCOPTransferencia bancaria directa
🇺🇸 Estados UnidosUSDDigital Payment / Transferencia manual

🇨🇴 Retiros Colombia (COP)

Flujo completo para enviar dinero a cuentas bancarias colombianas.

Obtener lista de bancos

Consulta los bancos disponibles.

Obtener tipos de documento

Consulta los tipos de documento válidos.

Crear cuenta bancaria

Registra la cuenta del beneficiario.

Crear el retiro

Ejecuta la transferencia.


Paso 1: Obtener Lista de Bancos

Consulta los bancos colombianos disponibles para retiros.

Endpoint

GET /bank_list_third_party_withdraw/

Headers

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

Respuesta

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

Guarda el id del banco para usarlo al crear la cuenta bancaria.


Paso 2: Obtener Tipos de Documento

Consulta los tipos de documento de identidad válidos.

Endpoint

GET /base/document_type/

Headers

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

Respuesta

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

Tipos de Documento

IDCódigoDescripción
0CCCédula de Ciudadanía
1CECédula de Extranjería
2NITNúmero de Identificación Tributaria
3TITarjeta de Identidad
4PPTPermiso por Protección Temporal

Paso 3: Crear Cuenta Bancaria

Registra la cuenta bancaria del beneficiario.

Endpoint

POST /create_third_party_banks/

Headers

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

Request

CampoTipoRequeridoDescripción
account_holder_namestringNombre completo del titular
account_typeint0 = Ahorros, 1 = Corriente
account_holder_document_typeintID del tipo de documento
account_holder_documentstringNúmero de documento
account_numberstringNúmero de cuenta bancaria
bank_nameintID del banco
country_registeredstringCO para Colombia
nicknamestringAlias para identificar la cuenta

Tipos de Cuenta

IDTipo
0Cuenta de Ahorros
1Cuenta Corriente

Respuesta

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 de la cuenta para usarlo en el siguiente paso.


Listar Cuentas Bancarias

Consulta las cuentas bancarias registradas.

Endpoint

GET /list_third_party_banks/?country=CO

Parámetros Query

ParámetroTipoDescripción
countrystringFiltrar por país: CO, US

Respuesta

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
    }
  ]
}

Paso 4: Crear Retiro COP

Ejecuta la transferencia a la cuenta bancaria colombiana.

Endpoint

POST /create/third_party_withdraw/

Headers

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

Request

CampoTipoRequeridoDescripción
amountnumberMonto a enviar en COP
currencystringCOP
third_party_bank_idintID de la cuenta bancaria
full_namestringNombre completo del beneficiario
emailstringEmail del beneficiario
phonestringTeléfono del beneficiario
platformstringAPI, WEB, MOBILE
is_for_quotebooleanfalse para ejecutar, true solo cotizar
longitudestringLongitud GPS
latitudestringLatitud GPS
client_callbackstringURL para notificaciones
💰

Modo Cotización: Usa is_for_quote: true para obtener el cálculo de fees sin ejecutar el retiro.

Respuesta

200 OK
{
  "code_transaction": "OK",
  "data": {
    "thirdpartywithdraw_id": 102,
    "sales_crypto_id": 0
  }
}

Estados del Retiro COP

EstadoCódigoDescripción
Creada0Retiro creado, pendiente de proceso
En proceso1Transferencia en curso
Consignada2Fondos consignados
Depositada3✅ Retiro completado exitosamente
Rechazada4❌ Rechazada por el banco

🇺🇸 Retiros Estados Unidos (USD)

Dos métodos disponibles para enviar USD a cuentas bancarias estadounidenses.


Método 1: Digital Payment

Método principal para enviar USD de forma rápida.

Endpoint

POST /api/digital_payment/

Headers

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

Request

request.json
{
  "deposit_option": "RTP,BANK",
  "amount": 100.00,
  "currency": "USD",
  "ip": "192.168.1.100",
  "latitude": "40.7128",
  "longitude": "-74.0060"
}

Campos

CampoTipoRequeridoDescripción
deposit_optionstringOpciones: RTP, RTP_FORCE_BANK, BANK (separadas por coma)
amountdecimalMonto en USD
currencystringDebe ser USD
ipstringIP del cliente
latitudestringLatitud GPS
longitudestringLongitud GPS

Opciones de Depósito

OpciónDescripción
RTPReal-Time Payment (más rápido)
RTP_FORCE_BANKRTP con fallback a banco
BANKTransferencia bancaria tradicional
⚠️

Requisito: El usuario debe tener una cuenta wallet USD activa. Si no la tiene, recibirá error MarketPlaceUserRequired.

Proceso Interno

Validación de cuenta

Verifica que el usuario tenga wallet USD activa.

Cálculo de fees

Calcula comisiones automáticamente.

Validación de balance

Verifica fondos suficientes en USD.

Creación del pago

Genera el digital payment.

Descuento de balance

Deduce el monto + fees del balance.

Respuesta

201 CREATED
{
  "check_id": "CHK_abc123xyz",
  "date": "2026-02-03T10:00:00Z",
  "amount": 100.00,
  "withdraw_id": 456
}

Errores Posibles

CódigoErrorDescripción
400MarketPlaceUserRequiredUsuario no tiene wallet USD
400UserHaveInsufficientBalanceBalance insuficiente
400InsufficientFundsSin fondos disponibles

Método 2: Transferencia Manual USD

Para enviar USD a cuentas bancarias USA usando transferencia tradicional.

Paso 1: Crear Cuenta Bancaria USA

Endpoint

POST /create_third_party_banks/

Request

request.json
{
  "account_holder_name": "John Doe",
  "account_type": 0,
  "account_holder_document_type": 0,
  "account_holder_document": "123456789",
  "account_number": "1234567890",
  "bank_name": 0,
  "country_registered": "US",
  "routing_number": "021000021",
  "wire": "JPMorgan Chase Bank",
  "address": "270 Park Avenue, New York, NY 10017"
}

Campos Adicionales para USA

CampoTipoRequeridoDescripción
country_registeredstringDebe ser US
routing_numberstringNúmero de routing/ABA del banco
wirestringNombre completo del banco para SWIFT
addressstringDirección del banco
🏦

El routing_number (ABA) es obligatorio para cuentas bancarias de Estados Unidos.

Paso 2: Crear Retiro USD

Endpoint

POST /create/third_party_withdraw/

Request

request.json
{
  "amount": 500.00,
  "currency": "USD",
  "full_name": "John Doe",
  "email": "john@example.com",
  "phone": "+14155551234",
  "third_party_bank_id": 90,
  "platform": "API",
  "is_for_quote": false
}
💵

Importante: Para retiros a bancos USA solo se puede usar moneda USD. Si intentas con otra moneda recibirás error InvalidCurrencyForQuoteWithDraw.

Respuesta

200 OK
{
  "code_transaction": "OK",
  "data": {
    "withdraw_id": 789
  }
}

Resumen de Fees

Los fees se calculan automáticamente según:

  • Configuración del perfil (CustomFees)
  • Fees globales del sistema (GlobalFee)

El sistema calcula:

  • amount: Monto solicitado
  • fee_amount: Comisión de Colurs
  • fee_iva_amount: IVA sobre la comisión
  • gmf_amount: GMF (4x1000) si aplica
  • payed_amount: Total a descontar del balance

Errores Comunes

CódigoErrorDescripción
400BalanceInsufficientBalance insuficiente para el retiro
400InvalidCurrencyForQuoteWithDrawMoneda inválida para el país
400MarketPlaceUserRequiredSe requiere wallet activa
404BankAccountNotFoundCuenta bancaria no encontrada
422UnsupportedBankNameBanco no soportado
422UnsupportedDocumentTypeTipo de documento no válido