stripe 18.1.0.pre.alpha.2 → 18.1.0.pre.alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30ad9aa4a31acdb141705e03d7f76000d1d5cad439a8d392aa422f2c1d99ad8d
4
- data.tar.gz: '00484e0942ec1c2458128d51d3983692e1cdf3ceeb6bdf324329c95a6982eae0'
3
+ metadata.gz: 97a1b7ee859389a766f9d5dfe163991f94adeefbb53a3bb93e1237615ae6b26e
4
+ data.tar.gz: a2a1145066547ed5292d44129f2d901e9eba69d71916a6c9a3057e71ab33f1c9
5
5
  SHA512:
6
- metadata.gz: 9287d0d90909a4ed178f7027e408d882ee840872a7d8417c44c4f44bc5bd061c6605e0590effe273a468eb691386ca60c12a08293cfc5612b091eaeb054ca0e3
7
- data.tar.gz: 66316ce86c4792cea094db8ab4e6c87c5cc2b9c42d8ff6e2ba805fece43ef596704abe5bfe15923df779d5c117981812704f3d3d8660d3b382bb93f3eff62cec
6
+ metadata.gz: 7ee1bccb2cca1da1c49c18a8968e598c984fc6f4f7bc5cd69b2ff0a5cf324c2a3f2b9d3a571decb4dbef23d9171d9de38ec551ccd271bccce4eb9f3f9a704ff9
7
+ data.tar.gz: 80d956592b1271a0a7019585e29b65882538dba037e5566eafff2ffcb6ba444eb71faac66f7d733ce86c0e4c7d8d7c96c1df24cd7b2792185adbf172cc663a03
@@ -124,6 +124,7 @@ module Stripe
124
124
  Privacy::RedactionJob.object_name => Privacy::RedactionJob,
125
125
  Privacy::RedactionJobValidationError.object_name => Privacy::RedactionJobValidationError,
126
126
  Product.object_name => Product,
127
+ ProductCatalog::TrialOffer.object_name => ProductCatalog::TrialOffer,
127
128
  ProductFeature.object_name => ProductFeature,
128
129
  PromotionCode.object_name => PromotionCode,
129
130
  Quote.object_name => Quote,
@@ -5517,6 +5517,15 @@ module Stripe
5517
5517
  end
5518
5518
  end
5519
5519
 
5520
+ class PaymentsOrchestration < ::Stripe::RequestParams
5521
+ # Whether this feature is enabled.
5522
+ attr_accessor :enabled
5523
+
5524
+ def initialize(enabled: nil)
5525
+ @enabled = enabled
5526
+ end
5527
+ end
5528
+
5520
5529
  class RadarOptions < ::Stripe::RequestParams
5521
5530
  # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
5522
5531
  attr_accessor :session
@@ -5702,6 +5711,8 @@ module Stripe
5702
5711
  attr_accessor :transfer_group
5703
5712
  # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
5704
5713
  attr_accessor :use_stripe_sdk
5714
+ # When you enable this parameter, this PaymentIntent will route your payment to processors that you configure in the dashboard.
5715
+ attr_accessor :payments_orchestration
5705
5716
 
5706
5717
  def initialize(
5707
5718
  allocated_funds: nil,
@@ -5743,7 +5754,8 @@ module Stripe
5743
5754
  statement_descriptor_suffix: nil,
5744
5755
  transfer_data: nil,
5745
5756
  transfer_group: nil,
5746
- use_stripe_sdk: nil
5757
+ use_stripe_sdk: nil,
5758
+ payments_orchestration: nil
5747
5759
  )
5748
5760
  @allocated_funds = allocated_funds
5749
5761
  @amount = amount
@@ -5785,6 +5797,7 @@ module Stripe
5785
5797
  @transfer_data = transfer_data
5786
5798
  @transfer_group = transfer_group
5787
5799
  @use_stripe_sdk = use_stripe_sdk
5800
+ @payments_orchestration = payments_orchestration
5788
5801
  end
5789
5802
  end
5790
5803
  end
