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 processor/'
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:
/processor/auth/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Retrieve Auth data
externalDocs:
url: /api/processor-partners/#processorauthget
operationId: processorAuthGet
responses:
'200':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorAuthGetResponse'
examples:
example-1:
value:
account:
account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
balances:
available: 100
current: 110
iso_currency_code: USD
limit:
unofficial_currency_code:
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Checking
subtype: checking
type: depository
numbers:
ach:
account: '9900009606'
account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
routing: '011401533'
wire_routing: '021000021'
eft:
account: '111122223333'
account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
institution: '021'
branch: '01140'
international:
account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
bic: NWBKGB21
iban: GB29NWBK60161331926819
bacs:
account: '31926819'
account_id: vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D
sort_code: '601613'
request_id: 1zlMf
description: >
The `/processor/auth/get` endpoint returns the bank account and bank
identification number (such as the routing number, for US accounts), for
a checking or savings account that''s associated with a given
`processor_token`. The endpoint also returns high-level account data and
balances when available.
Versioning note: API versions 2019-05-29 and earlier use a different
schema for the `numbers` object returned by this endpoint. For details,
see [Plaid API
versioning](https://plaid.com/docs/api/versioning/#version-2020-09-14).
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorAuthGetRequest'
/processor/account/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Retrieve the account associated with a processor token
externalDocs:
url: /api/processor-partners/#processoraccountget
operationId: processorAccountGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorAccountGetResponse'
examples:
example-1:
value:
account:
account_id: QKKzevvp33HxPWpoqn6rI13BxW4awNSjnw4xv
balances:
available: 100
current: 110
limit:
iso_currency_code: USD
unofficial_currency_code:
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Checking
subtype: checking
type: depository
institution_id: ins_109508
request_id: 1zlMf
description: >
This endpoint returns the account associated with a given processor
token.
This endpoint retrieves cached information, rather than extracting fresh
information from the institution. As a result, the account balance
returned may not be up-to-date; for realtime balance information, use
`/processor/balance/get` instead. Note that some information is
nullable.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorAccountGetRequest'
/processor/transactions/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Get transaction data
externalDocs:
url: /api/processor-partners/#processortransactionsget
operationId: processorTransactionsGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsGetResponse'
examples:
example-1:
value:
account:
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
total_transactions: 1
request_id: Wvhy9PZHQLV8njG
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
The `/processor/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). 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
`/processor/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 a
processor token, 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 `/processor/transactions/get` will be the data
available for the processor token 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 force Plaid to check for new
transactions, you can use the `/processor/transactions/refresh`
endpoint.
Note that data may not be immediately available to
`/processor/transactions/get`. Plaid will begin to prepare transactions
data upon Item link, if Link was initialized with `transactions`, or
upon the first call to `/processor/transactions/get`, if it wasn't. If
no transaction history is ready when `/processor/transactions/get` is
called, it will return a `PRODUCT_NOT_READY` error.
To receive Transactions webhooks for a processor token, set its webhook
URL via the
[`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate)
endpoint.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsGetRequest'
examples: {}
/processor/transactions/sync:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Get incremental transaction updates on a processor token
externalDocs:
url: /api/processor-partners/#processortransactionssync
operationId: processorTransactionsSync
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsSyncResponse'
examples:
example-1:
value:
account:
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:
- transaction_id: CmdQTNgems8BT1B7ibkoUXVPyAeehT3Tmzk0l
account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
next_cursor: >-
tVUUL15lYQN5rBnfDIc1I8xudpGdIlw9nsgeXWvhOfkECvUeR663i3Dt1uf/94S8ASkitgLcIiOSqNwzzp+bh89kirazha5vuZHBb2ZA5NtCDkkV
has_more: false
request_id: 45QSn
transactions_update_status: HISTORICAL_UPDATE_COMPLETE
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
This endpoint replaces `/processor/transactions/get` and its associated
webhooks for most common use-cases.
The `/processor/transactions/sync` endpoint allows developers to
subscribe to all transactions associated with a processor token and get
updates synchronously in a stream-like manner, using a cursor to track
which updates have already been seen. `/processor/transactions/sync`
provides the same functionality as `/processor/transactions/get` and can
be used instead of `/processor/transactions/get` to simplify the process
of tracking transactions updates.
This endpoint provides 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 `/investments/transactions/get`
instead.
Returned transactions data is grouped into three types of update,
indicating whether the transaction was added, removed, or modified since
the last call to the API.
In the first call to `/processor/transactions/sync` for a processor
token, the endpoint will return all historical transactions data
associated with that processor token up until the time of the API call
(as "adds"), which then generates a `next_cursor` for that processor
token. In subsequent calls, send the `next_cursor` to receive only the
changes that have occurred since the previous call.
Due to the potentially large number of transactions associated with a
processor token, results are paginated. The `has_more` field specifies
if additional calls are necessary to fetch all available transaction
updates. Call `/processor/transactions/sync` with the new cursor,
pulling all updates, until `has_more` is `false`.
When retrieving paginated updates, track both the `next_cursor` from the
latest response and the original cursor from the first call in which
`has_more` was `true`; if a call to `/processor/transactions/sync` fails
when retrieving a paginated update, which can occur as a result of the
[`TRANSACTIONS_SYNC_MUTATION_DURING_PAGINATION`](https://plaid.com/docs/errors/transactions/#transactions_sync_mutation_during_pagination)
error, the entire pagination request loop must be restarted beginning
with the cursor for the first page of the update, rather than retrying
only the single request that failed.
Whenever new or updated transaction data becomes available,
`/processor/transactions/sync` will provide these updates. 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 force Plaid to check for new transactions, use the
`/processor/transactions/refresh` endpoint.
Note that for newly created processor tokens, data may not be
immediately available to `/processor/transactions/sync`. Plaid begins
preparing transactions data when the corresponding Item is created, but
the process can take anywhere from a few seconds to several minutes to
complete, depending on the number of transactions available.
To receive Transactions webhooks for a processor token, set its webhook
URL via the
[`/processor/token/webhook/update`](https://plaid.com/docs/api/processor-partners/#processortokenwebhookupdate)
endpoint.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsSyncRequest'
examples: {}
/processor/transactions/refresh:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Refresh transaction data
externalDocs:
url: /api/processor-partners/#processortransactionsrefresh
operationId: processorTransactionsRefresh
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsRefreshResponse'
examples:
example-1:
value:
request_id: 1vwmF5TBQwiqfwP
default:
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
description: Error response
description: >-
`/processor/transactions/refresh` is an optional endpoint for users of
the Transactions product. It initiates an on-demand extraction to fetch
the newest transactions for a processor token. This on-demand extraction
takes place in addition to the periodic extractions that automatically
occur one or more times per day for any Transactions-enabled processor
token. If changes to transactions are discovered after calling
`/processor/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 `/processor/transactions/sync` and
`/processor/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 `/processor/transactions/get` or
`/processor/transactions/sync`. Note that the
`/processor/transactions/refresh` endpoint is not supported for Capital
One (`ins_128026`) and will result in a `PRODUCTS_NOT_SUPPORTED` error
if called on a processor token 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.
`/processor/transactions/refresh` is offered as an 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/ProcessorTransactionsRefreshRequest'
/processor/transactions/recurring/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Fetch recurring transaction streams
externalDocs:
url: /api/processor-partners/#processortransactionsrecurringget
operationId: processorTransactionsRecurringGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ProcessorTransactionsRecurringGetResponse'
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
# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plaid/refs/heads/main/openapi/plaid-processor--openapi-original.yml