Skip to content

Instantly share code, notes, and snippets.

@MarwanRefaat
Created March 7, 2022 12:28
Show Gist options
  • Save MarwanRefaat/0e7adf6672f916e1714e6bb826f88989 to your computer and use it in GitHub Desktop.
Save MarwanRefaat/0e7adf6672f916e1714e6bb826f88989 to your computer and use it in GitHub Desktop.
GameFi Plaid OpenAPI v3.1.0 (YAML)
openapi: 3.1.0
info:
title: GameFi Plaid OpenAPI
description: The GameFi Plaid REST API is used to connect to user's bank accounts and get their transaction history as well as integrate with third-party services for money transfer.
contact:
name: GameFi Engineering
url: "https://engineering.gamefi.com"
email: engineering@gamefi.com
version: 2020-09-14_1.64.13
termsOfService: "https://gamefi.com/terms"
summary: "The GameFi Plaid REST API. Please see the [Plaid API Docs](https://plaid.com/docs/api) for more details."
jsonSchemaDialect: "https://json-schema.org/draft/2020-12/schema"
servers:
- url: "https://api.gamefi.com/api:plaid"
description: GameFi Plaid API
variables: {}
paths:
/accounts/balance/get:
post:
tags:
- account
summary: plaidAccountsBalanceGet
description: The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item's accounts.
externalDocs:
url: "https://plaid.com/docs/api/products/#accountsbalanceget"
operationId: plaidAccountsBalanceGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAccountsBalanceGetRequest"
examples:
example:
value:
access_token: access-production-de3ce8ef-33f8-452c-a685-8671031fc0f6
secret: 739e7b8b7198eda21b91dec430ca01
client_id: 5fd43aad1186c30013d6f3e2
options:
account_ids:
- string
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAccountsGetResponse"
examples:
example-1:
value:
accounts:
- account_id: string
balances:
available: 0
current: 0
limit: 0
iso_currency_code: string
unofficial_currency_code: string
last_updated_datetime: string
mask: string
name: string
official_name: string
type: investment
subtype: 401a
verification_status: automatically_verified
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
deprecated: false
parameters: []
/accounts/get:
post:
tags:
- account
summary: plaidAccountsGet
description: The `/accounts/get` endpoint can be used to get a list of accounts associated with any linked Item. Plaid will only return active bank accounts.
externalDocs:
url: "https://plaid.com/docs/api/accounts/#accountsget"
operationId: plaidAccountsGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAccountsGetRequest"
examples:
example:
value:
client_id: 5fd43aad1186c30013d6f3e2
secret: 739e7b8b7198eda21b91dec430ca01
access_token: access-production-de3ce8ef-33f8-452c-a685-8671031fc0f6
options:
account_ids:
- string
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAccountsGetResponse"
examples:
example-1:
value:
accounts:
- account_id: string
balances:
available: 0
current: 0
limit: 0
iso_currency_code: string
unofficial_currency_code: string
last_updated_datetime: string
mask: string
name: string
official_name: string
type: investment
subtype: 401a
verification_status: automatically_verified
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/auth/get:
post:
tags:
- auth
summary: plaidAuthGet
description: "The Plaid `/auth/get` endpoint returns the bank account and bank identification numbers (such as routing numbers, for US accounts) associated with an Item's checking and savings accounts, along with high-level account data and balances when available. To obtain data for new accounts, create a new Item."
externalDocs:
url: "https://plaid.com/docs/api/products/#authget"
operationId: plaidAuthGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAuthGetRequest"
examples:
example:
value:
access_token: access-production-de3ce8ef-33f8-452c-a685-8671031fc0f6
options:
account_ids:
- string
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidAuthGetResponse"
examples:
example-1:
value:
accounts:
- account_id: string
balances:
available: 0
current: 0
limit: 0
iso_currency_code: string
unofficial_currency_code: string
last_updated_datetime: string
mask: string
name: string
official_name: string
type: investment
subtype: 401a
verification_status: automatically_verified
numbers:
ach:
- account_id: string
account: string
routing: string
wire_routing: string
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
default:
description: Default error
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/categories/get:
post:
tags:
- transactions
summary: plaidCategoriesGet
description: Send a request to the `/categories/get` endpoint to get detailed information on categories returned by Plaid. This endpoint does not require authentication.
externalDocs:
url: "https://plaid.com/docs/api/products/#categoriesget"
operationId: plaidCategoriesGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
type: object
contentMediaType: application/json
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidCategoriesGetResponse"
examples:
example-1:
value:
categories:
- category_id: string
group: string
hierarchy:
- string
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
security: []
parameters: []
/identity/get:
post:
tags:
- identity
summary: plaidIdentityGet
description: |-
The `/identity/get` endpoint allows you to retrieve various account holder information on file with the financial institution, including names, emails, phone numbers, and addresses. Only name data is guaranteed to be returned; other fields will be empty arrays if not provided by the institution.
Note: This request may take some time to complete if identity was not specified as an initial product when creating the Item. This is because Plaid must communicate directly with the institution to retrieve the data.
externalDocs:
url: "https://plaid.com/docs/api/products/#identityget"
operationId: plaidIdentityGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidIdentityGetRequest"
examples:
example:
value:
access_token: access-production-de3ce8ef-33f8-452c-a685-8671031fc0f6
options:
account_ids:
- string
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidIdentityGetResponse"
examples:
example-1:
value:
accounts:
- account_id: string
balances:
available: 0
current: 0
limit: 0
iso_currency_code: string
unofficial_currency_code: string
last_updated_datetime: string
mask: string
name: string
official_name: string
type: investment
subtype: 401a
verification_status: automatically_verified
owners:
- names:
- string
phone_numbers:
- data: string
primary: true
type: home
emails:
- data: string
primary: true
type: primary
addresses:
- data:
city: string
region: string
street: string
postal_code: string
country: string
primary: true
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
deprecated: false
parameters: []
/institutions/get:
post:
tags:
- institutions
summary: plaidInstitutionsGet
description: The paginated endpoint returning information about approximately 16 thousand institutions supported by Plaid.
externalDocs:
url: "https://plaid.com/docs/api/institutions/#institutionsget"
operationId: plaidInstitutionsGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidInstitutionsGetRequest"
examples:
example:
value:
count: 1
offset: 0
country_codes:
- US
options:
products:
- transactions
routing_numbers:
- string
oauth: true
include_optional_metadata: true
include_auth_metadata: false
include_payment_initiation_metadata: false
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidInstitutionsGetResponse"
examples:
example-1:
value:
institutions:
- institution_id: string
name: string
products:
- assets
country_codes:
- US
url: string
primary_color: string
logo: string
routing_numbers:
- string
oauth: true
status:
item_logins:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
transactions_updates:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
auth:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
identity:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
investments_updates:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
liabilities_updates:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
liabilities:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
investments:
status: HEALTHY
last_status_change: string
breakdown:
success: 0
error_plaid: 0
error_institution: 0
refresh_interval: NORMAL
health_incidents:
- start_date: string
end_date: string
title: string
incident_updates:
- description: string
status: INVESTIGATING
updated_date: string
auth_metadata:
supported_methods:
instant_auth: true
instant_match: true
automated_micro_deposits: true
total: 0
request_id: string
default:
description: Error response
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/item/get:
post:
tags:
- item
summary: plaidItemGet
description: Returns information about the status of an Item.
externalDocs:
url: "https://plaid.com/docs/api/items/#itemget"
operationId: plaidItemGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemGetRequest"
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemGetResponse"
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/item/public_token/exchange:
post:
tags:
- token
summary: plaidItemPublicTokenExchange
description: "When you create an Item, you will automatically be given a `public_token`. You can use this `public_token` to access the Item's data via the API. The `public_token` will expire after 30 minutes, so you will need to exchange it for an `access_token`"
externalDocs:
url: "https://plaid.com/docs/api/tokens/#itempublic_tokenexchange"
operationId: plaidItemPublicTokenExchange
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemPublicTokenExchangeRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemPublicTokenExchangeResponse"
examples:
example-1:
value:
access_token: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
item_id: string
request_id: string
deprecated: false
parameters: []
/item/remove:
post:
tags:
- item
summary: plaidItemRemove
description: "Use the `/item/remove` endpoint to permanently remove an item. Once the item is removed, the `access_token` associated with the item is no longer valid and you can't use it to access any data that was associated with the item."
externalDocs:
url: "https://plaid.com/docs/api/items/#itemremove"
operationId: plaidItemRemove
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemRemoveRequest"
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemRemoveResponse"
examples:
example-1:
value:
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/item/webhook/update:
post:
tags:
- item
summary: plaidItemWebhookUpdate
description: "The POST `/item/webhook/update` allows you to update the webhook URL associated with an Item. This request triggers a [`WEBHOOK_UPDATE_ACKNOWLEDGED`](https://plaid.com/docs/api/webhooks/#item-webhook-update-acknowledged) webhook to the newly specified webhook URL."
externalDocs:
url: "https://plaid.com/docs/api/items/#itemwebhookupdate"
operationId: plaidItemWebhookUpdate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemWebhookUpdateRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidItemWebhookUpdateResponse"
examples:
example-1:
value:
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
deprecated: false
parameters: []
/link/token/create:
post:
tags:
- token
summary: plaidLinkTokenCreate
description: |-
The `/link/token/create` endpoint creates a `link_token`, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a `public_token`, which can then be exchanged for an `access_token` via `/item/public_token/exchange` as part of the main Link flow.
A `link_token` generated by `/link/token/create` is also used to initialize other Link flows, such as the update mode flow for tokens with expired credentials, or the Payment Initiation (Europe) flow.
externalDocs:
url: "https://plaid.com/docs/api/tokens/#linktokencreate"
operationId: plaidLinkTokenCreate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidLinkTokenCreateRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidLinkTokenCreateResponse"
examples:
example-1:
value:
link_token: string
expiration: string
request_id: string
deprecated: false
parameters: []
/link/token/get:
post:
tags:
- token
summary: plaidLinkTokenGet
description: |-
The `/link/token/get` endpoint gets information about a previously-created `link_token` using the
`/link/token/create` endpoint. It can be useful for debugging purposes.
externalDocs:
url: "https://plaid.com/docs/api/tokens/#linktokenget"
operationId: plaidLinkTokenGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidLinkTokenGetRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidLinkTokenGetResponse"
examples:
example-1:
value:
link_token: string
created_at: string
expiration: string
metadata:
initial_products:
- assets
webhook: string
country_codes:
- US
language: string
account_filters:
depository:
account_subtypes:
- checking
credit:
account_subtypes:
- credit card
redirect_uri: string
client_name: string
request_id: string
deprecated: false
parameters: []
/sandbox/processor_token/create:
post:
tags:
- sandbox
summary: plaidSandboxProcessorTokenCreate
description: "Use the `/sandbox/processor_token/create` endpoint to create a valid `processor_token` for an arbitrary institution ID and test credentials. The created `processor_token` corresponds to a new Sandbox Item. You can then use this `processor_token` with the `/processor/` API endpoints in Sandbox. You can also use `/sandbox/processor_token/create` with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data."
externalDocs:
url: "https://plaid.com/docs/api/sandbox/#sandboxprocessor_tokencreate"
operationId: plaidSandboxProcessorTokenCreate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSandboxProcessorTokenCreateRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSandboxProcessorTokenCreateResponse"
examples:
example-1:
value:
processor_token: string
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/sandbox/public_token/create:
post:
tags:
- sandbox
summary: plaidSandboxPublicTokenCreate
description: "Use the `/sandbox/public_token/create` endpoint to create a valid `public_token` for an arbitrary institution ID, initial products, and test credentials. The created `public_token` maps to a new Sandbox Item. You can then call `/item/public_token/exchange` to exchange the `public_token` for an `access_token` and perform all API actions. `/sandbox/public_token/create` can also be used with the [`user_custom` test username](https://plaid.com/docs/sandbox/user-custom) to generate a test account with custom data. `/sandbox/public_token/create` cannot be used with OAuth institutions."
externalDocs:
url: "https://plaid.com/docs/api/sandbox/#sandboxpublic_tokencreate"
operationId: plaidSandboxPublicTokenCreate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSandboxPublicTokenCreateRequest"
required: true
responses:
"200":
description: success
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSandboxPublicTokenCreateResponse"
examples:
example-1:
value:
public_token: string
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/processor/token/create:
post:
tags:
- processor
summary: plaidProcessorTokenCreate
description: Used to create a token suitable for sending to one of Plaid's partners to enable integrations. Note that Stripe partnerships use bank account tokens instead; see `/processor/stripe/bank_account_token/create` for creating tokens for use with Stripe integrations.
externalDocs:
url: "https://plaid.com/docs/api/processors/#processortokencreate"
operationId: plaidProcessorTokenCreate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidProcessorTokenCreateRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidProcessorTokenCreateResponse"
examples:
example-1:
value:
processor_token: string
request_id: string
deprecated: false
parameters: []
/transactions/get:
post:
tags:
- transactions
summary: transactionsGet
description: |-
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. An Item's `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/webhooks#transactions-initial_update) and [`HISTORICAL_UPDATE`](https://plaid.com/docs/api/webhooks#transactions-historical_update) webhooks. If no transaction history is ready when `/transactions/get` is called, it will return a `PRODUCT_NOT_READY` error.
externalDocs:
url: "https://plaid.com/docs/api/products/#transactionsget"
operationId: transactionsGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsGetRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsGetResponse"
examples:
example-1:
value:
accounts:
- account_id: string
balances:
available: 0
current: 0
limit: 0
iso_currency_code: string
unofficial_currency_code: string
last_updated_datetime: string
mask: string
name: string
official_name: string
type: investment
subtype: 401a
verification_status: automatically_verified
transactions:
- transaction_type: digital
pending_transaction_id: string
category_id: string
category:
- string
location:
address: string
city: string
region: string
postal_code: string
country: string
lat: 0
lon: 0
store_number: string
account_owner: string
name: string
original_description: string
account_id: string
amount: 0
iso_currency_code: string
unofficial_currency_code: string
date: string
pending: true
transaction_id: string
merchant_name: string
check_number: string
payment_channel: online
authorized_date: string
authorized_datetime: string
datetime: string
transaction_code: adjustment
personal_finance_category:
primary: string
detailed: string
total_transactions: 0
item:
item_id: string
institution_id: string
webhook: string
error:
error_type: INVALID_REQUEST
error_code: string
error_message: string
display_message: string
request_id: string
causes:
- null
status: 0
documentation_url: string
suggested_action: string
available_products:
- assets
billed_products:
- assets
products:
- assets
consent_expiration_time: string
update_type: background
request_id: string
default:
description: Error response
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/transactions/recurring/get:
post:
tags:
- transactions
summary: transactionsRecurringGet
description: |-
The `/transactions/recurring/get` endpoint identifies and returns groups of transactions that occur on a regular basis for the inputted Item and accounts.
The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
operationId: transactionsRecurringGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsRecurringGetRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsRecurringGetResponse"
examples:
example-1:
value:
inflow_streams:
- account_id: string
stream_id: string
category_id: string
category:
- string
description: string
first_date: string
last_date: string
frequency: UNKNOWN
transaction_ids:
- string
average_amount:
amount: 0
iso_currency_code: string
unofficial_currency_code: string
is_active: true
outflow_streams:
- account_id: string
stream_id: string
category_id: string
category:
- string
description: string
first_date: string
last_date: string
frequency: UNKNOWN
transaction_ids:
- string
average_amount:
amount: 0
iso_currency_code: string
unofficial_currency_code: string
is_active: true
request_id: string
default:
description: Error response
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/transactions/refresh:
post:
tags:
- transactions
summary: transactionsRefresh
description: |-
`/transactions/refresh` is an optional endpoint for users of the Transactions product. It initiates an on-demand extraction to fetch the newest transactions for an Item. This on-demand extraction takes place in addition to the periodic extractions that automatically occur multiple times a day for any Transactions-enabled Item. If changes to transactions are discovered after calling `/transactions/refresh`, Plaid will fire a webhook: [`TRANSACTIONS_REMOVED`](https://plaid.com/docs/api/webhooks#deleted-transactions-detected) will be fired if any removed transactions are detected, and [`DEFAULT_UPDATE`](https://plaid.com/docs/api/webhooks#transactions-default_update) will be fired if any new transactions are detected. New transactions can be fetched by calling `/transactions/get`.
Access to `/transactions/refresh` in Production is specific to certain pricing plans. If you cannot access `/transactions/refresh` in Production, [contact Sales](https://www.plaid.com/contact) for assistance.
externalDocs:
url: "https://plaid.com/docs/api/products/#transactionsrefresh"
operationId: transactionsRefresh
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsRefreshRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsRefreshResponse"
examples:
example-1:
value:
request_id: string
default:
description: Error response
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/transactions/sync:
post:
tags:
- transactions
summary: transactionsSync
description: |-
The `/transactions/sync` endpoint returns item transactions as a set of delta updates.
Subsequent calls to the endpoint using the cursor returned in the response will return new added, modified, and removed transactions since the last call to the endpoint
The product is currently in beta. To request access, contact transactions-feedback@plaid.com.
externalDocs:
url: "https://plaid.com/docs/api/products/#transactionssync"
operationId: transactionsSync
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsSyncRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidTransactionsSyncResponse"
examples:
example-1:
value:
added:
- transaction_type: digital
pending_transaction_id: string
category_id: string
category:
- string
location:
address: string
city: string
region: string
postal_code: string
country: string
lat: 0
lon: 0
store_number: string
account_owner: string
name: string
original_description: string
account_id: string
amount: 0
iso_currency_code: string
unofficial_currency_code: string
date: string
pending: true
transaction_id: string
merchant_name: string
check_number: string
payment_channel: online
authorized_date: string
authorized_datetime: string
datetime: string
transaction_code: adjustment
personal_finance_category:
primary: string
detailed: string
modified:
- transaction_type: digital
pending_transaction_id: string
category_id: string
category:
- string
location:
address: string
city: string
region: string
postal_code: string
country: string
lat: 0
lon: 0
store_number: string
account_owner: string
name: string
original_description: string
account_id: string
amount: 0
iso_currency_code: string
unofficial_currency_code: string
date: string
pending: true
transaction_id: string
merchant_name: string
check_number: string
payment_channel: online
authorized_date: string
authorized_datetime: string
datetime: string
transaction_code: adjustment
personal_finance_category:
primary: string
detailed: string
removed:
- transaction_id: string
next_cursor: string
has_more: true
request_id: string
default:
description: Error response
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/signal/decision/report:
post:
tags:
- signal
summary: signalDecisionReport
description: "After calling `/signal/evaluate`, call `/signal/decision/report` to report whether the transaction was initiated. This endpoint will return an `INVALID_REQUEST` error if called a second time with a different value for `initiated`."
externalDocs:
url: "https://plaid.com/docs/signal/reference#signaldecisionreport"
operationId: signalDecisionReport
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalDecisionReportRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalDecisionReportResponse"
examples:
example-1:
value:
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/signal/evaluate:
post:
tags:
- signal
summary: signalEvaluate
description: |-
Use `/signal/evaluate` to evaluate a planned ACH transaction to get a return risk assessment (such as a risk score and risk tier) and additional risk signals.
In order to obtain a valid score for an ACH transaction, Plaid must have an access token for the account, and the Item must be healthy (receiving product updates) or have recently been in a healthy state. If the transaction does not meet eligibility requirements, an error will be returned corresponding to the underlying cause. If `/signal/evaluate` is called on the same transaction multiple times within a 24-hour period, cached results may be returned.
externalDocs:
url: "https://plaid.com/docs/signal/reference#signalevaluate"
operationId: signalEvaluate
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalEvaluateRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalEvaluateResponse"
examples:
example-1:
value:
request_id: string
scores:
customer_initiated_return_risk:
score: 0
risk_tier: 1
bank_initiated_return_risk:
score: 0
risk_tier: 1
core_attributes:
unauthorized_transactions_count_7d: 0
unauthorized_transactions_count_30d: 0
unauthorized_transactions_count_60d: 0
unauthorized_transactions_count_90d: 0
nsf_overdraft_transactions_count_7d: 0
nsf_overdraft_transactions_count_30d: 0
nsf_overdraft_transactions_count_60d: 0
nsf_overdraft_transactions_count_90d: 0
days_since_first_plaid_connection: 0
plaid_connections_count_7d: 0
plaid_connections_count_30d: 0
total_plaid_connections_count: 0
is_savings_or_money_market_account: true
total_credit_transactions_amount_10d: 0
total_debit_transactions_amount_10d: 0
p50_credit_transactions_amount_28d: 0
p50_debit_transactions_amount_28d: 0
p95_credit_transactions_amount_28d: 0
p95_debit_transactions_amount_28d: 0
days_with_negative_balance_count_90d: 0
p90_eod_balance_30d: 0
p90_eod_balance_60d: 0
p90_eod_balance_90d: 0
p10_eod_balance_30d: 0
p10_eod_balance_60d: 0
p10_eod_balance_90d: 0
available_balance: 0
current_balance: 0
balance_last_updated: string
phone_change_count_28d: 0
phone_change_count_90d: 0
email_change_count_28d: 0
email_change_count_90d: 0
address_change_count_28d: 0
address_change_count_90d: 0
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/signal/return/report:
post:
tags:
- signal
summary: signalReturnReport
description: Call the `/signal/return/report` endpoint to report a returned transaction that was previously sent to the `/signal/evaluate` endpoint. Your feedback will be used by the model to incorporate the latest risk trend in your portfolio.
externalDocs:
url: "https://plaid.com/docs/signal/reference#signalreturnreport"
operationId: signalReturnReport
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalReturnReportRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidSignalReturnReportResponse"
examples:
example-1:
value:
request_id: string
default:
description: Error response.
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidError"
deprecated: false
parameters: []
/webhook_verification_key/get:
post:
tags:
- webhook
summary: webhookVerificationKeyGet
description: |-
Plaid signs all outgoing webhooks and provides JSON Web Tokens (JWTs) so that you can verify the authenticity of any incoming webhooks to your application. A message signature is included in the `Plaid-Verification` header.
The `/webhook_verification_key/get` endpoint provides a JSON Web Key (JWK) that can be used to verify a JWT.
externalDocs:
url: "https://plaid.com/docs/api/webhooks/webhook-verification/#webhook_verification_keyget"
operationId: webhookVerificationKeyGet
parameters: []
requestBody:
description: ""
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidWebhookVerificationKeyGetRequest"
required: true
responses:
"200":
description: OK
headers: {}
content:
application/json:
schema:
$ref: "#/components/schemas/PlaidWebhookVerificationKeyGetResponse"
examples:
example-1:
value:
key:
alg: string
crv: string
kid: string
kty: string
use: string
x: string
"y": string
created_at: 0
expired_at: 0
request_id: string
deprecated: false
parameters: []
components:
schemas:
PlaidAccountAccess:
title: PlaidAccountAccess
required:
- unique_id
type: object
properties:
unique_id:
type: string
description: The unique account identifier for this account. This value must match that returned by the data access API for this account.
authorized:
type:
- boolean
- "null"
description: "Allow the application to see this account (and associated details, including balance) in the list of accounts If unset, defaults to `true`."
default: true
description: Allow or disallow product access by account. Unlisted (e.g. missing) accounts will be considered `new_accounts`.
PlaidAccountBalance:
title: PlaidAccountBalance
required:
- available
- current
- limit
- iso_currency_code
- unofficial_currency_code
type: object
properties:
available:
type:
- number
- "null"
description: |-
The amount of funds available to be withdrawn from the account, as determined by the financial institution.
For `credit`-type accounts, the `available` balance typically equals the `limit` less the `current` balance, less any pending outflows plus any pending inflows.
For `depository`-type accounts, the `available` balance typically equals the `current` balance less any pending outflows plus any pending inflows. For `depository`-type accounts, the `available` balance does not include the overdraft limit.
For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the `available` balance is the total cash available to withdraw as presented by the institution.
Note that not all institutions calculate the `available` balance. In the event that `available` balance is unavailable, Plaid will return an `available` balance value of `null`.
Available balance may be cached and is not guaranteed to be up-to-date in realtime unless the value was returned by `/accounts/balance/get`.
If `current` is `null` this field is guaranteed not to be `null`.
current:
type:
- number
- "null"
description: |-
The total amount of funds in or owed by the account.
For `credit`-type accounts, a positive balance indicates the amount owed; a negative amount indicates the lender owing the account holder.
For `loan`-type accounts, the current balance is the principal remaining on the loan, except in the case of student loan accounts at Sallie Mae (`ins_116944`). For Sallie Mae student loans, the account's balance includes both principal and any outstanding interest.
For `investment`-type accounts (or `brokerage`-type accounts for API versions 2018-05-22 and earlier), the current balance is the total value of assets as presented by the institution.
Note that balance information may be cached unless the value was returned by `/accounts/balance/get`; if the Item is enabled for Transactions, the balance will be at least as recent as the most recent Transaction update. If you require realtime balance information, use the `available` balance as provided by `/accounts/balance/get`.
When returned by `/accounts/balance/get`, this field may be `null`. When this happens, `available` is guaranteed not to be `null`.
limit:
type:
- number
- "null"
description: |-
For `credit`-type accounts, this represents the credit limit.
For `depository`-type accounts, this represents the pre-arranged overdraft limit, which is common for current (checking) accounts in Europe.
In North America, this field is typically only available for `credit`-type accounts.
iso_currency_code:
type:
- string
- "null"
description: The ISO-4217 currency code of the balance. Always null if `unofficial_currency_code` is non-null.
unofficial_currency_code:
type:
- string
- "null"
description: |-
The unofficial currency code associated with the balance. Always null if `iso_currency_code` is non-null. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `unofficial_currency_code`s.
last_updated_datetime:
type:
- string
- "null"
description: |-
Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ssZ`) indicating the last time that the balance for the given account has been updated
This is currently only provided when the `min_last_updated_datetime` is passed when calling `/accounts/balance/get` for `ins_128026` (Capital One).
contentEncoding: date-time
description: A set of fields describing the balance for an account. Balance information may be cached unless the balance object was returned by `/accounts/balance/get`.
PlaidAccountBase:
title: PlaidAccountBase
required:
- account_id
- balances
- mask
- name
- official_name
- type
- subtype
type: object
properties:
account_id:
type: string
description: |-
Plaid’s unique identifier for the account. This value will not change unless Plaid can't reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.
The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.
If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.
Like all Plaid identifiers, the `account_id` is case sensitive.
balances:
$ref: "#/components/schemas/PlaidAccountBalance"
mask:
type:
- string
- "null"
description: "The last 2-4 alphanumeric characters of an account's official account number. Note that the mask may be non-unique between an Item's accounts, and it may also not match the mask that the bank displays to the user."
name:
type: string
description: "The name of the account, either assigned by the user or by the financial institution itself"
official_name:
type:
- string
- "null"
description: The official name of the account as given by the financial institution
type:
$ref: "#/components/schemas/PlaidAccountType"
subtype:
$ref: "#/components/schemas/PlaidAccountSubtype"
verification_status:
$ref: "#/components/schemas/VerificationStatus"
description: A single account at a financial institution.
PlaidAccountFiltersResponse:
title: PlaidAccountFiltersResponse
type: object
properties:
depository:
$ref: "#/components/schemas/PlaidDepositoryFilter"
credit:
$ref: "#/components/schemas/PlaidCreditFilter"
description: The `account_filters` specified in the original call to `/link/token/create`.
PlaidAccountIdentity:
title: PlaidAccountIdentity
required:
- account_id
- balances
- mask
- name
- official_name
- type
- subtype
- owners
type: object
properties:
account_id:
type: string
description: |-
Plaid’s unique identifier for the account. This value will not change unless Plaid can't reconcile the account with the data returned by the financial institution. This may occur, for example, when the name of the account changes. If this happens a new `account_id` will be assigned to the account.
The `account_id` can also change if the `access_token` is deleted and the same credentials that were used to generate that `access_token` are used to generate a new `access_token` on a later date. In that case, the new `account_id` will be different from the old `account_id`.
If an account with a specific `account_id` disappears instead of changing, the account is likely closed. Closed accounts are not returned by the Plaid API.
Like all Plaid identifiers, the `account_id` is case sensitive.
balances:
$ref: "#/components/schemas/PlaidAccountBalance"
mask:
type:
- string
- "null"
description: "The last 2-4 alphanumeric characters of an account's official account number. Note that the mask may be non-unique between an Item's accounts, and it may also not match the mask that the bank displays to the user."
name:
type: string
description: "The name of the account, either assigned by the user or by the financial institution itself"
official_name:
type:
- string
- "null"
description: The official name of the account as given by the financial institution
type:
$ref: "#/components/schemas/PlaidAccountType"
subtype:
$ref: "#/components/schemas/PlaidAccountSubtype"
verification_status:
$ref: "#/components/schemas/VerificationStatus"
owners:
type: array
items:
$ref: "#/components/schemas/PlaidOwner"
description: "Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same `owner` object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the `owners` object is not returned, and instead identity information is returned in the top level `identity` object. For more details, see [Plaid API versioning](https://plaid.com/docs/api/versioning/#version-2019-05-29)"
description: Identity information about an account
PlaidAccountSubtype:
title: PlaidAccountSubtype
enum:
- 401a
- 401k
- 403B
- 457b
- "529"
- brokerage
- cash isa
- education savings account
- ebt
- fixed annuity
- gic
- health reimbursement arrangement
- hsa
- isa
- ira
- lif
- life insurance
- lira
- lrif
- lrsp
- non-taxable brokerage account
- other
- other insurance
- other annuity
- prif
- rdsp
- resp
- rlif
- rrif
- pension
- profit sharing plan
- retirement
- roth
- roth 401k
- rrsp
- sep ira
- simple ira
- sipp
- stock plan
- thrift savings plan
- tfsa
- trust
- ugma
- utma
- variable annuity
- credit card
- paypal
- cd
- checking
- savings
- money market
- prepaid
- auto
- business
- commercial
- construction
- consumer
- home equity
- loan
- mortgage
- overdraft
- line of credit
- student
- cash management
- keogh
- mutual fund
- recurring
- rewards
- safe deposit
- sarsep
- payroll
type: string
description: "See the [Account type schema](https://plaid.com/docs/api/accounts/#account-type-schema) for a full listing of account types and corresponding subtypes."
examples:
- checking
PlaidAccountType:
title: PlaidAccountType
enum:
- investment
- credit
- depository
- loan
- brokerage
- other
type: string
description: "The type of account connected to Plaid (can either be `investment`, `credit`, `depository`, `loan`, `brokerage`, or `other`)."
examples:
- investment
PlaidAccountsBalanceGetRequest:
title: PlaidAccountsBalanceGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: AccountsBalanceGetRequest defines the request schema for `/accounts/balance/get`
PlaidAccountsGetRequest:
title: PlaidAccountsGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: AccountsGetRequest defines the request schema for `/accounts/get`
PlaidAccountsGetResponse:
title: PlaidAccountsGetResponse
required:
- accounts
- item
- request_id
type: object
properties:
accounts:
type: array
items:
$ref: "#/components/schemas/PlaidAccountBase"
description: |-
An array of financial institution accounts associated with the Item.
If `/accounts/balance/get` was called, each account will include real-time balance information.
item:
$ref: "#/components/schemas/PlaidItem"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: AccountsGetResponse defines the response schema for `/accounts/get` and `/accounts/balance/get`.
PlaidAddress:
title: PlaidAddress
required:
- data
type: object
properties:
data:
$ref: "#/components/schemas/PlaidAddressData"
primary:
type: boolean
description: "When `true`, identifies the address as the primary address on an account."
description: A physical mailing address.
PlaidAddressData:
title: PlaidAddressData
required:
- city
- region
- street
- postal_code
- country
type: object
properties:
city:
type: string
description: The full city name
region:
type:
- string
- "null"
description: |-
The region or state. In API versions 2018-05-22 and earlier, this field is called `state`.
Example: `"NC"`
street:
type: string
description: |-
The full street address
Example: `"564 Main Street, APT 15"`
postal_code:
type:
- string
- "null"
description: "The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`."
country:
type:
- string
- "null"
description: The ISO 3166-1 alpha-2 country code
description: Data about the components comprising an address.
PlaidAuthGetNumbers:
title: PlaidAuthGetNumbers
required:
- ach
type: object
properties:
ach:
type: array
items:
$ref: "#/components/schemas/PlaidNumbersACH"
description: An array of ACH numbers identifying accounts.
description: "An object with numbers that are used to electronically transfer money between accounts. If a particular type of number is not used by any accounts, the array for that type will be empty."
PlaidAuthGetRequest:
title: PlaidAuthGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: AuthGetRequest defines the request schema for `/auth/get`
PlaidAuthGetResponse:
title: PlaidAuthGetResponse
required:
- accounts
- numbers
- item
- request_id
type: object
properties:
accounts:
type: array
items:
$ref: "#/components/schemas/PlaidAccountBase"
description: The `accounts` for which numbers are being retrieved.
numbers:
$ref: "#/components/schemas/PlaidAuthGetNumbers"
item:
$ref: "#/components/schemas/PlaidItem"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: AuthGetResponse defines the response schema for `/auth/get`
PlaidAuthMetadata:
title: PlaidAuthMetadata
required:
- supported_methods
type: object
properties:
supported_methods:
$ref: "#/components/schemas/PlaidAuthSupportedMethods"
description: Metadata that captures information about the Auth features of an institution.
PlaidAuthSupportedMethods:
title: PlaidAuthSupportedMethods
required:
- instant_auth
- instant_match
- automated_micro_deposits
type: object
properties:
instant_auth:
type: boolean
description: Indicates if instant auth is supported.
instant_match:
type: boolean
description: Indicates if instant match is supported.
automated_micro_deposits:
type: boolean
description: Indicates if automated microdeposits are supported.
description: Metadata specifically related to which auth methods an institution supports.
PlaidAutomaticallyVerifiedWebhook:
title: PlaidAutomaticallyVerifiedWebhook
required:
- webhook_type
- webhook_code
- account_id
- item_id
type: object
properties:
webhook_type:
type: string
description: "`AUTH`"
webhook_code:
type: string
description: "`AUTOMATICALLY_VERIFIED`"
account_id:
type: string
description: The `account_id` of the account associated with the webhook
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
description: Fired when an Item is verified via automated micro-deposits. We recommend communicating to your users when this event is received to notify them that their account is verified and ready for use.
PlaidBankInitiatedReturnRisk:
title: PlaidBankInitiatedReturnRisk
required:
- score
- risk_tier
type: object
properties:
score:
maximum: 100
minimum: 0
type: integer
description: "A score from 0-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood."
contentEncoding: int32
risk_tier:
maximum: 8
minimum: 1
type: integer
description: The Plaid `bank_initiated_return_risk` object is a list of eight risk tiers corresponding to an incidence rate between 0% and greater than 50%.
contentEncoding: int32
description: 'The object contains a risk score and a risk tier that evaluate the transaction return risk because an account is overdrawn or because an ineligible account is used. Common return codes in this category include: "R01", "R02", "R03", "R04", "R06", "R08", "R09", "R13", "R16", "R17", "R20", "R23". These returns have a turnaround time of 2 banking days.'
PlaidCategoriesGetResponse:
title: PlaidCategoriesGetResponse
required:
- categories
- request_id
type: object
properties:
categories:
type: array
items:
$ref: "#/components/schemas/PlaidCategory"
description: An array of all of the transaction categories used by Plaid.
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: CategoriesGetResponse defines the response schema for `/categories/get`
PlaidCategory:
title: PlaidCategory
required:
- category_id
- group
- hierarchy
type: object
properties:
category_id:
type: string
description: An identifying number for the category. `category_id` is a Plaid-specific identifier and does not necessarily correspond to merchant category codes.
group:
type: string
description: "`place` for physical transactions or `special` for other transactions such as bank charges."
hierarchy:
type: array
items:
type: string
description: A hierarchical array of the categories to which this `category_id` belongs.
description: Information describing a transaction category
PlaidCause:
title: PlaidCause
required:
- item_id
- error
type: object
properties:
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
error:
$ref: "#/components/schemas/PlaidError"
description: An error object and associated `item_id` used to identify a specific Item and error when a batch operation operating on multiple Items has encountered an error in one of the Items.
PlaidCountryCode:
title: PlaidCountryCode
enum:
- US
- GB
- ES
- NL
- FR
- IE
- CA
- DE
type: string
description: ISO-3166-1 alpha-2 country code standard.
examples:
- US
PlaidCreditAccount:
title: PlaidCreditAccount
required:
- credit card
- paypal
type: object
properties:
credit card:
type: string
description: Bank-issued credit card
paypal:
type: string
description: PayPal-issued credit card
description: "A credit card type account. Supported products for `credit` accounts are: Balance, Transactions, Identity, and Liabilities."
PlaidCreditAccountSubtype:
title: PlaidCreditAccountSubtype
enum:
- credit card
- paypal
- all
type: string
description: "Valid account subtypes for credit accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-credit)."
examples:
- credit card
PlaidCreditFilter:
title: PlaidCreditFilter
required:
- account_subtypes
type: object
properties:
account_subtypes:
type: array
items:
$ref: "#/components/schemas/PlaidCreditAccountSubtype"
description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."
description: A filter to apply to `credit`-type accounts
PlaidCustomerInitiatedReturnRisk:
title: PlaidCustomerInitiatedReturnRisk
required:
- score
- risk_tier
type: object
properties:
score:
maximum: 100
minimum: 0
type: integer
description: "A score from 0-99 that indicates the transaction return risk: a higher risk score suggests a higher return likelihood."
contentEncoding: int32
risk_tier:
maximum: 5
minimum: 1
type: integer
description: |-
A tier corresponding to the projected likelihood that the transaction, if initiated, will be subject to a return.
In the `customer_initiated_return_risk` object, there are five risk tiers corresponding to the scores:
1: Predicted customer-initiated return incidence rate between 0.00% - 0.02%
2: Predicted customer-initiated return incidence rate between 0.02% - 0.05%
3: Predicted customer-initiated return incidence rate between 0.05% - 0.1%
4: Predicted customer-initiated return incidence rate between 0.1% - 0.5%
5: Predicted customer-initiated return incidence rate greater than 0.5%
contentEncoding: int32
description: 'The object contains a risk score and a risk tier that evaluate the transaction return risk of an unauthorized debit. Common return codes in this category include: "R05", "R07", "R10", "R11", "R29". These returns typically have a return time frame of up to 60 calendar days. During this period, the customer of financial institutions can dispute a transaction as unauthorized.'
PlaidDefaultUpdateWebhook:
title: PlaidDefaultUpdateWebhook
required:
- webhook_type
- webhook_code
- new_transactions
- item_id
type: object
properties:
webhook_type:
type: string
description: "`TRANSACTIONS`"
webhook_code:
type: string
description: "`DEFAULT_UPDATE`"
error:
$ref: "#/components/schemas/PlaidError"
new_transactions:
type: number
description: The number of new transactions detected since the last time this webhook was fired.
item_id:
type: string
description: The `item_id` of the Item the webhook relates to.
description: Fired when new transaction data is available for an Item. Plaid will typically check for new transaction data several times a day.
PlaidDepositoryAccount:
title: PlaidDepositoryAccount
required:
- checking
- savings
- hsa
- cd
- money market
- paypal
- prepaid
- cash management
- ebt
type: object
properties:
checking:
type: string
description: Checking account
savings:
type: string
description: Savings account
hsa:
type: string
description: Health Savings Account (US only) that can only hold cash
cd:
type: string
description: Certificate of deposit account
money market:
type: string
description: Money market account
paypal:
type: string
description: PayPal depository account
prepaid:
type: string
description: Prepaid debit card
cash management:
type: string
description: "A cash management account, typically a cash account at a brokerage"
ebt:
type: string
description: "An Electronic Benefit Transfer (EBT) account, used by certain public assistance programs to distribute funds (US only)"
description: "An account type holding cash, in which funds are deposited. Supported products for `depository` accounts are: Auth (`checking` and `savings` types only), Balance, Transactions, Identity, Payment Initiation, and Assets."
PlaidDepositoryAccountSubtype:
title: PlaidDepositoryAccountSubtype
enum:
- checking
- savings
- hsa
- cd
- money market
- paypal
- prepaid
- cash management
- ebt
- all
type: string
description: "Valid account subtypes for depository accounts. For a list containing descriptions of each subtype, see [Account schemas](https://plaid.com/docs/api/accounts/#StandaloneAccountType-depository)."
examples:
- checking
PlaidDepositoryFilter:
title: PlaidDepositoryFilter
required:
- account_subtypes
type: object
properties:
account_subtypes:
type: array
items:
$ref: "#/components/schemas/PlaidDepositoryAccountSubtype"
description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."
description: A filter to apply to `depository`-type accounts
PlaidEmail:
title: PlaidEmail
required:
- data
- primary
- type
type: object
properties:
data:
type: string
description: The email address.
primary:
type: boolean
description: "When `true`, identifies the email address as the primary email on an account."
type:
$ref: "#/components/schemas/Type1"
description: An object representing an email address
PlaidError:
title: PlaidError
required:
- error_type
- error_code
- error_message
- display_message
type: object
properties:
error_type:
$ref: "#/components/schemas/ErrorType"
error_code:
type: string
description: The particular error code. Safe for programmatic use.
error_message:
type: string
description: A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
display_message:
type:
- string
- "null"
description: |-
A user-friendly representation of the error code. `null` if the error is not related to user action.
This may change over time and is not safe for programmatic use.
request_id:
type: string
description: "A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks."
causes:
type: array
items: {}
description: |-
In the Assets product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.
`causes` will only be provided for the `error_type` `ASSET_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
status:
type:
- number
- "null"
description: The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
documentation_url:
type: string
description: The URL of a Plaid documentation page with more information about the error
suggested_action:
type: string
description: Suggested steps for resolving the error
description: "We use standard HTTP response codes for success and failure notifications, and our errors are further classified by `error_type`. In general, `200` HTTP codes correspond to success, `40X` codes are for developer- or user-related failures, and `50X` codes are for Plaid-related issues. Error fields will be `null` if no error has occurred."
PlaidHealthIncident:
title: PlaidHealthIncident
required:
- start_date
- title
- incident_updates
type: object
properties:
start_date:
type: string
description: 'The start date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.'
contentEncoding: date-time
end_date:
type: string
description: 'The end date of the incident, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.'
contentEncoding: date-time
title:
type: string
description: The title of the incident
incident_updates:
type: array
items:
$ref: "#/components/schemas/PlaidIncidentUpdate"
description: Updates on the health incident.
description: A status health incident
PlaidHistoricalUpdateWebhook:
title: PlaidHistoricalUpdateWebhook
required:
- webhook_type
- webhook_code
- new_transactions
- item_id
type: object
properties:
webhook_type:
type: string
description: "`TRANSACTIONS`"
webhook_code:
type: string
description: "`HISTORICAL_UPDATE`"
error:
$ref: "#/components/schemas/PlaidError"
new_transactions:
type: number
description: "The number of new, unfetched transactions available"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
description: "Fired when an Item's historical transaction pull is completed and Plaid has prepared as much historical transaction data as possible for the Item. Once this webhook has been fired, transaction data beyond the most recent 30 days can be fetched for the Item. If [Account Select v2](https://plaid.com/docs/link/customization/#account-select) is enabled, this webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update."
PlaidIdentityGetRequest:
title: PlaidIdentityGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: IdentityGetRequest defines the request schema for `/identity/get`
PlaidIdentityGetResponse:
title: PlaidIdentityGetResponse
required:
- accounts
- item
- request_id
type: object
properties:
accounts:
type: array
items:
$ref: "#/components/schemas/PlaidAccountIdentity"
description: The accounts for which Identity data has been requested
item:
$ref: "#/components/schemas/PlaidItem"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: IdentityGetResponse defines the response schema for `/identity/get`
PlaidIncidentUpdate:
title: PlaidIncidentUpdate
type: object
properties:
description:
type: string
description: The content of the update.
status:
$ref: "#/components/schemas/Status"
updated_date:
type: string
description: 'The date when the update was published, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format, e.g. `"2020-10-30T15:26:48Z"`.'
contentEncoding: date-time
description: An update on the health incident
PlaidInitialUpdateWebhook:
title: PlaidInitialUpdateWebhook
required:
- webhook_type
- webhook_code
- new_transactions
- item_id
type: object
properties:
webhook_type:
type: string
description: "`TRANSACTIONS`"
webhook_code:
type: string
description: "`INITIAL_UPDATE`"
error:
type:
- string
- "null"
description: The error code associated with the webhook.
new_transactions:
type: number
description: "The number of new, unfetched transactions available."
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
description: "Fired when an Item's initial transaction pull is completed. Once this webhook has been fired, transaction data for the most recent 30 days can be fetched for the Item. If [Account Select v2](https://plaid.com/docs/link/customization/#account-select) is enabled, this webhook will also be fired if account selections for the Item are updated, with `new_transactions` set to the number of net new transactions pulled after the account selection update."
PlaidInstitution:
title: PlaidInstitution
required:
- institution_id
- name
- products
- country_codes
- routing_numbers
- oauth
type: object
properties:
institution_id:
type: string
description: Unique identifier for the institution
name:
type: string
description: The official name of the institution
products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: "A list of the Plaid products supported by the institution. Note that only institutions that support Instant Auth will return `auth` in the product array; institutions that do not list `auth` may still support other Auth methods such as Instant Match or Automated Micro-deposit Verification. To identify institutions that support those methods, use the `auth_metadata` object. For more details, see [Full Auth coverage](https://plaid.com/docs/auth/coverage/)."
country_codes:
type: array
items:
$ref: "#/components/schemas/PlaidCountryCode"
description: A list of the country codes supported by the institution.
url:
type:
- string
- "null"
description: The URL for the institution's website
primary_color:
type:
- string
- "null"
description: Hexadecimal representation of the primary color used by the institution
logo:
type:
- string
- "null"
description: Base64 encoded representation of the institution's logo
routing_numbers:
type: array
items:
type: string
description: A partial list of routing numbers associated with the institution. This list is provided for the purpose of looking up institutions by routing number. It is not comprehensive and should never be used as a complete list of routing numbers for an institution.
oauth:
type: boolean
description: Indicates that the institution has an OAuth login flow.
status:
$ref: "#/components/schemas/PlaidInstitutionStatus"
auth_metadata:
$ref: "#/components/schemas/PlaidAuthMetadata"
description: Details relating to a specific financial institution
PlaidInstitutionStatus:
title: PlaidInstitutionStatus
required:
- item_logins
- transactions_updates
- auth
- identity
- investments_updates
type: object
properties:
item_logins:
$ref: "#/components/schemas/PlaidProductStatus"
transactions_updates:
$ref: "#/components/schemas/PlaidProductStatus"
auth:
$ref: "#/components/schemas/PlaidProductStatus"
identity:
$ref: "#/components/schemas/PlaidProductStatus"
investments_updates:
$ref: "#/components/schemas/PlaidProductStatus"
liabilities_updates:
$ref: "#/components/schemas/PlaidProductStatus"
liabilities:
$ref: "#/components/schemas/PlaidProductStatus"
investments:
$ref: "#/components/schemas/PlaidProductStatus"
health_incidents:
type:
- array
- "null"
items:
$ref: "#/components/schemas/PlaidHealthIncident"
description: Details of recent health incidents associated with the institution.
description: |-
The status of an institution is determined by the health of its Item logins, Transactions updates, Investments updates, Liabilities updates, Auth requests, Balance requests, Identity requests, Investments requests, and Liabilities requests. A login attempt is conducted during the initial Item add in Link. If there is not enough traffic to accurately calculate an institution's status, Plaid will return null rather than potentially inaccurate data.
Institution status is accessible in the Dashboard and via the API using the `/institutions/get_by_id` endpoint with the `include_status` option set to true. Note that institution status is not available in the Sandbox environment.
PlaidInstitutionsGetRequest:
title: PlaidInstitutionsGetRequest
required:
- count
- offset
- country_codes
type: object
properties:
count:
maximum: 500
minimum: 1
type: integer
description: The total number of Institutions to return.
contentEncoding: int32
offset:
minimum: 0
type: integer
description: The number of Institutions to skip.
contentEncoding: int32
country_codes:
minItems: 1
type: array
items:
$ref: "#/components/schemas/PlaidCountryCode"
description: |-
Specify an array of Plaid-supported country codes this institution supports, using the ISO-3166-1 alpha-2 country code standard.
In API versions 2019-05-29 and earlier, the `country_codes` parameter is an optional parameter within the `options` object and will default to `[US]` if it is not supplied.
options:
$ref: "#/components/schemas/PlaidInstitutionsGetRequestOptions"
description: InstitutionsGetRequest defines the request schema for `/institutions/get`
PlaidInstitutionsGetRequestOptions:
title: PlaidInstitutionsGetRequestOptions
type: object
properties:
products:
minItems: 1
type:
- array
- "null"
items:
$ref: "#/components/schemas/PlaidProducts"
description: Filter the Institutions based on which products they support.
routing_numbers:
type:
- array
- "null"
items:
type: string
description: Specify an array of routing numbers to filter institutions. The response will only return institutions that match all of the routing numbers in the array. Routing number records used for this matching are not comprehensive; failure to match a given routing number to an institution does not mean that the institution is unsupported by Plaid.
oauth:
type:
- boolean
- "null"
description: Limit results to institutions with or without OAuth login flows.
include_optional_metadata:
type: boolean
description: |-
When `true`, return the institution's homepage URL, logo and primary brand color.
Note that Plaid does not own any of the logos shared by the API, and that by accessing or using these logos, you agree that you are doing so at your own risk and will, if necessary, obtain all required permissions from the appropriate rights holders and adhere to any applicable usage guidelines. Plaid disclaims all express or implied warranties with respect to the logos.
include_auth_metadata:
type: boolean
description: "When `true`, returns metadata related to the Auth product indicating which auth methods are supported."
default: false
include_payment_initiation_metadata:
type: boolean
description: "When `true`, returns metadata related to the Payment Initiation product indicating which payment configurations are supported."
default: false
description: An optional object to filter `/institutions/get` results.
PlaidInstitutionsGetResponse:
title: PlaidInstitutionsGetResponse
required:
- institutions
- total
- request_id
type: object
properties:
institutions:
type: array
items:
$ref: "#/components/schemas/PlaidInstitution"
description: A list of Plaid institutions
total:
type: integer
description: The total number of institutions available via this endpoint
contentEncoding: int32
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: InstitutionsGetResponse defines the response schema for `/institutions/get`
PlaidInstitutionsSearchResponse:
title: PlaidInstitutionsSearchResponse
required:
- institutions
- request_id
type: object
properties:
institutions:
type: array
items:
$ref: "#/components/schemas/PlaidInstitution"
description: An array of institutions matching the search criteria
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: InstitutionsSearchResponse defines the response schema for `/institutions/search`
PlaidItem:
title: PlaidItem
required:
- item_id
- webhook
- error
- available_products
- billed_products
- consent_expiration_time
- update_type
type: object
properties:
item_id:
type: string
description: "The Plaid Item ID. The `item_id` is always unique; linking the same account at the same institution twice will result in two Items with different `item_id` values. Like all Plaid identifiers, the `item_id` is case-sensitive."
institution_id:
type:
- string
- "null"
description: The Plaid Institution ID associated with the Item. Field is `null` for Items created via Same Day Micro-deposits.
webhook:
type:
- string
- "null"
description: The URL registered to receive webhooks for the Item.
error:
$ref: "#/components/schemas/PlaidError"
available_products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: A list of products available for the Item that have not yet been accessed.
billed_products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: A list of products that have been billed for the Item. Note - `billed_products` is populated in all environments but only requests in Production are billed.
products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: A list of authorized products for the Item.
consent_expiration_time:
type:
- string
- "null"
description: |-
The RFC 3339 timestamp after which the consent provided by the end user will expire. Upon consent expiration, the item will enter the `ITEM_LOGIN_REQUIRED` error state. To circumvent the `ITEM_LOGIN_REQUIRED` error and maintain continuous consent, the end user can reauthenticate via Link’s update mode in advance of the consent expiration time.
Note - This is only relevant for certain OAuth-based institutions. For all other institutions, this field will be null.
contentEncoding: date-time
update_type:
$ref: "#/components/schemas/UpdateType"
description: Metadata about the Item.
PlaidItemErrorWebhook:
title: PlaidItemErrorWebhook
required:
- webhook_type
- webhook_code
- item_id
- error
type: object
properties:
webhook_type:
type: string
description: "`ITEM`"
webhook_code:
type: string
description: "`ERROR`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
error:
$ref: "#/components/schemas/PlaidError"
description: Fired when an error is encountered with an Item. The error can be resolved by having the user go through Link’s update mode.
PlaidItemGetRequest:
title: PlaidItemGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: ItemGetRequest defines the request schema for `/item/get`
PlaidItemGetResponse:
title: PlaidItemGetResponse
required:
- item
- request_id
type: object
properties:
item:
$ref: "#/components/schemas/PlaidItem"
status:
$ref: "#/components/schemas/PlaidItemStatus"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: ItemGetResponse defines the response schema for `/item/get` and `/item/webhook/update`
PlaidItemProductReadyWebhook:
title: PlaidItemProductReadyWebhook
required:
- webhook_type
- webhook_code
- item_id
type: object
properties:
webhook_type:
type: string
description: "`INCOME`"
webhook_code:
type: string
description: "`PRODUCT_READY`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
error:
$ref: "#/components/schemas/PlaidError"
description: Fired once Plaid calculates income from an Item.
PlaidItemPublicTokenExchangeRequest:
title: PlaidItemPublicTokenExchangeRequest
required:
- public_token
type: object
properties:
public_token:
type: string
description: "Your `public_token`, obtained from the Link `onSuccess` callback or `/sandbox/item/public_token/create`."
description: "`ItemPublicTokenExchangeRequest` defines the request schema for `/item/public_token/exchange`"
PlaidItemPublicTokenExchangeResponse:
title: PlaidItemPublicTokenExchangeResponse
required:
- access_token
- item_id
- request_id
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
item_id:
type: string
description: The `item_id` value of the Item associated with the returned `access_token`
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: ItemPublicTokenExchangeResponse defines the response schema for `/item/public_token/exchange`
PlaidItemRemoveRequest:
title: PlaidItemRemoveRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: "`ItemRemoveRequest` defines the request schema for `/item/remove`"
PlaidItemRemoveResponse:
title: PlaidItemRemoveResponse
required:
- request_id
type: object
properties:
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: ItemRemoveResponse defines the response schema for `/item/remove`
PlaidItemStatus:
title: PlaidItemStatus
type: object
properties:
investments:
$ref: "#/components/schemas/PlaidItemStatusInvestments"
transactions:
$ref: "#/components/schemas/PlaidItemStatusTransactions"
last_webhook:
$ref: "#/components/schemas/PlaidItemStatusLastWebhook"
description: Information about the last successful and failed transactions update for the Item.
PlaidItemStatusInvestments:
title: PlaidItemStatusInvestments
type: object
properties:
last_successful_update:
type:
- string
- "null"
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful investments update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update."
contentEncoding: date-time
last_failed_update:
type:
- string
- "null"
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed investments update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update."
contentEncoding: date-time
description: Information about the last successful and failed investments update for the Item.
PlaidItemStatusLastWebhook:
title: PlaidItemStatusLastWebhook
type: object
properties:
sent_at:
type:
- string
- "null"
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of when the webhook was fired."
contentEncoding: date-time
code_sent:
type:
- string
- "null"
description: The last webhook code sent.
description: Information about the last webhook fired for the Item.
PlaidItemStatusTransactions:
title: PlaidItemStatusTransactions
type: object
properties:
last_successful_update:
type:
- string
- "null"
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last successful transactions update for the Item. The status will update each time Plaid successfully connects with the institution, regardless of whether any new data is available in the update."
contentEncoding: date-time
last_failed_update:
type:
- string
- "null"
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) timestamp of the last failed transactions update for the Item. The status will update each time Plaid fails an attempt to connect with the institution, regardless of whether any new data is available in the update."
contentEncoding: date-time
description: Information about the last successful and failed transactions update for the Item.
PlaidItemWebhookUpdateRequest:
title: PlaidItemWebhookUpdateRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
webhook:
type:
- string
- "null"
description: The new webhook URL to associate with the Item.
description: "`ItemWebhookUpdateRequest` defines the request schema for `/item/webhook/update`"
PlaidItemWebhookUpdateResponse:
title: PlaidItemWebhookUpdateResponse
required:
- item
- request_id
type: object
properties:
item:
$ref: "#/components/schemas/PlaidItem"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: ItemWebhookUpdateResponse defines the response schema for `/item/webhook/update`
PlaidJWKPublicKey:
title: PlaidJWKPublicKey
required:
- alg
- crv
- kid
- kty
- use
- x
- "y"
- created_at
- expired_at
type: object
properties:
alg:
type: string
description: The alg member identifies the cryptographic algorithm family used with the key.
crv:
type: string
description: The crv member identifies the cryptographic curve used with the key.
kid:
type: string
description: "The kid (Key ID) member can be used to match a specific key. This can be used, for instance, to choose among a set of keys within the JWK during key rollover."
kty:
type: string
description: "The kty (key type) parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC."
use:
type: string
description: The use (public key use) parameter identifies the intended use of the public key.
x:
type: string
description: The x member contains the x coordinate for the elliptic curve point.
"y":
type: string
description: The y member contains the y coordinate for the elliptic curve point.
created_at:
type: integer
description: "The timestamp when the key was created, in Unix time."
contentEncoding: int32
expired_at:
type:
- integer
- "null"
description: "The timestamp when the key expired, in Unix time."
contentEncoding: int32
description: "A JSON Web Key (JWK) that can be used in conjunction with [JWT libraries](https://jwt.io/#libraries-io) to verify Plaid webhooks"
PlaidJWTHeader:
title: PlaidJWTHeader
required:
- id
type: object
properties:
id:
type: string
description: "A JWT Header, used for webhook validation"
PlaidLinkTokenAccountFilters:
title: PlaidLinkTokenAccountFilters
type: object
properties:
depository:
$ref: "#/components/schemas/PlaidDepositoryFilter"
credit:
$ref: "#/components/schemas/PlaidCreditFilter"
description: |-
By default, Link will provide limited account filtering: it will only display Institutions that are compatible with all products supplied in the `products` parameter of `/link/token/create`, and, if `auth` is specified in the `products` array, will also filter out accounts other than `checking` and `savings` accounts on the Account Select pane. You can further limit the accounts shown in Link by using `account_filters` to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value `"all"`. If the `account_filters` filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema).
For institutions using OAuth, the filter will not affect the list of accounts shown by the bank in the OAuth window.
PlaidLinkTokenCreateCreditFilter:
title: PlaidLinkTokenCreateCreditFilter
type: object
properties:
account_subtypes:
type: array
items:
$ref: "#/components/schemas/PlaidCreditAccountSubtype"
description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."
description: A filter to apply to `credit`-type accounts
PlaidLinkTokenCreateDepositoryFilter:
title: PlaidLinkTokenCreateDepositoryFilter
type: object
properties:
account_subtypes:
type: array
items:
$ref: "#/components/schemas/PlaidDepositoryAccountSubtype"
description: "An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the [Account schema](https://plaid.com/docs/api/accounts#account-type-schema)."
description: A filter to apply to `depository`-type accounts
PlaidLinkTokenCreateRequest:
title: PlaidLinkTokenCreateRequest
required:
- client_name
- language
- country_codes
- user
type: object
properties:
client_name:
type: string
description: 'The name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer than 30 characters is provided, Link will display "This Application" instead.'
language:
type: string
description: |-
The language that Link should be displayed in.
Supported languages are:
- English (`'en'`)
- French (`'fr'`)
- Spanish (`'es'`)
- Dutch (`'nl'`)
- German(`'de'`)
When using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.
country_codes:
minItems: 1
type: array
items:
$ref: "#/components/schemas/PlaidCountryCode"
description: |-
Specify an array of Plaid-supported country codes using the ISO-3166-1 alpha-2 country code standard. Institutions from all listed countries will be shown. Supported country codes are: `US`, `CA`, `DE`, `ES`, `FR`, `GB`, `IE`, `NL`. For a complete mapping of supported products by country, see https://plaid.com/global/.
If Link is launched with multiple country codes, only products that you are enabled for in all countries will be used by Link. Note that while all countries are enabled by default in Sandbox and Development, in Production only US and Canada are enabled by default. To gain access to European institutions in the Production environment, [file a product access Support ticket](https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/request-product-access) via the Plaid dashboard. If you initialize with a European country code, your users will see the European consent panel during the Link flow.
If using a Link customization, make sure the country codes in the customization match those specified in `country_codes`. If both `country_codes` and a Link customization are used, the value in `country_codes` may override the value in the customization.
If using the Auth features Instant Match, Same-day Micro-deposits, or Automated Micro-deposits, `country_codes` must be set to `['US']`.
user:
$ref: "#/components/schemas/PlaidLinkTokenCreateRequestUser"
products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: |-
List of Plaid product(s) you wish to use. If launching Link in update mode, should be omitted; required otherwise.
`balance` is *not* a valid value, the Balance product does not require explicit initialization and will automatically be initialized when any other product is initialized.
Only institutions that support *all* requested products will be shown in Link; to maximize the number of institutions listed, it is recommended to initialize Link with the minimal product set required for your use case. Additional products can be added after Link initialization by calling the relevant endpoints. For details and exceptions, see [Choosing when to initialize products](https://plaid.com/docs/link/best-practices/#choosing-when-to-initialize-products).
Note that, unless you have opted to disable Instant Match support, institutions that support Instant Match will also be shown in Link if `auth` is specified as a product, even though these institutions do not contain `auth` in their product array.
In Production, you will be billed for each product that you specify when initializing Link. Note that a product cannot be removed from an Item once the Item has been initialized with that product. To stop billing on an Item for subscription-based products, such as Liabilities, Investments, and Transactions, remove the Item via `/item/remove`.
webhook:
type: string
description: The destination URL to which any webhooks should be sent.
access_token:
type: string
description: "The `access_token` associated with the Item to update, used when updating or modifying an existing `access_token`. Used when launching Link in update mode, when completing the Same-day (manual) Micro-deposit flow, or (optionally) when initializing Link as part of the Payment Initiation (UK and Europe) flow."
link_customization_name:
type: string
description: "The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the `default` customization will be used. When using a Link customization, the language in the customization must match the language selected via the `language` parameter, and the countries in the customization should match the country codes selected via `country_codes`."
redirect_uri:
type: string
description: "A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or via a webview. The `redirect_uri` should not contain any query parameters. When used in Production or Development, must be an https URI. To specify any subdomain, use `*` as a wildcard character, e.g. `https://*.example.com/oauth.html`. If `android_package_name` is specified, this field should be left blank. Note that any redirect URI must also be added to the Allowed redirect URIs list in the [developer dashboard](https://dashboard.plaid.com/team/api)."
android_package_name:
type: string
description: "The name of your app's Android package. Required if using the `link_token` to initialize Link on Android. When creating a `link_token` for initializing Link on other platforms, this field must be left blank. Any package name specified here must also be added to the Allowed Android package names setting on the [developer dashboard](https://dashboard.plaid.com/team/api)."
account_filters:
$ref: "#/components/schemas/PlaidLinkTokenAccountFilters"
institution_id:
type: string
description: "Used for certain Europe-only configurations, as well as certain legacy use cases in other regions."
auth:
$ref: "#/components/schemas/PlaidLinkTokenCreateRequestAuth"
update:
$ref: "#/components/schemas/PlaidLinkTokenCreateRequestUpdate"
description: "`LinkTokenCreateRequest` defines the request schema for `/link/token/create`"
PlaidLinkTokenCreateRequestAuth:
title: PlaidLinkTokenCreateRequestAuth
required:
- flow_type
type: object
properties:
flow_type:
const: FLEXIBLE_AUTH
type: string
description: The optional Auth flow to use. Currently only used to enable Flexible Auth.
examples:
- FLEXIBLE_AUTH
description: Specifies options for initializing Link for use with the Auth product. This field is currently only required if using the Flexible Auth product (currently in closed beta).
PlaidLinkTokenCreateRequestUpdate:
title: PlaidLinkTokenCreateRequestUpdate
type: object
properties:
account_selection_enabled:
type: boolean
description: "If `true`, enables [update mode with Account Select](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts)."
default: false
description: "Specifies options for initializing Link for [update mode](https://plaid.com/docs/link/update-mode)."
PlaidLinkTokenCreateRequestUser:
title: PlaidLinkTokenCreateRequestUser
required:
- client_user_id
type: object
properties:
client_user_id:
type: string
description: "A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the `client_user_id`. It is currently used as a means of searching logs for the given user in the Plaid Dashboard."
legal_name:
type: string
description: "The user's full legal name. This is an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user) to associate Items to the user."
phone_number:
type: string
description: "The user's phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format. This field is optional, but required to enable the [returning user experience](https://plaid.com/docs/link/returning-user)."
phone_number_verified_time:
type: string
description: |-
The date and time the phone number was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This field is optional, but required to enable any [returning user experience](https://plaid.com/docs/link/returning-user).
Only pass a verification time for a phone number that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.
Example: `2020-01-01T00:00:00Z`
contentEncoding: date-time
email_address:
type: string
description: "The user's email address. This field is optional, but required to enable the [pre-authenticated returning user flow](https://plaid.com/docs/link/returning-user/#enabling-the-returning-user-experience)."
email_address_verified_time:
type: string
description: |-
The date and time the email address was verified in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDThh:mm:ssZ`). This is an optional field used in the [returning user experience](https://plaid.com/docs/link/returning-user).
Only pass a verification time for an email address that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.
Example: `2020-01-01T00:00:00Z`
contentEncoding: date-time
ssn:
type: string
description: To be provided in the format "ddd-dd-dddd". This field is optional and will support not-yet-implemented functionality for new products.
date_of_birth:
type: string
description: To be provided in the format "yyyy-mm-dd". This field is optional and will support not-yet-implemented functionality for new products.
contentEncoding: date
description: An object specifying information about the end user who will be linking their account.
PlaidLinkTokenCreateResponse:
title: PlaidLinkTokenCreateResponse
required:
- link_token
- expiration
- request_id
type: object
properties:
link_token:
type: string
description: "A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`."
expiration:
type: string
description: "The expiration date for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format. A `link_token` created to generate a `public_token` that will be exchanged for a new `access_token` expires after 4 hours. A `link_token` created for an existing Item (such as when updating an existing `access_token` by launching Link in update mode) expires after 30 minutes."
contentEncoding: date-time
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: LinkTokenCreateResponse defines the response schema for `/link/token/create`
PlaidLinkTokenGetMetadataResponse:
title: PlaidLinkTokenGetMetadataResponse
required:
- initial_products
- webhook
- country_codes
- language
- redirect_uri
- client_name
type: object
properties:
initial_products:
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: The `products` specified in the `/link/token/create` call.
webhook:
type:
- string
- "null"
description: The `webhook` specified in the `/link/token/create` call.
country_codes:
type: array
items:
$ref: "#/components/schemas/PlaidCountryCode"
description: The `country_codes` specified in the `/link/token/create` call.
language:
type:
- string
- "null"
description: The `language` specified in the `/link/token/create` call.
account_filters:
$ref: "#/components/schemas/PlaidAccountFiltersResponse"
redirect_uri:
type:
- string
- "null"
description: The `redirect_uri` specified in the `/link/token/create` call.
client_name:
type:
- string
- "null"
description: The `client_name` specified in the `/link/token/create` call.
description: An object specifying the arguments originally provided to the `/link/token/create` call.
PlaidLinkTokenGetRequest:
title: PlaidLinkTokenGetRequest
required:
- link_token
type: object
properties:
link_token:
type: string
description: A `link_token` from a previous invocation of `/link/token/create`
description: "`LinkTokenGetRequest` defines the request schema for `/link/token/get`"
PlaidLinkTokenGetResponse:
title: PlaidLinkTokenGetResponse
required:
- link_token
- created_at
- expiration
- metadata
- request_id
type: object
properties:
link_token:
type: string
description: "A `link_token`, which can be supplied to Link in order to initialize it and receive a `public_token`, which can be exchanged for an `access_token`."
created_at:
type:
- string
- "null"
description: "The creation timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."
contentEncoding: date-time
expiration:
type:
- string
- "null"
description: "The expiration timestamp for the `link_token`, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format."
contentEncoding: date-time
metadata:
$ref: "#/components/schemas/PlaidLinkTokenGetMetadataResponse"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: LinkTokenGetResponse defines the response schema for `/link/token/get`
PlaidLoanAccount:
title: PlaidLoanAccount
required:
- auto
- business
- commercial
- construction
- consumer
- home equity
- loan
- mortgage
- overdraft
- line of credit
- student
- other
type: object
properties:
auto:
type: string
description: Auto loan
business:
type: string
description: Business loan
commercial:
type: string
description: Commercial loan
construction:
type: string
description: Construction loan
consumer:
type: string
description: Consumer loan
home equity:
type: string
description: Home Equity Line of Credit (HELOC)
loan:
type: string
description: General loan
mortgage:
type: string
description: Mortgage loan
overdraft:
type: string
description: "Pre-approved overdraft account, usually tied to a checking account"
line of credit:
type: string
description: Pre-approved line of credit
student:
type: string
description: Student loan
other:
type: string
description: Other loan type or unknown loan type
description: "A loan type account. Supported products for `loan` accounts are: Balance, Liabilities, and Transactions."
PlaidLocation:
title: PlaidLocation
required:
- address
- city
- region
- postal_code
- country
- lat
- lon
- store_number
type: object
properties:
address:
type:
- string
- "null"
description: The street address where the transaction occurred.
city:
type:
- string
- "null"
description: The city where the transaction occurred.
region:
type:
- string
- "null"
description: "The region or state where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `state`."
postal_code:
type:
- string
- "null"
description: "The postal code where the transaction occurred. In API versions 2018-05-22 and earlier, this field is called `zip`."
country:
type:
- string
- "null"
description: The ISO 3166-1 alpha-2 country code where the transaction occurred.
lat:
type:
- number
- "null"
description: The latitude where the transaction occurred.
lon:
type:
- number
- "null"
description: The longitude where the transaction occurred.
store_number:
type:
- string
- "null"
description: The merchant defined store number where the transaction occurred.
description: A representation of where a transaction took place
PlaidMeta:
title: PlaidMeta
required:
- name
- official_name
- limit
type: object
properties:
name:
type: string
description: The account's name
official_name:
type: string
description: The account's official name
limit:
type: number
description: The account's limit
description: Allows specifying the metadata of the test account
PlaidNewAccountsAvailableWebhook:
title: PlaidNewAccountsAvailableWebhook
type: object
properties:
webhook_type:
type: string
description: "`ITEM`"
webhook_code:
type: string
description: "`NEW_ACCOUNTS_AVAILABLE`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
error:
$ref: "#/components/schemas/PlaidError"
description: "Fired when Plaid detects a new account for Items created or updated with [Account Select v2](https://plaid.com/docs/link/customization/#account-select). Upon receiving this webhook, you can prompt your users to share new accounts with you through [Account Select v2 update mode](https://plaid.com/docs/link/update-mode/#using-update-mode-to-request-new-accounts)."
PlaidNumbersACH:
title: PlaidNumbersACH
maxProperties: 4
minProperties: 4
required:
- account_id
- account
- routing
- wire_routing
type: object
properties:
account_id:
type: string
description: The Plaid account ID associated with the account numbers
account:
type: string
description: |-
The ACH account number for the account.
Note that when using OAuth with Chase Bank (`ins_56`), Chase will issue "tokenized" routing and account numbers, which are not the user's actual account and routing numbers. These tokenized numbers should work identically to normal account and routing numbers. The digits returned in the `mask` field will continue to reflect the actual account number, rather than the tokenized account number; for this reason, when displaying account numbers to the user to help them identify their account in your UI, always use the `mask` rather than truncating the `account` number. If a user revokes their permissions to your app, the tokenized numbers will continue to work for ACH deposits, but not withdrawals.
routing:
type: string
description: "The ACH routing number for the account. If the institution is `ins_56`, this may be a tokenized routing number. For more information, see the description of the `account` field."
wire_routing:
type:
- string
- "null"
description: "The wire transfer routing number for the account, if available"
description: Identifying information for transferring money to or from a US account via ACH or wire transfer.
PlaidOwner:
title: PlaidOwner
required:
- names
- phone_numbers
- emails
- addresses
type: object
properties:
names:
type: array
items:
type: string
description: |-
A list of names associated with the account by the financial institution. These should always be the names of individuals, even for business accounts. If the name of a business is reported, please contact Plaid Support. In the case of a joint account, Plaid will make a best effort to report the names of all account holders.
If an Item contains multiple accounts with different owner names, some institutions will report all names associated with the Item in each account's `names` array.
phone_numbers:
type: array
items:
$ref: "#/components/schemas/PlaidPhoneNumber"
description: A list of phone numbers associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
emails:
type: array
items:
$ref: "#/components/schemas/PlaidEmail"
description: A list of email addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
addresses:
type: array
items:
$ref: "#/components/schemas/PlaidAddress"
description: Data about the various addresses associated with the account by the financial institution. May be an empty array if no relevant information is returned from the financial institution.
description: Data returned from the financial institution about the owner or owners of an account. Only the `names` array must be non-empty.
PlaidPendingExpirationWebhook:
title: PlaidPendingExpirationWebhook
required:
- webhook_type
- webhook_code
- item_id
- consent_expiration_time
type: object
properties:
webhook_type:
type: string
description: "`ITEM`"
webhook_code:
type: string
description: "`PENDING_EXPIRATION`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
consent_expiration_time:
type: string
description: "The date and time at which the Item's access consent will expire, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format"
contentEncoding: date-time
description: Fired when an Item’s access consent is expiring in 7 days. Some Items have explicit expiration times and we try to relay this when possible to reduce service disruption. This can be resolved by having the user go through Link’s update mode.
PlaidPersonalFinanceCategory:
title: PlaidPersonalFinanceCategory
required:
- primary
- detailed
type: object
properties:
primary:
type: string
description: A high level category that communicates the broad category of the transaction.
detailed:
type: string
description: Provides additional granularity to the primary categorization.
description: |-
Information describing the intent of the transaction. Most relevant for personal finance use cases, but not limited to such use cases. The field is currently in beta.
The complete category can be generated by concatenating primary and detailed categories.
This feature is currently in beta – to request access, contact transactions-feedback@plaid.com.
PlaidPhoneNumber:
title: PlaidPhoneNumber
required:
- data
- primary
- type
type: object
properties:
data:
type: string
description: The phone number.
primary:
type: boolean
description: "When `true`, identifies the phone number as the primary number on an account."
type:
$ref: "#/components/schemas/Type"
description: A phone number
PlaidProcessorTokenCreateRequest:
title: PlaidProcessorTokenCreateRequest
required:
- access_token
- account_id
- processor
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
account_id:
type: string
description: The `account_id` value obtained from the `onSuccess` callback in Link
processor:
$ref: "#/components/schemas/Processor"
description: "`ProcessorTokenCreateRequest` defines the request schema for `/processor/token/create`"
PlaidProcessorTokenCreateResponse:
title: PlaidProcessorTokenCreateResponse
required:
- processor_token
- request_id
type: object
properties:
processor_token:
type: string
description: The `processor_token` that can then be used by the Plaid partner to make API requests
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: ProcessorTokenCreateResponse defines the response schema for `/processor/token/create` and `/processor/apex/processor_token/create`
PlaidProductAccess:
title: PlaidProductAccess
type: object
properties:
statements:
type:
- boolean
- "null"
description: "Allow access to statements. Only used by certain partners. If relevant to the partner and unset, defaults to `true`."
default: true
identity:
type:
- boolean
- "null"
description: "Allow access to the Identity product (name, email, phone, address). Only used by certain partners. If relevant to the partner and unset, defaults to `true`."
default: true
auth:
type:
- boolean
- "null"
description: "Allow access to account number details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`."
default: true
transactions:
type:
- boolean
- "null"
description: "Allow access to transaction details. Only used by certain partners. If relevant to the partner and unset, defaults to `true`."
default: true
description: "The product access being requested. Used to or disallow product access across all accounts. If unset, defaults to all products allowed."
PlaidProductStatus:
title: PlaidProductStatus
required:
- status
- last_status_change
- breakdown
type: object
properties:
status:
$ref: "#/components/schemas/Status1"
last_status_change:
type: string
description: "[ISO 8601](https://wikipedia.org/wiki/ISO_8601) formatted timestamp of the last status change for the institution."
contentEncoding: date-time
breakdown:
$ref: "#/components/schemas/PlaidStatusBreakdown"
description: "A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object."
PlaidStatusBreakdown:
title: PlaidStatusBreakdown
required:
- success
- error_plaid
- error_institution
type: object
properties:
success:
type: number
description: "The percentage of login attempts that are successful, expressed as a decimal."
error_plaid:
type: number
description: "The percentage of logins that are failing due to an internal Plaid issue, expressed as a decimal."
error_institution:
type: number
description: "The percentage of logins that are failing due to an issue in the institution's system, expressed as a decimal."
refresh_interval:
$ref: "#/components/schemas/RefreshInterval"
description: "A detailed breakdown of the institution's performance for a request type. The values for `success`, `error_plaid`, and `error_institution` sum to 1."
PlaidProducts:
title: PlaidProducts
enum:
- assets
- auth
- balance
- identity
- investments
- liabilities
- payment_initiation
- transactions
- credit_details
- income
- income_verification
- deposit_switch
- standing_orders
- transfer
- employment
type: string
description: A list of products that an institution can support. All Items must be initialized with at least one product. The Balance product is always available and does not need to be specified during initialization.
examples:
- transactions
PlaidRecaptcha_RequiredError:
title: PlaidRecaptcha_RequiredError
required:
- error_type
- error_code
- display_message
- http_code
- link_user_experience
- common_causes
- troubleshooting_steps
type: object
properties:
error_type:
type: string
description: RECAPTCHA_ERROR
error_code:
type: string
description: RECAPTCHA_REQUIRED
display_message:
type: string
http_code:
type: string
description: "400"
link_user_experience:
type: string
description: "Your user will be prompted to solve a Google reCAPTCHA challenge in the Link Recaptcha pane. If they solve the challenge successfully, the user's request is resubmitted and they are directed to the next Item creation step."
common_causes:
type: string
description: "Plaid's fraud system detects abusive traffic and considers a variety of parameters throughout Item creation requests. When a request is considered risky or possibly fraudulent, Link presents a reCAPTCHA for the user to solve."
troubleshooting_steps:
type: string
description: |-
Link will automatically guide your user through reCAPTCHA verification. As a general rule, we recommend instrumenting basic fraud monitoring to detect and protect your website from spam and abuse.
If your user cannot verify their session, please submit a Support ticket with the following identifiers: `link_session_id` or `request_id`
description: "The request was flagged by Plaid's fraud system, and requires additional verification to ensure they are not a bot."
PlaidRecurringTransactionFrequency:
title: PlaidRecurringTransactionFrequency
enum:
- UNKNOWN
- WEEKLY
- BIWEEKLY
- SEMI_MONTHLY
- MONTHLY
type: string
description: describes the frequency of the transaction stream.
examples:
- UNKNOWN
PlaidRemovedTransaction:
title: PlaidRemovedTransaction
type: object
properties:
transaction_id:
type: string
description: The ID of the removed transaction.
description: A representation of a removed transaction
PlaidSandboxProcessorTokenCreateRequest:
title: PlaidSandboxProcessorTokenCreateRequest
required:
- institution_id
type: object
properties:
institution_id:
type: string
description: The ID of the institution the Item will be associated with
description: "`SandboxProcessorTokenCreateRequest` defines the request schema for `/sandbox/processor_token/create`"
PlaidSandboxProcessorTokenCreateResponse:
title: PlaidSandboxProcessorTokenCreateResponse
required:
- processor_token
- request_id
type: object
properties:
processor_token:
type: string
description: A processor token that can be used to call the `/processor/` endpoints.
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: SandboxProcessorTokenCreateResponse defines the response schema for `/sandbox/processor_token/create`
PlaidSandboxPublicTokenCreateRequest:
title: PlaidSandboxPublicTokenCreateRequest
required:
- institution_id
- initial_products
type: object
properties:
institution_id:
type: string
description: The ID of the institution the Item will be associated with
initial_products:
minItems: 1
type: array
items:
$ref: "#/components/schemas/PlaidProducts"
description: The products to initially pull for the Item. May be any products that the specified `institution_id` supports. This array may not be empty.
description: "`SandboxPublicTokenCreateRequest` defines the request schema for `/sandbox/public_token/create`"
PlaidSandboxPublicTokenCreateResponse:
title: PlaidSandboxPublicTokenCreateResponse
required:
- public_token
- request_id
type: object
properties:
public_token:
type: string
description: A public token that can be exchanged for an access token using `/item/public_token/exchange`
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: SandboxPublicTokenCreateResponse defines the response schema for `/sandbox/public_token/create`
PlaidScopes:
title: PlaidScopes
type: object
properties:
product_access:
$ref: "#/components/schemas/PlaidProductAccess"
accounts:
type: array
items:
$ref: "#/components/schemas/PlaidAccountAccess"
description: ""
new_accounts:
type:
- boolean
- "null"
description: "Allow access to newly opened accounts as they are opened. If unset, defaults to `true`."
default: true
description: The scopes object
PlaidSignalAddressData:
title: PlaidSignalAddressData
type: object
properties:
city:
type: string
description: The full city name
region:
type:
- string
- "null"
description: |-
The region or state
Example: `"NC"`
street:
type: string
description: |-
The full street address
Example: `"564 Main Street, APT 15"`
postal_code:
type:
- string
- "null"
description: The postal code
country:
type:
- string
- "null"
description: The ISO 3166-1 alpha-2 country code
description: Data about the components comprising an address.
PlaidSignalDecisionReportRequest:
title: PlaidSignalDecisionReportRequest
required:
- client_transaction_id
- initiated
type: object
properties:
client_transaction_id:
maxLength: 36
minLength: 1
type: string
description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
initiated:
type: boolean
description: "`true` if the ACH transaction was initiated, `false` otherwise."
days_funds_on_hold:
minimum: 0
type:
- integer
- "null"
description: "The actual number of days (hold time) since the ACH debit transaction that you wait before making funds available to your customers. The holding time could affect the ACH return rate. For example, use 0 if you make funds available to your customers instantly or the same day following the debit transaction, or 1 if you make funds available the next day following the debit initialization."
contentEncoding: int32
description: "`SignalDecisionReportRequest` defines the request schema for `/signal/decision/report`"
PlaidSignalDecisionReportResponse:
title: PlaidSignalDecisionReportResponse
required:
- request_id
type: object
properties:
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: SignalDecisionReportResponse defines the response schema for `/signal/decision/report`
PlaidSignalEvaluateDevice:
title: PlaidSignalEvaluateDevice
type: object
properties:
ip_address:
type:
- string
- "null"
description: The IP address of the device that initiated the transaction
user_agent:
type:
- string
- "null"
description: The user agent of the device that initiated the transaction (e.g. "Mozilla/5.0")
description: Details about the end user's device
PlaidSignalEvaluateCoreAttributes:
title: PlaidSignalEvaluateCoreAttributes
type: object
properties:
unauthorized_transactions_count_7d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 7 days from the account that will be debited.
contentEncoding: int32
unauthorized_transactions_count_30d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 30 days from the account that will be debited.
contentEncoding: int32
unauthorized_transactions_count_60d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 60 days from the account that will be debited.
contentEncoding: int32
unauthorized_transactions_count_90d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to unauthorized transactions over the past 90 days from the account that will be debited.
contentEncoding: int32
nsf_overdraft_transactions_count_7d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 7 days from the account that will be debited.
contentEncoding: int32
nsf_overdraft_transactions_count_30d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 30 days from the account that will be debited.
contentEncoding: int32
nsf_overdraft_transactions_count_60d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 60 days from the account that will be debited.
contentEncoding: int32
nsf_overdraft_transactions_count_90d:
type: integer
description: We parse and analyze historical transaction metadata to identify the number of possible past returns due to non-sufficient funds/overdrafts over the past 90 days from the account that will be debited.
contentEncoding: int32
days_since_first_plaid_connection:
type:
- integer
- "null"
description: The number of days since the first time the Item was connected to an application via Plaid
contentEncoding: int32
plaid_connections_count_7d:
type:
- integer
- "null"
description: The number of times the Item has been connected to applications via Plaid over the past 7 days
contentEncoding: int32
plaid_connections_count_30d:
type:
- integer
- "null"
description: The number of times the Item has been connected to applications via Plaid over the past 30 days
contentEncoding: int32
total_plaid_connections_count:
type:
- integer
- "null"
description: The total number of times the Item has been connected to applications via Plaid
contentEncoding: int32
is_savings_or_money_market_account:
type: boolean
description: Indicates if the ACH transaction funding account is a savings/money market account
total_credit_transactions_amount_10d:
type: number
description: The total credit (inflow) transaction amount over the past 10 days from the account that will be debited
total_debit_transactions_amount_10d:
type: number
description: The total debit (outflow) transaction amount over the past 10 days from the account that will be debited
p50_credit_transactions_amount_28d:
type:
- number
- "null"
description: The 50th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
p50_debit_transactions_amount_28d:
type:
- number
- "null"
description: The 50th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
p95_credit_transactions_amount_28d:
type:
- number
- "null"
description: The 95th percentile of all credit (inflow) transaction amounts over the past 28 days from the account that will be debited
p95_debit_transactions_amount_28d:
type:
- number
- "null"
description: The 95th percentile of all debit (outflow) transaction amounts over the past 28 days from the account that will be debited
days_with_negative_balance_count_90d:
type:
- integer
- "null"
description: The number of days within the past 90 days when the account that will be debited had a negative end-of-day available balance
contentEncoding: int32
p90_eod_balance_30d:
type:
- number
- "null"
description: The 90th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
p90_eod_balance_60d:
type:
- number
- "null"
description: The 90th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
p90_eod_balance_90d:
type:
- number
- "null"
description: The 90th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
p10_eod_balance_30d:
type:
- number
- "null"
description: The 10th percentile of the end-of-day available balance over the past 30 days of the account that will be debited
p10_eod_balance_60d:
type:
- number
- "null"
description: The 10th percentile of the end-of-day available balance over the past 60 days of the account that will be debited
p10_eod_balance_90d:
type:
- number
- "null"
description: The 10th percentile of the end-of-day available balance over the past 90 days of the account that will be debited
available_balance:
type:
- number
- "null"
description: "Available balance, as of the `balance_last_updated` time. The available balance is the current balance less any outstanding holds or debits that have not yet posted to the account."
current_balance:
type:
- number
- "null"
description: "Current balance, as of the `balance_last_updated` time. The current balance is the total amount of funds in the account."
balance_last_updated:
type:
- string
- "null"
description: "Timestamp in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DDTHH:mm:ssZ) indicating the last time that the balance for the given account has been updated."
contentEncoding: date-time
phone_change_count_28d:
type:
- integer
- "null"
description: The number of times the account's phone numbers on file have changed over the past 28 days
contentEncoding: int32
phone_change_count_90d:
type:
- integer
- "null"
description: The number of times the account's phone numbers on file have changed over the past 90 days
contentEncoding: int32
email_change_count_28d:
type:
- integer
- "null"
description: The number of times the account's email addresses on file have changed over the past 28 days
contentEncoding: int32
email_change_count_90d:
type:
- integer
- "null"
description: The number of times the account's email addresses on file have changed over the past 90 days
contentEncoding: int32
address_change_count_28d:
type:
- integer
- "null"
description: The number of times the account's addresses on file have changed over the past 28 days
contentEncoding: int32
address_change_count_90d:
type:
- integer
- "null"
description: The number of times the account's addresses on file have changed over the past 90 days
contentEncoding: int32
description: |-
The core attributes object contains additional data that can be used to assess the ACH return risk. Examples of data include:
`days_since_first_plaid_connection`: The number of days since the first time the Item was connected to an application via Plaid
`plaid_connections_count_7d`: The number of times the Item has been connected to applications via Plaid over the past 7 days
`plaid_connections_count_30d`: The number of times the Item has been connected to applications via Plaid over the past 30 days
`total_plaid_connections_count`: The number of times the Item has been connected to applications via Plaid
`is_savings_or_money_market_account`: Indicates whether the ACH transaction funding account is a savings/money market account
For the full list and detailed documentation of core attributes available, or to request that core attributes not be returned, contact Sales or your Plaid account manager
PlaidSignalEvaluateRequest:
title: PlaidSignalEvaluateRequest
required:
- access_token
- account_id
- client_transaction_id
- amount
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
account_id:
type: string
description: The `account_id` of the account whose verification status is to be modified
client_transaction_id:
maxLength: 36
minLength: 1
type: string
description: "The unique ID that you would like to use to refer to this transaction. For your convenience mapping your internal data, you could use your internal ID/identifier for this transaction. The max length for this field is 36 characters."
amount:
type: number
description: "The transaction amount, in USD (e.g. `102.05`)"
user_present:
type:
- boolean
- "null"
description: "`true` if the end user is present while initiating the ACH transfer and the endpoint is being called; `false` otherwise (for example, when the ACH transfer is scheduled and the end user is not present, or you call this endpoint after the ACH transfer but before submitting the Nacha file for ACH processing)."
client_user_id:
maxLength: 36
type: string
description: A unique ID that identifies the end user in your system. This ID is used to correlate requests by a user with multiple Items. The max length for this field is 36 characters.
user:
$ref: "#/components/schemas/PlaidSignalUser"
device:
$ref: "#/components/schemas/PlaidSignalEvaluateDevice"
description: "`SignalEvaluateRequest` defines the request schema for `/signal/evaluate`"
PlaidSignalEvaluateResponse:
title: PlaidSignalEvaluateResponse
required:
- request_id
- scores
type: object
properties:
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
scores:
$ref: "#/components/schemas/PlaidSignalEvaluateScores"
core_attributes:
$ref: "#/components/schemas/PlaidSignalEvaluateCoreAttributes"
description: SignalEvaluateResponse defines the response schema for `/signal/income/evaluate`
PlaidSignalPersonName:
title: PlaidSignalPersonName
type: object
properties:
prefix:
type:
- string
- "null"
description: The user's name prefix (e.g. "Mr.")
given_name:
type:
- string
- "null"
description: "The user's given name. If the user has a one-word name, it should be provided in this field."
middle_name:
type:
- string
- "null"
description: The user's middle name
family_name:
type:
- string
- "null"
description: The user's family name / surname
suffix:
type:
- string
- "null"
description: The user's name suffix (e.g. "II")
description: The user's legal name
PlaidSignalReturnReportRequest:
title: PlaidSignalReturnReportRequest
required:
- client_transaction_id
- return_code
type: object
properties:
client_transaction_id:
maxLength: 36
minLength: 1
type: string
description: Must be the same as the `client_transaction_id` supplied when calling `/signal/evaluate`
return_code:
type: string
description: Must be a valid ACH return code (e.g. "R01")
description: "`SignalReturnReportRequest` defines the request schema for `/signal/return/report`"
PlaidSignalReturnReportResponse:
title: PlaidSignalReturnReportResponse
required:
- request_id
type: object
properties:
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: SignalReturnReportResponse defines the response schema for `/signal/return/report`
PlaidSignalEvaluateScores:
title: PlaidSignalEvaluateScores
type: object
properties:
customer_initiated_return_risk:
$ref: "#/components/schemas/PlaidCustomerInitiatedReturnRisk"
bank_initiated_return_risk:
$ref: "#/components/schemas/PlaidBankInitiatedReturnRisk"
description: Risk scoring details broken down by risk category.
PlaidSignalUser:
title: PlaidSignalUser
type: object
properties:
name:
$ref: "#/components/schemas/PlaidSignalPersonName"
phone_number:
type:
- string
- "null"
description: 'The user''s phone number, in E.164 format: +{countrycode}{number}. For example: "+14151234567"'
email_address:
type:
- string
- "null"
description: The user's email address.
address:
$ref: "#/components/schemas/PlaidSignalAddressData"
description: "Details about the end user initiating the transaction (i.e., the account holder)."
PlaidStandaloneAccountType:
title: PlaidStandaloneAccountType
required:
- depository
- credit
- loan
- other
type: object
properties:
depository:
$ref: "#/components/schemas/PlaidDepositoryAccount"
credit:
$ref: "#/components/schemas/PlaidCreditAccount"
loan:
$ref: "#/components/schemas/PlaidLoanAccount"
other:
type: string
description: "Other or unknown account type. Supported products for `other` accounts are: Balance, Transactions, Identity, and Assets."
description: The schema below describes the various `types` and corresponding `subtypes` that Plaid recognizes and reports for financial institution accounts.
PlaidStandaloneCurrencyCodeList:
title: PlaidStandaloneCurrencyCodeList
required:
- iso_currency_code
- unofficial_currency_code
type: object
properties:
iso_currency_code:
type: string
description: Plaid supports all ISO 4217 currency codes.
unofficial_currency_code:
$ref: "#/components/schemas/PlaidUnofficialCurrencyCodeList"
description: The following currency codes are supported by Plaid.
PlaidTransaction:
title: PlaidTransaction
required:
- pending_transaction_id
- category_id
- category
- location
- account_owner
- name
- account_id
- amount
- iso_currency_code
- unofficial_currency_code
- date
- pending
- transaction_id
- payment_channel
- authorized_date
- authorized_datetime
- datetime
- transaction_code
type: object
properties:
transaction_type:
$ref: "#/components/schemas/TransactionType"
pending_transaction_id:
type:
- string
- "null"
description: "The ID of a posted Plaid transaction's associated pending transaction, where applicable."
category_id:
type:
- string
- "null"
description: |-
The ID of the Plaid category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/#categoriesget).
If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
category:
type:
- array
- "null"
items:
type: string
description: |-
A hierarchical array of the Plaid categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/#categoriesget).
If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
location:
$ref: "#/components/schemas/PlaidLocation"
account_owner:
type:
- string
- "null"
description: The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
name:
type: string
description: |-
The merchant name or transaction description.
If the `transactions` object was returned by a Transactions endpoint such as `/transactions/get`, this field will always appear. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
original_description:
type:
- string
- "null"
description: "The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/get`, this field is in beta and will be omitted unless the client is both enrolled in the closed beta program and has set `options.include_original_description` to `true`."
account_id:
type: string
description: The ID of the account in which this transaction occurred.
amount:
type: number
description: "The settled value of the transaction, denominated in the account's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative."
iso_currency_code:
type:
- string
- "null"
description: The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
unofficial_currency_code:
type:
- string
- "null"
description: |-
The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
date:
type: string
description: "For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` )."
contentEncoding: date
pending:
type: boolean
description: "When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled."
transaction_id:
type: string
description: "The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."
merchant_name:
type:
- string
- "null"
description: "The merchant name, as extracted by Plaid from the `name` field."
check_number:
type:
- string
- "null"
description: The check number of the transaction. This field is only populated for check transactions.
payment_channel:
$ref: "#/components/schemas/PaymentChannel"
authorized_date:
type:
- string
- "null"
description: "The date that the transaction was authorized. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` ). The `authorized_date` field uses machine learning to determine a transaction date for transactions where the `date_transacted` is not available. If the `date_transacted` field is present and not `null`, the `authorized_date` field will have the same value as the `date_transacted` field."
contentEncoding: date
authorized_datetime:
type:
- string
- "null"
description: |-
Date and time when a transaction was authorized in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).
This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00).
contentEncoding: date-time
datetime:
type:
- string
- "null"
description: |-
Date and time when a transaction was posted in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DDTHH:mm:ssZ` ).
This field is returned for select financial institutions and comes as provided by the institution. It may contain default time values (such as 00:00:00).
contentEncoding: date-time
transaction_code:
$ref: "#/components/schemas/PlaidTransactionCode"
personal_finance_category:
$ref: "#/components/schemas/PersonalFinanceCategory"
description: A representation of a transaction
PlaidTransactionBase:
title: PlaidTransactionBase
required:
- account_id
- amount
- iso_currency_code
- unofficial_currency_code
- date
- pending
- transaction_id
type: object
properties:
transaction_type:
$ref: "#/components/schemas/TransactionType"
pending_transaction_id:
type:
- string
- "null"
description: "The ID of a posted Plaid transaction's associated pending transaction, where applicable."
category_id:
type:
- string
- "null"
description: |-
The ID of the Plaid category to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/#categoriesget).
If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
category:
type:
- array
- "null"
items:
type: string
description: |-
A hierarchical array of the Plaid categories to which this transaction belongs. For a full list of categories, see [`/categories/get`](https://plaid.com/docs/api/products/#categoriesget).
If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
location:
$ref: "#/components/schemas/PlaidLocation"
account_owner:
type:
- string
- "null"
description: The name of the account owner. This field is not typically populated and only relevant when dealing with sub-accounts.
name:
type: string
description: |-
The merchant name or transaction description.
If the `transactions` object was returned by a Transactions endpoint such as `/transactions/get`, this field will always appear. If the `transactions` object was returned by an Assets endpoint such as `/asset_report/get/` or `/asset_report/pdf/get`, this field will only appear in an Asset Report with Insights.
original_description:
type:
- string
- "null"
description: "The string returned by the financial institution to describe the transaction. For transactions returned by `/transactions/get`, this field is in beta and will be omitted unless the client is both enrolled in the closed beta program and has set `options.include_original_description` to `true`."
account_id:
type: string
description: The ID of the account in which this transaction occurred.
amount:
type: number
description: "The settled value of the transaction, denominated in the account's currency, as stated in `iso_currency_code` or `unofficial_currency_code`. Positive values when money moves out of the account; negative values when money moves in. For example, debit card purchases are positive; credit card payments, direct deposits, and refunds are negative."
iso_currency_code:
type:
- string
- "null"
description: The ISO-4217 currency code of the transaction. Always `null` if `unofficial_currency_code` is non-null.
unofficial_currency_code:
type:
- string
- "null"
description: |-
The unofficial currency code associated with the transaction. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries.
See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
date:
type: string
description: "For pending transactions, the date that the transaction occurred; for posted transactions, the date that the transaction posted. Both dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ( `YYYY-MM-DD` )."
contentEncoding: date
pending:
type: boolean
description: "When `true`, identifies the transaction as pending or unsettled. Pending transaction details (name, type, amount, category ID) may change before they are settled."
transaction_id:
type: string
description: "The unique ID of the transaction. Like all Plaid identifiers, the `transaction_id` is case sensitive."
merchant_name:
type:
- string
- "null"
description: "The merchant name, as extracted by Plaid from the `name` field."
check_number:
type:
- string
- "null"
description: The check number of the transaction. This field is only populated for check transactions.
description: A representation of a Plaid transaction
PlaidTransactionCode:
title: PlaidTransactionCode
enum:
- adjustment
- atm
- bank charge
- bill payment
- cash
- cashback
- cheque
- direct debit
- interest
- purchase
- standing order
- transfer
type: string
description: |-
An identifier classifying the transaction type.
This field is only populated for European institutions. For institutions in the US and Canada, this field is set to `null`.
`adjustment:` Bank adjustment
`atm:` Cash deposit or withdrawal via an automated teller machine
`bank charge:` Charge or fee levied by the institution
`bill payment`: Payment of a bill
`cash:` Cash deposit or withdrawal
`cashback:` Cash withdrawal while making a debit card purchase
`cheque:` Document ordering the payment of money to another person or organization
`direct debit:` Automatic withdrawal of funds initiated by a third party at a regular interval
`interest:` Interest earned or incurred
`purchase:` Purchase made with a debit or credit card
`standing order:` Payment instructed by the account holder to a third party at a regular interval
`transfer:` Transfer of money between accounts
examples:
- adjustment
PlaidTransactionData:
title: PlaidTransactionData
required:
- description
- amount
- date
- account_id
- transaction_id
type: object
properties:
description:
type: string
description: The description of the transaction.
amount:
type: number
description: The amount of the transaction.
date:
type: string
description: 'The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").'
contentEncoding: date
account_id:
type: string
description: A unique identifier for the end user's account.
transaction_id:
type: string
description: A unique identifier for the transaction.
description: Information about the matched direct deposit transaction used to verify a user's payroll information.
PlaidTransactionStream:
title: PlaidTransactionStream
required:
- account_id
- stream_id
- category_id
- category
- description
- first_date
- last_date
- frequency
- transaction_ids
- average_amount
- is_active
type: object
properties:
account_id:
type: string
description: The ID of the account to which the stream belongs
stream_id:
type: string
description: A unique id for the stream
category_id:
type: string
description: "The ID of the category to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview)."
category:
type: array
items:
type: string
description: "A hierarchical array of the categories to which this transaction belongs. See [Categories](https://plaid.com/docs/#category-overview)."
description:
type: string
description: A description of the transaction stream.
first_date:
type: string
description: The posted date of the earliest transaction in the stream.
contentEncoding: date
last_date:
type: string
description: The posted date of the latest transaction in the stream.
contentEncoding: date
frequency:
$ref: "#/components/schemas/PlaidRecurringTransactionFrequency"
transaction_ids:
type: array
items:
type: string
description: "An array of Plaid transaction IDs belonging to the stream, sorted by posted date."
average_amount:
$ref: "#/components/schemas/PlaidTransactionStreamAmount"
is_active:
type: boolean
description: indicates whether the transaction stream is still live.
description: A grouping of related transactions
PlaidTransactionStreamAmount:
title: PlaidTransactionStreamAmount
type: object
properties:
amount:
type: number
description: represents the numerical value of an amount.
iso_currency_code:
type:
- string
- "null"
description: |-
The ISO-4217 currency code of the amount. Always `null` if `unofficial_currency_code` is non-`null`.
See the [currency code schema](https://plaid.com/docs/api/accounts#currency-code-schema) for a full listing of supported `iso_currency_code`s.
unofficial_currency_code:
type:
- string
- "null"
description: "The unofficial currency code of the amount. Always `null` if `iso_currency_code` is non-`null`. Unofficial currency codes are used for currencies that do not have official ISO currency codes, such as cryptocurrencies and the currencies of certain countries."
description: Object with data pertaining to an amount on the transaction stream.
PlaidTransactionsGetRequest:
title: PlaidTransactionsGetRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: "`TransactionsGetRequest` defines the request schema for `/transactions/get`"
PlaidTransactionsGetResponse:
title: PlaidTransactionsGetResponse
required:
- accounts
- transactions
- total_transactions
- item
- request_id
type: object
properties:
accounts:
type: array
items:
$ref: "#/components/schemas/PlaidAccountBase"
description: An array containing the `accounts` associated with the Item for which transactions are being returned. Each transaction can be mapped to its corresponding account via the `account_id` field.
transactions:
type: array
items:
$ref: "#/components/schemas/PlaidTransaction"
description: "An array containing transactions from the account. Transactions are returned in reverse chronological order, with the most recent at the beginning of the array. The maximum number of transactions returned is determined by the `count` parameter."
total_transactions:
type: integer
description: "The total number of transactions available within the date range specified. If `total_transactions` is larger than the size of the `transactions` array, more transactions are available and can be fetched via manipulating the `offset` parameter."
contentEncoding: int32
item:
$ref: "#/components/schemas/PlaidItem"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: TransactionsGetResponse defines the response schema for `/transactions/get`
PlaidTransactionsRecurringGetRequest:
title: PlaidTransactionsRecurringGetRequest
required:
- access_token
- account_ids
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
account_ids:
type: array
items:
type: string
description: |-
A list of `account_ids` to retrieve for the Item
Note: An error will be returned if a provided `account_id` is not associated with the Item.
description: "`TransactionsRecurringGetRequest` defines the request schema for `/transactions/recurring/get`"
PlaidTransactionsRecurringGetResponse:
title: PlaidTransactionsRecurringGetResponse
required:
- inflow_streams
- outflow_streams
- request_id
type: object
properties:
inflow_streams:
type: array
items:
$ref: "#/components/schemas/PlaidTransactionStream"
description: An array of depository transaction streams.
outflow_streams:
type: array
items:
$ref: "#/components/schemas/PlaidTransactionStream"
description: An array of expense transaction streams.
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: TransactionsRecurringGetResponse defines the response schema for `/transactions/recurring/get`
PlaidTransactionsRefreshRequest:
title: PlaidTransactionsRefreshRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
description: "`TransactionsRefreshRequest` defines the request schema for `/transactions/refresh`"
PlaidTransactionsRefreshResponse:
title: PlaidTransactionsRefreshResponse
required:
- request_id
type: object
properties:
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: TransactionsRefreshResponse defines the response schema for `/transactions/refresh`
PlaidTransactionsRemovedWebhook:
title: PlaidTransactionsRemovedWebhook
required:
- webhook_type
- webhook_code
- removed_transactions
- item_id
type: object
properties:
webhook_type:
type: string
description: "`TRANSACTIONS`"
webhook_code:
type: string
description: "`TRANSACTIONS_REMOVED`"
error:
$ref: "#/components/schemas/PlaidError"
removed_transactions:
type: array
items:
type: string
description: An array of `transaction_ids` corresponding to the removed transactions
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
description: Fired when transaction(s) for an Item are deleted. The deleted transaction IDs are included in the webhook payload. Plaid will typically check for deleted transaction data several times a day.
PlaidTransactionsSyncRequest:
title: PlaidTransactionsSyncRequest
required:
- access_token
type: object
properties:
access_token:
maxLength: 55
minLength: 51
pattern: "^access-(sandbox|development|production)-.{8}-.{4}-.{4}-.{4}-.{12}$"
type:
- string
- "null"
description: The access token associated with the Item data is being requested for.
examples:
- access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
cursor:
type: string
description: |-
The cursor value represents the last update requested. Providing it will cause the response to only return changes after this update.
If omitted, the entire history of updates will be returned, starting with the first-added transactions on the item.
Note: The upper-bound length of this cursor is 256 characters of base64.
count:
maximum: 500
minimum: 1
type: integer
description: The number of transaction updates to fetch.
contentEncoding: int32
default: 100
description: "`TransactionsSyncRequest` defines the request schema for `/transactions/sync`"
PlaidTransactionsSyncResponse:
title: PlaidTransactionsSyncResponse
required:
- added
- modified
- removed
- next_cursor
- has_more
- request_id
type: object
properties:
added:
type: array
items:
$ref: "#/components/schemas/PlaidTransaction"
description: Transactions that have been added to the item since `cursor` ordered by ascending last modified time.
modified:
type: array
items:
$ref: "#/components/schemas/PlaidTransaction"
description: Transactions that have been modified on the item since `cursor` ordered by ascending last modified time.
removed:
type: array
items:
$ref: "#/components/schemas/PlaidRemovedTransaction"
description: Transactions that have been removed from the item since `cursor` ordered by ascending last modified time.
next_cursor:
type: string
description: Cursor used for fetching any future updates after the latest update provided in this response.
has_more:
type: boolean
description: "Represents if more than requested count of transaction updates exist. If true, the additional updates can be fetched by making an additional request with `cursor` set to `next_cursor`."
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: TransactionsSyncResponse defines the response schema for `/transactions/sync`
PlaidUnofficialCurrencyCodeList:
title: PlaidUnofficialCurrencyCodeList
required:
- ADA
- BAT
- BCH
- BNB
- BTC
- BTG
- CNH
- DASH
- DOGE
- ETC
- ETH
- GBX
- LSK
- NEO
- OMG
- QTUM
- USDT
- XLM
- XMR
- XRP
- ZEC
- ZRX
type: object
properties:
ADA:
type: string
description: Cardano
BAT:
type: string
description: Basic Attention Token
BCH:
type: string
description: Bitcoin Cash
BNB:
type: string
description: Binance Coin
BTC:
type: string
description: Bitcoin
BTG:
type: string
description: Bitcoin Gold
BSV:
type: string
description: Bitcoin Satoshi Vision
CNH:
type: string
description: Chinese Yuan (offshore)
DASH:
type: string
description: Dash
DOGE:
type: string
description: Dogecoin
ETC:
type: string
description: Ethereum Classic
ETH:
type: string
description: Ethereum
GBX:
type: string
description: "Pence sterling, i.e. British penny"
LSK:
type: string
description: Lisk
NEO:
type: string
description: Neo
OMG:
type: string
description: OmiseGO
QTUM:
type: string
description: Qtum
USDT:
type: string
description: TehterUS
XLM:
type: string
description: Stellar Lumen
XMR:
type: string
description: Monero
XRP:
type: string
description: Ripple
ZEC:
type: string
description: Zcash
ZRX:
type: string
description: 0x
description: List of unofficial currency codes
PlaidUserPermissionRevokedWebhook:
title: PlaidUserPermissionRevokedWebhook
required:
- webhook_type
- webhook_code
- item_id
type: object
properties:
webhook_type:
type: string
description: "`ITEM`"
webhook_code:
type: string
description: "`USER_PERMISSION_REVOKED`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
error:
$ref: "#/components/schemas/PlaidError"
description: "The `USER_PERMISSION_REVOKED` webhook is fired to when an end user has used the [my.plaid.com portal](https://my.plaid.com) to revoke the permission that they previously granted to access an Item. Once access to an Item has been revoked, it cannot be restored. If the user subsequently returns to your application, a new Item must be created for the user."
PlaidVerificationAttribute:
title: PlaidVerificationAttribute
required:
- type
type: object
properties:
type:
$ref: "#/components/schemas/VerificationAttributeType"
description: Details about a certain reason as to why a document could potentially be fraudulent
PlaidVerificationExpiredWebhook:
title: PlaidVerificationExpiredWebhook
required:
- webhook_type
- webhook_code
- item_id
- account_id
type: object
properties:
webhook_type:
type: string
description: "`AUTH`"
webhook_code:
type: string
description: "`VERIFICATION_EXPIRED`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
account_id:
type: string
description: The `account_id` of the account associated with the webhook
description: Fired when an Item was not verified via automated micro-deposits after seven days since the automated micro-deposit was made.
PlaidVerificationRefreshStatus:
title: PlaidVerificationRefreshStatus
enum:
- VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED
- VERIFICATION_REFRESH_SUCCESSFUL
- VERIFICATION_REFRESH_NOT_FOUND
type: string
description: |-
The verification refresh status. One of the following:
`"VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED"` User presence is required to refresh an income verification.
`"VERIFICATION_REFRESH_SUCCESSFUL"` The income verification refresh was successful.
`"VERIFICATION_REFRESH_NOT_FOUND"` No new data was found after the income verification refresh.
examples:
- VERIFICATION_REFRESH_STATUS_USER_PRESENCE_REQUIRED
PlaidWarning:
title: PlaidWarning
required:
- warning_type
- warning_code
- cause
type: object
properties:
warning_type:
type: string
description: "The warning type, which will always be `ASSET_REPORT_WARNING`"
warning_code:
const: OWNERS_UNAVAILABLE
type: string
description: "The warning code identifies a specific kind of warning. Currently, the only possible warning code is `OWNERS_UNAVAILABLE`, which indicates that account-owner information is not available."
examples:
- OWNERS_UNAVAILABLE
cause:
$ref: "#/components/schemas/PlaidCause"
description: "It is possible for an Asset Report to be returned with missing account owner information. In such cases, the Asset Report will contain warning data in the response, indicating why obtaining the owner information failed."
PlaidWebhookUpdateAcknowledgedWebhook:
title: PlaidWebhookUpdateAcknowledgedWebhook
required:
- webhook_type
- webhook_code
- item_id
- new_webhook_url
type: object
properties:
webhook_type:
type: string
description: "`ITEM`"
webhook_code:
type: string
description: "`WEBHOOK_UPDATE_ACKNOWLEDGED`"
item_id:
type: string
description: "The `item_id` of the Item associated with this webhook, warning, or error"
new_webhook_url:
type: string
description: The new webhook URL
error:
$ref: "#/components/schemas/PlaidError"
description: Fired when an Item's webhook is updated. This will be sent to the newly specified webhook.
PlaidWebhookVerificationKeyGetRequest:
title: PlaidWebhookVerificationKeyGetRequest
required:
- key_id
type: object
properties:
key_id:
type: string
description: The key ID ( `kid` ) from the JWT header.
description: "`WebhookVerificationKeyGetRequest` defines the request schema for `/webhook_verification_key/get`"
PlaidWebhookVerificationKeyGetResponse:
title: PlaidWebhookVerificationKeyGetResponse
required:
- key
- request_id
type: object
properties:
key:
$ref: "#/components/schemas/PlaidJWKPublicKey"
request_id:
type: string
description: "A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive."
description: WebhookVerificationKeyGetResponse defines the response schema for `/webhook_verification_key/get`
ErrorType:
title: ErrorType
enum:
- INVALID_REQUEST
- INVALID_RESULT
- INVALID_INPUT
- INSTITUTION_ERROR
- RATE_LIMIT_EXCEEDED
- API_ERROR
- ITEM_ERROR
- ASSET_REPORT_ERROR
- RECAPTCHA_ERROR
- OAUTH_ERROR
- PAYMENT_ERROR
- BANK_TRANSFER_ERROR
- INCOME_VERIFICATION_ERROR
type: string
description: A broad categorization of the error. Safe for programmatic use.
examples:
- INVALID_REQUEST
PaymentChannel:
title: PaymentChannel
enum:
- online
- in store
- other
type: string
description: |-
The channel used to make a payment.
`online:` transactions that took place online.
`in store:` transactions that were made at a physical location.
`other:` transactions that relate to banks, e.g. fees or deposits.
This field replaces the `transaction_type` field.
examples:
- online
PersonalFinanceCategory:
title: PersonalFinanceCategory
required:
- primary
- detailed
type: object
properties:
primary:
type: string
description: A high level category that communicates the broad category of the transaction.
detailed:
type: string
description: Provides additional granularity to the primary categorization.
Processor:
title: Processor
enum:
- achq
- alpaca
- astra
- check
- checkbook
- circle
- drivewealth
- dwolla
- galileo
- lithic
- modern_treasury
- moov
- ocrolus
- prime_trust
- rize
- sila_money
- svb_api
- treasury_prime
- unit
- vesta
- vopay
- wyre
type: string
description: The processor you are integrating with.
examples:
- sila_money
RefreshInterval:
title: RefreshInterval
enum:
- NORMAL
- DELAYED
- STOPPED
type: string
description: The `refresh_interval` may be `DELAYED` or `STOPPED` even when the success rate is high. This value is only returned for Transactions status breakdowns.
examples:
- NORMAL
Status:
title: Status
enum:
- INVESTIGATING
- IDENTIFIED
- SCHEDULED
- RESOLVED
- UNKNOWN
type: string
description: The status of the incident.
examples:
- INVESTIGATING
Status1:
title: Status1
enum:
- HEALTHY
- DEGRADED
- DOWN
type: string
description: |-
This field is deprecated in favor of the `breakdown` object, which provides more granular institution health data.
`HEALTHY`: the majority of requests are successful
`DEGRADED`: only some requests are successful
`DOWN`: all requests are failing
examples:
- HEALTHY
deprecated: true
TransactionType:
title: TransactionType
enum:
- digital
- place
- special
- unresolved
type: string
description: |-
Please use the `payment_channel` field, `transaction_type` will be deprecated in the future.
`digital:` transactions that took place online.
`place:` transactions that were made at a physical location.
`special:` transactions that relate to banks, e.g. fees or deposits.
`unresolved:` transactions that do not fit into the other three types.
examples:
- digital
deprecated: true
Type:
title: Type
enum:
- home
- work
- office
- mobile
- mobile1
- other
type: string
description: The type of phone number.
examples:
- home
Type1:
title: Type1
enum:
- primary
- secondary
- other
type: string
description: The type of email account as described by the financial institution.
examples:
- primary
UpdateType:
title: UpdateType
enum:
- background
- user_present_required
type: string
description: |-
Indicates whether an Item requires user interaction to be updated, which can be the case for Items with some forms of two-factor authentication.
`background` - Item can be updated in the background
`user_present_required` - Item requires user interaction to be updated
examples:
- background
VerificationAttributeType:
title: VerificationAttributeType
enum:
- VERIFICATION_ATTRIBUTE_TYPE_UNKNOWN
- VERIFICATION_ATTRIBUTE_TYPE_AMOUNT_MATCH
- VERIFICATION_ATTRIBUTE_TYPE_DATE_MATCH
- VERIFICATION_ATTRIBUTE_TYPE_DATE_MISMATCH
- VERIFICATION_ATTRIBUTE_TYPE_FILE_TAMPERING
- VERIFICATION_ATTRIBUTE_TYPE_DESCRIPTION_MATCH
- VERIFICATION_ATTRIBUTE_TYPE_DESCRIPTION_MISMATCH
- VERIFICATION_ATTRIBUTE_TYPE_FIRST_NAME_MATCH
- VERIFICATION_ATTRIBUTE_TYPE_FIRST_NAME_MISMATCH
- VERIFICATION_ATTRIBUTE_TYPE_LAST_NAME_MATCH
- VERIFICATION_ATTRIBUTE_TYPE_LAST_NAME_MISMATCH
type: string
description: Message indicating the reason as to why the verification failed
examples:
- VERIFICATION_ATTRIBUTE_TYPE_UNKNOWN
VerificationStatus:
title: VerificationStatus
enum:
- automatically_verified
- pending_automatic_verification
- pending_manual_verification
- manually_verified
- verification_expired
- verification_failed
type: string
description: "The current verification status of an Auth Item initiated through Automated or Manual micro-deposits. Returned for Auth Items only.\n\n`pending_automatic_verification`: The Item is pending automatic verification\n\n`pending_manual_verification`: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the two amounts.\n\n`automatically_verified`: The Item has successfully been automatically verified\t\n\n`manually_verified`: The Item has successfully been manually verified\n\n`verification_expired`: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.\n\n`verification_failed`: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link."
examples:
- automatically_verified
securitySchemes:
gamefiSecret:
type: apiKey
description: "Based on the `gamefi_secret` used the GameFi Plaid API will automatically route to the correct Plaid stage URL (e.g. production.plaid.com, development.plaid.com, sandbox.plaid.com)"
name: GameFi-Secret
in: header
security:
- gamefiSecret: []
tags:
- name: item
description: Retrieving and deleting Items
- name: institutions
description: Fetching data about Plaid supported institutions
- name: account
description: Retrieving account information and seeing all possible Plaid account types and subtypes
- name: token
description: Obtaining and managing tokens from Plaid Link
- name: processor
description: Endpoints for use with or by Plaid partners
- name: sandbox
description: Sandbox-specific Plaid endpoints for testing
- name: transactions
description: Retrieve up to 24 months of Plaid transaction data
- name: auth
description: Retrieve and verify Plaid bank account information
- name: balance
description: Retrieve real-time balance information from Plaid
- name: identity
description: Verify users' identities and reduce fraud with the Plaid Identity product
- name: signal
description: Assess and mitigate fraud and transfer risks using the Plaid Signal product
- name: webhook
description: Plaid webhook endpoints for event-driven updates and logging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment