curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/ledger/balances
// Works with a secret API key (ledger:read) or a dashboard JWT (balances:view)
const res = await fetch('https://api.liddie.io/api/v1/ledger/balances', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const { balances } = await res.json()
{
"balances": [
{ "currency": "BTC", "balance": "0", "reserved": "0", "available": "0", "pending": "0" }
]
}
Ledger
Get balances
Get your Liddie balances per currency — balance, reserved, available, and pending amounts returned as exact decimal strings, never lossy floats.
GET
/
api
/
v1
/
ledger
/
balances
curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/ledger/balances
// Works with a secret API key (ledger:read) or a dashboard JWT (balances:view)
const res = await fetch('https://api.liddie.io/api/v1/ledger/balances', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const { balances } = await res.json()
{
"balances": [
{ "currency": "BTC", "balance": "0", "reserved": "0", "available": "0", "pending": "0" }
]
}
See how much money you have, per currency. This endpoint is read-only and returns amounts as decimal strings — exact precision, never floats.
This endpoint takes no parameters — it always returns the balances of the merchant your credential belongs to.
Getting money out (withdrawals, payouts) is dashboard-only — see the withdrawals reference.
Authorization
Secret API-key scopeledger:read, or dashboard JWT with balances:view. Subject to the global rate limit (60 requests/minute — see the Overview). See the Authentication guide.
curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/ledger/balances
// Works with a secret API key (ledger:read) or a dashboard JWT (balances:view)
const res = await fetch('https://api.liddie.io/api/v1/ledger/balances', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const { balances } = await res.json()
{
"balances": [
{ "currency": "BTC", "balance": "0", "reserved": "0", "available": "0", "pending": "0" }
]
}
All amounts are decimal strings. Parse and compare them with a decimal library (
big.js, decimal.js) — never parseFloat, which silently loses precision on money.Response fields
array
One entry per currency.
Show properties
Show properties
string
Currency ticker.
string
Your spendable balance. Not a lifetime credit total: a reserve moves funds out of it, and a debit removes them, so it only ever reflects what is available now. Decimal string.
string
Held by in-flight egress — outbound money movement (withdrawals/refunds/payouts in progress). Decimal string.
string
What you can spend right now. It equals
balance — it does not subtract reserved, because a reserve is an atomic MOVE: the amount leaves balance the moment it is held, so subtracting it again would double-count. Spend against this figure directly. Decimal string.string
Incoming funds already CONFIRMED on-chain but not yet swept and credited — it sums
netAmount over payments in CONFIRMED or SWEEP_QUEUED with amountPaid > 0. A payment still gathering confirmations is not counted here. Decimal string.A payment increments your balance only when it settles (funds finish moving to storage — shown as “Processing” in the dashboard while in flight). A
WAITING/CONFIRMING payment shows nothing here yet.See also
- Get ledger history: the individual credits and debits behind these totals.
- Get a payment: check an individual payment’s status and fee breakdown before expecting a credit here.
- Request a withdrawal: spend the
availablebalance to a whitelisted address. - Webhooks & IPN: get pushed a settlement event instead of polling balances.