Plaid changelog
Track changes to the Plaid API and products
This changelog tracks updates to the Plaid API, Plaid Link, and major changes to the Plaid Dashboard, SDKs, functionality, and libraries. The changelog is updated at least once per month. Updates released in the current month may not be reflected. Updates that affect only opt-in feature betas may not be reflected.
Link SDKs are released on a monthly cadence. For a complete record of Link SDK changes, including minor and patch fixes not tracked here, see the GitHub changelog: iOS, Android, React Native.
Plaid's officially supported libraries are updated with minor changes on a regular cadence to keep up to date with API changes. For details, see the GitHub changelog: Python, Node, Ruby, Java, Go.
March 2022
- Introduced the Institution Select shortcut, which enables you to highlight a matching institution on the Institution Select pane.
- Added
institution_data
request field to/link/token/create
endpoint, which acceptsrouting_number
. - Added
match_reason
to metadata field forMATCHED_SELECT_INSTITUTION
, which indicates whetherrouting_number
orreturning_user
resulted in a matched institution. - Added support for
AUTH_UPDATE
andDEFAULT_UPDATE
webhooks to/sandbox/item/fire_webhook
. Also addedwebhook_type
parameter to this endpoint to support differentDEFAULT_UPDATE
webhooks for Transactions, Liabilities, and Investments.
For Income:
- New set of API endpoints added and numerous updates made for General Availability release. Existing beta endpoints are still supported but marked as deprecated. For more details, see the Income docs and Income API reference.
For Auth:
- Added Apex Clearing, Checkout.com, Marqeta, and Solid as processor partners.
For Payment Initation:
- Added support for the
IT
country code. - Added support for searching by
consent_id
to/institutions/search
.
For Bank Transfer (beta):
- Added
wire_routing_number
parameter to/bank_transfer/migrate_account
.
For Transfer (beta):
- Removed
permitted
decision for/transfer/authorization/create
. - Added
/sandbox/transfer/fire_webhook
endpoint.
February 2022
- For Transactions, released new personal finance categories to provide more intuitive and usable transaction categorization. Personal finance categories can now be accessed by calling
/transactions/get
with theinclude_personal_finance_category
option enabled. - For Income, removed several unused fields and endpoints, including removing
income_verification_id
from/sandbox/income/fire_webhook
and removing the/income/verification/summary/get
and/income/verification/paystub/get
endpoints.
For Transfer (beta):
- Deprecated the
idempotency_key
parameter, as idempotency is now tracked via other identifiers. - Made
repayment_id
a required parameter for/transfer/repayment/return/list
. - Made guaranteed fields required in Transfer endpoints.
January 2022
- Added the ability to test the
NEW_ACCOUNTS_AVAILABLE
webhook via/sandbox/item/fire_webhook
. - Updated
/item/webhook/update
to accept empty ornull
webhook URLs. - Updated institutions endpoints to accept null values as input for optional input fields.
For Transfer (beta):
- Added publicly documented sweep endpoints to provide visibility into the status of Transfer sweeps.
- Added
iso_currency_code
throughout the API to future-proof for multi-currency support (currently only USD is supported). - Made
repayment_id
required in/transfer/repayment/return/list
endpoint
For Bank Transfer (beta):
- Removed
receiver_pending
andreceiver_posted
from bank transfer event types, and removed receiver details from events.
For Payment Initiation:
- Added payment scheme support for EU payments.
- Removed
scheme_automatic_downgrade
from/payment_initiation/payment/create
. - Updated webhooks to use new statuses.
For Income:
- Added
DOCUMENT_TYPE_NONE
value for document type. - Made employer address fields no longer required in
/income/verification/precheck
.
December 2021
- For Transfer, updated the schema definitions for
/transfer/intent/get
and/transfer/intent/create
. - For Income, deprecated the status
VERIFICATION_STATUS_DOCUMENT_REJECTED
. - For Payment Initiation, added several new statuses, including
PAYMENT_STATUS_REJECTED
.
November 2021
- For Payment Initiation, added the new status
PAYMENT_STATUS_EXECUTED
and renamedemi_account_id
towallet_id
. - For
/asset_report/get
, added the fieldsmerchant_name
andcheck_number
to the Transactions schema, to match the Transactions schema already being used by the Transactions API. - For Income, added the new status
VERIFICATION_STATUS_PENDING_APPROVAL
.
October 2021
Multiple changes to the Income API:
- Added the ability to verify submitted paystubs against a user's transaction history by adding the
income_verification.access_tokens
parameter to/link/token/create
and updating/income/verification/paystubs/get
to return the income verification status for each paystub. - Added a
precheck_id
field to/income/verification/create
and anincome_verification.precheck_id
field to/link/token/create
to fully support use of the/income/verification/precheck
endpoint to check whether a given user is supportable by the Income product. - Extensive changes to the paystub schema returned by
/income/verification/paystubs/get
, including adding new fields and deprecating old ones. For details, contact your Plaid Account Manager. - Officially deprecated the
income_verification_id
in favor of the Link token-based income verification flow. - Added an
item_id
field to theincome_verification
webhook and corresponding/sandbox/income/fire_webhook
endpoint. - Added
employer.url
andemployer.address
fields to the/income/verification/precheck
endpoint. - Added a
doc_id
field to/income/verification/taxforms/get
.
Other changes:
- For institutions endpoints, marked the
status
enum as deprecated in favor of the more detailedbreakdown
object. - Added
DE
as a supported country to support Payment Initiation use cases.
September 2021
- Released Account Select v2, including the new
NEW_ACCOUNTS_AVAILABLE
webhook, for improved end-user sharing controls. All implementations must migrate to Account Select v2 by March 2022. - Added the ability to check which types of Auth coverage an institution supports via a new
auth_metadata
object now available from Institutions endpoints - Added the
/income/verification/precheck
endpoint to check whether a given user is supportable by the Income product. - Added
initiated_refunds
field to/payment_initiation/payment/get
and/payment_initiation/payment/list
to show refunds associated with payments. - Added fields
include_personal_finance_category_beta
andpersonal_finance_category_beta
to Transactions endpoints as part of a beta for new Transactions categorizations. To request beta access, contact transactions-feedback@plaid.com - Removed some fields (
direction
,custom_tag
,iso_currency_code
,receiver_details
) and receiver event types from Bank Transfer (beta) endpoints and madeach_class
a required field. - Added support for the currency type Bitcoin SV.
August 2021
- Released UX improvements to Link.
- Launched Plaid OpenAPI schema and new, auto-generated client libraries for Python, Node, Java, Ruby, and Go to General Availability.
- Added the ability to use custom Sandbox data with the Investments product.
- For
/transactions/get
, added thecheck_number
field. - Updated the list of ACH partners, adding Treasury Prime.
- For
/processor/balance/get
, addedmin_last_updated_datetime
option to request. - Multiple schema and endpoint updates for the Bank Transfers (beta) and Income (beta) products. Beta participants can receive details on updates from their account managers.
July 2021
- Added new webhook for Deposit Switch.
- Added optional
country_code
andoptions
parameters to/deposit_switch/create
and/deposit_switch/alt/create
, as well as new values for thestate
enum in the response. - For
/deposit_switch/get
, added additional response fieldsemployer_name
,employer_id
,institution_name
,institution_id
, andswitch_method
. - Updated the list of ACH partners, including adding Alpaca, Astra, and Moov.
- For
/transactions/get
, added the fieldsinclude_original_description
andoriginal_description
in the request and response, respectively.
June 2021
- Chase now supports real-time payments and same-day ACH for OAuth-based connections.
- Added new Investment account subtypes
life insurance
,other annuity
, andother insurance
. - Added new error codes
INSTITUTION_NOT_ENABLED_IN_ENVIRONMENT
,INSTITUTION_NOT_FOUND
, andPRODUCT_NOT_ENABLED
. These codes replace more generic errors that could appear when working with OAuth institutions or API-based institution connections. - Began rolling out improvements to reduce balance latency.
- Released a new representation of cryptocurrency, to represent crypto holdings more similarly to investments, rather than foreign currency, in order to match how most popular institutions represent crypto.
institution_price
will now reflect the USD price of the currency, as reported by the institution, andinstitution_value
will reflect the value of the holding in USD.close_price
andclose_price_as_of
will now be populated.iso_currency_code
will be set toUSD
andunofficial_currency_code
will be set tonull
.
May 2021
- Improved the UI for Instant Match and enabled it for all "Pay as you go" customers. Customers with a monthly contract who would like to use Instant Match should contact their Plaid Account Manager.
- Removed the requirement to be enabled by Support in order to request an Asset Report with Insights.
- For the Payment Initiation product, launched Modular Link, allowing further UI customization.
- For the Payment Initiation product, added an
options
object to/payment_initiation/payment/create
to support restricting payments originating from specific accounts. - For the Liabilities product, added a
DEFAULT_UPDATE
webhook to indicate changes to liabilities accounts. - Made Item Debugger and improved Institution Status available to 100% of developers.
- Added Link Consent pane customization.
- Added the ability to use wildcards to specify a subdomain in an OAuth redirect URI.
- Clarified that the following Link onEvent callbacks are stable:
OPEN
,EXIT
,HANDOFF
,SELECT_INSTITUTION
,ERROR
, but the remaining are informational.
April 2021
- In order to support the beta generated client libraries, added the ability to provide
client_id
andsecret
via headers instead of as request parameters. - Added the
min_last_updated_datetime
parameter to/accounts/balance/get
to handle institutions that do not always provide real-time balances, and added the correspondingLAST_UPDATED_DATETIME_OUT_OF_RANGE
error. - Removed
last_statement_balance
from the official documentation for/liabilities/get
, as it was not ever returned. - Fixed the case of submitting an invalid client ID to return an
INVALID_API_KEYS
error instead of anINTERNAL_SERVER_ERROR
, in order to match documented behavior.
March 2021
- Launched Plaid Income (beta) for verifying income and employment.
- Added the ability to specify an
end_date
for standing orders in the Payment Initiation product. - Updated list of active processor partners.
- Added webhook to notify of new Bank Transfers events.
- Added
/sandbox/bank_transfer/fire_webhook
endpoint to test Bank Transfers webhooks. - Added
auth_flow
parameter to/link/token/create
to support Flexible Auth (beta). - Updated the
/payment_initiation/recipient/create
endpoint to acceptaddress.country_code
(preferred) instead ofaddress.country
(accepted, but deprecated). - Removed the
MATCHED_INSTITUTION_SELECT
transition view event, after consolidating the returning user institution select view. - Added the
SELECT_BRAND
onEvent callback, after shipping a change that groups institution login portals within the same institution brand. - Stopped sending
IS_MATCHED_USER
andIS_MATCHED_USER_UI
because these events are duplicates. You should useMATCHED_CONSENT
andMATCHED_SELECT_INSTITUTION
to identify when a returning user is recognized and chooses an institution that we pre-matched.
February 2021
- Added additional payment error codes.
- Added the UK-only fields
authorized_datetime
anddatetime
fields to thetransaction
object, for more detailed information on when the transaction occurred. - Added
update_type
field to theitem
object. This field will be used to support upcoming connectivity improvements to accounts with multi-factor authentication. - Added optional
ssn
anddate_of_birth
fields to theuser
object in/link/token/create
to support upcoming functionality enhancements. - Released an OpenAPI file describing the Plaid API.
January 2021
- Launched Deposit Switch (beta) for transferring direct deposits from one account to another.
- Improved error handling to treat some invalid input errors that were previously treated as 500 errors as
INVALID_INPUT
errors instead.
December 2020
- Made Bank Transfers (beta) available for testing in the Development environment.
- Added
investments_updates
to thestatus
object returned by Institutions endpoints.
November 2020
- Removed some internal-only, pre-beta products from appearing in the
/institutions/get_by_id
response. - Restored the
/item/public_token/create
and/payment_initiation/payment/token/create
endpoints to API version 2020-09-14 to avoid disrupting update mode for end users on older mobile SDKs that do not support Link tokens. These endpoints are still deprecated, and it is recommended you update mobile apps to the latest SDKs as soon as possible.
October 2020
- Released API version 2020-09-14. See the version changelog for details.
- Added support for mortgages to
/liabilities/get
. - Released Bank Transfers to closed beta.
- To improve consistency with other error types, changed the error type for Bank Transfers errors from
BANK_TRANSFER
toBANK_TRANSFER_ERROR
. - Added the fields
user.phone_number
,user_email.address
,user.phone_number_verified_time
anduser.email_address_verified_time
to/link/token/create
to support the new Returning User Experience, which allows users a more seamless Link flow.
August 2020
- Introduced standing orders to Payment Initiation for our UK and Europe customers. If applicable, your users will now be able to make recurring scheduled payments with a single authorization.
- Expanded access to full Auth coverage to more developers. If you would like to use micro-deposit based verification and don't have access to it, contact your Plaid Account Manager.
- Updated Link error messages to provide more actionable instructions for end users, making resolution troubleshooting easier.
- Made account filtering available across all our products, so you can configure the Link flow to guide end users in selecting relevant institutions and accounts.
July 2020
Added the ITEM: USER_PERMISSION_REVOKED webhook, which will notify you when a user contacts Plaid directly to delete their data or change their data sharing preferences with your app.
Released Link tokens, the new preferred way to use Link, replacing the public key. To learn how to migrate your application to use Link tokens, see the Link token migration guide.
June 2020
- Added a new
merchant_name
field to the/transactions/get
endpoint for the US and Canada, providing clearer and more consistent merchant names for 95% of existing transactions. - Added the PAYMENT_INITIATION:PAYMENT_STATUS_UPDATE webhook, which pushes instant notifications when payment status changes for the UK Payment Initiation product.
- Added the ability to create payment recipients via sort codes and account numbers, not just IBANs.
May 2020
- We launched a new open finance platform called Plaid Exchange that enables financial institutions to build a consumer-permissioned data access strategy and strengthen the ability of end users to reliably access their financial data.
April 2020
- Launched Payment Initiation in the UK, which offers an easy way for users to fund their accounts, make purchases, and pay invoices—all from their favorite apps or websites.
March 2020
- Added the ability to filter by
account_subtype
, allowing you to further optimize the Link flow. - Added the
HOLDINGS: DEFAULT_UPDATE
andINVESTMENT_TRANSACTIONS: DEFAULT_UPDATE
webhooks, which will fire each time data has successfully refreshed for Holdings and Investments Transactions.
February 2020
- Added
/transactions/refresh
, which enables you to pull a user’s transactions on demand. - Added
/webhook_verification_key/get
, which allows you to verify the authenticity of incoming webhooks.
January 2020
- Added
store_number
,authorized_date
, andpayment_channel
to the/transactions/get
response. - Added the
investment_transactions.subtypes
field to provide more granular detail about the tax, performance, and fee impact of investments transactions.
November 2019
- Added the
status.investments.last_successful_update
andstatus.investments.last_failed_update
fields to the data returned by/item/get
. - Launched official support for Link on React Native with a new SDK, bringing unified support to React Native apps.
October 2019
- Added the
status.item_logins.breakdown
data to/institutions/get_by_id
and the Developer Dashboard. - Added the
routing_numbers
field to the Institutions object. You can also filter institutions via theoptions.routing_numbers
field in each Institutions API endpoint.
September 2019
- Added support for credit card details to the Liabilities product.
- Added Canada-specific account subtypes, including RRSP, RESP, and TFSA, to the Investments product.
August 2019
- Among numerous other improvements to Liabilities, such as expanded data access, added a new
loan_type
:cancelled
to the Liabilities product.
July 2019
- We launched Liabilities, which enables developers to access a feed of standardized student loan details from the largest U.S. servicers including Navient, Nelnet, FedLoan, Great Lakes, and many more.
June 2019
- Launched Investments, which allows developers, fintech apps, and financial institutions to create a holistic view of their customers’ investments.
- Added the
status.transactions_updates
field, exposing Transactions health to both the/institutions/get
endpoint and the Dashboard.
May 2019
- We enhanced the
/identity/get
endpoint to now return account-level identity information within theaccounts
object where available. - We released API version 2019.05.29 to enable European institution coverage and provide nomenclature and schema updates required by Identity and future products.
March 2019
- We updated the institutions endpoints so you can now retrieve bank logos, colors, and website URLs to use to customize your in-app experience.
- We enabled triggering and testing of webhooks on demand via the new
/sandbox/item/fire_webhook
endpoint.
February 2019
- We launched new features for Auth, enabling developers to authenticate accounts from any bank or credit union in the U.S. Link automatically guides end-users to the best way to authenticate their account based on the bank they select.
November 2018
- Added a new Insights feature, which provides cleaned and categorized transaction data in an Asset Report. In addition to transaction categories, lenders will be able to retrieve merchant names and locations for transactions to use in building risk models.
- Improved the Link experience by informing users about connectivity issues with banks before connecting their account. When banks are experiencing significant issues, users will temporarily be directed to connect their account at a different bank to reduce frustration and drop-off during the onboarding process.
September 2018
- We added the
/asset_report/refresh
endpoint, so you can create a new Asset Report with the latest account balances and transactions for a borrower, based on the old report.
August 2018
- We added account filtering, which gives you the ability to exclude unnecessary accounts from appearing in an Asset Report.
June 2018
- Added historical account balances to the PDF version of Asset Reports, bringing them closer in line with the core JSON endpoint.
May 2018
- We released the 2018-05-22 version of the Plaid API.
- We enabled distinct API secrets to now be be set for the Sandbox, Development, and Production environments.
- Added the
/sandbox/public_token/create
endpoint, which enables the creation of Items in the Sandbox environment directly via the API (without Link).
April 2018
- Officially launched the Assets product. Assets is approved by Fannie Mae for Day 1 Certainty™ asset verification.
March 2018
- Rolled out several Assets features, including webhooks for Asset Report generation and full support for Audit Copy token generation and Fannie Mae’s Day 1 Certainty™ program, while improving existing features like pending transaction support in PDF reports.
February 2018
- Released Assets as a beta product.