This release changes the pinned API version to 2025-09-30.clover and contains breaking changes (prefixed with ⚠️ below)
#1604 Fixed InvoiceLineItem method definition
InvoiceLineItem.modify and InvoiceLineItem.modify_async now require invoice and line_item_id as method parameters.
InvoiceLineItem.ModifyParam class. Use a typing.dict to type hint instead.#1538 ⚠️ Add strongly typed EventNotifications We've overhauled how V2 Events are handled in the SDK! This approach should provide a lot more information at authoring and compile time, leading to more robust integrations. As part of this process, there are a number of changes to be aware of.
EventNotification classes to every v2 Event. For example, there's now a V1BillingMeterErrorReportTriggeredEventNotification to match the existing V1BillingMeterErrorReportTriggeredEvent. Each notification class defines a fetch_event() method to retrieve its corresponding event. For events with related objects, there's a fetch_related_object() method that performs the API call and casts the response to the correct type.StripeClient.parse_thin_event to StripeClient.parse_event_notification and remove the Stripe.ThinEvent class.
stripe.v2.core.EventNotification (which is the shared base class that all of the more specific stripe.events.*EventNotification classes share) instead of Stripe.ThinEvent. When applicable, these event notifications will have the related_object property and a fetch_related_object() function. They also have a fetch_() method to retrieve their corresponding stripe.events.*Event instance.Stripe.Events.UnknownEventNotification instead of a more specific type. It has both the relatedObject property and the FetchRelatedObject() function (but they may be/return null)#1602 Move V2.Event API resources to V2.Core.Events
stripe.v2._event and stripe.v2._event_destination to stripe.v2.core._event and stripe.v2.core._event_destination respectively. They now correctly match their API path#1589 Add StripeContext object
StripeContext class. Previously, one could only pass a string for stripe_context. You can now use the new class as well.EventNotification (formerly known as ThinEvent)'s context property from string to StripeContext#1565 ⚠️ Build SDK w/ V2 OpenAPI spec
StripeClient.v2 namespace) now return a V2DeletedObject which has the id of the object that has been deleted and a string representing the type of the object that has been deleted.Dict[str, Any]. Because there were no params, it's unlikely you were using these classes.#1569 Renamed Urllib2Client to UrllibClient
http_client.Urllib2Client to http_client.UrllibClient as Python urllib2 was renamed to urllib in Python 3.#1606 ⚠️ drop support for Python 3.6 & clarify version policy
#1596 ⚠️ Unify resource and service method parameters into one class
_stripe._account.Account.CreateParams and _stripe._account_service.CreateParams have moved to _stripe.params._account_create_params.AccountCreateParams#1572 migrate from setup.py to pyproject.toml
setup.py to pyproject.toml. As a result, we're dropping support for pip < 10.0.0 (released April 2018).#1570 Don't use mutable default arguments
None as the default function argument instead of {}⚠️ Deprecated the V1 service accessors living directly under StripeClient(e.g. customers, products) as they were copied under the new V1 service in our last release. Service accessors living directly under StripeClient(e.g. customers, products) will be removed from StripeClient in a future release. E.g.
client = StripeClient("sk_test...")
# Accessing V1 Stripe services on a StripeClient should be through the V1 namespace
- client.customers.list()
+ client.v1.customers.list()
Refer to the migration guide for help upgrading.
#1603 ⚠️ Remove deprecated compatibility exports
stripe module directly; now that's the only place to import them. Specifically, we removed:
stripe.stripe_responsestripe.stripe_objectstripe.error_objectstripe.errorstripe.http_clientstripe.utilstripe.oauthstripe.webhookstripe.multipart_data_generatorstripe.request_metricsstripe.api_resources.abstractstripe.api_resourcesTo update your code, follow this pattern:
-from stripe.<MODULE> import SomeClass
+from stripe import SomeClass
-stripe.<MODULE>.SomeClass
+stripe.SomeClass
FileUpload aliasTo update your code:
-from stripe import FileUpload
-from stripe.api_resources import FileUpload
+from stripe import File
io import from stripe._util. If you had code relying on stripe.util.io, you'll need to import the io package directly yourself.UrllibClient to stripe to make creating your own HTTP client easier.#1567, #1593, #1607, #1605 Update generated code based on incoming API changes in the 2025-09-30.clover API version.
balance_report and payout_reconciliation_report on AccountSession.Component and AccountSession.CreateParamsComponentsaturday and sunday from enums Account.CreateParamsSettingPayoutSchedule.weekly_payout_days, Account.ModifyParamsSettingPayoutSchedule.weekly_payout_days, and Account.Setting.Payout.Schedule.weekly_payout_daysiterations on Invoice.CreatePreviewParamsScheduleDetailPhase, SubscriptionSchedule.CreateParamsPhase, and SubscriptionSchedule.ModifyParamsPhaselink and pay_by_bank on PaymentMethod.ModifyParamscoupon on Discount, PromotionCode.CreateParams, and PromotionCode. Use Discount.source.coupon, PromotionCode.CreateParams.promotion.coupon, and PromotionCode.promotion.coupon instead.prevented on enum Dispute.statusInvoice.id to be required.BalanceSettingsmodify and retrieve methods on resource BalanceSettingsexternal_request and unsupported_business_type on enums Account.FutureRequirement.Error.code, Account.Requirement.Error.code, BankAccount.FutureRequirement.Error.code, BankAccount.Requirement.Error.code, Capability.FutureRequirement.Error.code, Capability.Requirement.Error.code, Person.FutureRequirement.Error.code, and Person.Requirement.Error.codesource on Discountmb_way_payments on Account.Capability, Account.CreateParamsCapability, and Account.ModifyParamsCapabilitytrial_update_behavior on BillingPortal.Configuration.Feature.SubscriptionUpdate, billing_portal.Configuration.CreateParamsFeatureSubscriptionUpdate, and billing_portal.Configuration.ModifyParamsFeatureSubscriptionUpdatemb_way on Charge.PaymentMethodDetail, ConfirmationToken.CreateParamsPaymentMethodDatum, ConfirmationToken.PaymentMethodPreview, PaymentIntent.ConfirmParamsPaymentMethodDatum, PaymentIntent.ConfirmParamsPaymentMethodOption, PaymentIntent.CreateParamsPaymentMethodDatum, PaymentIntent.CreateParamsPaymentMethodOption, PaymentIntent.ModifyParamsPaymentMethodDatum, PaymentIntent.ModifyParamsPaymentMethodOption, PaymentIntent.PaymentMethodOption, PaymentMethod.CreateParams, PaymentMethod, SetupIntent.ConfirmParamsPaymentMethodDatum, SetupIntent.CreateParamsPaymentMethodDatum, and SetupIntent.ModifyParamsPaymentMethodDatumbranding_settings and name_collection on Checkout.Session and checkout.Session.CreateParamsexcluded_payment_method_types on Checkout.Session, PaymentIntent.ConfirmParams, PaymentIntent.ModifyParams, and checkout.Session.CreateParamsunit_label on Invoice.AddLinesParamsLinePriceDatumProductDatum, Invoice.UpdateLinesParamsLinePriceDatumProductDatum, InvoiceLineItem.ModifyParamsPriceDatumProductDatum, PaymentLink.CreateParamsLineItemPriceDatumProductDatum, and checkout.Session.CreateParamsLineItemPriceDatumProductDatumalma, billie, and satispay on Checkout.Session.PaymentMethodOption and checkout.Session.CreateParamsPaymentMethodOptiondemo_pay on checkout.Session.CreateParamsPaymentMethodOptioncapture_method on Checkout.Session.PaymentMethodOption.Affirm, Checkout.Session.PaymentMethodOption.AfterpayClearpay, Checkout.Session.PaymentMethodOption.AmazonPay, Checkout.Session.PaymentMethodOption.Card, Checkout.Session.PaymentMethodOption.Cashapp, Checkout.Session.PaymentMethodOption.Klarna, Checkout.Session.PaymentMethodOption.Link, Checkout.Session.PaymentMethodOption.Mobilepay, Checkout.Session.PaymentMethodOption.RevolutPay, checkout.Session.CreateParamsPaymentMethodOptionAffirm, checkout.Session.CreateParamsPaymentMethodOptionAfterpayClearpay, checkout.Session.CreateParamsPaymentMethodOptionAmazonPay, checkout.Session.CreateParamsPaymentMethodOptionCard, checkout.Session.CreateParamsPaymentMethodOptionCashapp, checkout.Session.CreateParamsPaymentMethodOptionKlarna, checkout.Session.CreateParamsPaymentMethodOptionLink, checkout.Session.CreateParamsPaymentMethodOptionMobilepay, and checkout.Session.CreateParamsPaymentMethodOptionRevolutPayflexible on Invoice.CreatePreviewParamsScheduleDetailBillingMode, Invoice.CreatePreviewParamsSubscriptionDetailBillingMode, Quote.CreateParamsSubscriptionDatumBillingMode, Quote.SubscriptionDatum.BillingMode, Subscription.BillingMode, Subscription.CreateParamsBillingMode, Subscription.MigrateParamsBillingMode, SubscriptionSchedule.BillingMode, SubscriptionSchedule.CreateParamsBillingMode, and checkout.Session.CreateParamsSubscriptionDatumBillingModebusiness_name and individual_name on Checkout.Session.CollectedInformation, Checkout.Session.CustomerDetail, Customer.CreateParams, Customer.ModifyParams, and Customermb_way on enums ConfirmationToken.CreateParamsPaymentMethodDatum.type, PaymentIntent.ConfirmParamsPaymentMethodDatum.type, PaymentIntent.CreateParamsPaymentMethodDatum.type, PaymentIntent.ModifyParamsPaymentMethodDatum.type, SetupIntent.ConfirmParamsPaymentMethodDatum.type, SetupIntent.CreateParamsPaymentMethodDatum.type, and SetupIntent.ModifyParamsPaymentMethodDatum.typemb_way on enums ConfirmationToken.PaymentMethodPreview.type and PaymentMethod.typemb_way on enums Customer.ListPaymentMethodsParams.type, PaymentMethod.CreateParams.type, and PaymentMethod.ListParams.typechargeback_loss_reason_code on Dispute.PaymentMethodDetail.Klarnanet_amount and proration_details on InvoiceItemfraud_disputability_likelihood and risk_assessment on issuing.Authorization.CreateParamssecond_line on Issuing.Cardmb_way on enums PaymentIntent.CreateParams.excluded_payment_method_types and PaymentIntent.excluded_payment_method_typesfr_meal_voucher_conecs on PaymentMethodConfiguration.CreateParams and PaymentMethodConfiguration.ModifyParamspromotion on PromotionCode.CreateParams and PromotionCodeacknowledged and payment_never_settled on enum Review.closed_reasonprovider on Tax.Settings.Defaultbbpos_wisepad3 on Terminal.Configuration, terminal.Configuration.CreateParams, and terminal.Configuration.ModifyParamsaddress_kana, address_kanji, display_name_kana, display_name_kanji, and phone on Terminal.Location, terminal.Location.CreateParams, and terminal.Location.ModifyParamsterminal.Location.CreateParams.address to be optionalterminal.Location.CreateParams.display_name to be optional2025-09-30.clover on enum WebhookEndpoint.CreateParams.api_versionfinancial_connections_account_pending_account_numbers and financial_connections_account_unavailable_account_numbers on Invoice.LastFinalizationError, PaymentIntent.LastPaymentError, SetupAttempt.SetupError, SetupIntent.LastSetupError, and StripeErrorFetched March 31, 2026