api.accounts.balance
The balance of a virtual account. Balances are kept in sync as funds move (deposits, payments, account updates) and serves the stored balance. as_of says when it was last refreshed. The first-ever read of an account that has never been synced is backfilled with a fresh read and may take a moment. Virtual accounts only: external accounts throw a 400 error, since their funds sit at your own bank or wallet.
The same fields also appear inline on the Account record (balance, available_balance, balance_as_of), and single-account reads like api.accounts.get run the same backfill. If you already fetched the account, you may not need this call at all.
To force the latest number on demand, use api.accounts.refreshBalance, which reads upstream (rate-limited to once a minute per account).
const = await ..("5e3a…");
// Amounts are decimal strings in the account's currency, major units.
.(`${.} ${.}`);
// `available_balance` is the spendable portion (total minus holds and
// pending credits); absent when the distinction doesn't exist.
if (. !== ) {
.(`${.} available`);
}Arguments: id: string.
Returns: Promise<AccountBalance>:
{
"account_id": "5e3a…",
"kind": "fiat",
"currency": "GBP",
"balance": "150.00",
"available_balance": "130.00",
"as_of": "2026-06-12T12:30:00Z"
}as_of is when Seismic last refreshed the balance.
REST endpoint: GET /accounts/:id/balance.
