Features
API
Transactions
-
As a client, I can get cached transactions from our database.
-
As a client, I can get transactions directly from plaid.
Accounts
-
As a client, I can get cached account information from our database.
-
As a client, I can get live account information directly from plaid.
-
As a client, I can get a live balance check directly from plaid.
Items
-
As a client, I can link a new item to a user with a plaid public_token.
-
This will create a new item in the database, encrypt the account and routing numbers and activate the user.
-
-
As a client, I can retrieve all items that a user has linked.
-
I can also filter by item status, such as "ACTIVE", "REMOVED", "ERROR".
-
I can also get account information for each item.
-
I can also get bank logos for each item.
-
-
As a client, I can retrieve information about a specific item.
-
As a client, I can update the main account_id within an item.
-
As a client, I can remove an item for a user as long as they do not have an active float.
-
As a client, I can force remove an item for a user, even if they have an active float.
-
As a client, I can check if a user is able to change their plaid item.
-
As a client, I can reset an item to ITEM_LOGIN_REQUIRED in the test environment / plaid sandbox.
-
As a client, I can queue an items accounts and transactions to be remined.
Plaid Mining
Institutions
-
We routinely query plaid for updated institution information and save it in our database for easy access.
Listener
-
When a user logs in, we check to see if they are up to date on their cached accounts and transactions. If they are not, we generate a fake plaid webhook to trigger the plaid mining process.
Webhooks
-
When plaid sends us any webhook, we store the webhook contents.
-
We handle the following types of TRANSACTION webhooks:
-
DEFAULT_UPDATE - Fetches transactions and accounts from plaid and saves them.
-
HISTORICAL_UPDATE - A webhook that indicates that we can get up to two years of transactions from plaid. We page through the available transactions and save them.
-
INITIAL_UPDATE - The initial webhook from plaid with the first 30 days of transactions. We fetch the available transactions and accounts and save them.
-
TRANSACTIONS_REMOVED - We mark the transactions that plaid says have been removed in our database.
-
-
We handle the following types of ITEM webhooks:
-
ITEM_REPAIRED - Send item repaired segment event
-
ERROR - Send item errored segment event
-
USER_PERMISSION_REVOKED - Send item errored segment event
-
WEBHOOK_UPDATE_ACKNOWLEDGED - Log only
-
-
We output both the raw plaid transactions/accounts and our refined transactions/accounts onto kinesis streams.