stripe 15.1.0 → 15.2.0

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 (243) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -6
  3. data/CONTRIBUTING.md +25 -0
  4. data/OPENAPI_VERSION +1 -1
  5. data/README.md +10 -7
  6. data/VERSION +1 -1
  7. data/lib/stripe/api_version.rb +1 -1
  8. data/lib/stripe/resources/account.rb +47 -20
  9. data/lib/stripe/resources/account_session.rb +111 -7
  10. data/lib/stripe/resources/apple_pay_domain.rb +1 -2
  11. data/lib/stripe/resources/balance.rb +42 -0
  12. data/lib/stripe/resources/balance_transaction.rb +2 -0
  13. data/lib/stripe/resources/bank_account.rb +2 -2
  14. data/lib/stripe/resources/billing_portal/session.rb +1 -1
  15. data/lib/stripe/resources/capability.rb +1 -1
  16. data/lib/stripe/resources/charge.rb +13 -5
  17. data/lib/stripe/resources/checkout/session.rb +20 -4
  18. data/lib/stripe/resources/confirmation_token.rb +33 -87
  19. data/lib/stripe/resources/country_spec.rb +1 -1
  20. data/lib/stripe/resources/coupon.rb +1 -2
  21. data/lib/stripe/resources/credit_note.rb +12 -9
  22. data/lib/stripe/resources/customer.rb +2 -4
  23. data/lib/stripe/resources/customer_session.rb +3 -3
  24. data/lib/stripe/resources/dispute.rb +2 -2
  25. data/lib/stripe/resources/event.rb +1 -1
  26. data/lib/stripe/resources/file.rb +1 -1
  27. data/lib/stripe/resources/identity/verification_report.rb +6 -0
  28. data/lib/stripe/resources/identity/verification_session.rb +17 -11
  29. data/lib/stripe/resources/invoice.rb +114 -27
  30. data/lib/stripe/resources/invoice_item.rb +2 -3
  31. data/lib/stripe/resources/invoice_line_item.rb +1 -1
  32. data/lib/stripe/resources/invoice_payment.rb +9 -2
  33. data/lib/stripe/resources/issuing/authorization.rb +8 -8
  34. data/lib/stripe/resources/issuing/card.rb +1 -1
  35. data/lib/stripe/resources/issuing/dispute.rb +3 -3
  36. data/lib/stripe/resources/payment_intent.rb +196 -302
  37. data/lib/stripe/resources/payment_method.rb +46 -103
  38. data/lib/stripe/resources/payment_method_configuration.rb +297 -2
  39. data/lib/stripe/resources/payment_method_domain.rb +2 -2
  40. data/lib/stripe/resources/payout.rb +4 -4
  41. data/lib/stripe/resources/person.rb +2 -2
  42. data/lib/stripe/resources/plan.rb +2 -3
  43. data/lib/stripe/resources/price.rb +1 -1
  44. data/lib/stripe/resources/product.rb +1 -2
  45. data/lib/stripe/resources/radar/value_list.rb +1 -2
  46. data/lib/stripe/resources/radar/value_list_item.rb +1 -2
  47. data/lib/stripe/resources/refund.rb +6 -1
  48. data/lib/stripe/resources/reversal.rb +1 -1
  49. data/lib/stripe/resources/review.rb +1 -1
  50. data/lib/stripe/resources/setup_intent.rb +111 -281
  51. data/lib/stripe/resources/source.rb +1 -1
  52. data/lib/stripe/resources/subscription.rb +89 -29
  53. data/lib/stripe/resources/subscription_item.rb +33 -0
  54. data/lib/stripe/resources/subscription_schedule.rb +119 -4
  55. data/lib/stripe/resources/tax/calculation.rb +4 -0
  56. data/lib/stripe/resources/tax/calculation_line_item.rb +2 -0
  57. data/lib/stripe/resources/tax/registration.rb +1 -1
  58. data/lib/stripe/resources/tax_id.rb +1 -2
  59. data/lib/stripe/resources/tax_rate.rb +2 -2
  60. data/lib/stripe/resources/terminal/configuration.rb +1 -2
  61. data/lib/stripe/resources/terminal/location.rb +2 -3
  62. data/lib/stripe/resources/terminal/reader.rb +275 -3
  63. data/lib/stripe/resources/test_helpers/test_clock.rb +1 -2
  64. data/lib/stripe/resources/token.rb +2 -2
  65. data/lib/stripe/resources/transfer.rb +1 -1
  66. data/lib/stripe/resources/webhook_endpoint.rb +1 -2
  67. data/lib/stripe/services/account_external_account_service.rb +2 -3
  68. data/lib/stripe/services/account_login_link_service.rb +1 -1
  69. data/lib/stripe/services/account_person_service.rb +1 -2
  70. data/lib/stripe/services/account_service.rb +38 -13
  71. data/lib/stripe/services/account_session_service.rb +75 -7
  72. data/lib/stripe/services/apple_pay_domain_service.rb +1 -2
  73. data/lib/stripe/services/balance_service.rb +1 -1
  74. data/lib/stripe/services/charge_service.rb +4 -4
  75. data/lib/stripe/services/checkout/session_service.rb +11 -3
  76. data/lib/stripe/services/coupon_service.rb +1 -2
  77. data/lib/stripe/services/credit_note_service.rb +7 -8
  78. data/lib/stripe/services/customer_balance_transaction_service.rb +3 -3
  79. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +2 -2
  80. data/lib/stripe/services/customer_payment_source_service.rb +1 -1
  81. data/lib/stripe/services/customer_service.rb +3 -5
  82. data/lib/stripe/services/customer_tax_id_service.rb +1 -2
  83. data/lib/stripe/services/dispute_service.rb +1 -1
  84. data/lib/stripe/services/file_service.rb +1 -1
  85. data/lib/stripe/services/identity/verification_session_service.rb +5 -5
  86. data/lib/stripe/services/invoice_item_service.rb +1 -2
  87. data/lib/stripe/services/invoice_service.rb +92 -23
  88. data/lib/stripe/services/issuing/authorization_service.rb +4 -4
  89. data/lib/stripe/services/issuing/card_service.rb +1 -1
  90. data/lib/stripe/services/issuing/dispute_service.rb +2 -2
  91. data/lib/stripe/services/payment_intent_service.rb +176 -292
  92. data/lib/stripe/services/payment_method_configuration_service.rb +212 -2
  93. data/lib/stripe/services/payment_method_domain_service.rb +1 -1
  94. data/lib/stripe/services/payment_method_service.rb +43 -100
  95. data/lib/stripe/services/payout_service.rb +2 -2
  96. data/lib/stripe/services/plan_service.rb +2 -3
  97. data/lib/stripe/services/price_service.rb +2 -2
  98. data/lib/stripe/services/product_feature_service.rb +1 -2
  99. data/lib/stripe/services/product_service.rb +2 -3
  100. data/lib/stripe/services/promotion_code_service.rb +1 -1
  101. data/lib/stripe/services/radar/early_fraud_warning_service.rb +1 -1
  102. data/lib/stripe/services/radar/value_list_item_service.rb +1 -2
  103. data/lib/stripe/services/radar/value_list_service.rb +1 -2
  104. data/lib/stripe/services/setup_intent_service.rb +110 -280
  105. data/lib/stripe/services/source_service.rb +1 -1
  106. data/lib/stripe/services/subscription_item_service.rb +26 -0
  107. data/lib/stripe/services/subscription_schedule_service.rb +93 -3
  108. data/lib/stripe/services/subscription_service.rb +77 -26
  109. data/lib/stripe/services/tax/calculation_service.rb +4 -0
  110. data/lib/stripe/services/tax/registration_service.rb +1 -1
  111. data/lib/stripe/services/tax_id_service.rb +1 -2
  112. data/lib/stripe/services/terminal/configuration_service.rb +1 -2
  113. data/lib/stripe/services/terminal/location_service.rb +2 -3
  114. data/lib/stripe/services/terminal/reader_service.rb +106 -2
  115. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +33 -87
  116. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +43 -0
  117. data/lib/stripe/services/test_helpers/test_clock_service.rb +1 -2
  118. data/lib/stripe/services/token_service.rb +1 -1
  119. data/lib/stripe/services/transfer_service.rb +1 -1
  120. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +1 -2
  121. data/lib/stripe/services/v2/core/event_destination_service.rb +4 -10
  122. data/lib/stripe/services/v2/core/event_service.rb +1 -2
  123. data/lib/stripe/services/webhook_endpoint_service.rb +1 -2
  124. data/lib/stripe/version.rb +1 -1
  125. data/rbi/stripe/resources/account.rbi +46 -23
  126. data/rbi/stripe/resources/account_session.rbi +131 -12
  127. data/rbi/stripe/resources/apple_pay_domain.rbi +1 -3
  128. data/rbi/stripe/resources/balance.rbi +55 -0
  129. data/rbi/stripe/resources/balance_transaction.rbi +3 -0
  130. data/rbi/stripe/resources/bank_account.rbi +2 -2
  131. data/rbi/stripe/resources/billing/alert.rbi +2 -2
  132. data/rbi/stripe/resources/billing_portal/session.rbi +1 -1
  133. data/rbi/stripe/resources/capability.rbi +1 -1
  134. data/rbi/stripe/resources/charge.rbi +17 -5
  135. data/rbi/stripe/resources/checkout/session.rbi +22 -6
  136. data/rbi/stripe/resources/confirmation_token.rbi +33 -99
  137. data/rbi/stripe/resources/country_spec.rbi +1 -1
  138. data/rbi/stripe/resources/coupon.rbi +1 -3
  139. data/rbi/stripe/resources/credit_note.rbi +14 -9
  140. data/rbi/stripe/resources/customer.rbi +2 -6
  141. data/rbi/stripe/resources/customer_session.rbi +3 -3
  142. data/rbi/stripe/resources/dispute.rbi +2 -2
  143. data/rbi/stripe/resources/event.rbi +1 -1
  144. data/rbi/stripe/resources/file.rbi +1 -1
  145. data/rbi/stripe/resources/identity/verification_report.rbi +9 -0
  146. data/rbi/stripe/resources/identity/verification_session.rbi +20 -11
  147. data/rbi/stripe/resources/invoice.rbi +109 -33
  148. data/rbi/stripe/resources/invoice_item.rbi +2 -4
  149. data/rbi/stripe/resources/invoice_line_item.rbi +1 -1
  150. data/rbi/stripe/resources/invoice_payment.rbi +9 -2
  151. data/rbi/stripe/resources/issuing/authorization.rbi +8 -8
  152. data/rbi/stripe/resources/issuing/card.rbi +1 -1
  153. data/rbi/stripe/resources/issuing/dispute.rbi +3 -3
  154. data/rbi/stripe/resources/payment_intent.rbi +201 -349
  155. data/rbi/stripe/resources/payment_method.rbi +46 -116
  156. data/rbi/stripe/resources/payment_method_configuration.rbi +334 -4
  157. data/rbi/stripe/resources/payment_method_domain.rbi +2 -2
  158. data/rbi/stripe/resources/payout.rbi +4 -4
  159. data/rbi/stripe/resources/person.rbi +2 -2
  160. data/rbi/stripe/resources/plan.rbi +2 -4
  161. data/rbi/stripe/resources/price.rbi +1 -1
  162. data/rbi/stripe/resources/product.rbi +1 -3
  163. data/rbi/stripe/resources/radar/value_list.rbi +1 -3
  164. data/rbi/stripe/resources/radar/value_list_item.rbi +1 -3
  165. data/rbi/stripe/resources/refund.rbi +5 -1
  166. data/rbi/stripe/resources/reversal.rbi +1 -1
  167. data/rbi/stripe/resources/review.rbi +1 -1
  168. data/rbi/stripe/resources/setup_intent.rbi +111 -325
  169. data/rbi/stripe/resources/source.rbi +1 -1
  170. data/rbi/stripe/resources/subscription.rbi +99 -36
  171. data/rbi/stripe/resources/subscription_item.rbi +36 -2
  172. data/rbi/stripe/resources/subscription_schedule.rbi +138 -10
  173. data/rbi/stripe/resources/tax/calculation.rbi +5 -1
  174. data/rbi/stripe/resources/tax/calculation_line_item.rbi +3 -0
  175. data/rbi/stripe/resources/tax/registration.rbi +1 -1
  176. data/rbi/stripe/resources/tax_id.rbi +1 -3
  177. data/rbi/stripe/resources/tax_rate.rbi +2 -2
  178. data/rbi/stripe/resources/terminal/configuration.rbi +1 -3
  179. data/rbi/stripe/resources/terminal/location.rbi +2 -4
  180. data/rbi/stripe/resources/terminal/reader.rbi +265 -5
  181. data/rbi/stripe/resources/test_helpers/test_clock.rbi +1 -3
  182. data/rbi/stripe/resources/token.rbi +2 -2
  183. data/rbi/stripe/resources/transfer.rbi +1 -1
  184. data/rbi/stripe/resources/webhook_endpoint.rbi +1 -3
  185. data/rbi/stripe/services/account_external_account_service.rbi +2 -4
  186. data/rbi/stripe/services/account_login_link_service.rbi +1 -1
  187. data/rbi/stripe/services/account_person_service.rbi +1 -3
  188. data/rbi/stripe/services/account_service.rbi +40 -16
  189. data/rbi/stripe/services/account_session_service.rbi +86 -12
  190. data/rbi/stripe/services/apple_pay_domain_service.rbi +1 -3
  191. data/rbi/stripe/services/balance_service.rbi +1 -1
  192. data/rbi/stripe/services/billing/alert_service.rbi +2 -2
  193. data/rbi/stripe/services/charge_service.rbi +4 -4
  194. data/rbi/stripe/services/checkout/session_service.rbi +12 -5
  195. data/rbi/stripe/services/coupon_service.rbi +1 -3
  196. data/rbi/stripe/services/credit_note_service.rbi +7 -8
  197. data/rbi/stripe/services/customer_balance_transaction_service.rbi +3 -3
  198. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +2 -2
  199. data/rbi/stripe/services/customer_payment_source_service.rbi +1 -1
  200. data/rbi/stripe/services/customer_service.rbi +3 -7
  201. data/rbi/stripe/services/customer_tax_id_service.rbi +1 -3
  202. data/rbi/stripe/services/dispute_service.rbi +1 -1
  203. data/rbi/stripe/services/file_service.rbi +1 -1
  204. data/rbi/stripe/services/identity/verification_session_service.rbi +5 -5
  205. data/rbi/stripe/services/invoice_item_service.rbi +1 -3
  206. data/rbi/stripe/services/invoice_service.rbi +90 -29
  207. data/rbi/stripe/services/issuing/authorization_service.rbi +4 -4
  208. data/rbi/stripe/services/issuing/card_service.rbi +1 -1
  209. data/rbi/stripe/services/issuing/dispute_service.rbi +2 -2
  210. data/rbi/stripe/services/payment_intent_service.rbi +179 -339
  211. data/rbi/stripe/services/payment_method_configuration_service.rbi +236 -4
  212. data/rbi/stripe/services/payment_method_domain_service.rbi +1 -1
  213. data/rbi/stripe/services/payment_method_service.rbi +43 -113
  214. data/rbi/stripe/services/payout_service.rbi +2 -2
  215. data/rbi/stripe/services/plan_service.rbi +2 -4
  216. data/rbi/stripe/services/price_service.rbi +2 -2
  217. data/rbi/stripe/services/product_feature_service.rbi +1 -3
  218. data/rbi/stripe/services/product_service.rbi +2 -4
  219. data/rbi/stripe/services/promotion_code_service.rbi +1 -1
  220. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +1 -1
  221. data/rbi/stripe/services/radar/value_list_item_service.rbi +1 -3
  222. data/rbi/stripe/services/radar/value_list_service.rbi +1 -3
  223. data/rbi/stripe/services/setup_intent_service.rbi +110 -324
  224. data/rbi/stripe/services/source_service.rbi +1 -1
  225. data/rbi/stripe/services/subscription_item_service.rbi +28 -2
  226. data/rbi/stripe/services/subscription_schedule_service.rbi +107 -9
  227. data/rbi/stripe/services/subscription_service.rbi +85 -33
  228. data/rbi/stripe/services/tax/calculation_service.rbi +5 -1
  229. data/rbi/stripe/services/tax/registration_service.rbi +1 -1
  230. data/rbi/stripe/services/tax_id_service.rbi +1 -3
  231. data/rbi/stripe/services/terminal/configuration_service.rbi +1 -3
  232. data/rbi/stripe/services/terminal/location_service.rbi +2 -4
  233. data/rbi/stripe/services/terminal/reader_service.rbi +115 -4
  234. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +33 -99
  235. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +31 -0
  236. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +1 -3
  237. data/rbi/stripe/services/token_service.rbi +1 -1
  238. data/rbi/stripe/services/transfer_service.rbi +1 -1
  239. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +1 -3
  240. data/rbi/stripe/services/v2/core/event_destination_service.rbi +4 -12
  241. data/rbi/stripe/services/v2/core/event_service.rbi +1 -3
  242. data/rbi/stripe/services/webhook_endpoint_service.rbi +1 -3
  243. metadata +3 -2
