stripe 18.1.0.pre.alpha.2 → 18.1.0.pre.alpha.4

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/stripe/event_types.rb +20 -0
  3. data/lib/stripe/events/v2_iam_api_key_created_event.rb +20 -0
  4. data/lib/stripe/events/v2_iam_api_key_default_secret_revealed_event.rb +20 -0
  5. data/lib/stripe/events/v2_iam_api_key_expired_event.rb +20 -0
  6. data/lib/stripe/events/v2_iam_api_key_permissions_updated_event.rb +20 -0
  7. data/lib/stripe/events/v2_iam_api_key_rotated_event.rb +38 -0
  8. data/lib/stripe/events/v2_iam_api_key_updated_event.rb +20 -0
  9. data/lib/stripe/object_types.rb +1 -0
  10. data/lib/stripe/params/account_create_params.rb +4 -4
  11. data/lib/stripe/params/account_person_create_params.rb +4 -4
  12. data/lib/stripe/params/account_person_update_params.rb +4 -4
  13. data/lib/stripe/params/account_update_params.rb +4 -4
  14. data/lib/stripe/params/delegated_checkout/requested_session_create_params.rb +2 -2
  15. data/lib/stripe/params/delegated_checkout/requested_session_update_params.rb +2 -2
  16. data/lib/stripe/params/payment_intent_create_params.rb +14 -1
  17. data/lib/stripe/params/product_catalog/trial_offer_create_params.rb +60 -0
  18. data/lib/stripe/params/token_create_params.rb +8 -8
  19. data/lib/stripe/params/v2/core/event_list_params.rb +4 -1
  20. data/lib/stripe/params/v2/core/event_retrieve_params.rb +8 -1
  21. data/lib/stripe/params.rb +1 -0
  22. data/lib/stripe/resources/account_session.rb +27 -0
  23. data/lib/stripe/resources/delegated_checkout/requested_session.rb +6 -14
  24. data/lib/stripe/resources/payment_intent.rb +16 -0
  25. data/lib/stripe/resources/person.rb +2 -2
  26. data/lib/stripe/resources/product_catalog/trial_offer.rb +101 -0
  27. data/lib/stripe/resources/v2/core/event.rb +50 -1
  28. data/lib/stripe/resources/v2/money_management/received_credit.rb +16 -0
  29. data/lib/stripe/resources/v2/money_management/received_debit.rb +37 -1
  30. data/lib/stripe/resources.rb +7 -0
  31. data/lib/stripe/services/product_catalog/trial_offer_service.rb +19 -0
  32. data/lib/stripe/services/product_catalog_service.rb +13 -0
  33. data/lib/stripe/services/v1_services.rb +2 -1
  34. data/lib/stripe/services.rb +2 -0
  35. data/lib/stripe/stripe_object.rb +22 -1
  36. data/lib/stripe/version.rb +1 -1
  37. data/rbi/stripe.rbi +398 -56
  38. metadata +12 -2
@@ -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
 
@@ -293,7 +293,7 @@ module Stripe
293
293
  end
294
294
 
295
295
  class SelfReportedIncome < ::Stripe::StripeObject
296
- # Amount in the minor currency unit (e.g., cents for USD)
296
+ # The amount in the minor currency unit (for example, cents for USD).
297
297
  attr_reader :amount
298
298
  # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
299
299
  attr_reader :currency
@@ -308,7 +308,7 @@ module Stripe
308
308
  end
309
309
 
310
310
  class SelfReportedMonthlyHousingPayment < ::Stripe::StripeObject
311
- # Amount in the minor currency unit (e.g., cents for USD)
311
+ # The amount in the minor currency unit (for example, cents for USD).
312
312
  attr_reader :amount
313
313
  # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
314
314
  attr_reader :currency
@@ -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
@@ -13,13 +13,62 @@ module Stripe
13
13
 
14
14
  class Reason < ::Stripe::StripeObject
15
15
  class Request < ::Stripe::StripeObject
16
+ class Client < ::Stripe::StripeObject
17
+ class ApiKey < ::Stripe::StripeObject
18
+ # The ID of the API key.
19
+ attr_reader :id
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
+
30
+ class DashboardUser < ::Stripe::StripeObject
31
+ # The email of the dashboard user.
32
+ attr_reader :email
33
+ # The IP address of the user.
34
+ attr_reader :ip_address
35
+ # The machine identifier of the user.
36
+ attr_reader :machine_identifier
37
+
38
+ def self.inner_class_types
39
+ @inner_class_types = {}
40
+ end
41
+
42
+ def self.field_remappings
43
+ @field_remappings = {}
44
+ end
45
+ end
46
+ # The type of the client.
47
+ attr_reader :type
48
+ # API key that triggered the event.
49
+ attr_reader :api_key
50
+ # Dashboard user that triggered the event.
51
+ attr_reader :dashboard_user
52
+ # Stripe action that triggered the event.
53
+ attr_reader :stripe_action
54
+
55
+ def self.inner_class_types
56
+ @inner_class_types = { api_key: ApiKey, dashboard_user: DashboardUser }
57
+ end
58
+
59
+ def self.field_remappings
60
+ @field_remappings = {}
61
+ end
62
+ end
63
+ # The client details that made the request.
64
+ attr_reader :client
16
65
  # ID of the API request that caused the event.
17
66
  attr_reader :id
18
67
  # The idempotency key transmitted during the request.
19
68
  attr_reader :idempotency_key
20
69
 
21
70
  def self.inner_class_types
22
- @inner_class_types = {}
71
+ @inner_class_types = { client: Client }
23
72
  end
24
73
 
25
74
  def self.field_remappings
