# What changed in plaid-python

> 45 changes in plaid-python 45 from its official release notes, upgrade guides and advisories: 14 breaking, 1 deprecations, 25 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/pypi/plaid-python/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## plaid-python 45

### Breaking changes

- The unlaunched charge card account subtype enum value is removed; remove references to it when upgrading. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The unlaunched installment account subtype enum value is removed; remove references to it when upgrading. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require error; update manually constructed instances accordingly. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require failed_products; empty product lists are returned as []. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require repairable_items; empty item lists are returned as []. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds OAuth authentication with the cra:read scope. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds OAuth authentication with the cra:read scope. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The deprecated endpoint and its generated client method and models are removed; use /link/token/create with hosted_link to create Hosted Link sessions. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The deprecated endpoint and its generated client method and models are removed; use /link/token/create with hosted_link to create Hosted Link sessions. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The webhook now derives historical_update_complete from the Item instead of always sending true. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The webhook now derives initial_update_complete from the Item instead of always sending true. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require error; update manually constructed instances accordingly. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require failed_products; empty product lists are returned as []. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Webhook models now require repairable_items; empty item lists are returned as []. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)

### Deprecations

- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)

### New APIs and options

- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds cra_lend_score to include LendScore in the PDF alongside the required Base Report. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The products union accepts cra_base_report, cra_lend_score, cra_cashflow_insights, and cra_network_insights, matching products accepted by /cra/report/create. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds client_user_id to the webhook; it is always present and non-empty. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds the cash_advance_limit field to CreditCardLiability; it is hidden from public API docs until GA. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds an optional language to select the starting language for an identity verification session. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds OAuth2 authentication using a bearer token carrying item:write; client_id and secret authentication is unchanged. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds supports_commercial_payment_consents to indicate whether an institution supports commercial variable recurring payment consents. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- The processor enum accepts bitgo for creating processor tokens for the BitGo integration. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds an endpoint accepting a multipart/form-data CSV of cash advance decision or repayment feedback for asynchronous processing and returning an upload_id. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Accepts an optional new_transactions count for the TRANSACTIONS DEFAULT_UPDATE webhook, which previously always reported 0. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds the hidden optional IDV status field, omitted when disabled or unavailable and reflecting the simulated Identity Verification session when available in Sandbox. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Adds the link_session_id field to the session response. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)

### Behavior and default changes

- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- Responses now include the external event_type when available. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
- 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. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)

### Fixes and other changes

- Marks street nullable to match API responses when an institution does not provide a street line, avoiding client-side validation failures. (45.0.0) — [release notes](https://github.com/plaid/plaid-python/blob/HEAD/CHANGELOG.md)
