# Real Time Balance

The real-time balance endpoint fetches the account balance directly from the financial institution without triggering a full item sync. This is useful when you need up-to-date balance information between regular sync cycles.

```
GET /accounts/{id}/balance
```

```json
{
  "balance": 1500.50,
  "blockedBalance": 0,
  "automaticallyInvestedBalance": 200,
  "closingBalance": 1500.50,
  "currencyCode": "BRL",
  "updateDateTime": "2024-01-15T10:30:00Z"
}
```

| Field | Description |
|-------|-------------|
| `balance` | Available balance of the account. Same value as `balance` in the [account resource](/reference/accounts-retrieve). |
| `blockedBalance` | Amount currently blocked or held on the account. Only present when the institution reports it. |
| `automaticallyInvestedBalance` | Amount held in the account's automatic investment facility. Only present when the institution reports it. |
| `closingBalance` | Accounting balance of the account: `balance` plus `blockedBalance`. Same value as `bankData.closingBalance` in the account resource. Only present when the institution reports it. |
| `currencyCode` | Currency of the amounts above. |
| `updateDateTime` | When the institution last updated the balance. |

The `balance` value returned by this endpoint is calculated using the same logic as a full item execution, including the Itaú and Banco do Brasil rule for automatically invested amounts. The one exception is the overdraft adjustment: a full execution returns `balance` as the negative of the overdraft used when the institution reports zero and overdraft is in use, and this endpoint does not. See [Bank account balances on Open Finance](/docs/products/accounts#bank-account-balances-on-open-finance).

When you call this endpoint, the account resource is updated with what the institution answered: `balance`, and, when reported, `bankData.closingBalance` and `bankData.automaticallyInvestedBalance`. Any subsequent `GET /accounts/{id}` request reflects the values fetched by the real-time balance call, so both endpoints stay consistent without waiting for the next sync. Amounts the institution did not report are left as the last sync stored them.

<Callout variant="info" title="Optional fields">
`blockedBalance`, `automaticallyInvestedBalance` and `closingBalance` are omitted from the response when the institution does not report them. Treat them as optional in your integration.
</Callout>

<Callout variant="warning" title="Warning">
This endpoint is only available for **Open Finance connectors**. Calling it on non-Open Finance accounts will return an error.
</Callout>

**Rate limiting:** The rate limit for this endpoint is **shared with the full item execution**. Requests to the real-time balance endpoint and item syncs both count toward the same rate limit quota imposed by the financial institution. If the institution rate-limits the request, you will receive a `429` response.

| Response Code | Description |
|---------------|-------------|
| `200` | Balance fetched and account updated |
| `404` | Account not found for the given ID |
| `429` | Rate limited by the financial institution -- retry later |
| `500` | Error fetching the balance from the connector |

See [Get real-time balance](/reference/account-balance-get) in the API reference for more details.