@@ -127,6 +127,18 @@ module Stripe
127
127
  end
128
128
  end
129
129
 
130
+ class BillingThresholds < Stripe::RequestParams
131
+ # Monetary threshold that triggers the subscription to advance to a new billing period
132
+ attr_accessor :amount_gte
133
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
134
+ attr_accessor :reset_billing_cycle_anchor
135
+
136
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
137
+ @amount_gte = amount_gte
138
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
139
+ end
140
+ end
141
+
130
142
  class CancellationDetails < Stripe::RequestParams
131
143
  # Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user.
132
144
  attr_accessor :comment
@@ -178,6 +190,15 @@ module Stripe
178
190
  end
179
191
 
180
192
  class Item < Stripe::RequestParams
193
+ class BillingThresholds < Stripe::RequestParams
194
+ # Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte))
195
+ attr_accessor :usage_gte
196
+
197
+ def initialize(usage_gte: nil)
198
+ @usage_gte = usage_gte
199
+ end
200
+ end
201
+
181
202
  class Discount < Stripe::RequestParams
182
203
  # ID of the coupon to create a new discount for.
183
204
  attr_accessor :coupon
@@ -234,6 +255,8 @@ module Stripe
234
255
  @unit_amount_decimal = unit_amount_decimal
235
256
  end
