Retiros Bancarios

Retira fondos a una cuenta bancaria registrada en Colombia en COP o USD.

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

Obtener Lista de Bancos

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

GEThttps://dev.backend.colurs.co/list_third_party_banks/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

CampoTipoRequeridoDescripción
countrystringCódigo ej. CO, US

Respuesta

response.json
[
{ "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

Obtener Tipos de Documento

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

GEThttps://dev.backend.colurs.co/base/document_type/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Respuesta

response.json
[
{ "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

Crear Cuenta Bancaria

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

POSThttps://dev.backend.colurs.co/create_third_party_banks/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

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

Ejemplo cURL

curl -X POST "https://dev.backend.colurs.co/create_third_party_banks/" \
-H "Authorization: Bearer [TOKEN]" \
-H "x-api-key: [API_KEY]" \
-H "Content-Type: application/json" \
-d '{
  "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",
  "nickname": "Cuenta Principal"
}'

Respuesta

response.json
{
"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"}
}
**Tipos de Cuenta:** `0` = Ahorros, `1` = Corriente.
💾
Guarda el `id` de la cuenta para usarlo en el siguiente paso.

Listar Cuentas Bancarias

Listar Cuentas Bancarias

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

GEThttps://dev.backend.colurs.co/list_third_party_banks/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

CampoTipoRequeridoDescripción
countrystringFiltrar por país: CO, US

Respuesta

response.json
{
"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

Crear Retiro COP

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

POSThttps://dev.backend.colurs.co/create/third_party_withdraw/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

CampoTipoRequeridoDescripción
dispersionsarrayObjetos con third_party_bank_id, amount, client_idempotency_key
currencystringCOP o USD
longitudestringLongitud
latitudestringLatitud
platformstringAPI

Respuesta

response.json
{
"code_transaction": "OK",
"data": {
  "thirdpartywithdraw_id": 102,
  "sales_crypto_id": 0
}
}
💰
**Modo Cotización:** Usa `is_for_quote: true` para obtener el cálculo de fees sin ejecutar el retiro. Para estimar usa `POST /send/estimate/user/` con send_channel: DALE.

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.


⚠️

El endpoint POST /api/digital_payment/ no existe en el OpenAPI (swagger.json). Para envíos USD consulta los endpoints documentados en Wallet USD y en Cuentas bancarias EEUU.


Transferencia Manual USD

Paso 1: Crear Cuenta Bancaria USA

Crear Cuenta Bancaria USA

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

POSThttps://dev.backend.colurs.co/create_third_party_banks/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

CampoTipoRequeridoDescripción
account_holder_namestringNombre del titular
account_typeint0 = Ahorros, 1 = Corriente
account_holder_document_typeintID tipo documento
account_holder_documentstringNúmero de documento
account_numberstringNúmero de cuenta
bank_nameintID del banco
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

Crear Retiro USD

Autorización

Se requieren el header x-api-key y Authorization: Bearer <token>.

Endpoint

POSThttps://dev.backend.colurs.co/create/third_party_withdraw/

Headers Requeridos

Content-Type: application/jsonAccept: application/jsonx-api-key: [API_KEY]Authorization: Bearer [ACCESS_TOKEN]

Request Body

CampoTipoRequeridoDescripción
amountdecimalMonto
currencystringUSD
full_namestringNombre completo
emailstringEmail
phonestringTeléfono
third_party_bank_idintID de la cuenta
platformstringAPI
is_for_quotebooleanfalse

Respuesta

response.json
{
"code_transaction": "OK",
"data": {
  "withdraw_id": 789
}
}
💵
**Importante:** Para retiros a bancos USA solo se puede usar moneda `USD`. Si intentas con otra moneda recibirás error `InvalidCurrencyForQuoteWithDraw`.

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