Skip to main content

Cuatro saldos virtuales independientes

Cada cuenta mantiene cuatro saldos virtuales, uno por moneda. Son totalmente independientes entre sí: nunca se mezclan ni se convierten automáticamente. GET /v1/balances devuelve siempre los cuatro (con ceros si no has operado esa moneda), como strings decimales:
Internamente cada monto se almacena como entero en la unidad mínima de su moneda (micro-USDT, satoshis, micro-gramos) y se calcula con aritmética racional exacta. Nunca hay floats ni errores de redondeo acumulados.
USDT es la moneda operativa: los precios de payouts, payins fiat y comisiones de servicios se cotizan siempre en USDT. Pero el pago puede salir de cualquiera de los cuatro saldos — ver Elige desde qué saldo pagas. Los payins acreditan en USDT y, si configuras default_payin_asset, el neto se auto-convierte al saldo que elijas — ver Elige en qué saldo se acreditan tus payins. Los otros saldos también se fondean con transferencias internas (siempre entre saldos de la misma moneda), depósitos on-chain (USDC y BTC) o abonos de tu operador (GOLD).

Elige desde qué saldo pagas

Los payouts y las comisiones de servicios (KYC, creación de wallets, banking) pueden debitarse desde cualquiera de tus cuatro saldos. El pipeline de pricing no cambia: la operación se cotiza en USDT como siempre, y al final el total se traduce al asset elegido con el precio efectivo de settlement del momento.
  • Predeterminado por cuenta: PUT /v1/settlement con {"default_settlement_asset": "BTC"}. Desde ahí, todo payout y toda comisión de servicio sale del saldo BTC (si alcanza; no hay cascadas a otros saldos).
  • Override por operación: envía settlement_asset en POST /v1/payouts (o en el confirm de QR) para pagar esa operación puntual desde otro saldo, sin tocar el predeterminado.
Reglas del settlement multi-asset: El bloque settlement de GET /v1/rates muestra el precio efectivo por asset (spread incluido) para estimar antes de operar, y la respuesta del payout registra settlement_asset, settlement_amount y settlement_rate para auditoría.

Elige en qué saldo se acreditan tus payins

Por defecto los payins (QR, transferencia, collect, tarjeta) acreditan al saldo USDT. Si prefieres quedarte en otro asset, configura default_payin_asset: el crédito sigue entrando en USDT (pricing, spread FX y comisiones intactos) y el neto acreditado se auto-convierte a tu asset con el motor de swaps al precio real, sin spread adicional — el payin ya pagó su comisión y su tasa; la conversión automática no cobra una segunda vez. Aplican los mismos límites de un swap normal.

available y held

Cada saldo tiene sus dos contadores: Cuando creas un payout o retiro, el débito (monto + comisión) sale de available y queda en held hasta que la operación llega a estado final:
  • completed → el hold se consume; el dinero salió.
  • failed → se reembolsa el débito completo (monto + comisión) a available.

Conversión FX (fiat ↔ USDT)

Las operaciones fiat se convierten a USDT con las tasas de tu cuenta al momento de ejecutar (las mismas que devuelve GET /v1/rates, base USD): rate para payouts y payin_rate para payins. La conversión redondea hacia arriba en los débitos y hacia abajo en los abonos, con una diferencia máxima de 1 micro-USDT. Ejemplo de un payout de 50.000 CLP con tasa 950.25:
Ejemplo de un payin de 50.000 CLP con payin_rate 955.10:
La tasa usada queda registrada en el objeto (fx_rate) para auditoría.

Precios de referencia y de settlement

GET /v1/rates incluye un bloque asset_prices con el precio USD de referencia de cada moneda (BTC por unidad, GOLD por gramo; USDT y USDC valen 1 por convención), para valorizar tus saldos en pantalla, y un bloque settlement con el precio efectivo al que se valoraría tu saldo si pagas una operación desde ese asset (spread incluido):
settlement_grade: true indica que el precio está lo bastante fresco para ejecutar operaciones; si baja a false, los pagos desde ese asset responden 503 pricing_unavailable hasta que el precio vuelva.

Ledger inmutable

Cada movimiento genera una entrada inmutable con saldo resultante (balance_after) en la moneda del movimiento. Tu historial completo está en GET /v1/movements (filtra por moneda con ?asset=):
Todos los listados (/v1/movements, /v1/payouts, /v1/payins, /v1/crypto/transactions, /v1/banking/operations) aceptan paginación (page, page_size hasta 200) y filtros de fecha from/to (YYYY-MM-DD, zona horaria de la organización, inclusive).

Estados de operación

Payouts y retiros crypto siguen el mismo ciclo: Los estados finales (completed/failed) llegan por webhook; no es necesario hacer polling.
Última modificación el 10 de agosto de 2026