236
257
  end
258
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
259
+ attr_accessor :billing_thresholds
237
260
  # Delete all usage for a given subscription item. You must pass this when deleting a usage records subscription item. `clear_usage` has no effect if the plan has a billing meter attached.
238
261
  attr_accessor :clear_usage
239
262
  # A flag that, if set to `true`, will delete the specified item.
@@ -256,6 +279,7 @@ module Stripe
256
279
  attr_accessor :tax_rates
257
280
 
258
281
  def initialize(
282
+ billing_thresholds: nil,
259
283
  clear_usage: nil,
260
284
  deleted: nil,
261
285
  discounts: nil,
@@ -267,6 +291,7 @@ module Stripe
267
291
  quantity: nil,
268
292
  tax_rates: nil
269
293
  )
294
+ @billing_thresholds = billing_thresholds
270
295
  @clear_usage = clear_usage
271
296
  @deleted = deleted
272
297
  @discounts = discounts
@@ -383,11 +408,8 @@ module Stripe
383
408
  end
384
409
  end
385
410
 
386
- class Konbini < Stripe::RequestParams
387
- end
388
-
389
- class SepaDebit < Stripe::RequestParams
390
- end
411
+ class Konbini < Stripe::RequestParams; end
412
+ class SepaDebit < Stripe::RequestParams; end
391
413
 
