🇪🇸 EspañolAPIsSwap (Conversión de saldo)

Swap (Conversión de saldo)

Conversión de saldo entre monedas dentro de la app (COP ↔ USD, MXN, BRL). No envía dinero a cuentas bancarias; solo mueve saldo entre tus wallets.

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

🔄

Diferencia con Exchange (FX): Exchange es para movimientos transfronterizos (cotizar y enviar a banco). Swap es para convertir saldo interno entre tus monedas en Colurs.


Visión General

¿Qué es Swap?

El módulo Swap permite convertir saldo de una moneda a otra dentro de tu cuenta Colurs:

  • USD → COP, COP → USD
  • USD → MXN, MXN → USD
  • USD → BRL, BRL → USD

El saldo se descuenta de la moneda origen y se acredita en la moneda destino en tu wallet.

Dos modos de conversión

ModoUso típicoComportamiento
SWAPUsuarios naturalesConversión inmediata. Se descuenta y acredita al instante en wallet principal (MAIN).
QUOTEUsuarios jurídicosRequiere aprobación del operador. Se reserva en wallet de cotización (QUOTATION) y al aprobar se acredita.

Flujo General

Crear cotización

Obtén la tasa y el monto destino con POST /quote/ (acción SWAP o QUOTE).

Ejecutar la conversión

Confirma la operación con POST /swap/ usando el quote_id del paso 1.

Para SWAP la conversión se aplica al instante. Para QUOTE el saldo queda reservado hasta que un operador apruebe la cotización.


Paso 1: Crear cotización

Obtiene la tasa de cambio y el monto resultante para la conversión. No ejecuta la operación.

Endpoint

POST /quote/

Headers

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

Request

CampoTipoRequeridoDescripción
currency_fromstringMoneda origen: USD, COP, MXN, BRL
currency_tostringMoneda destino: COP, USD, MXN, BRL
source_amountnumberMonto a convertir en la moneda origen
actionstringSWAP (inmediato) o QUOTE (requiere aprobación)

Respuesta exitosa (200)

200 OK
{
  "message": "OK",
  "data": {
    "id": 688,
    "user": "colurs@colurs.io",
    "currency_from": "USD",
    "currency_to": "COP",
    "rate": 4077.3125550239233,
    "fee_amount": 0.0,
    "fee_iva_amount": 0.0,
    "source_amount": 100000.0,
    "target_amount": 407731250.0,
    "total_paid": 100000.0
  }
}
CampoDescripción
idID de la cotización. Usar en POST /swap/ como quote_id.
rateTasa de cambio aplicada
source_amountMonto en moneda origen
target_amountMonto que recibirás en moneda destino
fee_amount, fee_iva_amountComisiones (si aplican)
💾

Guarda el id de la cotización para el siguiente paso. La cotización debe usarse con la misma action (SWAP o QUOTE).


Paso 2: Ejecutar la conversión

Ejecuta la conversión usando el ID de la cotización creada en el paso 1.

Endpoint

POST /swap/

Headers

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

Request

CampoTipoRequeridoDescripción
quote_idintegerID de la cotización (paso 1)
actionstringMisma acción que en la cotización: SWAP o QUOTE
ipstringIP del cliente
latitudestringLatitud GPS
longitudestringLongitud GPS

Respuesta exitosa (200)

200 OK
{
  "message": "OK",
  "data": {
    "id": 1688,
    "user": "colurs@colurs.io",
    "currency_from": "USD",
    "currency_to": "COP",
    "rate": 4077.3125550239233,
    "fee_amount": 0.0,
    "fee_iva_amount": 0.0,
    "source_amount": 100000.0,
    "target_amount": 407731250.0
  }
}

Con SWAP el saldo se actualiza de inmediato. Con QUOTE el monto queda reservado hasta la aprobación del operador.


Pares soportados

ParDescripción
USD → COPDólares a pesos colombianos
COP → USDPesos colombianos a dólares
USD → MXNDólares a pesos mexicanos
MXN → USDPesos mexicanos a dólares
USD → BRLDólares a reales
BRL → USDReales a dólares

Las tasas se actualizan periódicamente por el sistema.


Proceso interno (resumen)

SWAP (inmediato)

  1. Se descuenta el saldo de la moneda origen en la wallet principal (MAIN).
  2. Se acredita el saldo en la moneda destino en la wallet principal (MAIN).
  3. Se registran las comisiones en la wallet de Colurs.

QUOTE (con aprobación)

  1. Se descuenta el saldo de la moneda origen en la wallet de cotización (QUOTATION).
  2. Se espera la aprobación del operador.
  3. Al aprobar, se acredita el saldo en la moneda destino en la wallet de cotización (QUOTATION).

Cada conversión genera movimientos de balance con motivo SWAP.

📊

Puedes consultar tu balance por moneda con los endpoints de Balance para verificar saldos antes y después de la conversión.