Saltar al contenido principal

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 siempre acreditan al saldo USDT; los otros saldos 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.

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, UTC, 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 16 de julio de 2026