diff --git a/CHANGELOG.md b/CHANGELOG.md index 2511190cd..faa9d4f0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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`. diff --git a/CODEGEN_VERSION b/CODEGEN_VERSION index 47a9a28f9..31a051624 100644 --- a/CODEGEN_VERSION +++ b/CODEGEN_VERSION @@ -1 +1 @@ -25e6bd225852aa44d783e9fb3b9895af39479331 \ No newline at end of file +50a0fd5b547588149f12172b5fae94ff530d1870 \ No newline at end of file diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 19b4cc885..1808fc941 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v2206 \ No newline at end of file +v2207 \ No newline at end of file