392
414
  class UsBankAccount < Stripe::RequestParams
393
415
  class FinancialConnections < Stripe::RequestParams
@@ -521,9 +543,11 @@ module Stripe
521
543
  attr_accessor :automatic_tax
522
544
  # Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
523
545
  attr_accessor :billing_cycle_anchor
546
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
547
+ attr_accessor :billing_thresholds
524
548
  # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period.
525
549
  attr_accessor :cancel_at
526
- # Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.
550
+ # Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. This param will be removed in a future API version. Please use `cancel_at` instead.
527
551
  attr_accessor :cancel_at_period_end
528
552
  # Details about why this subscription was cancelled
529
553
  attr_accessor :cancellation_details
@@ -569,11 +593,11 @@ module Stripe
569
593
  attr_accessor :pending_invoice_item_interval
570
594
  # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.
571
595
  attr_accessor :proration_behavior
572
- # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#upcoming_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.
596
+ # If set, prorations will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same prorations that were previewed with the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint. `proration_date` can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.
573
597
  attr_accessor :proration_date
574
598
  # If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value.
575
599
  attr_accessor :transfer_data
576
- # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`.
600
+ # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, `trial_end` will override the default trial period of the plan the customer is being subscribed to. The `billing_cycle_anchor` will be updated to the `trial_end` value. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`.
577
601
  attr_accessor :trial_end
