Amounts and bolívares
All amounts are integers in minor units. Never floating point.
5000000 = Bs 50,000.00 50000 = Bs 500.00 100 = Bs 1.00 1 = Bs 0.01| Asset | Decimals | 1.00 | 500.00 | 50,000.00 |
|---|---|---|---|---|
BS |
2 | 100 |
50000 |
5000000 |
USD |
2 | 100 |
50000 |
5000000 |
USDT |
6 | 1000000 |
500000000 |
50000000000 |
USDC |
6 | 1000000 |
500000000 |
50000000000 |
BS is the asset you pay out in. USD, USDT and USDC only appear as the
asset on the side you spend in a
quote with conversion.
With 6 decimals, an exact delivery in Bs is quoted without rounding: each micro-USDT is worth less than a cent of a bolívar.
Number in the request, string in the response
Section titled “Number in the request, string in the response”{ "deliver": { "asset": "BS", "amount": 5000000 } }{ "spend": { "asset": "BS", "amount": "5050000" }, "deliver": { "asset": "BS", "amount": "5000000" }, "fee": { "asset": "BS", "amount": "50000" }}| Direction | JSON type | Detail |
|---|---|---|
| Request | integer number | "5000000" and 5000000.5 are rejected with 400 validation_failed |
| Response | string | A large amount does not fit safely in a JavaScript Number |
Converting
Section titled “Converting”const toMinor = (bs) => BigInt(Math.round(bs * 100)); // only from human inputconst toText = (minor) => (BigInt(minor) / 100n) + '.' + String(BigInt(minor) % 100n).padStart(2, '0');toText("5000000"); // "50000.00"If the amount comes from a text field, validate it as a two-place decimal before multiplying by 100.
The figures of a payout
Section titled “The figures of a payout”| Figure | In the quote | In the payout response | In the payment |
|---|---|---|---|
| What the beneficiary receives | deliver.amount |
amount |
payout_amount |
| Our fee | fee.amount |
feeAmount |
fee_amount |
| What is debited from you | spend.amount |
totalDebited |
source_amount |
Without conversion the fee is charged on top (spend = deliver + fee);
with conversion it is deducted from the converted amount (deliver = the
converted amount minus fee). See quoting.
On a failed payment the fee is 0: the entry is fully reversed.
Rates are decimals
Section titled “Rates are decimals”{ "value": "37.81", "market": "38", "spread_bps": 50 } — value is the rate
applied, including our margin, in major units (bolívares per 1 USD or
1 USDC, regardless of each asset’s decimals); market the reference rate,
before the margin; spread_bps the difference in basis points. rate is
null when there is no conversion. The values in this example are
illustrative, not a price: yours is at GET /v1/fee-schedules.
Your balance
Section titled “Your balance”GET /treasury/position also returns minor units as strings. What each figure
means: settlement and daily close.