@@ -210,6 +210,19 @@ module Stripe
210
210
  @field_remappings = {}
211
211
  end
212
212
  end
213
+
214
+ class StripeBalancePayment < ::Stripe::StripeObject
215
+ # Statement descriptor for the Stripe Balance Payment.
216
+ attr_reader :statement_descriptor
217
+
218
+ def self.inner_class_types
219
+ @inner_class_types = {}
220
+ end
221
+
222
+ def self.field_remappings
223
+ @field_remappings = {}
224
+ end
225
+ end
213
226
  # The amount and currency of the ReceivedCredit.
214
227
  attr_reader :amount
215
228
  # Time at which the ReceivedCredit was created.
@@ -241,6 +254,8 @@ module Stripe
241
254
  attr_reader :balance_transfer
242
255
  # This object stores details about the originating banking transaction that resulted in the ReceivedCredit. Present if `type` field value is `bank_transfer`.
243
256
  attr_reader :bank_transfer
257
+ # This object stores details about the stripe balance pay refund that resulted in the ReceivedCredit. Present if `type` field value is `stripe_balance_payment`.
258
+ attr_reader :stripe_balance_payment
244
259
 
245
260
  def self.inner_class_types
246
261
  @inner_class_types = {
@@ -250,6 +265,7 @@ module Stripe
250
265
  status_transitions: StatusTransitions,
251
266
  balance_transfer: BalanceTransfer,
252
267
  bank_transfer: BankTransfer,
268
+ stripe_balance_payment: StripeBalancePayment,
253
269
  }
254
270
  end
255
271
 
@@ -87,6 +87,21 @@ module Stripe
87
87
  end
88
88
  end
89
89
 
90
+ class BalanceTransfer < ::Stripe::StripeObject
91
+ # Open Enum. The type of balance transfer that originated the ReceivedDebit.
92
+ attr_reader :type
93
+ # The ID of the topup object that originated the ReceivedDebit.
94
+ attr_reader :topup
95
+
96
+ def self.inner_class_types
97
+ @inner_class_types = {}
98
+ end
99
+
100
+ def self.field_remappings
101
+ @field_remappings = {}
102
+ end
103
+ end
104
+
90
105
  class BankTransfer < ::Stripe::StripeObject
91
106
  class UsBankAccount < ::Stripe::StripeObject
92
107
  # The name of the bank the debit originated from.
@@ -123,6 +138,21 @@ module Stripe
123
138
  @field_remappings = {}
124
139
  end
125
140
  end
141
+
142
+ class StripeBalancePayment < ::Stripe::StripeObject
143
+ # ID of the debit agreement associated with this payment.
144
+ attr_reader :debit_agreement
145
+ # Statement descriptor for the Stripe Balance Payment.
146
+ attr_reader :statement_descriptor
147
+
148
+ def self.inner_class_types
149
+ @inner_class_types = {}
150
+ end
151
+
152
+ def self.field_remappings
153
+ @field_remappings = {}
154
+ end
155
+ end
126
156
  # Amount and currency of the ReceivedDebit.
127
157
  attr_reader :amount
128
158
  # The time at which the ReceivedDebit was created.
@@ -146,12 +176,16 @@ module Stripe
146
176
  attr_reader :status_details
147
177
  # The time at which the ReceivedDebit transitioned to a particular status.
148
178
  attr_reader :status_transitions
149
- # Open Enum. The type of the ReceivedDebit.
179
+ # Open enum, the type of the received debit.
150
180
  attr_reader :type
151
181
  # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
152
182
  attr_reader :livemode
183
+ # This object stores details about the balance transfer object that resulted in the ReceivedDebit.
184
+ attr_reader :balance_transfer
153
185
  # This object stores details about the originating banking transaction that resulted in the ReceivedDebit. Present if `type` field value is `bank_transfer`.
154
186
  attr_reader :bank_transfer
187
+ # This object stores details about the Stripe Balance Payment that resulted in the ReceivedDebit.
188
+ attr_reader :stripe_balance_payment
155
189
 
156
190
  def self.inner_class_types
157
191
  @inner_class_types = {
@@ -159,7 +193,9 @@ module Stripe
159
193
  external_amount: ExternalAmount,
160
194
  status_details: StatusDetails,
161
195
  status_transitions: StatusTransitions,
196
+ balance_transfer: BalanceTransfer,
162
197
  bank_transfer: BankTransfer,
198
+ stripe_balance_payment: StripeBalancePayment,
163
199
  }
164
200
  end
165
201
 
@@ -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"
@@ -315,6 +316,12 @@ require "stripe/events/v2_core_health_traffic_volume_drop_firing_event"
315
316
  require "stripe/events/v2_core_health_traffic_volume_drop_resolved_event"
316
317
  require "stripe/events/v2_core_health_webhook_latency_firing_event"
317
318
  require "stripe/events/v2_core_health_webhook_latency_resolved_event"
319
+ require "stripe/events/v2_iam_api_key_created_event"
320
+ require "stripe/events/v2_iam_api_key_default_secret_revealed_event"
321
+ require "stripe/events/v2_iam_api_key_expired_event"
322
+ require "stripe/events/v2_iam_api_key_permissions_updated_event"
323
+ require "stripe/events/v2_iam_api_key_rotated_event"
324
+ require "stripe/events/v2_iam_api_key_updated_event"
318
325
  require "stripe/events/v2_money_management_adjustment_created_event"
319
326
  require "stripe/events/v2_money_management_financial_account_created_event"
320
327
  require "stripe/events/v2_money_management_financial_account_updated_event"
@@ -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.4"
5
5
  end