578
602
  # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.
579
603
  attr_accessor :trial_from_plan
@@ -585,6 +609,7 @@ module Stripe
585
609
  application_fee_percent: nil,
586
610
  automatic_tax: nil,
587
611
  billing_cycle_anchor: nil,
612
+ billing_thresholds: nil,
588
613
  cancel_at: nil,
589
614
  cancel_at_period_end: nil,
590
615
  cancellation_details: nil,
@@ -616,6 +641,7 @@ module Stripe
616
641
  @application_fee_percent = application_fee_percent
617
642
  @automatic_tax = automatic_tax
618
643
  @billing_cycle_anchor = billing_cycle_anchor
644
+ @billing_thresholds = billing_thresholds
619
645
  @cancel_at = cancel_at
620
646
  @cancel_at_period_end = cancel_at_period_end
621
647
  @cancellation_details = cancellation_details
@@ -645,8 +671,7 @@ module Stripe
645
671
  end
646
672
  end
647
673
 
648
- class DeleteDiscountParams < Stripe::RequestParams
649
- end
674
+ class DeleteDiscountParams < Stripe::RequestParams; end
650
675
 
651
676
  class ListParams < Stripe::RequestParams
652
677
  class AutomaticTax < Stripe::RequestParams
@@ -880,6 +905,18 @@ module Stripe
880
905
  end
881
906
  end
882
907
 
908
+ class BillingThresholds < Stripe::RequestParams
909
+ # Monetary threshold that triggers the subscription to advance to a new billing period
910
+ attr_accessor :amount_gte
911
+ # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged.
912
+ attr_accessor :reset_billing_cycle_anchor
913
+
914
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
915
+ @amount_gte = amount_gte
916
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
917
+ end
918
+ end
919
+
883
920
  class Discount < Stripe::RequestParams
884
921
  # ID of the coupon to create a new discount for.
885
922
  attr_accessor :coupon
@@ -919,6 +956,15 @@ module Stripe
919
956
  end
920
957
 
921
958
  class Item < Stripe::RequestParams
959
+ class BillingThresholds < Stripe::RequestParams
960
+ # Number of units that meets the billing threshold to advance the subscription to a new billing period (e.g., it takes 10 $5 units to meet a $50 [monetary threshold](https://stripe.com/docs/api/subscriptions/update#update_subscription-billing_thresholds-amount_gte))
961
+ attr_accessor :usage_gte
962
+
963
+ def initialize(usage_gte: nil)
964
+ @usage_gte = usage_gte
965
+ end
966
+ end
967
+
922
968
  class Discount < Stripe::RequestParams
923
969
  # ID of the coupon to create a new discount for.
924
970
  attr_accessor :coupon
@@ -975,6 +1021,8 @@ module Stripe
975
1021
  @unit_amount_decimal = unit_amount_decimal
976
1022
  end
977
1023
  end
1024
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
1025
+ attr_accessor :billing_thresholds
978
1026
  # The coupons to redeem into discounts for the subscription item.
979
1027
  attr_accessor :discounts
980
1028
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
@@ -991,6 +1039,7 @@ module Stripe
991
1039
  attr_accessor :tax_rates
992
1040
 
993
1041
  def initialize(
1042
+ billing_thresholds: nil,
994
1043
  discounts: nil,
995
1044
  metadata: nil,
996
1045
  plan: nil,
@@ -999,6 +1048,7 @@ module Stripe
999
1048
  quantity: nil,
1000
1049
  tax_rates: nil
1001
1050
  )
1051
+ @billing_thresholds = billing_thresholds
1002
1052
  @discounts = discounts
1003
1053
  @metadata = metadata
1004
1054
  @plan = plan
@@ -1100,11 +1150,8 @@ module Stripe
1100
1150
  end
