---
title: "Refresh a virtual account's balance"
method: POST
path: "/v0/accounts/{id}/balance/refresh"
tags: ["Accounts"]
---

# Refresh a virtual account's balance

`POST /v0/accounts/{id}/balance/refresh`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/accounts/{id}/balance/refresh`
- Auth: API key in header `Api-Key`

Force a live re-read of a virtual account's balance. Rate-limited to once a minute per account; within the window the stored snapshot is returned unchanged.

## Path parameters

- `id` string, uuid, required

## Response `200`

The refreshed balance.

- ApiAccountBalance: Funds held in a virtual account — body of `GET /v0/accounts/:id/balance`. Served from the locally-stored snapshot Seismic keeps in sync as funds move (deposits, payments, account updates); `as_of` is when that snapshot was last refreshed. Amounts are decimal strings in `currency` major units, matching every other amount on the API. `available_balance` is the portion spendable right now (total minus holds/pending credits); omitted when the distinction doesn't exist for the account.
  - `account_id` string, uuid, required
  - `as_of` string, date-time, required
  - `available_balance` string, nullable
  - `balance` string, required
  - `currency` string, required
  - `kind` 'fiat' | 'crypto', required: Top-level kind of the account — fiat vs crypto. Carried explicitly on `ApiAccount` and `ApiAccountCreationRequest` so callers can branch without parsing `shape` (and because `details` is an untagged enum that won't help them dispatch).

## Other responses

- `400`: The account is external — balances exist only for virtual accounts.
- `401`: Missing or invalid API key.
- `404`: Account not found.

---

[API](https://skmtc.dev/seismic/apis/seismic-orchestration-api.md) - [All operations](https://skmtc.dev/seismic/apis/seismic-orchestration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seismic/apis/seismic-orchestration-api/revisions/08ada1f159fa?raw)