@@ -0,0 +1,60 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module ProductCatalog
6
+ class TrialOfferCreateParams < ::Stripe::RequestParams
7
+ class Duration < ::Stripe::RequestParams
8
+ class Relative < ::Stripe::RequestParams
9
+ # The number of recurring price's interval to apply for the trial period.
10
+ attr_accessor :iterations
11
+
12
+ def initialize(iterations: nil)
13
+ @iterations = iterations
14
+ end
15
+ end
16
+ # The relative duration of the trial period computed as the number of recurring price intervals.
17
+ attr_accessor :relative
18
+ # Specifies how the trial offer duration is determined.
19
+ attr_accessor :type
20
+
21
+ def initialize(relative: nil, type: nil)
22
+ @relative = relative
23
+ @type = type
24
+ end
25
+ end
26
+
27
+ class EndBehavior < ::Stripe::RequestParams
28
+ class Transition < ::Stripe::RequestParams
29
+ # The price to transition the recurring item to when the trial offer ends.
30
+ attr_accessor :price
31
+
32
+ def initialize(price: nil)
33
+ @price = price
34
+ end
35
+ end
36
+ # The transition to apply when the trial offer ends.
37
+ attr_accessor :transition
38
+
39
+ def initialize(transition: nil)
40
+ @transition = transition
41
+ end
42
+ end
43
+ # Duration of one service period of the trial.
44
+ attr_accessor :duration
45
+ # Define behavior that occurs at the end of the trial.
46
+ attr_accessor :end_behavior
47
+ # Specifies which fields in the response should be expanded.
48
+ attr_accessor :expand
49
+ # Price configuration during the trial period (amount, billing scheme, etc).
50
+ attr_accessor :price
51
+
52
+ def initialize(duration: nil, end_behavior: nil, expand: nil, price: nil)
53
+ @duration = duration
54
+ @end_behavior = end_behavior
55
+ @expand = expand
56
+ @price = price
57
+ end
58
+ end
59
+ end
60
+ end
data/lib/stripe/params.rb CHANGED
@@ -402,6 +402,7 @@ require "stripe/params/privacy/redaction_job_run_params"
402
402
  require "stripe/params/privacy/redaction_job_update_params"
403
403
  require "stripe/params/privacy/redaction_job_validate_params"
404
404
  require "stripe/params/privacy/redaction_job_validation_error_list_params"
405
+ require "stripe/params/product_catalog/trial_offer_create_params"
405
406
  require "stripe/params/product_create_params"
406
407
  require "stripe/params/product_delete_params"
407
408
  require "stripe/params/product_feature_create_params"
@@ -157,14 +157,6 @@ module Stripe
157
157
  attr_reader :amount_discount
158
158
  # The total before any discounts or taxes are applied.
159
159
  attr_reader :amount_subtotal
160
- # The total after discounts but before taxes are applied.
161
- attr_reader :amount_subtotal_after_discount
162
- # The total after discounts and taxes.
163
- attr_reader :amount_total
164
- # The per-unit amount of the item after discounts but before taxes are applied.
165
- attr_reader :unit_amount_after_discount
166
- # The per-unit discount amount. If no discount were applied, defaults to 0.
167
- attr_reader :unit_discount
168
160
 
169
161
  def self.inner_class_types
170
162
  @inner_class_types = {}
@@ -291,14 +283,14 @@ module Stripe
291
283
  @field_remappings = {}
292
284
  end
293
285
  end
294
- # The amount discount of the total details.
295
- attr_reader :amount_discount
296
286
  # The amount fulfillment of the total details.
297
287
  attr_reader :amount_fulfillment
298
288
  # The amount tax of the total details.
299
289
  attr_reader :amount_tax
300
- # Total of all items after discounts but before taxes are applied.
301
- attr_reader :amount_subtotal_after_discount
290
+ # The amount of order-level discounts applied to the cart. The total discount amount for this session can be computed by summing the cart discount and the item discounts.
291
+ attr_reader :amount_cart_discount
292
+ # The amount of item-level discounts applied to the cart. The total discount amount for this session can be computed by summing the cart discount and the item discounts.
293
+ attr_reader :amount_items_discount
302
294
  # The applicable fees of the total details.
303
295
  attr_reader :applicable_fees
304
296
 
@@ -3459,6 +3459,19 @@ module Stripe
3459
3459
  @field_remappings = {}
3460
3460
  end
3461
3461
  end
3462
+
3463
+ class PaymentsOrchestration < ::Stripe::StripeObject
3464
+ # Whether this feature is enabled.
3465
+ attr_reader :enabled
3466
+
3467
+ def self.inner_class_types
3468
+ @inner_class_types = {}
3469
+ end
3470
+
3471
+ def self.field_remappings
3472
+ @field_remappings = {}
3473
+ end
3474
+ end
3462
3475
  # Allocated Funds configuration for this PaymentIntent.
3463
3476
  attr_reader :allocated_funds
3464
3477
  # Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
@@ -3573,6 +3586,8 @@ module Stripe
3573
3586
  attr_reader :transfer_data
3574
3587
  # A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
3575
3588
  attr_reader :transfer_group
3589
+ # When you enable this parameter, this PaymentIntent will route your payment to processors that you configure in the dashboard.
3590
+ attr_reader :payments_orchestration
3576
3591
 
3577
3592
  # Manually reconcile the remaining amount for a customer_balance PaymentIntent.
3578
3593
  def apply_customer_balance(params = {}, opts = {})
@@ -3947,6 +3962,7 @@ module Stripe
3947
3962
  processing: Processing,
3948
3963
  shipping: Shipping,
3949
3964
  transfer_data: TransferData,
3965
+ payments_orchestration: PaymentsOrchestration,
3950
3966
  }
