Plaid logo
Docs
ALL DOCS

Balance

  • Introduction to Balance
  • Add Balance to your app
  • Migrate to Signal Rules
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
    Plaid.com
    Log in
    Get API Keys
    Open nav

    Balance migration guide

    Why migrate?

    If you use Balance to reduce ACH return risk, migrating your integration from /accounts/balance/get to /signal/evaluate and Signal Rules provides the following benefits:

    • Configure and customize business logic for accepting transactions in the Signal Dashboard, without making any code changes.
    • View your transaction return activity and performance via the Dashboard.
    • Access personalized recommendations and scenario modeling to help tune and optimize your rules.
    • If you need to upgrade certain balance checks to using Signal Transaction Scores for lower latency, deeper insights, or more sophisticated rules logic, you can do so without any code changes.

    Note: Signal Rules and /signal/evaluate are only available for use cases involving evaluating potential ACH transactions for return risk. Other Balance use cases should continue to use /accounts/balance/get.

    Migration steps

    Signal Rules will be available soon for all existing Balance customers. In the meantime, if you would like to migrate to /signal/evaluate, contact your Account Manager to request access.

    1. Configure the Signal Rules in the Dashboard to create a Balance-only Ruleset that matches your existing business logic. For more details, see Signal Rules.

    2. Replace your /accounts/balance/get calls with calls to /signal/evaluate. At a minimum, you will need to send the following parameters:

      • The access_token
      • The account_id of the account you will be debiting
      • The transaction amount
      • A client_transaction_id of your choosing to uniquely identify the proposed transaction
      • The ruleset_key you want to use, if you are using multiple rulesets (will default to using the default ruleset if not specified)
    3. /signal/evaluate will return a ruleset.result such as ACCEPT or REROUTE, based on your ruleset logic. In your application's code, replace the balance-based logic around accepting or rerouting a proposed transaction to instead use the value of this field.

    4. If you still need direct access to real-time balance data (for example, to display in your UI) you can access it via the core_attributes.available_balance and core_attributes.current_balance fields returned by /signal/evaluate.

    5. Report whether you proceeded with the transaction by calling /signal/decision/report. You only need to do this if the result was REVIEW, or if you did not follow the recommendation in the result (e.g. accepted a transaction even if the result was REROUTE).

    6. If you later receive an ACH return for an accepted transaction, call /signal/return/report.

    Was this helpful?
    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord