This release changes the pinned API version to 2025-09-30.clover
and contains breaking changes (prefixed with ⚠️ below)
-
#1652 ⚠️ Deserialize inner types in resources for more detailed types
- ⚠️ Deserialize inner classes, so inner class types will now reflect generated inner classes
- For example,
Stripe::Customer.address
is deserialized to specific aStripe::Customer::Address
class instead of the genericStripe::StripeObject
, as is suggested by the static type annotations - This should not affect any normal use cases of the SDK, as inner types remain children of
Stripe::StripeObject
- For example,
- ⚠️ Deserialize inner classes, so inner class types will now reflect generated inner classes
-
#1649 Explicitly define methods for RBIs and ship combined RBI for Tapioca
- Improvements for Tapioca
- Explicitly define methods for attributes in RBIs to allow Tapioca to reflect them
- Ship combined RBI for shorter Tapioca time
- Improvements for Tapioca
-
#1677 Move
V2.Event
API resources toV2.Core.Events
- ⚠️ Move
Stripe::V2::Event
andStripe::V2::EventDestination
toStripe::V2::Core::Event
andStripe::V2::Core::EventDestination
respectively. They now correctly match their API path
- ⚠️ Move
-
#1664 Add
StripeContext
object- Add the
StripeContext
class. Previously you could set the stripe_context to only a string value. Now you can use the new class as well - ⚠️ Change
EventNotification
(formerly known asThinEvent
)'scontext
property fromstring
toStripeContext
- Add the
-
#1684 ⚠️ Drop support for Ruby < 2.6 & clarify version policy
- Read our new language version support policy
- ⚠️ In this release, we drop support for Ruby 2.3, 2.4, and 2.5
- Ruby 2.6 support is deprecated and will be removed in the next scheduled major release (March 2026)
- Read our new language version support policy
-
#1651 ⚠️ Build SDK w/ V2 OpenAPI spec
- ⚠️ The delete methods for v2 APIs (the ones in the
StripeClient.v2
namespace) now return aV2DeletedObject
which has the id of the object that has been deleted and a string representing the type of the object that has been deleted. - ⚠️ Deeply nested param hashes with no properties no longer have classes generated for them. Instead, they're typed as
T::Hash[String, T.untyped]
. Because there were no params, it's unlikely you were using these classes.
- ⚠️ The delete methods for v2 APIs (the ones in the
-
#1650 ⚠️ 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.- Added matching
EventNotification
classes to every v2Event
- For example, there's now a
V1BillingMeterErrorReportTriggeredEventNotification
to match the existingV1BillingMeterErrorReportTriggeredEvent
- 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 on both theEventNotification
andEvent
.
- For example, there's now a
- ⚠️ Rename function
StripeClient.parse_thin_event
toStripeClient.parse_event_notification
and remove theStripe::ThinEvent
class.- This function now returns a
Stripe::V2::Core::EventNotification
(which is the shared base class that all of the more specificStripe::Event::*EventNotification
classes share) instead ofStripe::ThinEvent
. When applicable, these event notifications will have therelatedObject
property and afetch_related_object()
function. They also have afetch_event()
method to retrieve their correspondingStripe::Events::*Event
instance. - If you parse an event the SDK doesn't have types for (e.g. it's newer than the SDK you're using), you'll get an instance of
Stripe::Events::UnknownEventNotification
instead of a more specific type. It has both therelated_object
property and thefetch_related_object()
function (but they may be/returnnil
)
- This function now returns a
- ⚠️ Move all Event Classes into the
Events
module- For example,
Stripe::V1BillingMeterErrorReportTriggeredEvent
is nowStripe::Events::V1BillingMeterErrorReportTriggeredEvent
- For example,
- Added matching
-
#1670 ⚠️ Unify resource and service method parameters into one class
- ⚠️ Resource and service request parameter types have been moved to the top-level and are shared.
- For example,
Stripe::Account::CreateParams
andStripe::AccountService::CreateParams
have moved toStripe::AccountCreateParams
- This change only affects users who use Sorbet types for parameters
- For example,
- ⚠️ Resource and service request parameter types have been moved to the top-level and are shared.
-
#1643, #1667, #1680, #1678 Update generated code based on incoming API changes in the
2025-09-30.clover
API version.- ⚠️ Remove support for
balance_report
andpayout_reconciliation_report
onAccountSession::Component
andAccountSession::CreateParams::Component
- Change
Invoice.id
to be required (i.e. not nilable). - Add support for new resource
BalanceSettings
- Add support for
retrieve
andupdate
methods on resourceBalanceSettings
- Add support for
source
onDiscount
- Remove support for
coupon
onDiscount
,PromotionCode::CreateParams
, andPromotionCode
- Add support for
mb_way_payments
onAccount::Capability
,Account::CreateParams::Capability
, andAccount::UpdateParams::Capability
- Add support for
trial_update_behavior
onBillingPortal::Configuration::CreateParams::Feature::SubscriptionUpdate
,BillingPortal::Configuration::Feature::SubscriptionUpdate
, andBillingPortal::Configuration::UpdateParams::Feature::SubscriptionUpdate
- Add support for
mb_way
onCharge::PaymentMethodDetail
,ConfirmationToken::CreateParams::PaymentMethodDatum
,ConfirmationToken::PaymentMethodPreview
,PaymentIntent::ConfirmParams::PaymentMethodDatum
,PaymentIntent::ConfirmParams::PaymentMethodOption
,PaymentIntent::CreateParams::PaymentMethodDatum
,PaymentIntent::CreateParams::PaymentMethodOption
,PaymentIntent::PaymentMethodOption
,PaymentIntent::UpdateParams::PaymentMethodDatum
,PaymentIntent::UpdateParams::PaymentMethodOption
,PaymentMethod::CreateParams
,PaymentMethod
,SetupIntent::ConfirmParams::PaymentMethodDatum
,SetupIntent::CreateParams::PaymentMethodDatum
, andSetupIntent::UpdateParams::PaymentMethodDatum
- Add support for
branding_settings
andname_collection
onCheckout::Session::CreateParams
andCheckout::Session
- Add support for
excluded_payment_method_types
onCheckout::Session::CreateParams
,Checkout::Session
,PaymentIntent::ConfirmParams
, andPaymentIntent::UpdateParams
- Add support for
unit_label
onCheckout::Session::CreateParams::LineItem::PriceDatum::ProductDatum
,Invoice::AddLinesParams::Line::PriceDatum::ProductDatum
,Invoice::UpdateLinesParams::Line::PriceDatum::ProductDatum
,InvoiceLineItem::UpdateParams::PriceDatum::ProductDatum
, andPaymentLink::CreateParams::LineItem::PriceDatum::ProductDatum
- Add support for
alma
,billie
, andsatispay
onCheckout::Session::CreateParams::PaymentMethodOption
andCheckout::Session::PaymentMethodOption
- Add support for
demo_pay
onCheckout::Session::CreateParams::PaymentMethodOption
- Add support for
capture_method
onCheckout::Session::CreateParams::PaymentMethodOption::Affirm
,Checkout::Session::CreateParams::PaymentMethodOption::AfterpayClearpay
,Checkout::Session::CreateParams::PaymentMethodOption::AmazonPay
,Checkout::Session::CreateParams::PaymentMethodOption::Card
,Checkout::Session::CreateParams::PaymentMethodOption::Cashapp
,Checkout::Session::CreateParams::PaymentMethodOption::Klarna
,Checkout::Session::CreateParams::PaymentMethodOption::Link
,Checkout::Session::CreateParams::PaymentMethodOption::Mobilepay
,Checkout::Session::CreateParams::PaymentMethodOption::RevolutPay
,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
, andCheckout::Session::PaymentMethodOption::RevolutPay
- Add support for
flexible
onCheckout::Session::CreateParams::SubscriptionDatum::BillingMode
,Invoice::CreatePreviewParams::ScheduleDetail::BillingMode
,Invoice::CreatePreviewParams::SubscriptionDetail::BillingMode
,Quote::CreateParams::SubscriptionDatum::BillingMode
,Quote::SubscriptionDatum::BillingMode
,Subscription::BillingMode
,Subscription::CreateParams::BillingMode
,Subscription::MigrateParams::BillingMode
,SubscriptionSchedule::BillingMode
, andSubscriptionSchedule::CreateParams::BillingMode
- Add support for
business_name
andindividual_name
onCheckout::Session::CollectedInformation
,Checkout::Session::CustomerDetail
,Customer::CreateParams
,Customer::UpdateParams
, andCustomer
- Add support for
chargeback_loss_reason_code
onDispute::PaymentMethodDetail::Klarna
- Add support for
net_amount
andproration_details
onInvoiceItem
- Remove support for
iterations
onInvoice::CreatePreviewParams::ScheduleDetail::Phase
,SubscriptionSchedule::CreateParams::Phase
, andSubscriptionSchedule::UpdateParams::Phase
- Add support for
fraud_disputability_likelihood
andrisk_assessment
onIssuing::Authorization::CreateParams
- Add support for
second_line
onIssuing::Card
- Add support for
fr_meal_voucher_conecs
onPaymentMethodConfiguration::CreateParams
andPaymentMethodConfiguration::UpdateParams
- Remove support for
link
andpay_by_bank
onPaymentMethod::UpdateParams
- Add support for
promotion
onPromotionCode::CreateParams
andPromotionCode
- Add support for
provider
onTax::Settings::Default
- Add support for
bbpos_wisepad3
onTerminal::Configuration::CreateParams
,Terminal::Configuration::UpdateParams
, andTerminal::Configuration
- Add support for
address_kana
,address_kanji
,display_name_kana
,display_name_kanji
, andphone
onTerminal::Location::CreateParams
,Terminal::Location::UpdateParams
, andTerminal::Location
- Change
Terminal::Location::CreateParams.address
to be optional - Change
Terminal::Location::CreateParams.display_name
to be optional
- ⚠️ Remove support for