Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,73 @@ This release changes the pinned API version to `2026-03-25.preview`. It is built
* [#1745](https://github.com/stripe/stripe-python/pull/1745) Merge to beta
* [#1713](https://github.com/stripe/stripe-python/pull/1713) Delete API_VERSION file as it is no longer needed

## 15.0.0 - 2026-03-25

This release changes the pinned API version to `2026-03-25.dahlia` and contains breaking changes (prefixed with ⚠️ below). There's also a [detailed migration guide](https://github.com/stripe/stripe-python/wiki/Migration-guide-for-v15) to simplify your upgrade process.

Please review details for the breaking changes and alternatives in the [Stripe API changelog](https://docs.stripe.com/changelog/dahlia) before upgrading.

* ⚠️ **Breaking change:** [#1769](https://github.com/stripe/stripe-python/pull/1769) Add decimal_string coercion for v1 and v2 API fields
- All `decimal_string` fields changed type from `str` to `decimal.Decimal` in both request params and response objects. Code that reads or writes these fields as `str` will need to use `Decimal` instead. Affected fields across v1 and v2 APIs:
- **checkout.Session**: `fx_rate`
- **climate.Order**: `metric_tons`; **climate.Product**: `metric_tons_available`
- **CreditNoteLineItem**: `unit_amount_decimal`
- **InvoiceItem**: `quantity_decimal`, `unit_amount_decimal`
- **InvoiceLineItem**: `quantity_decimal`, `unit_amount_decimal`
- **issuing.Authorization** / **issuing.Transaction** (and TestHelpers): `quantity_decimal`, `unit_cost_decimal`, `gross_amount_decimal`, `local_amount_decimal`, `national_amount_decimal`
- **Plan**: `amount_decimal`, `flat_amount_decimal`, `unit_amount_decimal`
- **Price**: `unit_amount_decimal`, `flat_amount_decimal` (including `currency_options` and `tiers`)
- **v2.core.Account** / **v2.core.AccountPerson**: `percent_ownership`
- Request params on **Invoice**, **Product**, **Quote**, **Subscription**, **SubscriptionItem**, **SubscriptionSchedule**, **PaymentLink**: `unit_amount_decimal`, `flat_amount_decimal`, `quantity_decimal` (where applicable)
* [⚠️ **Breaking change:**#1767](https://github.com/stripe/stripe-python/pull/1767) Throw an error when using the wrong webhook parsing method
* ⚠️ **Breaking change:** [#1764](https://github.com/stripe/stripe-python/pull/1764) Drop support for Python 3.7 & 3.8
* ⚠️ **Breaking change:** [#1762](https://github.com/stripe/stripe-python/pull/1762) `StripeObject` no longer inherits from `dict`

- `StripeObject` no longer inherits from `dict`, so any `dict` methods will no longer exist, including `.get()`, `.update()`, and notably, `.items()`.
- or convenience, it's still possible to check presence with `'some_key' in some_obj` and check for equality between stripe objects. But most key/value iteration needs an extra step
- To access the underlying data as a `dict`, call `some_obj.to_dict()`, which recursively dumps all stripe-provided classes into native Python types. This is a read-only view; changes to the output of `to_dict()` won't affect the original object.
- Write operations can still be done with dot notation (`some_obj.val = 123`) or bracket notation (`some_obj["val"] = 123`). Do that instead of trying to interact with the underlying data store, as the implementation is considered private and may change without warning in the future.

### ⚠️ Breaking changes due to changes in the Stripe API

* Generated changes from [#1749](https://github.com/stripe/stripe-python/pull/1749), [#1771](https://github.com/stripe/stripe-python/pull/1771), [#1773](https://github.com/stripe/stripe-python/pull/1773), [#1775](https://github.com/stripe/stripe-python/pull/1775)
* Add support for `upi_payments` on `Account.Capability`, `AccountCreateParamsCapability`, and `AccountModifyParamsCapability`
* Add support for `upi` on `Charge.PaymentMethodDetail`, `Checkout.Session.PaymentMethodOption`, `ConfirmationToken.PaymentMethodPreview`, `ConfirmationTokenCreateParamsPaymentMethodDatum`, `Mandate.PaymentMethodDetail`, `PaymentAttemptRecord.PaymentMethodDetail`, `PaymentIntent.PaymentMethodOption`, `PaymentIntentConfirmParamsPaymentMethodDatum`, `PaymentIntentConfirmParamsPaymentMethodOption`, `PaymentIntentCreateParamsPaymentMethodDatum`, `PaymentIntentCreateParamsPaymentMethodOption`, `PaymentIntentModifyParamsPaymentMethodDatum`, `PaymentIntentModifyParamsPaymentMethodOption`, `PaymentMethodConfigurationCreateParams`, `PaymentMethodConfigurationModifyParams`, `PaymentMethodConfiguration`, `PaymentMethodCreateParams`, `PaymentMethod`, `PaymentRecord.PaymentMethodDetail`, `SetupAttempt.PaymentMethodDetail`, `SetupIntent.PaymentMethodOption`, `SetupIntentConfirmParamsPaymentMethodDatum`, `SetupIntentConfirmParamsPaymentMethodOption`, `SetupIntentCreateParamsPaymentMethodDatum`, `SetupIntentCreateParamsPaymentMethodOption`, `SetupIntentModifyParamsPaymentMethodDatum`, `SetupIntentModifyParamsPaymentMethodOption`, and `checkout.SessionCreateParamsPaymentMethodOption`
* Add support for new value `tempo` on enums `Charge.PaymentMethodDetail.Crypto.network`, `PaymentAttemptRecord.PaymentMethodDetail.Crypto.network`, and `PaymentRecord.PaymentMethodDetail.Crypto.network`
* Add support for `integration_identifier` on `Checkout.Session` and `checkout.SessionCreateParams`
* Add support for new value `upi` on enums `PaymentIntent.excluded_payment_method_types`, `PaymentIntentConfirmParams.excluded_payment_method_types`, `PaymentIntentCreateParams.excluded_payment_method_types`, `PaymentIntentModifyParams.excluded_payment_method_types`, `SetupIntent.excluded_payment_method_types`, `SetupIntentCreateParams.excluded_payment_method_types`, `SetupIntentModifyParams.excluded_payment_method_types`, and `checkout.SessionCreateParams.excluded_payment_method_types`
* Add support for `crypto` on `checkout.SessionCreateParamsPaymentMethodOption`
* Add support for new value `upi` on enum `checkout.SessionCreateParams.payment_method_types`
* Add support for `pending_invoice_item_interval` on `checkout.SessionCreateParamsSubscriptionDatum`
* Add support for new values `elements`, `embedded_page`, `form`, and `hosted_page` on enums `Checkout.Session.ui_mode` and `checkout.SessionCreateParams.ui_mode`
* Add support for new value `marine_carbon_removal` on enum `Climate.Supplier.removal_pathway`
* Add support for new value `upi` on enums `ConfirmationTokenCreateParamsPaymentMethodDatum.type`, `PaymentIntentConfirmParamsPaymentMethodDatum.type`, `PaymentIntentCreateParamsPaymentMethodDatum.type`, `PaymentIntentModifyParamsPaymentMethodDatum.type`, `SetupIntentConfirmParamsPaymentMethodDatum.type`, `SetupIntentCreateParamsPaymentMethodDatum.type`, and `SetupIntentModifyParamsPaymentMethodDatum.type`
* Add support for new value `upi` on enums `ConfirmationToken.PaymentMethodPreview.type` and `PaymentMethod.type`
* Add support for `metadata` on `CreditNoteCreateParamsLine`, `CreditNoteLineItem`, `CreditNotePreviewLinesParamsLine`, and `CreditNotePreviewParamsLine`
* Add support for new value `upi` on enums `CustomerListPaymentMethodsParams.type`, `PaymentMethodCreateParams.type`, and `PaymentMethodListParams.type`
* Add support for `quantity_decimal` on `InvoiceAddLinesParamsLine`, `InvoiceCreatePreviewParamsInvoiceItem`, `InvoiceItemCreateParams`, `InvoiceItemModifyParams`, `InvoiceItem`, `InvoiceLineItemModifyParams`, `InvoiceLineItem`, and `InvoiceUpdateLinesParamsLine`
* ⚠️ Add support for `level` on `issuing.AuthorizationCreateParamsRiskAssessmentCardTestingRisk` and `issuing.AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk`
* ⚠️ Remove support for `risk_level` on `issuing.AuthorizationCreateParamsRiskAssessmentCardTestingRisk` and `issuing.AuthorizationCreateParamsRiskAssessmentMerchantDisputeRisk`
* Add support for `lifecycle_controls` on `Issuing.Card` and `issuing.CardCreateParams`
* ⚠️ Change type of `Issuing.Token.NetworkDatum.Visa.card_reference_id` from `string` to `nullable(string)`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.brand` and `PaymentRecord.PaymentMethodDetail.Card.brand` from `enum` to `nullable(enum)`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.exp_month` and `PaymentRecord.PaymentMethodDetail.Card.exp_month` from `longInteger` to `nullable(longInteger)`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.exp_year` and `PaymentRecord.PaymentMethodDetail.Card.exp_year` from `longInteger` to `nullable(longInteger)`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.funding` and `PaymentRecord.PaymentMethodDetail.Card.funding` from `enum('credit'|'debit'|'prepaid'|'unknown')` to `nullable(enum('credit'|'debit'|'prepaid'|'unknown'))`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.last4` and `PaymentRecord.PaymentMethodDetail.Card.last4` from `string` to `nullable(string)`
* ⚠️ Change type of `PaymentAttemptRecord.PaymentMethodDetail.Card.moto` and `PaymentRecord.PaymentMethodDetail.Card.moto` from `boolean` to `nullable(boolean)`
* Add support for `cryptogram`, `electronic_commerce_indicator`, `exemption_indicator_applied`, and `exemption_indicator` on `PaymentAttemptRecord.PaymentMethodDetail.Card.ThreeDSecure` and `PaymentRecord.PaymentMethodDetail.Card.ThreeDSecure`
* Add support for `upi_handle_redirect_or_display_qr_code` on `PaymentIntent.NextAction` and `SetupIntent.NextAction`
* Add support for new value `upi` on enums `PaymentLink.payment_method_types`, `PaymentLinkCreateParams.payment_method_types`, and `PaymentLinkModifyParams.payment_method_types`
* Add support for `recommended_action` and `signals` on `Radar.PaymentEvaluation`
* ⚠️ Remove support for `insights` on `Radar.PaymentEvaluation`
* Add support for new value `crypto_fingerprint` on enums `Radar.ValueList.item_type` and `radar.ValueListCreateParams.item_type`
* Add support for new value `canceled_by_retention_policy` on enum `Subscription.CancellationDetail.reason`
* Add support for new value `2026-03-25.dahlia` on enum `WebhookEndpointCreateParams.api_version`
* ⚠️ Change type of `V2.Core.EventDestination.events_from` and `v2.core.EventDestinationCreateParams.events_from` from `enum('other_accounts'|'self')` to `string`
* Add support for error code `service_period_coupon_with_metered_tiered_item_unsupported` on `Invoice.LastFinalizationError`, `PaymentIntent.LastPaymentError`, `SetupAttempt.SetupError`, `SetupIntent.LastSetupError`, and `StripeError`
* [#1756](https://github.com/stripe/stripe-python/pull/1756) Add runtime support for V2 int64 string-encoded fields

## 14.5.0b1 - 2026-02-25
This release changes the pinned API version to `2026-02-25.preview`.

Expand Down
2 changes: 1 addition & 1 deletion CODEGEN_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
25e6bd225852aa44d783e9fb3b9895af39479331
50a0fd5b547588149f12172b5fae94ff530d1870
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2206
v2207
Loading