3951
3967
  end
3952
3968
 
@@ -0,0 +1,101 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module ProductCatalog
6
+ # Resource for the TrialOffer API, used to describe a subscription item's trial period settings.
7
+ # Renders a TrialOffer object that describes the price, duration, end_behavior of a trial offer.
8
+ class TrialOffer < APIResource
9
+ extend Stripe::APIOperations::Create
10
+
11
+ OBJECT_NAME = "product_catalog.trial_offer"
12
+ def self.object_name
13
+ "product_catalog.trial_offer"
14
+ end
15
+
16
+ class Duration < ::Stripe::StripeObject
17
+ class Relative < ::Stripe::StripeObject
18
+ # The number of iterations of the price's interval for this trial offer.
19
+ attr_reader :iterations
20
+
21
+ def self.inner_class_types
22
+ @inner_class_types = {}
23
+ end
24
+
25
+ def self.field_remappings
26
+ @field_remappings = {}
27
+ end
28
+ end
29
+ # Attribute for field relative
30
+ attr_reader :relative
31
+ # The type of trial offer duration.
32
+ attr_reader :type
33
+
34
+ def self.inner_class_types
35
+ @inner_class_types = { relative: Relative }
36
+ end
37
+
38
+ def self.field_remappings
39
+ @field_remappings = {}
40
+ end
41
+ end
42
+
43
+ class EndBehavior < ::Stripe::StripeObject
44
+ class Transition < ::Stripe::StripeObject
45
+ # The new price to use at the end of the trial offer period.
46
+ attr_reader :price
47
+
48
+ def self.inner_class_types
49
+ @inner_class_types = {}
50
+ end
51
+
52
+ def self.field_remappings
53
+ @field_remappings = {}
54
+ end
55
+ end
56
+ # Attribute for field transition
57
+ attr_reader :transition
58
+ # The type of behavior when the trial offer ends.
59
+ attr_reader :type
60
+
61
+ def self.inner_class_types
62
+ @inner_class_types = { transition: Transition }
63
+ end
64
+
65
+ def self.field_remappings
66
+ @field_remappings = {}
67
+ end
68
+ end
69
+ # Attribute for field duration
70
+ attr_reader :duration
71
+ # Attribute for field end_behavior
72
+ attr_reader :end_behavior
73
+ # Unique identifier for the object.
74
+ attr_reader :id
75
+ # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
76
+ attr_reader :livemode
77
+ # String representing the object's type. Objects of the same type share the same value.
78
+ attr_reader :object
79
+ # The price during the trial offer.
80
+ attr_reader :price
81
+
82
+ # Creates a trial offer.
83
+ def self.create(params = {}, opts = {})
84
+ request_stripe_object(
85
+ method: :post,
86
+ path: "/v1/product_catalog/trial_offers",
87
+ params: params,
88
+ opts: opts
89
+ )
90
+ end
91
+
92
+ def self.inner_class_types
93
+ @inner_class_types = { duration: Duration, end_behavior: EndBehavior }
94
+ end
95
+
96
+ def self.field_remappings
97
+ @field_remappings = {}
98
+ end
99
+ end
100
+ end
101
+ end
@@ -112,6 +112,7 @@ require "stripe/resources/price"
112
112
  require "stripe/resources/privacy/redaction_job"
113
113
  require "stripe/resources/privacy/redaction_job_validation_error"
114
114
  require "stripe/resources/product"
115
+ require "stripe/resources/product_catalog/trial_offer"
115
116
  require "stripe/resources/product_feature"
116
117
  require "stripe/resources/promotion_code"
