Introduction to Transactions
Retrieve up to 24 months of transaction data and stay up-to-date with webhooks.



API Reference
View Transactions requests, responses, and example code
View Transactions APIQuickstart
Learn about Plaid's key concepts and run starter code
Get startedOverview
Transactions data can be useful for many different applications, including
personal finance management, expense reporting, cash flow modeling, risk
analysis, and more. Plaid's Transactions product allows you to access a user's
transaction history for depository
type accounts such as checking and savings
accounts, credit
type accounts such as credit cards, and student loan
accounts. For transaction history from investment accounts, use Plaid's
Investments product.
Transactions data available via /transactions/sync
includes transaction date, amount, category, merchant,
location, and more. Transaction data is lightly cleaned to populate the name
field, and more thoroughly processed to populate the merchant_name
field.
1{2 "account_id": "BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp",3 "amount": 2307.21,4 "iso_currency_code": "USD",5 "unofficial_currency_code": null,6 "category": ["Shops", "Computers and Electronics"],7 "category_id": "19013000",8 "check_number": null,9 "date": "2023-01-29",10 "datetime": "2023-01-27T11:00:00Z",11 "authorized_date": "2023-01-27",12 "authorized_datetime": "2023-01-27T10:34:50Z",13 "location": {14 "address": "300 Post St",15 "city": "San Francisco",16 "region": "CA",17 "postal_code": "94108",18 "country": "US",19 "lat": 40.740352,20 "lon": -74.001761,21 "store_number": "1235"22 },23 "name": "Apple Store",24 "merchant_name": "Apple",25 "payment_meta": {26 "by_order_of": null,27 "payee": null,28 "payer": null,29 "payment_method": null,30 "payment_processor": null,31 "ppd_id": null,32 "reason": null,33 "reference_number": null34 },35 "payment_channel": "in store",36 "pending": false,37 "pending_transaction_id": null,38 "personal_finance_category": {39 "primary": "GENERAL_MERCHANDISE",40 "detailed": "GENERAL_MERCHANDISE_ELECTRONICS"41 },42 "account_owner": null,43 "transaction_id": "lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje",44 "transaction_code": null,45 "transaction_type": "place"46}
Transactions updates
Transactions data is not static. As time passes, your users will make new transactions, and transactions they made in the past will change as they are processed by the financial institution. To learn more about how transactions are processed and can change, see Transaction states.
Plaid checks for updated transactions regularly, and uses webhooks to notify you of any changes so you can keep your app up to date. For more detail on how to listen and respond to transaction update webhooks, see Transaction webhooks.
The frequency of transactions update checks is typically one or more times a day. The exact frequency will depend on the institution. To
learn when an Item was last checked for updates, you can view the Item in the
Item Debugger. If you would
like to display this information in your app's UI to help users understand the
freshness of their data, it can also be retrieved via API, using the /item/get
endpoint.
You can also request an update on-demand via the /transactions/refresh
endpoint, which is available as an add-on for Transactions customers. To request
access to this endpoint, submit a
product access request or contact
your Plaid account manager.
Recurring transactions
If your app involves personal financial management functionality, you may want
to view a summary of a user's inflows and outflows. The
/transactions/recurring/get
endpoint provides a summary of the recurring
outflow and inflow streams and includes insights about each recurring stream
including the category, merchant, last amount, and more.
/transactions/recurring/get
is available as an add-on for Transactions
customers in the US, Canada, and UK. To request access to this endpoint, submit
a product access request or contact
your Plaid account manager.
Sample app demo and code
Try out the Pattern Demo for a demonstration of a sample app that uses Plaid's Transactions product for the personal financial management use case to calculate and display a customer's net worth and spending habits and allows them to link multiple financial institutions.
For a more robust example of an app that incorporates transactions, along with sample code for transactions reconciliation, see the Node-based Plaid Pattern sample app.
Updating your app
If you've already built an app using Plaid's /transactions/get
endpoint, see
the Transactions Sync migration guide to
learn about Plaid's latest Transactions API and how to simplify your integration
by migrating to /transactions/sync
.
Testing Transactions in Sandbox
For more realistic Sandbox transactions testing, you can use the special user_transactions_dynamic
user (password: any non-blank password), in addition to the standard user_good
test user. For more details on how to simulate transaction activity with this user, see Testing pending and posted transactions.
Transactions pricing
Transactions and the optional Recurring Transactions add-on are billed on a subscription model. The optional Transactions Refresh add-on is billed on a per-request model. To view the exact pricing you may be eligible for, apply for Production access or contact Sales. For more details about pricing and billing models, see Plaid billing.
Next steps
To get started building with Transactions, see Add Transactions to your App.
If you're ready to launch to Production, see the Launch checklist.