API Reference
- Search financial transactions:
GET /bank-linking/transactions - Get a financial transaction:
GET /bank-linking/transactions/{transactionId}
Overview
Transactional data helps you understand a customer’s expenditure, timing, and frequency of purchases. Call the transactions endpoint to filter transactions. See Retrieving Connection Data for an example. Transactions are typically only available for the following account types:- Depository accounts such as checking and savings.
- Credit-type accounts, such as credit cards or student loan accounts.
Fetching transactions
See Fetching Transaction Information for how to fetch Meld transactions.Updating transactions
Transactions can get updated, especially their status. See When Is Your Data Available? for more.Data normalization
Meld normalizes transaction data, including the type, signage, and status. See Data Normalization for more information.Transaction days fetched by refresh type
Meld loads a different period of transaction history depending on several factors — whether it is the first load (INITIAL), a subsequent refresh (SUBSEQUENT), or a historical aggregation (HISTORICAL).
Initial loads
ForINITIAL loads (immediately following completing or reconnecting a connection), only a limited transaction history is available. Meld loads whatever the service provider has initially available:
- Plaid: last 30 days
- Finicity: last 180 days
- MX: last 90 days
- Other service providers: 30 days
Historical loads
After completing anINITIAL aggregation, Meld triggers a HISTORICAL aggregation with the service provider. Historical aggregations collect 2 years of transaction history across all service providers. Historical transaction data typically takes longer to aggregate (and is billed separately by the service provider), which is why it is executed after the initial aggregation. Because of this, a secondary BANK_LINKING_HISTORICAL_TRANSACTIONS_AGGREGATED webhook is issued after the first BANK_LINKING_TRANSACTIONS_AGGREGATED webhook to indicate that historical transactions are now also available (as well as how many were loaded). Since each service provider varies on what is immediately available during the INITIAL load, the HISTORICAL load collects whatever remains up to 2 years (i.e., from 30 days to 2 years for Plaid, from 180 days to 2 years for Finicity, etc.). The numbers of transactions loaded are broken down by period and reflected in the aforementioned webhooks.
Subsequent loads
Following both theINITIAL and HISTORICAL loads, only the recent transaction history is aggregated daily to capture any new transactions or updates to existing transactions. These loads are considered SUBSEQUENT and only retrieve the last 20 days of transaction data. This is sufficient to capture recent transactions as well as updates to existing transactions (such as transactions transitioning from PENDING to POSTED, or cancellations of transactions).
Recurring transactions
Certain providers identify recurring transactions (such as a monthly subscription). For Plaid and MX specifically, recurring transactions in the transaction details object haverecurring=TRUE, while all other transactions have recurring=FALSE.