1101
1151
  end
1102
1152
 
1103
- class Konbini < Stripe::RequestParams
1104
- end
1105
-
1106
- class SepaDebit < Stripe::RequestParams
1107
- end
1153
+ class Konbini < Stripe::RequestParams; end
1154
+ class SepaDebit < Stripe::RequestParams; end
1108
1155
 
1109
1156
  class UsBankAccount < Stripe::RequestParams
1110
1157
  class FinancialConnections < Stripe::RequestParams
@@ -1242,9 +1289,11 @@ module Stripe
1242
1289
  attr_accessor :billing_cycle_anchor
1243
1290
  # Mutually exclusive with billing_cycle_anchor and only valid with monthly and yearly price intervals. When provided, the billing_cycle_anchor is set to the next occurence of the day_of_month at the hour, minute, and second UTC.
1244
1291
  attr_accessor :billing_cycle_anchor_config
1292
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
1293
+ attr_accessor :billing_thresholds
1245
1294
  # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period.
1246
1295
  attr_accessor :cancel_at
1247
- # Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.
1296
+ # Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. This param will be removed in a future API version. Please use `cancel_at` instead.
1248
1297
  attr_accessor :cancel_at_period_end
1249
1298
  # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.
1250
1299
  attr_accessor :collection_method
@@ -1312,6 +1361,7 @@ module Stripe
1312
1361
  backdate_start_date: nil,
1313
1362
  billing_cycle_anchor: nil,
1314
1363
  billing_cycle_anchor_config: nil,
1364
+ billing_thresholds: nil,
1315
1365
  cancel_at: nil,
1316
1366
  cancel_at_period_end: nil,
1317
1367
  collection_method: nil,
@@ -1345,6 +1395,7 @@ module Stripe
1345
1395
  @backdate_start_date = backdate_start_date
1346
1396
  @billing_cycle_anchor = billing_cycle_anchor
1347
1397
  @billing_cycle_anchor_config = billing_cycle_anchor_config
1398
+ @billing_thresholds = billing_thresholds
1348
1399
  @cancel_at = cancel_at
1349
1400
  @cancel_at_period_end = cancel_at_period_end
1350
1401
  @collection_method = collection_method
@@ -1397,9 +1448,9 @@ module Stripe
1397
1448
  attr_accessor :billing_cycle_anchor
1398
1449
  # Specifies which fields in the response should be expanded.
1399
1450
  attr_accessor :expand
1400
- # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.
1451
+ # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor` being `unchanged`. When the `billing_cycle_anchor` is set to `now` (default value), no prorations are generated. If no value is passed, the default is `create_prorations`.
1401
1452
  attr_accessor :proration_behavior
1402
- # If set, the proration will be calculated as though the subscription was resumed at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint.
1453
+ # If set, prorations will be calculated as though the subscription was resumed at the given time. This can be used to apply exactly the same prorations that were previewed with the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint.
1403
1454
  attr_accessor :proration_date
1404
1455
 
