Conceptos
Dinero
Assets, unidades mínimas, y por qué los montos viajan como texto.
El monto es un objeto, y raw es texto
Todo monto en el API tiene esta forma:
{ "raw": "2500000", "asset": "COPM" }raw es un entero positivo en unidades mínimas del asset, como string.
Ese ejemplo son 2.500.000 centavos = $25.000 COP.
Los assets
| Asset | Qué es | Escala | "100" equivale a |
|---|---|---|---|
COPM | Centavos de peso colombiano | 2 | $1 COP |
DUSD | Millonésimas de dólar | 6 | US$0,0001 |
Por qué texto y no número
Porque JSON no tiene enteros — tiene floats IEEE 754, y los parsers hacen lo que quieren con ellos:
9007199254740993(más de 2⁵³) se corrompe en silencio en JavaScript.0.1 + 0.2 ≠ 0.3— los decimales binarios no representan dinero decimal.- Cada lenguaje redondea distinto, y un ledger no puede depender del parser del cliente.
Un string llega intacto a todos lados. Tu trabajo es parsearlo con un tipo entero
(BigInt, int64, Decimal) — nunca con parseFloat.
Las reglas
- Sin decimales:
rawes un entero (patrón^\d+$). "$25.000,50" en COPM es"2500050", no"25000.50". Un monto con más precisión de la que el asset admite es400— no se redondea dinero ajeno. - Sin signos: la dirección la da la operación (transferencia, payout, bono), no el monto.
- Al mostrar, divide por la escala:
COPMentre 100,DUSDentre 1.000.000.
Dónde lo vas a ver
En todo: amount de transferencias y bonos, available/held de los
saldos, los movimientos, el fee de cada operación.
El libro habla una sola lengua.