---
title: "Balance - Introduction to Balance | Plaid Docs"
description: "Retrieve real-time balance information"
canonical: "https://plaid.com/docs/balance/"
---

Introduction to Balance  
=========================

#### Retrieve real-time balance information 

Get started with Balance

[API Reference](https://plaid.com/docs/api/products/signal/index.html.md) [Quickstart](https://plaid.com/docs/quickstart/index.html.md) [Demo](https://plaid.coastdemo.com/share/6786ccc5a048a5f1cf748cb5?zoom=100)

#### Overview 

Balance is Plaid's product for receiving real-time balance information. This data is commonly used to tell if an account has sufficient funds before using it as a funding source for a payment transaction, helping you to avoid ACH returns. Balance is available for use exclusively in combination with other Plaid products, such as [Auth](https://plaid.com/docs/auth/index.html.md) for money movement or account funding use cases or [Transactions](https://plaid.com/docs/transactions/index.html.md) for personal finance use cases.

There are two ways to retrieve real-time balance, depending on your use case. To check balance for the risk of a proposed ACH payment, use [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , which evaluates the balance against your [Signal Rules](https://plaid.com/docs/signal/signal-rules/index.html.md) ; this is also the path to later add [Signal Transaction Scores](https://plaid.com/docs/signal/index.html.md) with no re-integration. For all other use cases, such as personal finance management, treasury, or simply displaying a balance, use [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) . For more details, see [Balance integration options](https://plaid.com/docs/balance/index.html.md#balance-integration-options) .

[Prefer to learn by watching? Get an overview of how Balance works in just 3 minutes!](https://www.youtube.com/watch?v=VfXwIkNsqO8)

#### Cached and real-time balance 

While you can retrieve balance data via many endpoints, including by calling the free-to-use [/accounts/get](https://plaid.com/docs/api/accounts/index.html.md#accountsget) endpoint, this data is cached, making it unsuitable for situations where you need real-time balance information, except immediately after the Item has been added.

An Item with Transactions may update cached balances once a day or more, while an Item with only Auth may update cached balances every 30 days or even less frequently.

For retrieving real-time balance for payments use cases, only Balance should be used.

Because Balance always performs a real-time data extraction, latency is higher than other Plaid endpoints (p50 ~3s, p95 ~11s). To check for ACH return risk in critical user-present flows that require low latency, consider [Signal Transaction Scores](https://plaid.com/docs/signal/index.html.md) . For more details, see [Reducing latency and getting better insights with Signal Transaction Scores](https://plaid.com/docs/balance/index.html.md#reducing-latency-and-getting-better-insights-with-signal-transaction-scores) .

#### Balance integration options 

There are two options for retrieving balance data, each designed for a different use case:

*   If you are checking balance to avoid ACH returns on a transaction, use [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) . At no additional cost, this endpoint gives you access to a suite of powerful tools designed for ACH risk management, including Dashboard-configurable rules to automatically accept or reject proposed transactions and interactive models to help you determine the best thresholds for your business. It also future-proofs your integration by being fully compatible (no code changes required) with the more sophisticated, lower-latency models used by [Signal Transaction Scores](https://plaid.com/docs/signal/index.html.md) .
*   For personal finance management or treasury management use cases, use [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) . This endpoint just returns real-time balance without providing any additional functionality.

Both return the same account data at the same price and latency, so your choice should be driven by use case rather than cost or performance.

##### Balance using /signal/evaluate 

The [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) endpoint is the recommended way to retrieve balance data whenever you are checking balance to evaluate the insufficient funds risk of a proposed ACH transaction. [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) checks balance and returns current and available balance, as well as a recommended action to take (i.e., accept the transaction, review it further, or request a different payment method) based on a ruleset evaluation using [Signal Rules](https://plaid.com/docs/signal/signal-rules/index.html.md) . With Signal Rules, you can easily customize your business logic around these recommended actions in a Dashboard-based UI, without making any code changes.

(An image of "no description available")

Using Balance with Signal Rules in the Dashboard

[/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) is available for all new Balance customers who received Production access after October 15, 2025. If you are an existing Balance customer and would like access to [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , contact your account manager; for more details, see the [migration guide](https://plaid.com/docs/balance/migration-guide/index.html.md) .

##### Balance using /accounts/balance/get 

[/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) retrieves balance data, including current and available balance, but does not run Signal Rules. This endpoint is recommended for all use cases where you are _not_ checking balance to evaluate a proposed ACH transaction: for example, if you need real-time balance data for a Personal Financial Management (PFM) use case, or for treasury management, or for any non-US bank account. [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) is also the legacy endpoint for checking balance that many customers use in existing integrations.

#### Integration overview using /signal/evaluate 

1.  [Create a Balance-only Rule](https://plaid.com/docs/signal/signal-rules/index.html.md) in the [Signal Rules Dashboard](https://dashboard.plaid.com/signal/risk-profiles) .
    
2.  Call [/link/token/create](https://plaid.com/docs/api/link/index.html.md#linktokencreate) . Along with any other parameters you specify, make sure to include the following:
    
    *   Include `signal` and `auth` in the `products` array, along with any other Plaid product(s) you plan to use. Do _not_ include `balance` in the `products` array.
3.  On the client side, create an instance of Link using the `link_token` returned by [/link/token/create](https://plaid.com/docs/api/link/index.html.md#linktokencreate) ; for more details, see the [Link documentation](https://plaid.com/docs/link/index.html.md) .
    
    *   If you will be using the linked Item as a payment source or destination, it is recommended to [configure your Link customization](https://plaid.com/docs/link/customization/index.html.md) to use the setting [Account Select: Single select](https://plaid.com/docs/link/customization/index.html.md#account-select) . Otherwise, you will need to build a UI within your app for the user to indicate which account they want to use for the payment, if their bank login is associated with more than one bank account.
4.  Once the end user has completed the Link flow, exchange the `public_token` for an `access_token` by calling [/item/public\_token/exchange](https://plaid.com/docs/api/items/index.html.md#itempublic_tokenexchange) .
    
5.  Call [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) and [determine the next steps based on results](https://plaid.com/docs/signal/signal-rules/index.html.md#using-signal-ruleset-results) .
    
6.  [Report ACH returns and decisions](https://plaid.com/docs/signal/reporting-returns/index.html.md) to Plaid.
    
7.  (Optional) After launch, periodically [review and tune your Signal Rules](https://plaid.com/docs/signal/tuning-rules/index.html.md) using the Dashboard.
    

#### Integration overview using /accounts/balance/get 

1.  Call [/link/token/create](https://plaid.com/docs/api/link/index.html.md#linktokencreate) with the product(s) you plan to use. Do _not_ include `balance` in the `products` array.
    
2.  On the client side, create an instance of Link using the `link_token` returned by [/link/token/create](https://plaid.com/docs/api/link/index.html.md#linktokencreate) ; for more details, see the [Link documentation](https://plaid.com/docs/link/index.html.md) .
    
3.  Once the end user has completed the Link flow, exchange the `public_token` for an `access_token` by calling [/item/public\_token/exchange](https://plaid.com/docs/api/items/index.html.md#itempublic_tokenexchange) .
    
4.  Call [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) , passing in the `access_token` returned in step 3.
    

#### Reducing latency and getting better insights with Signal Transaction Scores 

For use cases that involve evaluating a proposed ACH transaction to reduce return risk, Balance can be used alongside [Signal Transaction Scores](https://plaid.com/docs/signal/index.html.md) . Signal Transaction Scores has lower latency (p95 <2s versus Balance's 11s), making it ideal for user-present transactions in critical flows such as onboarding or purchasing. With Signal Transaction Scores, you can access 80+ criteria for rule generation and ML-powered recommendations and insights to help you optimize and fine-tune your transaction approval logic.

Signal Transaction Scores and Balance are both part of Plaid Signal, Plaid's solution for ACH risk management. You can purchase and use either Balance or Signal Transaction Scores by itself, or combine them for a more comprehensive ACH risk management approach.

Once you have integrated Balance using [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , Signal Transaction Scores requires no additional engineering work to integrate. Just use the Signal Rule editor in the Dashboard to upgrade your existing Balance-only rule into a Signal Transaction Score-powered rule.

To learn more, or to request access to Signal Transaction Scores, contact [sales](https://plaid.com/contact/) or your account manager.

#### Adding Balance to existing Items 

If you are an existing Plaid customer and would like to get real-time balance data for an existing Item, simply call [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) on the Item.

If you would like to use [Signal Rules](https://plaid.com/docs/balance/index.html.md#balance-using-signalevaluate) with a Balance-only ruleset to evaluate a balance on an existing Item that was not initialized with `signal`, you can call [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) on the Item directly; evaluating a balance does not require the risk product disclosure. If you upgrade the ruleset to use [Signal Transaction Scores](https://plaid.com/docs/signal/index.html.md) , the user must first agree to the risk product disclosure; for more details, see [Adding Signal to existing Items](https://plaid.com/docs/signal/creating-signal-items/index.html.md#adding-signal-to-existing-items) .

#### Migration guide 

If you are an existing customer and would like to migrate from [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) to [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) to take advantage of Signal Rules, see the [Balance migration guide](https://plaid.com/docs/balance/migration-guide/index.html.md) .

#### Current and available balance 

Banks represent balance with two separate values, current balance and available balance. For assessing ACH risk, available balance is often more important than current balance, as it represents predicted balance net of any pending transactions, while current balance does not take pending transactions into account.

For credit accounts, available balance indicates the amount that can be spent without hitting the credit limit (net of any pending transactions), while in investment accounts, it indicates the total available cash.

In some cases, a financial institution may not provide available balance information. If necessary, you can often calculate available balance by starting with the current balance, then using the [Transactions](https://plaid.com/docs/transactions/index.html.md) product to detect any pending transactions and adjusting the balance accordingly.

##### Typical balance fill rates by field 

| Field | Typical fill rate |
| --- | --- |
| Current balance | 99% |
| Available balance | 91% |

#### Balance pricing 

Balance is billed on a [flat fee model](https://plaid.com/docs/account/billing/index.html.md#per-request-flat-fee) , meaning you will be billed once for each successful call to [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) or [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) .

[/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) (when used with a Balance-only ruleset) and [/accounts/balance/get](https://plaid.com/docs/api/products/signal/index.html.md#accountsbalanceget) are billed at the same rate.

When using [/signal/evaluate](https://plaid.com/docs/api/products/signal/index.html.md#signalevaluate) , you will be billed if the API call is successful, even if balance extraction fails.

To view the exact pricing you may be eligible for, [apply for Production access](https://dashboard.plaid.com/overview/production) or [contact sales](https://plaid.com/contact/) . For more details about pricing and billing models, see [Plaid billing](https://plaid.com/docs/account/billing/index.html.md) .

#### Next steps 

To get started building with Balance, see [Add Balance to your App](https://plaid.com/docs/balance/add-to-app/index.html.md) .

If you're ready to launch to Production, see the Launch Center.

#### Launch Center 

See next steps to launch in Production

[Launch](https://dashboard.plaid.com/developers/launch-center)