1405
1456
  def initialize(
@@ -1415,9 +1466,9 @@ module Stripe
1415
1466
  end
1416
1467
  end
1417
1468
 
1418
- # Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://stripe.com/metadata).
1469
+ # Cancels a customer's subscription immediately. The customer won't be charged again for the subscription. After it's canceled, you can no longer update the subscription or its [metadata](https://docs.stripe.com/metadata).
1419
1470
  #
1420
- # Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://stripe.com/docs/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true.
1471
+ # Any pending invoice items that you've created are still charged at the end of the period, unless manually [deleted](https://docs.stripe.com/api#delete_invoiceitem). If you've set the subscription to cancel at the end of the period, any pending prorations are also left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations are removed if invoice_now and prorate are both set to true.
1421
1472
  #
1422
1473
  # By default, upon subscription cancellation, Stripe stops automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.
1423
1474
  def cancel(subscription_exposed_id, params = {}, opts = {})
@@ -1435,7 +1486,7 @@ module Stripe
1435
1486
  # When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request.
1436
1487
  # The payment_behavior parameter determines the exact behavior of the initial payment.
1437
1488
  #
1438
- # To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead.
1489
+ # To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://docs.stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead.
1439
1490
  # Schedules provide the flexibility to model more complex billing configurations that change over time.
1440
1491
  def create(params = {}, opts = {})
1441
1492
  request(
@@ -1491,7 +1542,7 @@ module Stripe
1491
1542
  )
1492
1543
  end
1493
1544
 
1494
- # Search for subscriptions you've previously created using Stripe's [Search Query Language](https://stripe.com/docs/search#search-query-language).
1545
+ # Search for subscriptions you've previously created using Stripe's [Search Query Language](https://docs.stripe.com/docs/search#search-query-language).
1495
1546
  # Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating
1496
1547
  # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up
1497
1548
  # to an hour behind during outages. Search functionality is not available to merchants in India.
@@ -1507,7 +1558,7 @@ module Stripe
1507
1558
 
1508
1559
  # Updates an existing subscription to match the specified parameters.
1509
1560
  # When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes.
1510
- # To preview how the proration is calculated, use the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint.
1561
+ # To preview how the proration is calculated, use the [create preview](https://docs.stripe.com/docs/api/invoices/create_preview) endpoint.
1511
1562
  #
1512
1563
  # By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes.
1513
1564
  #
@@ -1519,13 +1570,13 @@ module Stripe
1519
1570
  # A trial starts or ends.
1520
1571
  #
1521
1572
  #
1522
- # In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment).
1573
+ # In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how [Stripe immediately attempts payment for subscription changes](https://docs.stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment).
1523
1574
  #
1524
- # If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://stripe.com/docs/api/invoices/create).
1575
+ # If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://docs.stripe.com/docs/api/invoices/create).
1525
1576
  #
1526
1577
  # If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription.
1527
1578
  #
1528
- # Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating <a href="/docs/billing/subscriptions/usage-based">usage-based billing](https://stripe.com/docs/rate-limits) instead.
1579
+ # Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating <a href="/docs/billing/subscriptions/usage-based">usage-based billing](https://docs.stripe.com/docs/rate-limits) instead.
1529
1580
  def update(subscription_exposed_id, params = {}, opts = {})
1530
1581
  request(
1531
1582
  method: :post,
@@ -94,6 +94,8 @@ module Stripe
94
94
  # A positive integer representing the line item's total price in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).
95
95
  # If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes are calculated on top of this amount.
96
96
  attr_accessor :amount
97
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
98
+ attr_accessor :metadata
97
99
  # If provided, the product's `tax_code` will be used as the line item's `tax_code`.
98
100
  attr_accessor :product
99
101
  # The number of units of the item being purchased. Used to calculate the per-unit price from the total `amount` for the line. For example, if `amount=100` and `quantity=4`, the calculated unit price is 25.
@@ -107,6 +109,7 @@ module Stripe
107
109
 
108
110
  def initialize(
109
111
  amount: nil,
112
+ metadata: nil,
110
113
  product: nil,
111
114
  quantity: nil,
112
115
  reference: nil,
@@ -114,6 +117,7 @@ module Stripe
114
117
  tax_code: nil
115
118
  )
116
119
  @amount = amount
120
+ @metadata = metadata
117
121
  @product = product
118
122
  @quantity = quantity
119
123
  @reference = reference
@@ -1162,7 +1162,7 @@ module Stripe
1162
1162
 
1163
1163
  class Us < Stripe::RequestParams
1164
1164
  class LocalAmusementTax < Stripe::RequestParams
1165
- # A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. Supported FIPS codes are: `14000` (Chicago), `06613` (Bloomington), `21696` (East Dundee), `24582` (Evanston), `45421` (Lynwood), `64343` (River Grove), and `68081` (Schiller Park).
1165
+ # A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction. Supported FIPS codes are: `14000` (Chicago), `06613` (Bloomington), `21696` (East Dundee), `24582` (Evanston), `45421` (Lynwood), `48892` (Midlothian), `64343` (River Grove), and `68081` (Schiller Park).
1166
1166
  attr_accessor :jurisdiction
1167
1167
 
1168
1168
  def initialize(jurisdiction: nil)
@@ -3,8 +3,7 @@
3
3
 
4
4
  module Stripe
5
5
  class TaxIdService < StripeService
6
- class DeleteParams < Stripe::RequestParams
7
- end
6
+ class DeleteParams < Stripe::RequestParams; end
8
7
 
9
8
  class RetrieveParams < Stripe::RequestParams
10
9
  # Specifies which fields in the response should be expanded.
@@ -4,8 +4,7 @@
4
4
  module Stripe
5
5
  module Terminal
6
6
  class ConfigurationService < StripeService
7
- class DeleteParams < Stripe::RequestParams
8
- end
7
+ class DeleteParams < Stripe::RequestParams; end
9
8
 
10
9
  class RetrieveParams < Stripe::RequestParams
11
10
  # Specifies which fields in the response should be expanded.
@@ -4,8 +4,7 @@
4
4
  module Stripe
5
5
  module Terminal
6
6
  class LocationService < StripeService
7
- class DeleteParams < Stripe::RequestParams
8
- end
7
+ class DeleteParams < Stripe::RequestParams; end
9
8
 
10
9
  class RetrieveParams < Stripe::RequestParams
11
10
  # Specifies which fields in the response should be expanded.
@@ -149,7 +148,7 @@ module Stripe
149
148
  end
150
149
 
151
150
  # Creates a new Location object.
152
- # For further details, including which address fields are required in each country, see the [Manage locations](https://stripe.com/docs/terminal/fleet/locations) guide.
151
+ # For further details, including which address fields are required in each country, see the [Manage locations](https://docs.stripe.com/docs/terminal/fleet/locations) guide.
153
152
  def create(params = {}, opts = {})
154
153
  request(
155
154
  method: :post,
@@ -4,8 +4,7 @@
4
4
  module Stripe
5
5
  module Terminal
6
6
  class ReaderService < StripeService
7
- class DeleteParams < Stripe::RequestParams
8
- end
7
+ class DeleteParams < Stripe::RequestParams; end
9
8
 
10
9
  class RetrieveParams < Stripe::RequestParams
11
10
  # Specifies which fields in the response should be expanded.
@@ -106,6 +105,96 @@ module Stripe
106
105
  end
107
106
  end
108
107
 
108
+ class CollectInputsParams < Stripe::RequestParams
109
+ class Input < Stripe::RequestParams
110
+ class CustomText < Stripe::RequestParams
111
+ # The description which will be displayed when collecting this input
112
+ attr_accessor :description
113
+ # The skip button text
114
+ attr_accessor :skip_button
115
+ # The submit button text
116
+ attr_accessor :submit_button
117
+ # The title which will be displayed when collecting this input
118
+ attr_accessor :title
119
+
120
+ def initialize(description: nil, skip_button: nil, submit_button: nil, title: nil)
121
+ @description = description
122
+ @skip_button = skip_button
123
+ @submit_button = submit_button
124
+ @title = title
125
+ end
126
+ end
127
+
128
+ class Selection < Stripe::RequestParams
129
+ class Choice < Stripe::RequestParams
130
+ # The unique identifier for this choice
131
+ attr_accessor :id
132
+ # The style of the button which will be shown for this choice
133
+ attr_accessor :style
134
+ # The text which will be shown on the button for this choice
135
+ attr_accessor :text
136
+
137
+ def initialize(id: nil, style: nil, text: nil)
138
+ @id = id
139
+ @style = style
140
+ @text = text
141
+ end
142
+ end
143
+ # List of choices for the `selection` input
144
+ attr_accessor :choices
145
+
146
+ def initialize(choices: nil)
147
+ @choices = choices
148
+ end
149
+ end
150
+
151
+ class Toggle < Stripe::RequestParams
152
+ # The default value of the toggle
153
+ attr_accessor :default_value
154
+ # The description which will be displayed for the toggle
155
+ attr_accessor :description
156
+ # The title which will be displayed for the toggle
157
+ attr_accessor :title
158
+
159
+ def initialize(default_value: nil, description: nil, title: nil)
160
+ @default_value = default_value
161
+ @description = description
162
+ @title = title
163
+ end
164
+ end
165
+ # Customize the text which will be displayed while collecting this input
166
+ attr_accessor :custom_text
167
+ # Indicate that this input is required, disabling the skip button
168
+ attr_accessor :required
169
+ # Options for the `selection` input
170
+ attr_accessor :selection
171
+ # List of toggles to be displayed and customization for the toggles
172
+ attr_accessor :toggles
173
+ # The type of input to collect
174
+ attr_accessor :type
175
+
176
+ def initialize(custom_text: nil, required: nil, selection: nil, toggles: nil, type: nil)
177
+ @custom_text = custom_text
178
+ @required = required
179
+ @selection = selection
180
+ @toggles = toggles
181
+ @type = type
182
+ end
183
+ end
184
+ # Specifies which fields in the response should be expanded.
185
+ attr_accessor :expand
186
+ # List of inputs to be collected using the Reader
187
+ attr_accessor :inputs
188
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
189
+ attr_accessor :metadata
190
+
191
+ def initialize(expand: nil, inputs: nil, metadata: nil)
192
+ @expand = expand
193
+ @inputs = inputs
194
+ @metadata = metadata
195
+ end
196
+ end
197
+
109
198
  class ProcessPaymentIntentParams < Stripe::RequestParams
110
199
  class ProcessConfig < Stripe::RequestParams
111
200
  class Tipping < Stripe::RequestParams
@@ -120,6 +209,8 @@ module Stripe
120
209
  attr_accessor :allow_redisplay
121
210
  # Enables cancel button on transaction screens.
122
211
  attr_accessor :enable_customer_cancellation
212
+ # The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.
213
+ attr_accessor :return_url
123
214
  # Override showing a tipping selection screen on this transaction.
124
215
  attr_accessor :skip_tipping
125
216
  # Tipping configuration for this transaction.
@@ -128,11 +219,13 @@ module Stripe
128
219
  def initialize(
129
220
  allow_redisplay: nil,
130
221
  enable_customer_cancellation: nil,
222
+ return_url: nil,
131
223
  skip_tipping: nil,
132
224
  tipping: nil
133
225
  )
134
226
  @allow_redisplay = allow_redisplay
135
227
  @enable_customer_cancellation = enable_customer_cancellation
228
+ @return_url = return_url
136
229
  @skip_tipping = skip_tipping
137
230
  @tipping = tipping
138
231
  end
@@ -281,6 +374,17 @@ module Stripe
281
374
  )
282
375
  end
283
376
 
377
+ # Initiates an input collection flow on a Reader.
378
+ def collect_inputs(reader, params = {}, opts = {})
379
+ request(
380
+ method: :post,
381
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
382
+ params: params,
383
+ opts: opts,
384
+ base_address: :api
385
+ )
386
+ end
387
+
284
388
  # Creates a new Reader object.
285
389
  def create(params = {}, opts = {})
286
390
  request(