pypi / plaid-python
plaid-python
What changed in plaid-python 45, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
14 breaking1 deprecations25 new APIs and options4 behavior and defaults1 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initplaid-python 4545 changes
Breaking changes 14
The unlaunched charge card account subtype enum value is removed; remove references to it when upgrading.
The unlaunched installment account subtype enum value is removed; remove references to it when upgrading.
Webhook models now require error; update manually constructed instances accordingly.
Webhook models now require failed_products; empty product lists are returned as [].
Webhook models now require repairable_items; empty item lists are returned as [].
Adds OAuth authentication with the cra:read scope.
Adds OAuth authentication with the cra:read scope.
The deprecated endpoint and its generated client method and models are removed; use /link/token/create with hosted_link to create Hosted Link sessions.
The deprecated endpoint and its generated client method and models are removed; use /link/token/create with hosted_link to create Hosted Link sessions.
The webhook now derives historical_update_complete from the Item instead of always sending true.
The webhook now derives initial_update_complete from the Item instead of always sending true.
Webhook models now require error; update manually constructed instances accordingly.
Webhook models now require failed_products; empty product lists are returned as [].
Webhook models now require repairable_items; empty item lists are returned as [].
Deprecations 1
The subtype is no longer shown in API documentation and Plaid no longer produces it, but the enum value remains for backward compatibility with historical transactions; the inflow is represented by transfer with spin off.
New APIs and options 25
The endpoint can be called with an OAuth2 access token carrying accounts:read, including a delegated access token; client_id and secret authentication remains supported.
The endpoint can be called with an OAuth2 access token carrying auth:read, including a delegated access token; client_id and secret authentication remains supported.
Adds cra_lend_score to include LendScore in the PDF alongside the required Base Report.
Adds CRA Report generation for a user, accepting products with versions and optional options, decision_stage, and consumer_report_permissible_purpose; the response returns report_id.
The products union accepts cra_base_report, cra_lend_score, cra_cashflow_insights, and cra_network_insights, matching products accepted by /cra/report/create.
Adds an optional object to /link/token/create to configure Plaid Check products for a Link session with parameters and products entries matching /cra/report/create.
Adds a webhook fired when generation finishes for a CRA report requested through /cra/report/create or a Link session configured with cra_report_parameter; it reports generated products and an error code when all fail.
Adds client_user_id to the webhook; it is always present and non-empty.
Adds the cash_advance_limit field to CreditCardLiability; it is hidden from public API docs until GA.
The endpoint can be called with an OAuth2 access token carrying identity:read, including a delegated access token; client_id and secret authentication remains supported.
Adds an optional language to select the starting language for an identity verification session.
Adds connection_availability to institution results; NOT_SUPPORTED indicates new connections are unsupported and can occur only on /institutions/get_by_id, while other results are SUPPORTED.
Adds paired_item_id to identify the corresponding Plaid Check or Plaid Inc Item in hybrid flows; it is null when there is no pairing.
Adds OAuth2 authentication using a bearer token carrying item:write; client_id and secret authentication is unchanged.
Adds supports_commercial_payment_consents to indicate whether an institution supports commercial variable recurring payment consents.
The processor enum accepts bitgo for creating processor tokens for the BitGo integration.
Adds an endpoint accepting a multipart/form-data CSV of cash advance decision or repayment feedback for asynchronous processing and returning an upload_id.
Accepts an optional new_transactions count for the TRANSACTIONS DEFAULT_UPDATE webhook, which previously always reported 0.
Each transaction may specify an account_id to target any account on the Item; without it, rows go to the checking account, and student loan targets return INVALID_ACCOUNT_ID.
The endpoint can be called with an OAuth2 access token carrying transactions:read, including a delegated access token; client_id and secret authentication remains supported.
Adds adjustment for transfer adjustments due to rare activity; event_amount indicates the adjusted amount, with positive amounts crediting and negative amounts debiting the ledger.
Adds the hidden optional IDV status field, omitted when disabled or unavailable and reflecting the simulated Identity Verification session when available in Sandbox.
Adds the link_session_id field to the session response.
Adds an optional object to /transfer/authorization/create with account_created_time and successful_payment_count; it is hidden from public API docs until generally available.
Adds roll_dates_forward to custom Sandbox user configuration; when true, dates shift at Item creation so the most recent activity date falls on the creation day.
Behavior and default changes 4
The endpoint can be called with an OAuth2 access token carrying cra:read, including a delegated access token; client_id and secret authentication remains supported.
The endpoint can be called with an OAuth2 access token carrying item:read, including a delegated access token; client_id and secret authentication remains supported.
Responses now include the external event_type when available.
The endpoint now works on every Sandbox Item, rather than only Items created with user_transactions_dynamic, and accepts transaction dates up to 730 days in the past instead of 14.
Fixes and other changes 1
Marks street nullable to match API responses when an institution does not provide a street line, avoiding client-side validation failures.