-
#1903 ⚠️ 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
EventNotificationclasses for every v2Event. For example, there's now aV1BillingMeterErrorReportTriggeredEventNotificationto match the existingV1BillingMeterErrorReportTriggeredEvent. Each of these interfaces defines afetchEvent()method to retrieve its corresponding event. For events with related objects, there's afetchRelatedObject()method that performs the API call and casts the response to the correct type. - ⚠️ Rename function
StripeClient->parseThinEventtoStripeClient->parseEventNotificationand remove theThinEventclass.- This function now returns a
Stripe\V2\Core\EventNotification(which is the shared base class that all of the more specificStripe\*EventNotificationsclasses share) instead ofThinEvent. When applicable, these event notifications will have therelatedObjectproperty and afetchRelatedObject()function. They also have afetchEvent()method to retrieve their correspondingStripe\Event\*Eventinstance. - 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\UnknownEventNotificationinstead of a more specific type. It has both therelatedObjectproperty and theFetchRelatedObject()function (but they may be/returnnull)
- This function now returns a
- ⚠️ removed the
Util::json_decode_thin_event_object. Its functionality was folded into the new\Stripe\V2\EventNotification::fromJsonmethod.
- Added matching
-
#1925 add version deprecation note to README
- NOTE: we'll be dropping support for PHP 5.6, 7.0, and 7.1 in the next major version (March 2026). The README has been updated with a link to our new language version support policy
-
#1921 Update generated code
- Change
Invoice.idto be required.
- Change
-
#1923 Update generated code
- Remove support for
balance_reportandpayout_reconciliation_reportonAccountSession.componentsandAccountSession.create().$params.component
- Remove support for
-
#1920 Move
V2.EventAPI resources toV2.Core.Events- ⚠️ Move all V2 Event-related resources (
Event,RelatedObject, etc) fromStripe\V2toStripe\V2\Core. They now correctly match their API path and are in line with all other resources. To update your code:
-Stripe\V2\Event +Stripe\V2\Core\Event
- ⚠️ Move all V2 Event-related resources (
-
#1916 Add
StripeContextobject- Add the
StripeContextclass. Previously you could only send a string forstripe-contextheader. - ⚠️ Change
EventNotification(formerly known asThinEvent)'scontextproperty fromstringtoStripeContext
- Add the
-
#1905 Added StripeContext, StripeAccount and StripeVersion to BaseStripeClientInterface
- ⚠️ Add getter methods
getStripeContext,getStripeVersionandgetStripeAccounttoBaseStripeClientInterface. Users with custom StripeClient that implementStripeClientInterface,StripeStreamingClientInterfaceorBaseStripeClientInterfacewill have to add implementations for these methods.
- ⚠️ Add getter methods
-
#1898 ⚠️ Build SDK w/ V2 OpenAPI spec
- ⚠️ The delete methods for v2 APIs (the ones in the
StripeClient.v2namespace) now return aV2DeletedObjectwhich has the id of the object that has been deleted and a string representing the type of the object that has been deleted. - the generated types of some properties in
EventDestinationchanged fromsomething: null|stringtosomething?: string
- ⚠️ The delete methods for v2 APIs (the ones in the
-
#1900, #1912 Update generated code based on incoming API changes in the
2025-09-30.cloverAPI version.- ⚠️ Remove support for
linkandpay_by_bankonPaymentMethod.update().$params - ⚠️ Remove support for
coupononDiscount,PromotionCode.create().$params, andPromotionCode. UseDiscount.source.coupon,PromotionCode.create().$params.promotion.code, andPromotionCode.promotion.codeinstead. - ⚠️ Remove support for values
saturdayandsundayfrom enumAccount.settings.payouts.schedule.weekly_payout_days - ⚠️ Remove support for
iterationsonInvoice.create_preview().$params.schedule_detail.phase,SubscriptionSchedule.create().$params.phase, andSubscriptionSchedule.update().$params.phase - Add support for new value
preventedon enumDispute.status - Add support for new resource
BalanceSettings - Add support for
retrieveandupdatemethods on resourceBalanceSettings - Add support for new values
external_requestandunsupported_business_typeon enumsAccount.future_requirements.errors[].code,Account.requirements.errors[].code,BankAccount.future_requirements.errors[].code,BankAccount.requirements.errors[].code,Capability.future_requirements.errors[].code,Capability.requirements.errors[].code,Person.future_requirements.errors[].code, andPerson.requirements.errors[].code - Add support for
sourceonDiscount - Add support for
mb_way_paymentsonAccount.capabilities,Account.create().$params.capability, andAccount.update().$params.capability - Add support for
trial_update_behavioronBillingPortal.Configuration.features.subscription_update,BillingPortal\Configuration.create().$params.feature.subscription_update, andBillingPortal\Configuration.update().$params.feature.subscription_update - Add support for
mb_wayonCharge.payment_method_details,ConfirmationToken.create().$params.payment_method_datum,ConfirmationToken.payment_method_preview,PaymentIntent.confirm().$params.payment_method_datum,PaymentIntent.confirm().$params.payment_method_option,PaymentIntent.create().$params.payment_method_datum,PaymentIntent.create().$params.payment_method_option,PaymentIntent.payment_method_options,PaymentIntent.update().$params.payment_method_datum,PaymentIntent.update().$params.payment_method_option,PaymentMethod.create().$params,PaymentMethod,SetupIntent.confirm().$params.payment_method_datum,SetupIntent.create().$params.payment_method_datum, andSetupIntent.update().$params.payment_method_datum - Add support for
branding_settingsandname_collectiononCheckout.SessionandCheckout\Session.create().$params - Add support for
excluded_payment_method_typesonCheckout.Session,Checkout\Session.create().$params,PaymentIntent.confirm().$params, andPaymentIntent.update().$params - Add support for
unit_labelonCheckout\Session.create().$params.line_item.price_datum.product_datum,Invoice.add_lines().$params.line.price_datum.product_datum,Invoice.update_lines().$params.line.price_datum.product_datum,InvoiceLineItem.update().$params.price_datum.product_datum, andPaymentLink.create().$params.line_item.price_datum.product_datum - Add support for
alma,billie, andsatispayonCheckout.Session.payment_method_optionsandCheckout\Session.create().$params.payment_method_option - Add support for
demo_payonCheckout\Session.create().$params.payment_method_option - Add support for
capture_methodonCheckout.Session.payment_method_options.affirm,Checkout.Session.payment_method_options.afterpay_clearpay,Checkout.Session.payment_method_options.amazon_pay,Checkout.Session.payment_method_options.card,Checkout.Session.payment_method_options.cashapp,Checkout.Session.payment_method_options.klarna,Checkout.Session.payment_method_options.link,Checkout.Session.payment_method_options.mobilepay,Checkout.Session.payment_method_options.revolut_pay,Checkout\Session.create().$params.payment_method_option.affirm,Checkout\Session.create().$params.payment_method_option.afterpay_clearpay,Checkout\Session.create().$params.payment_method_option.amazon_pay,Checkout\Session.create().$params.payment_method_option.card,Checkout\Session.create().$params.payment_method_option.cashapp,Checkout\Session.create().$params.payment_method_option.klarna,Checkout\Session.create().$params.payment_method_option.link,Checkout\Session.create().$params.payment_method_option.mobilepay, andCheckout\Session.create().$params.payment_method_option.revolut_pay - Add support for
flexibleonCheckout\Session.create().$params.subscription_datum.billing_mode,Invoice.create_preview().$params.schedule_detail.billing_mode,Invoice.create_preview().$params.subscription_detail.billing_mode,Quote.create().$params.subscription_datum.billing_mode,Quote.subscription_data.billing_mode,Subscription.billing_mode,Subscription.create().$params.billing_mode,Subscription.migrate().$params.billing_mode,SubscriptionSchedule.billing_mode, andSubscriptionSchedule.create().$params.billing_mode - Add support for
business_nameandindividual_nameonCheckout.Session.collected_information,Checkout.Session.customer_details,Customer.create().$params,Customer.update().$params, andCustomer - Add support for new values
mb_wayon enumsConfirmationToken.payment_method_preview.typeandPaymentMethod.type - Add support for
chargeback_loss_reason_codeonDispute.payment_method_details.klarna - Add support for
net_amountandproration_detailsonInvoiceItem - Add support for
fraud_disputability_likelihoodandrisk_assessmentonIssuing\Authorization.create().$params - Add support for
second_lineonIssuing.Card - Add support for new values
mb_wayon enumPaymentIntent.excluded_payment_method_types - Add support for
fr_meal_voucher_conecsonPaymentMethodConfiguration.create().$paramsandPaymentMethodConfiguration.update().$params - Add support for
promotiononPromotionCode.create().$paramsandPromotionCode - Add support for new values
acknowledgedandpayment_never_settledon enumReview.closed_reason - Add support for
provideronTax.Settings.defaults - Add support for
bbpos_wisepad3onTerminal.Configuration,Terminal\Configuration.create().$params, andTerminal\Configuration.update().$params - Add support for
address_kana,address_kanji,display_name_kana,display_name_kanji, andphoneonTerminal.Location,Terminal\Location.create().$params, andTerminal\Location.update().$params - Change
Terminal\Location.create().$params.addressto be optional - Change
Terminal\Location.create().$params.display_nameto be optional - Add support for error codes
financial_connections_account_pending_account_numbersandfinancial_connections_account_unavailable_account_numbersonInvoice.last_finalization_error,PaymentIntent.last_payment_error,SetupAttempt.setup_error,SetupIntent.last_setup_error, andStripeError
- ⚠️ Remove support for