# Design a bank account aggregator like Plaid: system design interview question

> Bank data integration: different bank APIs, transaction changes, consent revocation, and sync progress across failures.

Source: https://sysround.com/questions/design-bank-account-aggregator-like-plaid
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a platform that connects to financial institutions and exposes account and transaction data in a common format. Users must control access to their data, and the platform must keep that data current."

## What to clarify first

- Institutions and access
- Scale
- Read and write traffic
- Freshness and sync cost
- Bank API differences
- Latency
- Consistency, availability, and durability
- Consent revocation
- Retention and deletion
- Scope limits

## Scope of a strong answer

Core requirements:

- Connect a bank with the user's consent
- Expose accounts, balances, and transactions in a common format
- Keep data current through incremental sync
- Revoke access and delete the associated data

Usually out of scope:

- Move money or initiate payments
- Collect bank passwords or extract data from bank websites
- Categorize transactions or assess credit risk
- Provide active service across multiple regions

## What interviewers probe

### The meaning of bank data

Banks represent the same financial event in different ways. Incorrect normalization can duplicate expenses or misstate balances.

### Progress through transaction changes

A sync must survive page retries, corrections, and cursor resets without losing changes or creating duplicate records.

### Access after consent ends

Revocation must stop access across reads, queued work, late bank responses, and retained copies.

### Freshness during bank failures

Bank quotas and outages control data freshness. One large bank can create enough delayed work to affect every other bank.

## Common mistakes

- Assumes all bank APIs provide stable IDs and complete delta feeds.
- Treats transaction sync as an append-only import.
- Uses the newest transaction date as the only sync checkpoint.
- Treats consent revocation as token deletion alone.
- Makes client reads depend on live bank requests.
- Adds workers without accounting for bank quotas or delayed work.

## The bar by level

- **Senior:** Defines atomic sync progress, correction scans, and pending transaction rules. Handles quota limits, stale workers, token rotation, and late results after revocation.
- **Staff+:** States guarantees when bank APIs lack stable identity or sufficient quotas. Defines revocation across restores, consent generations, and every access path. Quantifies freshness limits and isolates institutional failures.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=bank-account-aggregation


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
