openapi: 3.0.0
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
info:
title: 'Plaid transactions/'
version: 2020-09-14_1.517.0
description: Needs description.
contact:
name: Plaid Developer Team
url: https://plaid.com
termsOfService: https://plaid.com/legal/
tags:
- name: Plaid
security:
- clientId: []
secret: []
plaidVersion: []
paths:
/transactions/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Get transaction data
externalDocs:
url: /api/products/transactions/#transactionsget
operationId: transactionsGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsGetResponse'
examples:
example-1:
value:
accounts:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
balances:
available: 110.94
current: 110.94
iso_currency_code: USD
limit:
unofficial_currency_code:
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Standard 0% Interest Checking
subtype: checking
type: depository
transactions:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
account_owner:
amount: 28.34
iso_currency_code: USD
unofficial_currency_code:
category:
- Food and Drink
- Restaurants
- Fast Food
category_id: '13005032'
check_number:
counterparties:
- name: DoorDash
type: marketplace
logo_url: >-
https://plaid-counterparty-logos.plaid.com/doordash_1.png
website: doordash.com
entity_id: YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm
confidence_level: HIGH
- name: Burger King
type: merchant
logo_url: >-
https://plaid-merchant-logos.plaid.com/burger_king_155.png
website: burgerking.com
entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
confidence_level: VERY_HIGH
date: '2023-09-28'
datetime: '2023-09-28T15:10:09Z'
authorized_date: '2023-09-27'
authorized_datetime: '2023-09-27T08:01:58Z'
location:
address:
city:
region:
postal_code:
country:
lat:
lon:
store_number:
name: Dd Doordash Burgerkin
merchant_name: Burger King
merchant_entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
logo_url: >-
https://plaid-merchant-logos.plaid.com/burger_king_155.png
website: burgerking.com
payment_meta:
by_order_of:
payee:
payer:
payment_method:
payment_processor:
ppd_id:
reason:
reference_number:
payment_channel: online
pending: true
pending_transaction_id:
personal_finance_category:
primary: FOOD_AND_DRINK
detailed: FOOD_AND_DRINK_FAST_FOOD
confidence_level: VERY_HIGH
personal_finance_category_icon_url: >-
https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png
transaction_id: yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0
transaction_code:
transaction_type: digital
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
account_owner:
amount: 72.1
iso_currency_code: USD
unofficial_currency_code:
category:
- Shops
- Supermarkets and Groceries
category_id: '19046000'
check_number:
counterparties:
- name: Walmart
type: merchant
logo_url: >-
https://plaid-merchant-logos.plaid.com/walmart_1100.png
website: walmart.com
entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
confidence_level: VERY_HIGH
date: '2023-09-24'
datetime: '2023-09-24T11:01:01Z'
authorized_date: '2023-09-22'
authorized_datetime: '2023-09-22T10:34:50Z'
location:
address: 13425 Community Rd
city: Poway
region: CA
postal_code: '92064'
country: US
lat: 32.959068
lon: -117.037666
store_number: '1700'
name: 'PURCHASE WM SUPERCENTER #1700'
merchant_name: Walmart
merchant_entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
logo_url: >-
https://plaid-merchant-logos.plaid.com/walmart_1100.png
website: walmart.com
payment_meta:
by_order_of:
payee:
payer:
payment_method:
payment_processor:
ppd_id:
reason:
reference_number:
payment_channel: in store
pending: false
pending_transaction_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc
personal_finance_category:
primary: GENERAL_MERCHANDISE
detailed: GENERAL_MERCHANDISE_SUPERSTORES
confidence_level: VERY_HIGH
personal_finance_category_icon_url: >-
https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png
transaction_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
transaction_code:
transaction_type: place
item:
available_products:
- balance
- identity
- investments
billed_products:
- assets
- auth
- liabilities
- transactions
consent_expiration_time:
error:
institution_id: ins_3
item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
update_type: background
webhook: https://www.genericwebhookurl.com/webhook
total_transactions: 1
request_id: 45QSn
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
Note: All new implementations are encouraged to use `/transactions/sync`
rather than `/transactions/get`. `/transactions/sync` provides the same
functionality as `/transactions/get` and improves developer ease-of-use
for handling transactions updates.
The `/transactions/get` endpoint allows developers to receive
user-authorized transaction data for credit, depository, and some
loan-type accounts (only those with account subtype `student`; coverage
may be limited). For transaction history from investments accounts, use
the [Investments
endpoint](https://plaid.com/docs/api/products/investments/) instead.
Transaction data is standardized across financial institutions, and in
many cases transactions are linked to a clean name, entity type,
location, and category. Similarly, account data is standardized and
returned with a clean name, number, balance, and other meta information
where available.
Transactions are returned in reverse-chronological order, and the
sequence of transaction ordering is stable and will not shift. Transactions are not immutable and can also be removed altogether by the
institution; a removed transaction will no longer appear in
`/transactions/get`. For more details, see [Pending and posted
transactions](https://plaid.com/docs/transactions/transactions-data/#pending-and-posted-transactions).
Due to the potentially large number of transactions associated with an
Item, results are paginated. Manipulate the `count` and `offset`
parameters in conjunction with the `total_transactions` response body
field to fetch all available transactions.
Data returned by `/transactions/get` will be the data available for the
Item as of the most recent successful check for new transactions. Plaid
typically checks for new data multiple times a day, but these checks may
occur less frequently, such as once a day, depending on the institution.
To find out when the Item was last updated, use the [Item
Debugger](https://plaid.com/docs/account/activity/#troubleshooting-with-item-debugger)
or call `/item/get`; the
`item.status.transactions.last_successful_update` field will show the
timestamp of the most recent successful update. To force Plaid to check
for new transactions, you can use the `/transactions/refresh` endpoint.
Note that data may not be immediately available to `/transactions/get`.
Plaid will begin to prepare transactions data upon Item link, if Link
was initialized with `transactions`, or upon the first call to
`/transactions/get`, if it wasn't. To be alerted when transaction data
is ready to be fetched, listen for the
[`INITIAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#initial_update)
and
[`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update)
webhooks. If no transaction history is ready when `/transactions/get` is
called, it will return a `PRODUCT_NOT_READY` error.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsGetRequest'
examples: {}
/transactions/refresh:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Refresh transaction data
externalDocs:
url: /api/products/transactions/#transactionsrefresh
operationId: transactionsRefresh
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsRefreshResponse'
examples:
example-1:
value:
request_id: 1vwmF5TBQwiqfwP
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
`/transactions/refresh` is an optional endpoint that initiates an
on-demand extraction to fetch the newest transactions for an Item. The
on-demand extraction takes place in addition to the periodic extractions
that automatically occur one or more times per day for any
Transactions-enabled Item. The Item must already have Transactions added
as a product in order to call `/transactions/refresh`.
If changes to transactions are discovered after calling
`/transactions/refresh`, Plaid will fire a webhook: for
`/transactions/sync` users,
[`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#sync_updates_available)
will be fired if there are any transactions updated, added, or removed.
For users of both `/transactions/sync` and `/transactions/get`,
[`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/products/transactions/#transactions_removed)
will be fired if any removed transactions are detected, and
[`DEFAULT_UPDATE`](https://plaid.com/docs/api/products/transactions/#default_update)
will be fired if any new transactions are detected. New transactions can
be fetched by calling `/transactions/get` or `/transactions/sync`.
Note that the `/transactions/refresh` endpoint is not supported for
Capital One (`ins_128026`) and will result in a `PRODUCTS_NOT_SUPPORTED`
error if called on an Item from that institution.
As this endpoint triggers a synchronous request for fresh data, latency
may be higher than for other Plaid endpoints (typically less than 10
seconds, but occasionally up to 30 seconds or more); if you encounter
errors, you may find it necessary to adjust your timeout period when
making requests.
`/transactions/refresh` is offered as an optional add-on to Transactions
and has a separate [fee
model](/docs/account/billing/#per-request-flat-fee). To request access
to this endpoint, submit a [product access
request](https://dashboard.plaid.com/team/products) or contact your
Plaid account manager.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsRefreshRequest'
/transactions/recurring/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Fetch recurring transaction streams
externalDocs:
url: /api/products/transactions/#transactionsrecurringget
operationId: transactionsRecurringGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsRecurringGetResponse'
examples:
example-1:
value:
updated_datetime: '2022-05-01T00:00:00Z'
inflow_streams:
- account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
stream_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc
category:
- Transfer
- Payroll
category_id: '21009000'
description: Platypus Payroll
merchant_name:
personal_finance_category:
primary: INCOME
detailed: INCOME_WAGES
confidence_level: UNKNOWN
first_date: '2022-02-28'
last_date: '2022-04-30'
frequency: SEMI_MONTHLY
transaction_ids:
- nkeaNrDGrhdo6c4qZWDA8ekuIPuJ4Avg5nKfw
- EfC5ekksdy30KuNzad2tQupW8WIPwvjXGbGHL
- ozfvj3FFgp6frbXKJGitsDzck5eWQH7zOJBYd
- QvdDE8AqVWo3bkBZ7WvCd7LskxVix8Q74iMoK
- uQozFPfMzibBouS9h9tz4CsyvFll17jKLdPAF
average_amount:
amount: -800
iso_currency_code: USD
unofficial_currency_code:
last_amount:
amount: -1000
iso_currency_code: USD
unofficial_currency_code:
is_active: true
status: MATURE
is_user_modified: true
last_user_modified_datetime: '2023-01-19T10:34:50Z'
outflow_streams:
- account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff
stream_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nd
category:
- Service
- Utilities
- Electric
category_id: '18068005'
description: ConEd Bill Payment
merchant_name: ConEd
personal_finance_category:
primary: RENT_AND_UTILITIES
detailed: RENT_AND_UTILITIES_GAS_AND_ELECTRICITY
confidence_level: UNKNOWN
first_date: '2022-02-04'
last_date: '2022-05-02'
frequency: MONTHLY
transaction_ids:
- yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0
- HPDnUVgI5Pa0YQSl0rxwYRwVXeLyJXTWDAvpR
- jEPoSfF8xzMClE9Ohj1he91QnvYoSdwg7IT8L
- CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l
average_amount:
amount: 85
iso_currency_code: USD
unofficial_currency_code:
last_amount:
amount: 100
iso_currency_code: USD
unofficial_currency_code:
is_active: true
status: MATURE
is_user_modified: false
- account_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDff
stream_id: SrBNJZDuUMweodmPmSOeOImwsWt53ZXfJQAfC
category:
- Shops
- Warehouses and Wholesale Stores
category_id: '19051000'
description: Costco Annual Membership
merchant_name: Costco
personal_finance_category:
primary: GENERAL_MERCHANDISE
detailed: GENERAL_MERCHANDISE_SUPERSTORES
confidence_level: UNKNOWN
first_date: '2022-01-23'
last_date: '2023-01-22'
frequency: ANNUALLY
transaction_ids:
- yqEBJ72cS4jFwcpxJcDuQr94oAQ1R1lMC33D4
- Kz5Hm3cZCgpn4tMEKUGAGD6kAcxMBsEZDSwJJ
average_amount:
amount: 120
iso_currency_code: USD
unofficial_currency_code:
last_amount:
amount: 120
iso_currency_code: USD
unofficial_currency_code:
is_active: true
status: MATURE
is_user_modified: true
last_user_modified_datetime: '2023-01-19T10:34:50Z'
request_id: tbFyCEqkU775ZGG
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
The `/transactions/recurring/get` endpoint allows developers to receive
a summary of the recurring outflow and inflow streams (expenses and
deposits) from a user’s checking, savings or credit card accounts.
Additionally, Plaid provides key insights about each recurring stream
including the category, merchant, last amount, and more. Developers can
use these insights to build tools and experiences that help their users
better manage cash flow, monitor subscriptions, reduce spend, and stay
on track with bill payments.
This endpoint is offered as an add-on to Transactions. To request access
to this endpoint, submit a [product access
request](https://dashboard.plaid.com/team/products) or contact your
Plaid account manager.
This endpoint can only be called on an Item that has already been
initialized with Transactions (either during Link, by specifying it in
`/link/token/create`; or after Link, by calling `/transactions/get` or
`/transactions/sync`). For optimal results, we strongly recommend
customers using Recurring Transactions to request at least 180 days of
history when initializing items with Transactions (using the
[`days_requested`](https://plaid.com/docs/api/tokens/#link-token-create-request-transactions-days-requested)
option). Once all historical transactions have been fetched, call
`/transactions/recurring/get` to receive the Recurring Transactions
streams and subscribe to the
[`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update)
webhook. To know when historical transactions have been fetched, if you
are using `/transactions/sync` listen for the
[`SYNC_UPDATES_AVAILABLE`](https://plaid.com/docs/api/products/transactions/#SyncUpdatesAvailableWebhook-historical-update-complete)
webhook and check that the `historical_update_complete` field in the
payload is `true`. If using `/transactions/get`, listen for the
[`HISTORICAL_UPDATE`](https://plaid.com/docs/api/products/transactions/#historical_update)
webhook.
After the initial call, you can call `/transactions/recurring/get`
endpoint at any point in the future to retrieve the latest summary of
recurring streams. Listen to the
[`RECURRING_TRANSACTIONS_UPDATE`](https://plaid.com/docs/api/products/transactions/#recurring_transactions_update)
webhook to be notified when new updates are available.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsRecurringGetRequest'
examples: {}
/transactions/recurring/deactivate:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
/transactions/sync:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Get incremental transaction updates on an Item
externalDocs:
url: /api/products/transactions/#transactionssync
operationId: transactionsSync
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionsSyncResponse'
examples:
example-1:
value:
accounts:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
balances:
available: 110.94
current: 110.94
iso_currency_code: USD
limit:
unofficial_currency_code:
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Standard 0% Interest Checking
subtype: checking
type: depository
added:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
account_owner:
amount: 72.1
iso_currency_code: USD
unofficial_currency_code:
category:
- Shops
- Supermarkets and Groceries
category_id: '19046000'
check_number:
counterparties:
- name: Walmart
type: merchant
logo_url: >-
https://plaid-merchant-logos.plaid.com/walmart_1100.png
website: walmart.com
entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
confidence_level: VERY_HIGH
date: '2023-09-24'
datetime: '2023-09-24T11:01:01Z'
authorized_date: '2023-09-22'
authorized_datetime: '2023-09-22T10:34:50Z'
location:
address: 13425 Community Rd
city: Poway
region: CA
postal_code: '92064'
country: US
lat: 32.959068
lon: -117.037666
store_number: '1700'
name: 'PURCHASE WM SUPERCENTER #1700'
merchant_name: Walmart
merchant_entity_id: O5W5j4dN9OR3E6ypQmjdkWZZRoXEzVMz2ByWM
logo_url: >-
https://plaid-merchant-logos.plaid.com/walmart_1100.png
website: walmart.com
payment_meta:
by_order_of:
payee:
payer:
payment_method:
payment_processor:
ppd_id:
reason:
reference_number:
payment_channel: in store
pending: false
pending_transaction_id: no86Eox18VHMvaOVL7gPUM9ap3aR1LsAVZ5nc
personal_finance_category:
primary: GENERAL_MERCHANDISE
detailed: GENERAL_MERCHANDISE_SUPERSTORES
confidence_level: VERY_HIGH
personal_finance_category_icon_url: >-
https://plaid-category-icons.plaid.com/PFC_GENERAL_MERCHANDISE.png
transaction_id: lPNjeW1nR6CDn5okmGQ6hEpMo4lLNoSrzqDje
transaction_code:
transaction_type: place
modified:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
account_owner:
amount: 28.34
iso_currency_code: USD
unofficial_currency_code:
category:
- Food and Drink
- Restaurants
- Fast Food
category_id: '13005032'
check_number:
counterparties:
- name: DoorDash
type: marketplace
logo_url: >-
https://plaid-counterparty-logos.plaid.com/doordash_1.png
website: doordash.com
entity_id: YNRJg5o2djJLv52nBA1Yn1KpL858egYVo4dpm
confidence_level: HIGH
- name: Burger King
type: merchant
logo_url: >-
https://plaid-merchant-logos.plaid.com/burger_king_155.png
website: burgerking.com
entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
confidence_level: VERY_HIGH
date: '2023-09-28'
datetime: '2023-09-28T15:10:09Z'
authorized_date: '2023-09-27'
authorized_datetime: '2023-09-27T08:01:58Z'
location:
address:
city:
region:
postal_code:
country:
lat:
lon:
store_number:
name: Dd Doordash Burgerkin
merchant_name: Burger King
merchant_entity_id: mVrw538wamwdm22mK8jqpp7qd5br0eeV9o4a1
logo_url: >-
https://plaid-merchant-logos.plaid.com/burger_king_155.png
website: burgerking.com
payment_meta:
by_order_of:
payee:
payer:
payment_method:
payment_processor:
ppd_id:
reason:
reference_number:
payment_channel: online
pending: true
pending_transaction_id:
personal_finance_category:
primary: FOOD_AND_DRINK
detailed: FOOD_AND_DRINK_FAST_FOOD
confidence_level: VERY_HIGH
personal_finance_category_icon_url: >-
https://plaid-category-icons.plaid.com/PFC_FOOD_AND_DRINK.png
transaction_id: yhnUVvtcGGcCKU0bcz8PDQr5ZUxUXebUvbKC0
transaction_code:
transaction_type: digital
removed:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
transaction_id: CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l
next_cursor: >-
tVUUL15lYQN5rBnfDIc1I8xudpGdIlw9nsgeXWvhOfkECvUeR663i3Dt1uf/94S8ASkitgLcIiOSqNwzzp+bh89kirazha5vuZHBb2ZA5NtCDkkV
has_more: false
request_id: Wvhy9PZHQLV8njG
transactions_update_status: HISTORICAL_UPDATE_COMPLETE
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
The `/transactions/sync` endpoint allows developers to subscribe to all
transactions associated with an Item and get updates synchronously in a
stream-like manner, using a cursor to track which updates have already
been seen.
`/transactions/sync` provides the same functionality as
`/transactions/get` and can be used instead of `/transactions/get` to
simplify the process of tracking transactions updates. To learn more
about migrating from `/transactions/get`, see the [Transactio
# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plaid/refs/heads/main/openapi/plaid-transactions--openapi-original.yml