What is Account Aggregation?

  • Updated

Account aggregation is the process of gathering multiple financial accounts' data so users can see every account and transaction in one place.

Aggregation Methods

There are several ways to aggregate financial information from financial institutions (FIs).


Open authentication or OAuth is an increasingly common, secure method of data sharing where a user gives permission to one application or website to access their data that is stored on another application or website. As a token-based solution, credentials are handled entirely by the OAuth provider and exchanged for a token that MX can use. OAuth provides a more secure connection for both the financial institution and its customers.

OAuth has formal definitions of roles that are helpful to know. MX uses these 4 regularly:

  1. "Resource owner" - the user
  2. "Resource server" and "Authorization server" - the bank's API
  3. "Client" - MX or the application requesting access

Two examples of OAuth that you may have seen before are:

  • “Sign in with Facebook/Google” options when signing into your accounts online
  • Making purchases with PayPal

In both scenarios, you are brought to the other site (Facebook/Google/PayPal), the “Authorization Server,” to confirm that you are okay giving the other site, the “Client,” access to your information or authorization to charge you.

MX is continuously adopting OAuth for as many institutions as possible because OAuth connections are more reliable, more secure, and allow MX to do aggregation in-house.

Aggregation with Data Exchange

Data exchange is the most secure, fastest way to connect with financial institutions (FIs) and aggregate data. Working together, the FI and MX's aggregators create a direct connection, usually via one or more APIs.

Data exchange avoids most of data scraping's downsides (see below), making it MX's preferred method for aggregation. When an FI cannot provide an API or is otherwise unable to establish a data exchange connection, MX uses data scraping.

An aggregator is created using data exchange with an online banking provider, screen scraping from a financial institution's website, or through data exchange using third-party vendors with financial institutions.

Aggregation with Data Scraping

Data scraping is the process of gathering data from one app or website by inputting user credentials (such as username and password) and mimicking human behavior, then displaying that data in another app or website. This method is less dependable and risker than OAuth and data exchange. Credential sharing puts the customer's credentials and data at risk, and the method is dependent on the front-end of an app or website. For example, when the Financial Institution redesigns their website, the connection may become unstable or break. Reestablishing that connection's stability is a lengthy process handled by dedicated engineers.


Aggregation Data Sources

  1. Direct Data Sources: Direct data sources include direct connections with FIs and our existing data for a given user.
  2. Vendor Data Sources: MX uses vendor (third-party) data sources when we do not have direct connections established with FIs.

Aggregation Flow

  1. One or more MX institution objects are established for an FI, where each has unique credentials and login URLs.
  2. MX provides each institution with multiple aggregators and multiple data sources. These include data scraping an FI's website and data exchanges with their online banking providers and third-party vendors.
  3. A primary aggregator is assigned to the institution and prioritized. Priority is given to data sources with healthy initial aggregations; we've found most sources struggle with this task but handle rolling aggregation with ease.
  4. MX authorizes a client app to connect with an institution using a member—a secure dataset with unique login credentials.
  5. MX attempts to sync a member's data with its institution data using jobs:
    1. An initial job runs when a member is created for an institution.
    2. A foreground job runs immediately when triggered by an end-user's activity in a client app or when the user makes an aggregation-specific request to the API. 
    3. Background jobs run on a schedule determined by MX; regardless of a user's recent activity, you can maintain accurate financial data. Background aggregation is a great way to monitor your user's financial data and provide them with priority notifications to improve their financial health and drive engagement for your app.

Was this article helpful?

2 out of 2 found this helpful