Account Aggregation


Upcoming Changes to Bank Logins

Major banks are starting to implement secure frameworks to access their users' accounts and restricting access via traditional approaches (e.g. screen-scraping). With this in mind, Synapse has direct agreements that will exclusively limit secure connectivity with some of these banks to our Chatbot Bank Logins.

Platforms currently using our standard API-based Bank Logins or the Bank Logins UI will no longer be able to link to external Capital One and Wells Fargo bank accounts after April 30th, 2020.

Further, support for the older Bank Logins UI service is expected to end completely on April 30th as well, with affected Platforms encouraged to transition to Chatbot Bank Logins.

Platforms who continue use of the standard API-based Bank Logins after April 30th should note that this method will continue to work with other currently supported banks, but that coverage will decrease as more banks require adoption of the updated account linking model that only Chatbot Bank Logins provides.


Account Aggregation (aka Bank Logins) refers to the ability for Synapse to connect to (and extract financial and transactional data from) external financial institutions. This allows Synapse to pull real-time data from the account, such as account balance or user information (Sync, Refresh), or to link and authenticate an account for ACH transactions (Auth).

Common Use Cases

  • Understand the user's financials and use this data to provide personal finance advice or budgeting tools with the collected information.
  • Connect external accounts for ACH transfers. Analyze the balance of the account to make sure it will likely have enough funds to cover an ACH debit.
  • Analyze the user's cash flow for loan decisioning.

Recommended Flow


  1. Create User with or without KYC.
  • Option 1: Create User w/o KYC: if you are only doing account aggregation you will not need to add KYC from the user.
  • Option 2: Create User w/ KYC Recommended Flow: if you are going to open nodes or transact, a defined level of KYC will be required and the user will need to have SEND-AND-RECEIVE permissions.
  1. Filter our List Banks API call to find if the bank you wish to link is covered by our Account Aggregation product, and save the bank_code which will be a necessary part of the payload to link an account (called bank_name in the Link Account API call).
  • In the response, you will also be able to find some other valuable info such as the bank logo (logo)--which you might want to display to your users--and tx_history_month which measures how many months of transaction history we have the capacity to pull from the institution.
  1. Link Account. You will need to submit the encrypted username (info.bank_id), password (info.bank_pw), and the bank code (info.bank_name) which can respectively be found in our List Banks as bank_code.

  2. Most banks will require MFAs. If that is the case, our Link Account API call will return "error_code: 10", a message, and an access_token (among other values). You will need to make our account aggregation call again and provide the access_token and an mfa_answer in the payload. See Link MFA Step for specifics.

  3. You might need to repeat the previous step a couple of times, as some banks require multiple MFAs.

  • Once finished the response should have an "error_code: 0". At this point, the account has been successfully linked and you will see the pulled data from the account in the JSON response.


  1. Make sure the institution has refreshes available by looking for sync in features in our List Bank Coverage call.

  2. Submit our Refresh call.

  • It is important to include the force refresh (force_refresh=yes) query parameter. If you don't force refresh you will be delivered data from the last sync (i.e. data that is likely out-of-date).


We cover over 2500 financial institutions. Our precise coverage is expressed in our List Banks Coverage endpoint (sent back as a JSON blob).

Something unique about our Account Aggregation service is that it works in tandem with other partner aggregators' services. Our internal service is bundled in our backend with these fallback aggregators to autonomously handle routing of traffic to the best aggregator based on the specific request. We observed that at scale most companies using aggregation services require partnerships with various aggregators and built the above-described logic. We consequently decided to build our Account Aggregation service in a manner that would allow platforms to avoid the complexity of building in these fallbacks themselves.

Data Provided



Estimated Coverage



Physical Address


Email Address


Phone Number


Account Data

  • Account & Routing Numbers
  • 60 days to 2 years of transaction history.
    • Please note that to reduce processing load, we truncate transaction history to the most recent 1200 transactions.
  • Balance

Bill Pay Analysis

Functionality currently in development: Along with transaction data, we also return all the bills a user has linked to their bank. In the long term our goal is to be able to provide a bill pay migration tool that would allow customers to switch banks in a matter of seconds, making it effortless for customers to be able to move from an external bank to a Synapse account.



Using other Data Providers

If you prefer to use account aggregators outside of Synapse, you can do so. Learn how to link to other account aggregators.

Updated 10 months ago

Account Aggregation

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.