117
118
  require "stripe/resources/quote"
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module ProductCatalog
6
+ class TrialOfferService < StripeService
7
+ # Creates a trial offer.
8
+ def create(params = {}, opts = {})
9
+ request(
10
+ method: :post,
11
+ path: "/v1/product_catalog/trial_offers",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class ProductCatalogService < StripeService
6
+ attr_reader :trial_offers
7
+
8
+ def initialize(requestor)
9
+ super
10
+ @trial_offers = Stripe::ProductCatalog::TrialOfferService.new(@requestor)
11
+ end
12
+ end
13
+ end
@@ -4,7 +4,7 @@ module Stripe
4
4
  class V1Services < StripeService
5
5
  # v1 accessors: The beginning of the section generated from our OpenAPI spec
6
6
  attr_reader :accounts
7
- attr_reader :account_links, :account_notices, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_settings, :balance_transactions, :balance_transfers, :billing, :billing_portal, :capital, :charges, :checkout, :climate, :confirmation_tokens, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :delegated_checkout, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :external_accounts, :files, :file_links, :financial_connections, :forwarding, :fx_quotes, :identity, :invoices, :invoice_items, :invoice_payments, :invoice_rendering_templates, :issuing, :mandates, :margins, :orders, :payment_attempt_records, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payment_records, :payouts, :plans, :prices, :privacy, :products, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :setup_attempts, :setup_intents, :shipping_rates, :sigma, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :test_helpers, :tokens, :topups, :transfers, :treasury, :webhook_endpoints
7
+ attr_reader :account_links, :account_notices, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_settings, :balance_transactions, :balance_transfers, :billing, :billing_portal, :capital, :charges, :checkout, :climate, :confirmation_tokens, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :delegated_checkout, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :external_accounts, :files, :file_links, :financial_connections, :forwarding, :fx_quotes, :identity, :invoices, :invoice_items, :invoice_payments, :invoice_rendering_templates, :issuing, :mandates, :margins, :orders, :payment_attempt_records, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payment_records, :payouts, :plans, :prices, :privacy, :products, :product_catalog, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :setup_attempts, :setup_intents, :shipping_rates, :sigma, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :test_helpers, :tokens, :topups, :transfers, :treasury, :webhook_endpoints
8
8
  # v1 accessors: The end of the section generated from our OpenAPI spec
9
9
 
10
10
  # OAuthService is manually maintained, as it has special behaviors
@@ -69,6 +69,7 @@ module Stripe
69
69
  @prices = Stripe::PriceService.new(@requestor)
70
70
  @privacy = Stripe::PrivacyService.new(@requestor)
71
71
  @products = Stripe::ProductService.new(@requestor)
72
+ @product_catalog = Stripe::ProductCatalogService.new(@requestor)
72
73
  @promotion_codes = Stripe::PromotionCodeService.new(@requestor)
73
74
  @quotes = Stripe::QuoteService.new(@requestor)
74
75
  @radar = Stripe::RadarService.new(@requestor)
@@ -122,6 +122,8 @@ require "stripe/services/price_service"
122
122
  require "stripe/services/privacy/redaction_job_service"
123
123
  require "stripe/services/privacy/redaction_job_validation_error_service"
124
124
  require "stripe/services/privacy_service"
125
+ require "stripe/services/product_catalog/trial_offer_service"
126
+ require "stripe/services/product_catalog_service"
125
127
  require "stripe/services/product_feature_service"
126
128
  require "stripe/services/product_service"
127
129
  require "stripe/services/promotion_code_service"
@@ -171,7 +171,19 @@ module Stripe
171
171
  end
172
172
 
173
173
  def [](key)
174
- @values[key.to_sym]
174
+ key_sym = key.to_sym
175
+ return @values[key_sym] if @values.key?(key_sym)
176
+
177
+ # super specific one-off case to help users debug this property disappearing
178
+ # see also: https://go/j/DEVSDK-2835
179
+ if is_a?(Invoice) && key_sym == :payment_intent
180
+ raise KeyError,
181
+ "The 'payment_intent' attribute is no longer available on Invoice objects. " \
182
+ "See the docs for more details: https://docs.stripe.com/changelog/basil/2025-03-31/" \
183
+ "add-support-for-multiple-partial-payments-on-invoices#why-is-this-a-breaking-change"
184
+ end
185
+
186
+ nil
175
187
  end
176
188
 
177
189
  def []=(key, value)
@@ -432,6 +444,15 @@ module Stripe
432
444
  begin
433
445
  super
434
446
  rescue NoMethodError => e
447
+ # super specific one-off case to help users debug this property disappearing
448
+ # see also: https://go/j/DEVSDK-2835
449
+ if is_a?(Invoice) && name == :payment_intent
450
+ raise NoMethodError,
451
+ "The 'payment_intent' attribute is no longer available on Invoice objects. " \
452
+ "See the docs for more details: https://docs.stripe.com/changelog/basil/2025-03-31/" \
453
+ "add-support-for-multiple-partial-payments-on-invoices#why-is-this-a-breaking-change"
454
+ end
455
+
435
456
  # If we notice the accessed name of our set of transient values we can
436
457
  # give the user a slightly more helpful error message. If not, just
437
458
  # raise right away.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "18.1.0-alpha.2"
4
+ VERSION = "18.1.0-alpha.3"
5
5
  end
data/rbi/stripe.rbi CHANGED
@@ -18097,18 +18097,6 @@ module Stripe
18097
18097
  # The total before any discounts or taxes are applied.
18098
18098
  sig { returns(Integer) }
18099
18099
  def amount_subtotal; end
18100
- # The total after discounts but before taxes are applied.
18101
- sig { returns(Integer) }
18102
- def amount_subtotal_after_discount; end
18103
- # The total after discounts and taxes.
18104
- sig { returns(Integer) }
18105
- def amount_total; end
18106
- # The per-unit amount of the item after discounts but before taxes are applied.
18107
- sig { returns(Integer) }
18108
- def unit_amount_after_discount; end
18109
- # The per-unit discount amount. If no discount were applied, defaults to 0.
18110
- sig { returns(Integer) }
18111
- def unit_discount; end
18112
18100
  def self.inner_class_types
18113
18101
  @inner_class_types = {}
18114
18102
  end
@@ -18236,18 +18224,18 @@ module Stripe
18236
18224
  @field_remappings = {}
18237
18225
  end
18238
18226
  end
18239
- # The amount discount of the total details.
18240
- sig { returns(T.nilable(Integer)) }
18241
- def amount_discount; end
18242
18227
  # The amount fulfillment of the total details.
18243
18228
  sig { returns(T.nilable(Integer)) }
18244
18229
  def amount_fulfillment; end
18245
18230
  # The amount tax of the total details.
18246
18231
  sig { returns(T.nilable(Integer)) }
18247
18232
  def amount_tax; end
18248
- # Total of all items after discounts but before taxes are applied.
18233
+ # The amount of order-level discounts applied to the cart. The total discount amount for this session can be computed by summing the cart discount and the item discounts.
18234
+ sig { returns(T.nilable(Integer)) }
18235
+ def amount_cart_discount; end
18236
+ # The amount of item-level discounts applied to the cart. The total discount amount for this session can be computed by summing the cart discount and the item discounts.
18249
18237
  sig { returns(T.nilable(Integer)) }
18250
- def amount_subtotal_after_discount; end
18238
+ def amount_items_discount; end
18251
18239
  # The applicable fees of the total details.
18252
18240
  sig { returns(T.nilable(T::Array[ApplicableFee])) }
18253
18241
  def applicable_fees; end
@@ -33347,6 +33335,17 @@ module Stripe
33347
33335
  @field_remappings = {}
33348
33336
  end
33349
33337
  end
33338
+ class PaymentsOrchestration < ::Stripe::StripeObject
33339
+ # Whether this feature is enabled.
33340
+ sig { returns(T::Boolean) }
33341
+ def enabled; end
33342
+ def self.inner_class_types
33343
+ @inner_class_types = {}
33344
+ end
33345
+ def self.field_remappings
33346
+ @field_remappings = {}
33347
+ end
33348
+ end
33350
33349
  # Allocated Funds configuration for this PaymentIntent.
33351
33350
  sig { returns(T.nilable(AllocatedFunds)) }
33352
33351
  def allocated_funds; end
@@ -33510,6 +33509,9 @@ module Stripe
33510
33509
  # A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
33511
33510
  sig { returns(T.nilable(String)) }
33512
33511
  def transfer_group; end
33512
+ # When you enable this parameter, this PaymentIntent will route your payment to processors that you configure in the dashboard.
33513
+ sig { returns(T.nilable(PaymentsOrchestration)) }
33514
+ def payments_orchestration; end
33513
33515
  # Manually reconcile the remaining amount for a customer_balance PaymentIntent.
33514
33516
  sig {
33515
33517
  params(params: T.any(::Stripe::PaymentIntentApplyCustomerBalanceParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::PaymentIntent)
@@ -41885,6 +41887,88 @@ module Stripe
41885
41887
  end
41886
41888
  end
41887
41889
  # typed: true
41890
+ module Stripe
41891
+ module ProductCatalog
41892
+ # Resource for the TrialOffer API, used to describe a subscription item's trial period settings.
41893
+ # Renders a TrialOffer object that describes the price, duration, end_behavior of a trial offer.
41894
+ class TrialOffer < APIResource
41895
+ class Duration < ::Stripe::StripeObject
41896
+ class Relative < ::Stripe::StripeObject
41897
+ # The number of iterations of the price's interval for this trial offer.
41898
+ sig { returns(Integer) }
41899
+ def iterations; end
41900
+ def self.inner_class_types
41901
+ @inner_class_types = {}
41902
+ end
41903
+ def self.field_remappings
41904
+ @field_remappings = {}
41905
+ end
41906
+ end
41907
+ # Attribute for field relative
41908
+ sig { returns(Relative) }
41909
+ def relative; end
41910
+ # The type of trial offer duration.
41911
+ sig { returns(String) }
41912
+ def type; end
41913
+ def self.inner_class_types
41914
+ @inner_class_types = {relative: Relative}
41915
+ end
41916
+ def self.field_remappings
41917
+ @field_remappings = {}
41918
+ end
41919
+ end
41920
+ class EndBehavior < ::Stripe::StripeObject
41921
+ class Transition < ::Stripe::StripeObject
41922
+ # The new price to use at the end of the trial offer period.
41923
+ sig { returns(String) }
41924
+ def price; end
41925
+ def self.inner_class_types
41926
+ @inner_class_types = {}
41927
+ end
41928
+ def self.field_remappings
41929
+ @field_remappings = {}
41930
+ end
41931
+ end
41932
+ # Attribute for field transition
41933
+ sig { returns(Transition) }
41934
+ def transition; end
41935
+ # The type of behavior when the trial offer ends.
41936
+ sig { returns(String) }
41937
+ def type; end
41938
+ def self.inner_class_types
41939
+ @inner_class_types = {transition: Transition}
41940
+ end
41941
+ def self.field_remappings
41942
+ @field_remappings = {}
41943
+ end
41944
+ end
41945
+ # Attribute for field duration
41946
+ sig { returns(Duration) }
41947
+ def duration; end
41948
+ # Attribute for field end_behavior
41949
+ sig { returns(EndBehavior) }
41950
+ def end_behavior; end
41951
+ # Unique identifier for the object.
41952
+ sig { returns(String) }
41953
+ def id; end
41954
+ # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
41955
+ sig { returns(T::Boolean) }
41956
+ def livemode; end
41957
+ # String representing the object's type. Objects of the same type share the same value.
41958
+ sig { returns(String) }
41959
+ def object; end
41960
+ # The price during the trial offer.
41961
+ sig { returns(T.any(String, ::Stripe::Price)) }
41962
+ def price; end
41963
+ # Creates a trial offer.
41964
+ sig {
41965
+ params(params: T.any(::Stripe::ProductCatalog::TrialOfferCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::ProductCatalog::TrialOffer)
41966
+ }
41967
+ def self.create(params = {}, opts = {}); end
41968
+ end
41969
+ end
41970
+ end
41971
+ # typed: true
41888
41972
  module Stripe
41889
41973
  # Products describe the specific goods or services you offer to your customers.
41890
41974
  # For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product.
@@ -72070,6 +72154,7 @@ module Stripe
72070
72154
  attr_reader :prices
72071
72155
  attr_reader :privacy
72072
72156
  attr_reader :products
72157
+ attr_reader :product_catalog
72073
72158
  attr_reader :promotion_codes
72074
72159
  attr_reader :quotes
72075
72160
  attr_reader :radar
@@ -75388,6 +75473,24 @@ module Stripe
75388
75473
  end
75389
75474
  end
75390
75475
  # typed: true
75476
+ module Stripe
75477
+ class ProductCatalogService < StripeService
75478
+ attr_reader :trial_offers
75479
+ end
75480
+ end
75481
+ # typed: true
75482
+ module Stripe
75483
+ module ProductCatalog
75484
+ class TrialOfferService < StripeService
75485
+ # Creates a trial offer.
75486
+ sig {
75487
+ params(params: T.any(::Stripe::ProductCatalog::TrialOfferCreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(::Stripe::ProductCatalog::TrialOffer)
75488
+ }
75489
+ def create(params = {}, opts = {}); end
75490
+ end
75491
+ end
75492
+ end
75493
+ # typed: true
75391
75494
  module Stripe
75392
75495
  class PromotionCodeService < StripeService
75393
75496
  # A promotion code points to an underlying promotion. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.
@@ -137383,6 +137486,15 @@ module Stripe
137383
137486
  zip: nil
137384
137487
  ); end
137385
137488
  end
137489
+ class PaymentsOrchestration < ::Stripe::RequestParams
137490
+ # Whether this feature is enabled.
137491
+ sig { returns(T::Boolean) }
137492
+ def enabled; end
137493
+ sig { params(_enabled: T::Boolean).returns(T::Boolean) }
137494
+ def enabled=(_enabled); end
137495
+ sig { params(enabled: T::Boolean).void }
137496
+ def initialize(enabled: nil); end
137497
+ end
137386
137498
  class RadarOptions < ::Stripe::RequestParams
137387
137499
  # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
137388
137500
  sig { returns(T.nilable(String)) }
@@ -137746,8 +137858,15 @@ module Stripe
137746
137858
  def use_stripe_sdk; end
137747
137859
  sig { params(_use_stripe_sdk: T.nilable(T::Boolean)).returns(T.nilable(T::Boolean)) }
137748
137860
  def use_stripe_sdk=(_use_stripe_sdk); end
137861
+ # When you enable this parameter, this PaymentIntent will route your payment to processors that you configure in the dashboard.
137862
+ sig { returns(T.nilable(PaymentIntentCreateParams::PaymentsOrchestration)) }
137863
+ def payments_orchestration; end
137749
137864
  sig {
137750
- params(allocated_funds: T.nilable(PaymentIntentCreateParams::AllocatedFunds), amount: Integer, amount_details: T.nilable(PaymentIntentCreateParams::AmountDetails), application_fee_amount: T.nilable(Integer), automatic_payment_methods: T.nilable(PaymentIntentCreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), excluded_payment_method_types: T.nilable(T::Array[String]), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), hooks: T.nilable(PaymentIntentCreateParams::Hooks), mandate: T.nilable(String), mandate_data: T.nilable(T.any(String, PaymentIntentCreateParams::MandateData)), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(PaymentIntentCreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(PaymentIntentCreateParams::PaymentMethodData), payment_method_options: T.nilable(PaymentIntentCreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(PaymentIntentCreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(PaymentIntentCreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(PaymentIntentCreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void
137865
+ params(_payments_orchestration: T.nilable(PaymentIntentCreateParams::PaymentsOrchestration)).returns(T.nilable(PaymentIntentCreateParams::PaymentsOrchestration))
137866
+ }
137867
+ def payments_orchestration=(_payments_orchestration); end
137868
+ sig {
137869
+ params(allocated_funds: T.nilable(PaymentIntentCreateParams::AllocatedFunds), amount: Integer, amount_details: T.nilable(PaymentIntentCreateParams::AmountDetails), application_fee_amount: T.nilable(Integer), automatic_payment_methods: T.nilable(PaymentIntentCreateParams::AutomaticPaymentMethods), capture_method: T.nilable(String), confirm: T.nilable(T::Boolean), confirmation_method: T.nilable(String), confirmation_token: T.nilable(String), currency: String, customer: T.nilable(String), customer_account: T.nilable(String), description: T.nilable(String), error_on_requires_action: T.nilable(T::Boolean), excluded_payment_method_types: T.nilable(T::Array[String]), expand: T.nilable(T::Array[String]), fx_quote: T.nilable(String), hooks: T.nilable(PaymentIntentCreateParams::Hooks), mandate: T.nilable(String), mandate_data: T.nilable(T.any(String, PaymentIntentCreateParams::MandateData)), metadata: T.nilable(T::Hash[String, String]), off_session: T.nilable(T.any(T::Boolean, String)), on_behalf_of: T.nilable(String), payment_details: T.nilable(PaymentIntentCreateParams::PaymentDetails), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(PaymentIntentCreateParams::PaymentMethodData), payment_method_options: T.nilable(PaymentIntentCreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), radar_options: T.nilable(PaymentIntentCreateParams::RadarOptions), receipt_email: T.nilable(String), return_url: T.nilable(String), secret_key_confirmation: T.nilable(String), setup_future_usage: T.nilable(String), shipping: T.nilable(PaymentIntentCreateParams::Shipping), statement_descriptor: T.nilable(String), statement_descriptor_suffix: T.nilable(String), transfer_data: T.nilable(PaymentIntentCreateParams::TransferData), transfer_group: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean), payments_orchestration: T.nilable(PaymentIntentCreateParams::PaymentsOrchestration)).void
137751
137870
  }
137752
137871
  def initialize(
137753
137872
  allocated_funds: nil,
@@ -137789,7 +137908,8 @@ module Stripe
137789
137908
  statement_descriptor_suffix: nil,
137790
137909
  transfer_data: nil,
137791
137910
  transfer_group: nil,
137792
- use_stripe_sdk: nil
137911
+ use_stripe_sdk: nil,
137912
+ payments_orchestration: nil
137793
137913
  ); end
137794
137914
  end
137795
137915
  end
@@ -168642,6 +168762,90 @@ module Stripe
168642
168762
  end
168643
168763
  end
168644
168764
  # typed: true
168765
+ module Stripe
168766
+ module ProductCatalog
168767
+ class TrialOfferCreateParams < ::Stripe::RequestParams
168768
+ class Duration < ::Stripe::RequestParams
168769
+ class Relative < ::Stripe::RequestParams
168770
+ # The number of recurring price's interval to apply for the trial period.
168771
+ sig { returns(Integer) }
168772
+ def iterations; end
168773
+ sig { params(_iterations: Integer).returns(Integer) }
168774
+ def iterations=(_iterations); end
168775
+ sig { params(iterations: Integer).void }
168776
+ def initialize(iterations: nil); end
168777
+ end
168778
+ # The relative duration of the trial period computed as the number of recurring price intervals.
168779
+ sig { returns(T.nilable(ProductCatalog::TrialOfferCreateParams::Duration::Relative)) }
168780
+ def relative; end
168781
+ sig {
168782
+ params(_relative: T.nilable(ProductCatalog::TrialOfferCreateParams::Duration::Relative)).returns(T.nilable(ProductCatalog::TrialOfferCreateParams::Duration::Relative))
168783
+ }
168784
+ def relative=(_relative); end
168785
+ # Specifies how the trial offer duration is determined.
168786
+ sig { returns(String) }
168787
+ def type; end
168788
+ sig { params(_type: String).returns(String) }
168789
+ def type=(_type); end
168790
+ sig {
168791
+ params(relative: T.nilable(ProductCatalog::TrialOfferCreateParams::Duration::Relative), type: String).void
168792
+ }
168793
+ def initialize(relative: nil, type: nil); end
168794
+ end
168795
+ class EndBehavior < ::Stripe::RequestParams
168796
+ class Transition < ::Stripe::RequestParams
168797
+ # The price to transition the recurring item to when the trial offer ends.
168798
+ sig { returns(String) }
168799
+ def price; end
168800
+ sig { params(_price: String).returns(String) }
168801
+ def price=(_price); end
168802
+ sig { params(price: String).void }
168803
+ def initialize(price: nil); end
168804
+ end
168805
+ # The transition to apply when the trial offer ends.
168806
+ sig { returns(ProductCatalog::TrialOfferCreateParams::EndBehavior::Transition) }
168807
+ def transition; end
168808
+ sig {
168809
+ params(_transition: ProductCatalog::TrialOfferCreateParams::EndBehavior::Transition).returns(ProductCatalog::TrialOfferCreateParams::EndBehavior::Transition)
168810
+ }
168811
+ def transition=(_transition); end
168812
+ sig {
168813
+ params(transition: ProductCatalog::TrialOfferCreateParams::EndBehavior::Transition).void
168814
+ }
168815
+ def initialize(transition: nil); end
168816
+ end
168817
+ # Duration of one service period of the trial.
168818
+ sig { returns(ProductCatalog::TrialOfferCreateParams::Duration) }
168819
+ def duration; end
168820
+ sig {
168821
+ params(_duration: ProductCatalog::TrialOfferCreateParams::Duration).returns(ProductCatalog::TrialOfferCreateParams::Duration)
168822
+ }
168823
+ def duration=(_duration); end
168824
+ # Define behavior that occurs at the end of the trial.
168825
+ sig { returns(ProductCatalog::TrialOfferCreateParams::EndBehavior) }
168826
+ def end_behavior; end
168827
+ sig {
168828
+ params(_end_behavior: ProductCatalog::TrialOfferCreateParams::EndBehavior).returns(ProductCatalog::TrialOfferCreateParams::EndBehavior)
168829
+ }
168830
+ def end_behavior=(_end_behavior); end
168831
+ # Specifies which fields in the response should be expanded.
168832
+ sig { returns(T.nilable(T::Array[String])) }
168833
+ def expand; end
168834
+ sig { params(_expand: T.nilable(T::Array[String])).returns(T.nilable(T::Array[String])) }
168835
+ def expand=(_expand); end
168836
+ # Price configuration during the trial period (amount, billing scheme, etc).
168837
+ sig { returns(String) }
168838
+ def price; end
168839
+ sig { params(_price: String).returns(String) }
168840
+ def price=(_price); end
168841
+ sig {
168842
+ params(duration: ProductCatalog::TrialOfferCreateParams::Duration, end_behavior: ProductCatalog::TrialOfferCreateParams::EndBehavior, expand: T.nilable(T::Array[String]), price: String).void
168843
+ }
168844
+ def initialize(duration: nil, end_behavior: nil, expand: nil, price: nil); end
168845
+ end
168846
+ end
168847
+ end
168848
+ # typed: true
168645
168849
  module Stripe
168646
168850
  class ProductDeleteParams < ::Stripe::RequestParams; end
168647
168851
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.1.0.pre.alpha.2
4
+ version: 18.1.0.pre.alpha.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-11-20 00:00:00.000000000 Z
11
+ date: 2025-11-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Stripe is the easiest way to accept payments online. See https://stripe.com
14
14
  for details.
@@ -578,6 +578,7 @@ files:
578
578
  - lib/stripe/params/privacy/redaction_job_update_params.rb
579
579
  - lib/stripe/params/privacy/redaction_job_validate_params.rb
580
580
  - lib/stripe/params/privacy/redaction_job_validation_error_list_params.rb
581
+ - lib/stripe/params/product_catalog/trial_offer_create_params.rb
581
582
  - lib/stripe/params/product_create_params.rb
582
583
  - lib/stripe/params/product_delete_params.rb
583
584
  - lib/stripe/params/product_feature_create_params.rb
@@ -1151,6 +1152,7 @@ files:
1151
1152
  - lib/stripe/resources/privacy/redaction_job.rb
1152
1153
  - lib/stripe/resources/privacy/redaction_job_validation_error.rb
1153
1154
  - lib/stripe/resources/product.rb
1155
+ - lib/stripe/resources/product_catalog/trial_offer.rb
1154
1156
  - lib/stripe/resources/product_feature.rb
1155
1157
  - lib/stripe/resources/promotion_code.rb
1156
1158
  - lib/stripe/resources/quote.rb
@@ -1398,6 +1400,8 @@ files:
1398
1400
  - lib/stripe/services/privacy/redaction_job_service.rb
1399
1401
  - lib/stripe/services/privacy/redaction_job_validation_error_service.rb
1400
1402
  - lib/stripe/services/privacy_service.rb
1403
+ - lib/stripe/services/product_catalog/trial_offer_service.rb
1404
+ - lib/stripe/services/product_catalog_service.rb
1401
1405
  - lib/stripe/services/product_feature_service.rb
1402
1406
  - lib/stripe/services/product_service.rb
1403
1407
  - lib/stripe/services/promotion_code_service.rb