Skip to content
Logo

POST /accounts/:id/balance/refresh

Force a fresh read of a virtual account's balance, persist it, and return the updated snapshot. Use this to back a manual "refresh" control (a dashboard button, a reconciliation step) when you want the latest number without waiting for the next event-driven sync.

For ordinary reads, prefer GET /accounts/:id/balance: Seismic keeps balances in sync as funds move (deposits landing, payments settling, account updates), so the stored balance is usually already current and costs nothing to serve.

Rate limit

A refresh reads upstream at most once per minute per account. Within that window the request returns the stored snapshot unchanged, so as_of may predate your call. That's expected, and means the balance is already fresh. However many clients or browser tabs trigger a refresh, Seismic makes at most one upstream read a minute per account.

Response 200

Identical to GET /accounts/:id/balance.

FieldTypeNotes
account_iduuidThe account the balance belongs to.
kind"fiat" | "crypto"Same discriminator as the account itself.
currencystringThe account's currency. Both amounts are denominated in it.
balancestringTotal funds credited to the account, in major units.
available_balancestring?The portion spendable right now (total minus holds and pending credits). Omitted when the distinction doesn't exist for the account.
as_oftimestampWhen Seismic last refreshed the balance.

Example

{
  "account_id": "5e3a…",
  "kind": "crypto",
  "currency": "USDC",
  "balance": "54.63",
  "as_of": "2026-07-07T18:04:00Z"
}

Errors

  • 400: the account is origin: "external". Balance only exists for virtual accounts.
  • 404: unknown id, or the account belongs to a different org.
  • 503: the upstream read couldn't complete right now. Retry with backoff.

Example

curl -X POST "$SEISMIC_ORCHESTRATION_URL/v0/accounts/5e3a…/balance/refresh" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"