Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 9, 2025

Bumps com.stripe:stripe-java from 29.5.0 to 30.0.0.

Release notes

Sourced from com.stripe:stripe-java's releases.

v30.0.0

This release changes the pinned API version to 2025-09-30.clover and contains breaking changes (prefixed with ⚠️ below)

  • #2036 ⚠️ 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 v2 Event. For example, there's now a V1BillingMeterErrorReportTriggeredEventNotification to match the existing V1BillingMeterErrorReportTriggeredEvent. Each notification class defines a fetchEvent() method to retrieve its corresponding event. For events with related objects, there's a fetchRelatedObject() method that performs the API call and casts the response to the correct type.
    • ⚠️ Rename function StripeClient.parseThinEvent to StripeClient.parseEventNotification and remove the Stripe.ThinEvent class.
      • This function now returns a 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 relatedObject property and a fetchRelatedObject() function. They also have a fetchEvent() method to retrieve their corresponding Stripe.Event.*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 the relatedObject property and the fetchRelatedObject() function (but they may be/return null)
  • #2069 Move V2.Event API resources to V2.Core.Events

    • ⚠️ Move the below event related classes from com.stripe.model.v2 to com.stripe.model.v2.core. This enables us to correctly match the API path to the namespace
      • com.stripe.model.v2.Event -> com.stripe.model.v2.core.Event
      • com.stripe.model.v2.EventDestination -> com.stripe.model.v2.core.EventDestination
  • #2057 Add StripeContext object

    • Add the StripeContext class. Previously, you could set the stripe context only as a string via StripeClientBuilder .setStripeContext(). The same method can now take an instance of the StripeContext class as well
    • ⚠️ Change EventNotification (formerly known as ThinEvent)'s context property from string to StripeContext
  • #2041 Throw ApiKeyMissingException instead of IllegalArgumentException for unset API keys

    • ⚠️ throw ApiKeyMissingException instead of IllegalArgumentException when making a request before setting an API key initializing a client without an API key. Tweak the wording of that message to better indicate how to fix.
  • #2039 ⚠️ Build SDK w/ V2 OpenAPI spec

    • ⚠️ The delete methods for v2 APIs (the ones in the 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.
    • ⚠️ Query params on v2 APIs (like limit) are now Long instead of Integer (to match v1 APIs)
    • ⚠️ Deeply nested param hashes with no properties no longer have classes generated for them. Instead, they're typed as Map<String, Object>. Because there were no params, it's unlikely you were using these classes.
  • ⚠️ 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.

    StripeClient client = new 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.

  • #2046 Adds v2 support to RateLimitException

    • ⚠️ The base class of RateLimitException has been changed from InvalidRequestException to ApiException. There is no change to the public interface for the RateLimitException class.
  • #2037 Fix type bounds on request

    • ⚠️ Changes the signature of LiveResponseGetter#request, ApiService#request, and StripeResponseGetter#request to return <T extends StripeObject> instead of <T extends StripeObjectInterface>. This only affects advanced use cases where users are extending StripeObjectInterface with their own objects to deserialize Stripe responses. Those objects will now need to extend StripeObject.
  • #2040, #2058, #2059, #2073 Update generated code based on incoming API changes in the 2025-09-30.clover API version.

    • ⚠️ Remove support for balanceReport and payoutReconciliationReport on AccountSession.components and AccountSessionCreateParams.components
    • ⚠️ Change type of InvoiceCreatePreviewParams.subscription_details.cancelAt, SubscriptionCreateParams.cancelAt and SubscriptionUpdateParams.cancelAt from DateTime to DateTime | enum('max_period_end'|'min_period_end')
    • ⚠️ Remove support for values saturday and sunday from enums AccountCreateParams.settings.payouts.schedule.weeklyPayoutDays and AccountUpdateParams.settings.payouts.schedule.weeklyPayoutDays
    • ⚠️ Remove support for iterations on InvoiceCreatePreviewParams.schedule_details.phases[], SubscriptionScheduleCreateParams.phases[], and SubscriptionScheduleUpdateParams.phases[]
    • ⚠️ Remove support for link and payByBank on PaymentMethodUpdateParams
    • ⚠️ Remove support for coupon on Discount, PromotionCodeCreateParams, and PromotionCode. Use Discount.source.coupon, PromotionCodeCreateParams.promotion.coupon, and PromotionCode.promotion.coupon instead
    • Add support for new resource BalanceSettings
    • Add support for retrieve and update methods on resource BalanceSettings
    • Add support for source on Discount
    • Add support for mbWayPayments on Account.capabilities, AccountCreateParams.capabilities, and AccountUpdateParams.capabilities
    • Add support for trialUpdateBehavior on billingportal.Configuration.features.subscription_update, billingportal.ConfigurationCreateParams.features.subscription_update, and billingportal.ConfigurationUpdateParams.features.subscription_update
    • Add support for mbWay on Charge.payment_method_details, ConfirmationToken.payment_method_preview, ConfirmationTokenCreateParams.payment_method_data, PaymentIntent.payment_method_options, PaymentIntentConfirmParams.payment_method_data, PaymentIntentConfirmParams.payment_method_options, PaymentIntentCreateParams.payment_method_data, PaymentIntentCreateParams.payment_method_options, PaymentIntentUpdateParams.payment_method_data, PaymentIntentUpdateParams.payment_method_options, PaymentMethodCreateParams, PaymentMethod, SetupIntentConfirmParams.payment_method_data, SetupIntentCreateParams.payment_method_data, and SetupIntentUpdateParams.payment_method_data
    • Add support for brandingSettings and nameCollection on checkout.SessionCreateParams and checkout.Session
  • ... (truncated)

    Changelog

    Sourced from com.stripe:stripe-java's changelog.

    30.0.0 - 2025-09-30

    This release changes the pinned API version to 2025-09-30.clover and contains breaking changes (prefixed with ⚠️ below)

    • #2036 ⚠️ 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 v2 Event. For example, there's now a V1BillingMeterErrorReportTriggeredEventNotification to match the existing V1BillingMeterErrorReportTriggeredEvent. Each notification class defines a fetchEvent() method to retrieve its corresponding event. For events with related objects, there's a fetchRelatedObject() method that performs the API call and casts the response to the correct type.
      • ⚠️ Rename function StripeClient.parseThinEvent to StripeClient.parseEventNotification and remove the Stripe.ThinEvent class.
        • This function now returns a 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 relatedObject property and a fetchRelatedObject() function. They also have a fetchEvent() method to retrieve their corresponding Stripe.Event.*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 the relatedObject property and the fetchRelatedObject() function (but they may be/return null)
    • #2069 Move V2.Event API resources to V2.Core.Events

      • ⚠️ Move the below event related classes from com.stripe.model.v2 to com.stripe.model.v2.core. This enables us to correctly match the API path to the namespace
        • com.stripe.model.v2.Event -> com.stripe.model.v2.core.Event
        • com.stripe.model.v2.EventDestination -> com.stripe.model.v2.core.EventDestination
    • #2057 Add StripeContext object

      • Add the StripeContext class. Previously, you could set the stripe context only as a string via StripeClientBuilder .setStripeContext(). The same method can now take an instance of the StripeContext class as well
      • ⚠️ Change EventNotification (formerly known as ThinEvent)'s context property from string to StripeContext
    • #2041 Throw ApiKeyMissingException instead of IllegalArgumentException for unset API keys

      • ⚠️ throw ApiKeyMissingException instead of IllegalArgumentException when making a request before setting an API key initializing a client without an API key. Tweak the wording of that message to better indicate how to fix.
    • #2039 ⚠️ Build SDK w/ V2 OpenAPI spec

      • ⚠️ The delete methods for v2 APIs (the ones in the 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.
      • ⚠️ Query params on v2 APIs (like limit) are now Long instead of Integer (to match v1 APIs)
      • ⚠️ Deeply nested param hashes with no properties no longer have classes generated for them. Instead, they're typed as Map<String, Object>. Because there were no params, it's unlikely you were using these classes.
    • ⚠️ 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.

      StripeClient client = new 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.

  • #2046 Adds v2 support to RateLimitException

    • ⚠️ The base class of RateLimitException has been changed from InvalidRequestException to ApiException. There is no change to the public interface for the RateLimitException class.
  • #2037 Fix type bounds on request

    • ⚠️ Changes the signature of LiveResponseGetter#request, ApiService#request, and StripeResponseGetter#request to return <T extends StripeObject> instead of <T extends StripeObjectInterface>. This only affects advanced use cases where users are extending StripeObjectInterface with their own objects to deserialize Stripe responses. Those objects will now need to extend StripeObject.
  • #2040, #2058, #2059, #2073 Update generated code based on incoming API changes in the 2025-09-30.clover API version.

    • ⚠️ Remove support for balanceReport and payoutReconciliationReport on AccountSession.components and AccountSessionCreateParams.components
    • ⚠️ Change type of InvoiceCreatePreviewParams.subscription_details.cancelAt, SubscriptionCreateParams.cancelAt and SubscriptionUpdateParams.cancelAt from DateTime to DateTime | enum('max_period_end'|'min_period_end')
    • ⚠️ Remove support for values saturday and sunday from enums AccountCreateParams.settings.payouts.schedule.weeklyPayoutDays and AccountUpdateParams.settings.payouts.schedule.weeklyPayoutDays
    • ⚠️ Remove support for iterations on InvoiceCreatePreviewParams.schedule_details.phases[], SubscriptionScheduleCreateParams.phases[], and SubscriptionScheduleUpdateParams.phases[]
    • ⚠️ Remove support for link and payByBank on PaymentMethodUpdateParams
    • ⚠️ Remove support for coupon on Discount, PromotionCodeCreateParams, and PromotionCode. Use Discount.source.coupon, PromotionCodeCreateParams.promotion.coupon, and PromotionCode.promotion.coupon instead
    • Add support for new resource BalanceSettings
    • Add support for retrieve and update methods on resource BalanceSettings
    • Add support for source on Discount
    • Add support for mbWayPayments on Account.capabilities, AccountCreateParams.capabilities, and AccountUpdateParams.capabilities
    • Add support for trialUpdateBehavior on billingportal.Configuration.features.subscription_update, billingportal.ConfigurationCreateParams.features.subscription_update, and billingportal.ConfigurationUpdateParams.features.subscription_update
    • Add support for mbWay on Charge.payment_method_details, ConfirmationToken.payment_method_preview, ConfirmationTokenCreateParams.payment_method_data, PaymentIntent.payment_method_options, PaymentIntentConfirmParams.payment_method_data, PaymentIntentConfirmParams.payment_method_options, PaymentIntentCreateParams.payment_method_data, PaymentIntentCreateParams.payment_method_options, PaymentIntentUpdateParams.payment_method_data, PaymentIntentUpdateParams.payment_method_options, PaymentMethodCreateParams, PaymentMethod, SetupIntentConfirmParams.payment_method_data, SetupIntentCreateParams.payment_method_data, and SetupIntentUpdateParams.payment_method_data
    • Add support for brandingSettings and nameCollection on checkout.SessionCreateParams and checkout.Session
  • ... (truncated)

    Commits
    • 922d825 Bump version to 30.0.0
    • 9bce680 Update generated code for v2028 and 2025-09-30.clover (#2073)
    • d417a16 Update generated code (#2063)
    • 98702eb Clarify what versions of java we support (no change) (#2070)
    • 1d0c0b1 updated generated and manually maintained code to move v2.Event, v2.EventDest...
    • 4e5e72a Fix version script and update to 29.5.0 (#2064)
    • c8dc171 Add StripeContext object (#2057)
    • babe753 Update generated code for v2025 and 2025-09-30.clover (#2059)
    • 2810582 Update generated code for v2025 and 2025-09-30.clover (#2058)
    • 79b31f5 ⚠️ Add strongly typed EventNotifications (#2036)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

    Bumps [com.stripe:stripe-java](https://github.com/stripe/stripe-java) from 29.5.0 to 30.0.0.
    - [Release notes](https://github.com/stripe/stripe-java/releases)
    - [Changelog](https://github.com/stripe/stripe-java/blob/master/CHANGELOG.md)
    - [Commits](stripe/stripe-java@v29.5.0...v30.0.0)
    
    ---
    updated-dependencies:
    - dependency-name: com.stripe:stripe-java
      dependency-version: 30.0.0
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    @dependabot dependabot bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Oct 9, 2025
    @sonarqubecloud
    Copy link

    sonarqubecloud bot commented Oct 9, 2025

    @dependabot @github
    Copy link
    Contributor Author

    dependabot bot commented on behalf of github Oct 30, 2025

    Superseded by #3201.

    @dependabot dependabot bot closed this Oct 30, 2025
    @dependabot dependabot bot deleted the dependabot/maven/pgp-keys-map-test1/com.stripe-stripe-java-30.0.0 branch October 30, 2025 01:05
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    dependencies Pull requests that update a dependency file java Pull requests that update java code

    Development

    Successfully merging this pull request may close these issues.

    2 participants