Account Aggregation

Introduction

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

Linking

  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.
  2. 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.
  3. 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.

  4. 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.

  5. 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.

Refresh

  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).

Coverage

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

User

Type
Estimated Coverage

Name

100%

Physical Address

100%

Email Address

90%

Phone Number

75%

Account Data

  • Account & Routing Numbers
  • 60 days to 2 years of transaction history.
  • 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.

Sub-Resources

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.