Skip to content

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”
What you send
{ "deliver": { "asset": "BS", "amount": 5000000 } }
What you receive
{
"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
const toMinor = (bs) => BigInt(Math.round(bs * 100)); // only from human input
const 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.

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.

{ "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.

GET /treasury/position also returns minor units as strings. What each figure means: settlement and daily close.