stripe 15.0.0 → 15.3.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 (320) hide show
  1. checksums.yaml +4 -4
  2. data/API_VERSION +1 -0
  3. data/CHANGELOG.md +129 -44
  4. data/CONTRIBUTING.md +25 -0
  5. data/Gemfile +1 -1
  6. data/OPENAPI_VERSION +1 -1
  7. data/README.md +28 -55
  8. data/VERSION +1 -1
  9. data/lib/stripe/api_operations/nested_resource.rb +35 -35
  10. data/lib/stripe/api_requestor.rb +1 -1
  11. data/lib/stripe/api_version.rb +2 -1
  12. data/lib/stripe/connection_manager.rb +1 -3
  13. data/lib/stripe/event_types.rb +1 -0
  14. data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +1 -1
  15. data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +1 -1
  16. data/lib/stripe/events/v2_core_event_destination_ping_event.rb +21 -0
  17. data/lib/stripe/oauth.rb +1 -1
  18. data/lib/stripe/resources/account.rb +198 -28
  19. data/lib/stripe/resources/account_session.rb +176 -72
  20. data/lib/stripe/resources/apple_pay_domain.rb +1 -2
  21. data/lib/stripe/resources/balance.rb +42 -0
  22. data/lib/stripe/resources/balance_transaction.rb +2 -0
  23. data/lib/stripe/resources/bank_account.rb +2 -2
  24. data/lib/stripe/resources/billing_portal/session.rb +3 -3
  25. data/lib/stripe/resources/capability.rb +1 -1
  26. data/lib/stripe/resources/charge.rb +43 -20
  27. data/lib/stripe/resources/checkout/session.rb +120 -19
  28. data/lib/stripe/resources/confirmation_token.rb +119 -100
  29. data/lib/stripe/resources/country_spec.rb +1 -1
  30. data/lib/stripe/resources/coupon.rb +2 -3
  31. data/lib/stripe/resources/credit_note.rb +21 -18
  32. data/lib/stripe/resources/customer.rb +4 -6
  33. data/lib/stripe/resources/customer_session.rb +5 -5
  34. data/lib/stripe/resources/dispute.rb +2 -2
  35. data/lib/stripe/resources/event.rb +3 -1
  36. data/lib/stripe/resources/file.rb +1 -1
  37. data/lib/stripe/resources/funding_instructions.rb +1 -1
  38. data/lib/stripe/resources/identity/verification_report.rb +6 -0
  39. data/lib/stripe/resources/identity/verification_session.rb +51 -11
  40. data/lib/stripe/resources/invoice.rb +146 -32
  41. data/lib/stripe/resources/invoice_item.rb +3 -7
  42. data/lib/stripe/resources/invoice_line_item.rb +1 -1
  43. data/lib/stripe/resources/invoice_payment.rb +9 -2
  44. data/lib/stripe/resources/issuing/authorization.rb +8 -8
  45. data/lib/stripe/resources/issuing/card.rb +1 -1
  46. data/lib/stripe/resources/issuing/dispute.rb +3 -3
  47. data/lib/stripe/resources/login_link.rb +2 -1
  48. data/lib/stripe/resources/mandate.rb +3 -0
  49. data/lib/stripe/resources/payment_intent.rb +602 -325
  50. data/lib/stripe/resources/payment_method.rb +76 -117
  51. data/lib/stripe/resources/payment_method_configuration.rb +356 -2
  52. data/lib/stripe/resources/payment_method_domain.rb +15 -2
  53. data/lib/stripe/resources/payout.rb +4 -4
  54. data/lib/stripe/resources/person.rb +27 -3
  55. data/lib/stripe/resources/plan.rb +2 -3
  56. data/lib/stripe/resources/price.rb +1 -1
  57. data/lib/stripe/resources/product.rb +1 -2
  58. data/lib/stripe/resources/quote.rb +28 -3
  59. data/lib/stripe/resources/radar/value_list.rb +1 -2
  60. data/lib/stripe/resources/radar/value_list_item.rb +1 -2
  61. data/lib/stripe/resources/refund.rb +8 -1
  62. data/lib/stripe/resources/reversal.rb +1 -1
  63. data/lib/stripe/resources/review.rb +1 -1
  64. data/lib/stripe/resources/setup_attempt.rb +1 -1
  65. data/lib/stripe/resources/setup_intent.rb +414 -293
  66. data/lib/stripe/resources/source.rb +1 -1
  67. data/lib/stripe/resources/subscription.rb +149 -27
  68. data/lib/stripe/resources/subscription_item.rb +33 -0
  69. data/lib/stripe/resources/subscription_schedule.rb +141 -4
  70. data/lib/stripe/resources/tax/calculation.rb +6 -2
  71. data/lib/stripe/resources/tax/calculation_line_item.rb +2 -0
  72. data/lib/stripe/resources/tax/registration.rb +261 -1
  73. data/lib/stripe/resources/tax/transaction.rb +1 -1
  74. data/lib/stripe/resources/tax_id.rb +3 -4
  75. data/lib/stripe/resources/tax_rate.rb +2 -2
  76. data/lib/stripe/resources/terminal/configuration.rb +2 -2
  77. data/lib/stripe/resources/terminal/location.rb +2 -3
  78. data/lib/stripe/resources/terminal/reader.rb +426 -6
  79. data/lib/stripe/resources/test_helpers/test_clock.rb +1 -2
  80. data/lib/stripe/resources/token.rb +63 -2
  81. data/lib/stripe/resources/transfer.rb +1 -1
  82. data/lib/stripe/resources/treasury/financial_account.rb +5 -1
  83. data/lib/stripe/resources/v2/billing/meter_event.rb +2 -2
  84. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +2 -2
  85. data/lib/stripe/resources/v2/billing/meter_event_session.rb +2 -2
  86. data/lib/stripe/resources/v2/event.rb +2 -2
  87. data/lib/stripe/resources/v2/event_destination.rb +2 -2
  88. data/lib/stripe/resources/webhook_endpoint.rb +1 -2
  89. data/lib/stripe/resources.rb +1 -0
  90. data/lib/stripe/services/account_external_account_service.rb +3 -4
  91. data/lib/stripe/services/account_login_link_service.rb +1 -1
  92. data/lib/stripe/services/account_person_service.rb +85 -2
  93. data/lib/stripe/services/account_service.rb +169 -20
  94. data/lib/stripe/services/account_session_service.rb +115 -47
  95. data/lib/stripe/services/apple_pay_domain_service.rb +1 -2
  96. data/lib/stripe/services/application_fee_service.rb +1 -1
  97. data/lib/stripe/services/apps_service.rb +1 -1
  98. data/lib/stripe/services/balance_service.rb +1 -1
  99. data/lib/stripe/services/billing/meter_service.rb +1 -1
  100. data/lib/stripe/services/billing_portal/session_service.rb +1 -1
  101. data/lib/stripe/services/billing_portal_service.rb +1 -1
  102. data/lib/stripe/services/billing_service.rb +1 -1
  103. data/lib/stripe/services/charge_service.rb +4 -4
  104. data/lib/stripe/services/checkout/session_service.rb +94 -15
  105. data/lib/stripe/services/checkout_service.rb +1 -1
  106. data/lib/stripe/services/climate_service.rb +1 -1
  107. data/lib/stripe/services/coupon_service.rb +1 -2
  108. data/lib/stripe/services/credit_note_preview_lines_service.rb +3 -3
  109. data/lib/stripe/services/credit_note_service.rb +14 -15
  110. data/lib/stripe/services/customer_balance_transaction_service.rb +3 -3
  111. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +2 -2
  112. data/lib/stripe/services/customer_payment_method_service.rb +1 -1
  113. data/lib/stripe/services/customer_payment_source_service.rb +1 -1
  114. data/lib/stripe/services/customer_service.rb +5 -7
  115. data/lib/stripe/services/customer_session_service.rb +1 -1
  116. data/lib/stripe/services/customer_tax_id_service.rb +2 -3
  117. data/lib/stripe/services/dispute_service.rb +1 -1
  118. data/lib/stripe/services/entitlements_service.rb +1 -1
  119. data/lib/stripe/services/file_service.rb +1 -1
  120. data/lib/stripe/services/financial_connections/account_service.rb +1 -1
  121. data/lib/stripe/services/financial_connections_service.rb +1 -1
  122. data/lib/stripe/services/forwarding_service.rb +1 -1
  123. data/lib/stripe/services/identity/verification_session_service.rb +21 -5
  124. data/lib/stripe/services/identity_service.rb +1 -1
  125. data/lib/stripe/services/invoice_item_service.rb +1 -2
  126. data/lib/stripe/services/invoice_service.rb +122 -28
  127. data/lib/stripe/services/issuing/authorization_service.rb +4 -4
  128. data/lib/stripe/services/issuing/card_service.rb +1 -1
  129. data/lib/stripe/services/issuing/dispute_service.rb +2 -2
  130. data/lib/stripe/services/issuing_service.rb +1 -1
  131. data/lib/stripe/services/payment_intent_service.rb +563 -313
  132. data/lib/stripe/services/payment_link_service.rb +1 -1
  133. data/lib/stripe/services/payment_method_configuration_service.rb +254 -2
  134. data/lib/stripe/services/payment_method_domain_service.rb +1 -1
  135. data/lib/stripe/services/payment_method_service.rb +59 -105
  136. data/lib/stripe/services/payout_service.rb +2 -2
  137. data/lib/stripe/services/plan_service.rb +2 -3
  138. data/lib/stripe/services/price_service.rb +2 -2
  139. data/lib/stripe/services/product_feature_service.rb +1 -2
  140. data/lib/stripe/services/product_service.rb +3 -4
  141. data/lib/stripe/services/promotion_code_service.rb +1 -1
  142. data/lib/stripe/services/quote_service.rb +21 -4
  143. data/lib/stripe/services/radar/early_fraud_warning_service.rb +1 -1
  144. data/lib/stripe/services/radar/value_list_item_service.rb +1 -2
  145. data/lib/stripe/services/radar/value_list_service.rb +1 -2
  146. data/lib/stripe/services/radar_service.rb +1 -1
  147. data/lib/stripe/services/reporting_service.rb +1 -1
  148. data/lib/stripe/services/setup_intent_service.rb +403 -291
  149. data/lib/stripe/services/sigma_service.rb +1 -1
  150. data/lib/stripe/services/source_service.rb +2 -2
  151. data/lib/stripe/services/subscription_item_service.rb +26 -0
  152. data/lib/stripe/services/subscription_schedule_service.rb +106 -3
  153. data/lib/stripe/services/subscription_service.rb +121 -26
  154. data/lib/stripe/services/tax/calculation_service.rb +6 -2
  155. data/lib/stripe/services/tax/registration_service.rb +170 -1
  156. data/lib/stripe/services/tax/transaction_service.rb +1 -1
  157. data/lib/stripe/services/tax_id_service.rb +2 -3
  158. data/lib/stripe/services/tax_service.rb +1 -1
  159. data/lib/stripe/services/terminal/configuration_service.rb +1 -2
  160. data/lib/stripe/services/terminal/location_service.rb +2 -3
  161. data/lib/stripe/services/terminal/reader_service.rb +196 -2
  162. data/lib/stripe/services/terminal_service.rb +1 -1
  163. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +90 -91
  164. data/lib/stripe/services/test_helpers/issuing_service.rb +1 -1
  165. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +43 -0
  166. data/lib/stripe/services/test_helpers/terminal_service.rb +1 -1
  167. data/lib/stripe/services/test_helpers/test_clock_service.rb +1 -2
  168. data/lib/stripe/services/test_helpers/treasury_service.rb +1 -1
  169. data/lib/stripe/services/test_helpers_service.rb +1 -1
  170. data/lib/stripe/services/token_service.rb +62 -1
  171. data/lib/stripe/services/transfer_service.rb +2 -2
  172. data/lib/stripe/services/treasury/financial_account_service.rb +6 -2
  173. data/lib/stripe/services/treasury_service.rb +1 -1
  174. data/lib/stripe/services/v1_services.rb +1 -1
  175. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +1 -2
  176. data/lib/stripe/services/v2/billing_service.rb +3 -3
  177. data/lib/stripe/services/v2/core/event_destination_service.rb +17 -23
  178. data/lib/stripe/services/v2/core/event_service.rb +1 -2
  179. data/lib/stripe/services/v2/core_service.rb +1 -1
  180. data/lib/stripe/services/v2_services.rb +1 -1
  181. data/lib/stripe/services/webhook_endpoint_service.rb +1 -2
  182. data/lib/stripe/version.rb +1 -1
  183. data/lib/stripe/webhook.rb +1 -1
  184. data/rbi/stripe/resources/account.rbi +190 -35
  185. data/rbi/stripe/resources/account_session.rbi +196 -77
  186. data/rbi/stripe/resources/apple_pay_domain.rbi +1 -3
  187. data/rbi/stripe/resources/balance.rbi +55 -0
  188. data/rbi/stripe/resources/balance_transaction.rbi +3 -0
  189. data/rbi/stripe/resources/bank_account.rbi +2 -2
  190. data/rbi/stripe/resources/billing/alert.rbi +2 -2
  191. data/rbi/stripe/resources/billing_portal/session.rbi +3 -3
  192. data/rbi/stripe/resources/capability.rbi +1 -1
  193. data/rbi/stripe/resources/charge.rbi +52 -20
  194. data/rbi/stripe/resources/checkout/session.rbi +133 -24
  195. data/rbi/stripe/resources/confirmation_token.rbi +140 -115
  196. data/rbi/stripe/resources/country_spec.rbi +1 -1
  197. data/rbi/stripe/resources/coupon.rbi +2 -4
  198. data/rbi/stripe/resources/credit_note.rbi +23 -18
  199. data/rbi/stripe/resources/customer.rbi +4 -8
  200. data/rbi/stripe/resources/customer_session.rbi +5 -5
  201. data/rbi/stripe/resources/dispute.rbi +2 -2
  202. data/rbi/stripe/resources/event.rbi +4 -1
  203. data/rbi/stripe/resources/file.rbi +1 -1
  204. data/rbi/stripe/resources/identity/verification_report.rbi +9 -0
  205. data/rbi/stripe/resources/identity/verification_session.rbi +59 -12
  206. data/rbi/stripe/resources/invoice.rbi +149 -40
  207. data/rbi/stripe/resources/invoice_item.rbi +3 -8
  208. data/rbi/stripe/resources/invoice_line_item.rbi +2 -2
  209. data/rbi/stripe/resources/invoice_payment.rbi +9 -2
  210. data/rbi/stripe/resources/issuing/authorization.rbi +8 -8
  211. data/rbi/stripe/resources/issuing/card.rbi +1 -1
  212. data/rbi/stripe/resources/issuing/dispute.rbi +3 -3
  213. data/rbi/stripe/resources/login_link.rbi +2 -1
  214. data/rbi/stripe/resources/mandate.rbi +4 -0
  215. data/rbi/stripe/resources/payment_intent.rbi +637 -381
  216. data/rbi/stripe/resources/payment_method.rbi +81 -133
  217. data/rbi/stripe/resources/payment_method_configuration.rbi +400 -4
  218. data/rbi/stripe/resources/payment_method_domain.rbi +18 -2
  219. data/rbi/stripe/resources/payout.rbi +4 -4
  220. data/rbi/stripe/resources/person.rbi +33 -3
  221. data/rbi/stripe/resources/plan.rbi +2 -4
  222. data/rbi/stripe/resources/price.rbi +1 -1
  223. data/rbi/stripe/resources/product.rbi +1 -3
  224. data/rbi/stripe/resources/quote.rbi +25 -3
  225. data/rbi/stripe/resources/radar/value_list.rbi +1 -3
  226. data/rbi/stripe/resources/radar/value_list_item.rbi +1 -3
  227. data/rbi/stripe/resources/refund.rbi +8 -1
  228. data/rbi/stripe/resources/reversal.rbi +1 -1
  229. data/rbi/stripe/resources/review.rbi +1 -1
  230. data/rbi/stripe/resources/setup_attempt.rbi +1 -1
  231. data/rbi/stripe/resources/setup_intent.rbi +464 -346
  232. data/rbi/stripe/resources/source.rbi +1 -1
  233. data/rbi/stripe/resources/subscription.rbi +150 -34
  234. data/rbi/stripe/resources/subscription_item.rbi +36 -2
  235. data/rbi/stripe/resources/subscription_schedule.rbi +161 -11
  236. data/rbi/stripe/resources/tax/calculation.rbi +7 -3
  237. data/rbi/stripe/resources/tax/calculation_line_item.rbi +4 -1
  238. data/rbi/stripe/resources/tax/registration.rbi +249 -2
  239. data/rbi/stripe/resources/tax/transaction.rbi +1 -1
  240. data/rbi/stripe/resources/tax_id.rbi +3 -5
  241. data/rbi/stripe/resources/tax_rate.rbi +2 -2
  242. data/rbi/stripe/resources/terminal/configuration.rbi +2 -3
  243. data/rbi/stripe/resources/terminal/location.rbi +4 -6
  244. data/rbi/stripe/resources/terminal/reader.rbi +415 -8
  245. data/rbi/stripe/resources/test_helpers/test_clock.rbi +1 -3
  246. data/rbi/stripe/resources/token.rbi +70 -4
  247. data/rbi/stripe/resources/transfer.rbi +1 -1
  248. data/rbi/stripe/resources/treasury/financial_account.rbi +6 -2
  249. data/rbi/stripe/resources/v2/billing/meter_event.rbi +3 -3
  250. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +3 -3
  251. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +3 -3
  252. data/rbi/stripe/resources/v2/event.rbi +3 -3
  253. data/rbi/stripe/resources/v2/event_destination.rbi +3 -3
  254. data/rbi/stripe/resources/webhook_endpoint.rbi +1 -3
  255. data/rbi/stripe/services/account_external_account_service.rbi +3 -5
  256. data/rbi/stripe/services/account_login_link_service.rbi +1 -1
  257. data/rbi/stripe/services/account_person_service.rbi +93 -5
  258. data/rbi/stripe/services/account_service.rbi +166 -28
  259. data/rbi/stripe/services/account_session_service.rbi +126 -52
  260. data/rbi/stripe/services/apple_pay_domain_service.rbi +1 -3
  261. data/rbi/stripe/services/balance_service.rbi +1 -1
  262. data/rbi/stripe/services/billing/alert_service.rbi +2 -2
  263. data/rbi/stripe/services/billing_portal/session_service.rbi +1 -1
  264. data/rbi/stripe/services/charge_service.rbi +4 -4
  265. data/rbi/stripe/services/checkout/session_service.rbi +104 -19
  266. data/rbi/stripe/services/coupon_service.rbi +1 -3
  267. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +3 -3
  268. data/rbi/stripe/services/credit_note_service.rbi +13 -14
  269. data/rbi/stripe/services/customer_balance_transaction_service.rbi +3 -3
  270. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +2 -2
  271. data/rbi/stripe/services/customer_payment_method_service.rbi +1 -1
  272. data/rbi/stripe/services/customer_payment_source_service.rbi +1 -1
  273. data/rbi/stripe/services/customer_service.rbi +4 -8
  274. data/rbi/stripe/services/customer_session_service.rbi +1 -1
  275. data/rbi/stripe/services/customer_tax_id_service.rbi +2 -4
  276. data/rbi/stripe/services/dispute_service.rbi +1 -1
  277. data/rbi/stripe/services/file_service.rbi +1 -1
  278. data/rbi/stripe/services/identity/verification_session_service.rbi +22 -6
  279. data/rbi/stripe/services/invoice_item_service.rbi +1 -3
  280. data/rbi/stripe/services/invoice_service.rbi +126 -35
  281. data/rbi/stripe/services/issuing/authorization_service.rbi +4 -4
  282. data/rbi/stripe/services/issuing/card_service.rbi +1 -1
  283. data/rbi/stripe/services/issuing/dispute_service.rbi +2 -2
  284. data/rbi/stripe/services/payment_intent_service.rbi +599 -369
  285. data/rbi/stripe/services/payment_method_configuration_service.rbi +280 -4
  286. data/rbi/stripe/services/payment_method_domain_service.rbi +1 -1
  287. data/rbi/stripe/services/payment_method_service.rbi +62 -121
  288. data/rbi/stripe/services/payout_service.rbi +2 -2
  289. data/rbi/stripe/services/plan_service.rbi +2 -4
  290. data/rbi/stripe/services/price_service.rbi +2 -2
  291. data/rbi/stripe/services/product_feature_service.rbi +1 -3
  292. data/rbi/stripe/services/product_service.rbi +2 -4
  293. data/rbi/stripe/services/promotion_code_service.rbi +1 -1
  294. data/rbi/stripe/services/quote_service.rbi +16 -3
  295. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +1 -1
  296. data/rbi/stripe/services/radar/value_list_item_service.rbi +1 -3
  297. data/rbi/stripe/services/radar/value_list_service.rbi +1 -3
  298. data/rbi/stripe/services/setup_intent_service.rbi +457 -344
  299. data/rbi/stripe/services/source_service.rbi +1 -1
  300. data/rbi/stripe/services/subscription_item_service.rbi +28 -2
  301. data/rbi/stripe/services/subscription_schedule_service.rbi +119 -10
  302. data/rbi/stripe/services/subscription_service.rbi +121 -33
  303. data/rbi/stripe/services/tax/calculation_service.rbi +6 -2
  304. data/rbi/stripe/services/tax/registration_service.rbi +171 -2
  305. data/rbi/stripe/services/tax_id_service.rbi +2 -4
  306. data/rbi/stripe/services/terminal/configuration_service.rbi +1 -3
  307. data/rbi/stripe/services/terminal/location_service.rbi +4 -6
  308. data/rbi/stripe/services/terminal/reader_service.rbi +200 -4
  309. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +106 -106
  310. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +31 -0
  311. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +1 -3
  312. data/rbi/stripe/services/token_service.rbi +71 -3
  313. data/rbi/stripe/services/transfer_service.rbi +1 -1
  314. data/rbi/stripe/services/treasury/financial_account_service.rbi +6 -2
  315. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +1 -3
  316. data/rbi/stripe/services/v2/billing_service.rbi +1 -1
  317. data/rbi/stripe/services/v2/core/event_destination_service.rbi +14 -22
  318. data/rbi/stripe/services/v2/core/event_service.rbi +1 -3
  319. data/rbi/stripe/services/webhook_endpoint_service.rbi +1 -3
  320. metadata +5 -2
@@ -26,7 +26,7 @@ module Stripe
26
26
  # Stripe applies any customer credit on the account before determining the
27
27
  # amount due for the invoice (i.e., the amount that will be actually
28
28
  # charged). If the amount due for the invoice is less than Stripe's [minimum allowed charge
29
- # per currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts), the
29
+ # per currency](https://docs.stripe.com/docs/currencies#minimum-and-maximum-charge-amounts), the
30
30
  # invoice is automatically marked paid, and we add the amount due to the
31
31
  # customer's credit balance which is applied to the next invoice.
32
32
  #
@@ -62,6 +62,8 @@ module Stripe
62
62
  attr_reader :enabled
63
63
  # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
64
64
  attr_reader :liability
65
+ # The tax provider powering automatic tax.
66
+ attr_reader :provider
65
67
  # The status of the most recent automated tax calculation for this invoice.
66
68
  attr_reader :status
67
69
  end
@@ -123,7 +125,7 @@ module Stripe
123
125
  end
124
126
 
125
127
  class CustomerTaxId < Stripe::StripeObject
126
- # The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, or `unknown`
128
+ # The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `hr_oib`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `li_vat`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `al_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, `tz_vat`, `uz_vat`, `uz_tin`, `md_vat`, `ma_vat`, `by_tin`, `ao_tin`, `bs_tin`, `bb_tin`, `cd_nif`, `mr_nif`, `me_pib`, `zw_tin`, `ba_tin`, `gn_nif`, `mk_vat`, `sr_fin`, `sn_ninea`, `am_tin`, `np_pan`, `tj_tin`, `ug_tin`, `zm_tin`, `kh_tin`, `aw_tin`, `az_tin`, `bd_bin`, `bj_ifu`, `et_tin`, `kg_tin`, `la_tin`, `cm_niu`, `cv_nif`, `bf_ifu`, or `unknown`
127
129
  attr_reader :type
128
130
  # The value of the tax ID.
129
131
  attr_reader :value
@@ -453,8 +455,7 @@ module Stripe
453
455
  attr_reader :type
454
456
  end
455
457
 
456
- class DeleteParams < Stripe::RequestParams
457
- end
458
+ class DeleteParams < Stripe::RequestParams; end
458
459
 
459
460
  class UpdateParams < Stripe::RequestParams
460
461
  class AutomaticTax < Stripe::RequestParams
@@ -558,7 +559,7 @@ module Stripe
558
559
  # For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card.
559
560
  # One of `month`.
560
561
  attr_accessor :interval
561
- # Type of installment plan, one of `fixed_count`.
562
+ # Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`.
562
563
  attr_accessor :type
563
564
 
564
565
  def initialize(count: nil, interval: nil, type: nil)
@@ -622,11 +623,8 @@ module Stripe
622
623
  end
623
624
  end
624
625
 
625
- class Konbini < Stripe::RequestParams
626
- end
627
-
628
- class SepaDebit < Stripe::RequestParams
629
- end
626
+ class Konbini < Stripe::RequestParams; end
627
+ class SepaDebit < Stripe::RequestParams; end
630
628
 
631
629
  class UsBankAccount < Stripe::RequestParams
632
630
  class FinancialConnections < Stripe::RequestParams
@@ -1208,7 +1206,7 @@ module Stripe
1208
1206
  # For `fixed_count` installment plans, this is required. It represents the interval between installment payments your customer will make to their credit card.
1209
1207
  # One of `month`.
1210
1208
  attr_accessor :interval
1211
- # Type of installment plan, one of `fixed_count`.
1209
+ # Type of installment plan, one of `fixed_count`, `bonus`, or `revolving`.
1212
1210
  attr_accessor :type
1213
1211
 
1214
1212
  def initialize(count: nil, interval: nil, type: nil)
@@ -1272,11 +1270,8 @@ module Stripe
1272
1270
  end
1273
1271
  end
1274
1272
 
1275
- class Konbini < Stripe::RequestParams
1276
- end
1277
-
1278
- class SepaDebit < Stripe::RequestParams
1279
- end
1273
+ class Konbini < Stripe::RequestParams; end
1274
+ class SepaDebit < Stripe::RequestParams; end
1280
1275
 
1281
1276
  class UsBankAccount < Stripe::RequestParams
1282
1277
  class FinancialConnections < Stripe::RequestParams
@@ -1922,6 +1917,18 @@ module Stripe
1922
1917
  end
1923
1918
  end
1924
1919
 
1920
+ class AttachPaymentParams < Stripe::RequestParams
1921
+ # Specifies which fields in the response should be expanded.
1922
+ attr_accessor :expand
1923
+ # The ID of the PaymentIntent to attach to the invoice.
1924
+ attr_accessor :payment_intent
1925
+
1926
+ def initialize(expand: nil, payment_intent: nil)
1927
+ @expand = expand
1928
+ @payment_intent = payment_intent
1929
+ end
1930
+ end
1931
+
1925
1932
  class FinalizeInvoiceParams < Stripe::RequestParams
1926
1933
  # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.
1927
1934
  attr_accessor :auto_advance
@@ -2357,7 +2364,7 @@ module Stripe
2357
2364
  end
2358
2365
 
2359
2366
  class TaxId < Stripe::RequestParams
2360
- # Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `ba_tin`, `bb_tin`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kh_tin`, `kr_brn`, `kz_bin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin`
2367
+ # Type of the tax ID, one of `ad_nrt`, `ae_trn`, `al_tin`, `am_tin`, `ao_tin`, `ar_cuit`, `au_abn`, `au_arn`, `aw_tin`, `az_tin`, `ba_tin`, `bb_tin`, `bd_bin`, `bf_ifu`, `bg_uic`, `bh_vat`, `bj_ifu`, `bo_tin`, `br_cnpj`, `br_cpf`, `bs_tin`, `by_tin`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `cd_nif`, `ch_uid`, `ch_vat`, `cl_tin`, `cm_niu`, `cn_tin`, `co_nit`, `cr_tin`, `cv_nif`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `et_tin`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `gn_nif`, `hk_br`, `hr_oib`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kg_tin`, `kh_tin`, `kr_brn`, `kz_bin`, `la_tin`, `li_uid`, `li_vat`, `ma_vat`, `md_vat`, `me_pib`, `mk_vat`, `mr_nif`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `np_pan`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sn_ninea`, `sr_fin`, `sv_nit`, `th_vat`, `tj_tin`, `tr_tin`, `tw_vat`, `tz_vat`, `ua_vat`, `ug_tin`, `us_ein`, `uy_ruc`, `uz_tin`, `uz_vat`, `ve_rif`, `vn_tin`, `za_vat`, `zm_tin`, or `zw_tin`
2361
2368
  attr_accessor :type
2362
2369
  # Value of the tax ID.
2363
2370
  attr_accessor :value
@@ -2539,6 +2546,15 @@ module Stripe
2539
2546
  end
2540
2547
 
2541
2548
  class ScheduleDetails < Stripe::RequestParams
2549
+ class BillingMode < Stripe::RequestParams
2550
+ # Attribute for param field type
2551
+ attr_accessor :type
2552
+
2553
+ def initialize(type: nil)
2554
+ @type = type
2555
+ end
2556
+ end
2557
+
2542
2558
  class Phase < Stripe::RequestParams
2543
2559
  class AddInvoiceItem < Stripe::RequestParams
2544
2560
  class Discount < Stripe::RequestParams
@@ -2631,6 +2647,18 @@ module Stripe
2631
2647
  end
2632
2648
  end
2633
2649
 
2650
+ class BillingThresholds < Stripe::RequestParams
2651
+ # Monetary threshold that triggers the subscription to advance to a new billing period
2652
+ attr_accessor :amount_gte
2653
+ # 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.
2654
+ attr_accessor :reset_billing_cycle_anchor
2655
+
2656
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
2657
+ @amount_gte = amount_gte
2658
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
2659
+ end
2660
+ end
2661
+
2634
2662
  class Discount < Stripe::RequestParams
2635
2663
  # ID of the coupon to create a new discount for.
2636
2664
  attr_accessor :coupon
@@ -2673,6 +2701,15 @@ module Stripe
2673
2701
  end
2674
2702
 
2675
2703
  class Item < Stripe::RequestParams
2704
+ class BillingThresholds < Stripe::RequestParams
2705
+ # 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))
2706
+ attr_accessor :usage_gte
2707
+
2708
+ def initialize(usage_gte: nil)
2709
+ @usage_gte = usage_gte
2710
+ end
2711
+ end
2712
+
2676
2713
  class Discount < Stripe::RequestParams
2677
2714
  # ID of the coupon to create a new discount for.
2678
2715
  attr_accessor :coupon
@@ -2729,6 +2766,8 @@ module Stripe
2729
2766
  @unit_amount_decimal = unit_amount_decimal
2730
2767
  end
2731
2768
  end
2769
+ # 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.
2770
+ attr_accessor :billing_thresholds
2732
2771
  # The coupons to redeem into discounts for the subscription item.
2733
2772
  attr_accessor :discounts
2734
2773
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`.
@@ -2745,6 +2784,7 @@ module Stripe
2745
2784
  attr_accessor :tax_rates
2746
2785
 
2747
2786
  def initialize(
2787
+ billing_thresholds: nil,
2748
2788
  discounts: nil,
2749
2789
  metadata: nil,
2750
2790
  plan: nil,
@@ -2753,6 +2793,7 @@ module Stripe
2753
2793
  quantity: nil,
2754
2794
  tax_rates: nil
2755
2795
  )
2796
+ @billing_thresholds = billing_thresholds
2756
2797
  @discounts = discounts
2757
2798
  @metadata = metadata
2758
2799
  @plan = plan
@@ -2782,6 +2823,8 @@ module Stripe
2782
2823
  attr_accessor :automatic_tax
2783
2824
  # Can be set to `phase_start` to set the anchor to the start of the phase or `automatic` to automatically change it if needed. Cannot be set to `phase_start` if this phase specifies a trial. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
2784
2825
  attr_accessor :billing_cycle_anchor
2826
+ # 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.
2827
+ attr_accessor :billing_thresholds
2785
2828
  # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing 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` on creation.
2786
2829
  attr_accessor :collection_method
2787
2830
  # 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).
@@ -2806,7 +2849,7 @@ module Stripe
2806
2849
  attr_accessor :metadata
2807
2850
  # The account on behalf of which to charge, for each of the associated subscription's invoices.
2808
2851
  attr_accessor :on_behalf_of
2809
- # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
2852
+ # Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase.
2810
2853
  attr_accessor :proration_behavior
2811
2854
  # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
2812
2855
  attr_accessor :start_date
@@ -2822,6 +2865,7 @@ module Stripe
2822
2865
  application_fee_percent: nil,
2823
2866
  automatic_tax: nil,
2824
2867
  billing_cycle_anchor: nil,
2868
+ billing_thresholds: nil,
2825
2869
  collection_method: nil,
2826
2870
  currency: nil,
2827
2871
  default_payment_method: nil,
@@ -2844,6 +2888,7 @@ module Stripe
2844
2888
  @application_fee_percent = application_fee_percent
2845
2889
  @automatic_tax = automatic_tax
2846
2890
  @billing_cycle_anchor = billing_cycle_anchor
2891
+ @billing_thresholds = billing_thresholds
2847
2892
  @collection_method = collection_method
2848
2893
  @currency = currency
2849
2894
  @default_payment_method = default_payment_method
@@ -2863,6 +2908,8 @@ module Stripe
2863
2908
  @trial_end = trial_end
2864
2909
  end
2865
2910
  end
2911
+ # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
2912
+ attr_accessor :billing_mode
2866
2913
  # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.
2867
2914
  attr_accessor :end_behavior
2868
2915
  # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.
@@ -2870,7 +2917,8 @@ module Stripe
2870
2917
  # In cases where the `schedule_details` params update the currently active phase, specifies if and how to prorate at the time of the request.
2871
2918
  attr_accessor :proration_behavior
2872
2919
 
2873
- def initialize(end_behavior: nil, phases: nil, proration_behavior: nil)
2920
+ def initialize(billing_mode: nil, end_behavior: nil, phases: nil, proration_behavior: nil)
2921
+ @billing_mode = billing_mode
2874
2922
  @end_behavior = end_behavior
2875
2923
  @phases = phases
2876
2924
  @proration_behavior = proration_behavior
@@ -2878,7 +2926,25 @@ module Stripe
2878
2926
  end
2879
2927
 
2880
2928
  class SubscriptionDetails < Stripe::RequestParams
2929
+ class BillingMode < Stripe::RequestParams
2930
+ # Attribute for param field type
2931
+ attr_accessor :type
2932
+
2933
+ def initialize(type: nil)
2934
+ @type = type
2935
+ end
2936
+ end
2937
+
2881
2938
  class Item < Stripe::RequestParams
2939
+ class BillingThresholds < Stripe::RequestParams
2940
+ # 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))
2941
+ attr_accessor :usage_gte
2942
+
2943
+ def initialize(usage_gte: nil)
2944
+ @usage_gte = usage_gte
2945
+ end
2946
+ end
2947
+
2882
2948
  class Discount < Stripe::RequestParams
2883
2949
  # ID of the coupon to create a new discount for.
2884
2950
  attr_accessor :coupon
@@ -2935,6 +3001,8 @@ module Stripe
2935
3001
  @unit_amount_decimal = unit_amount_decimal
2936
3002
  end
2937
3003
  end
3004
+ # 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.
3005
+ attr_accessor :billing_thresholds
2938
3006
  # 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.
2939
3007
  attr_accessor :clear_usage
2940
3008
  # A flag that, if set to `true`, will delete the specified item.
@@ -2957,6 +3025,7 @@ module Stripe
2957
3025
  attr_accessor :tax_rates
2958
3026
 
2959
3027
  def initialize(
3028
+ billing_thresholds: nil,
2960
3029
  clear_usage: nil,
2961
3030
  deleted: nil,
2962
3031
  discounts: nil,
@@ -2968,6 +3037,7 @@ module Stripe
2968
3037
  quantity: nil,
2969
3038
  tax_rates: nil
2970
3039
  )
3040
+ @billing_thresholds = billing_thresholds
2971
3041
  @clear_usage = clear_usage
2972
3042
  @deleted = deleted
2973
3043
  @discounts = discounts
@@ -2982,6 +3052,8 @@ module Stripe
2982
3052
  end
2983
3053
  # For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`.
2984
3054
  attr_accessor :billing_cycle_anchor
3055
+ # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
3056
+ attr_accessor :billing_mode
2985
3057
  # 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.
2986
3058
  attr_accessor :cancel_at
2987
3059
  # Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.
@@ -3005,6 +3077,7 @@ module Stripe
3005
3077
 
3006
3078
  def initialize(
3007
3079
  billing_cycle_anchor: nil,
3080
+ billing_mode: nil,
3008
3081
  cancel_at: nil,
3009
3082
  cancel_at_period_end: nil,
3010
3083
  cancel_now: nil,
@@ -3017,6 +3090,7 @@ module Stripe
3017
3090
  trial_end: nil
3018
3091
  )
3019
3092
  @billing_cycle_anchor = billing_cycle_anchor
3093
+ @billing_mode = billing_mode
3020
3094
  @cancel_at = cancel_at
3021
3095
  @cancel_at_period_end = cancel_at_period_end
3022
3096
  @cancel_now = cancel_now
@@ -3176,7 +3250,7 @@ module Stripe
3176
3250
  attr_reader :from_invoice
3177
3251
  # The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
3178
3252
  attr_reader :hosted_invoice_url
3179
- # Unique identifier for the object. This property is always present unless the invoice is an upcoming invoice. See [Retrieve an upcoming invoice](https://stripe.com/docs/api/invoices/upcoming) for more details.
3253
+ # Unique identifier for the object. For preview invoices created using the [create preview](https://stripe.com/docs/api/invoices/create_preview) endpoint, this id will be prefixed with `upcoming_in`.
3180
3254
  attr_reader :id
3181
3255
  # The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
3182
3256
  attr_reader :invoice_pdf
@@ -3273,16 +3347,56 @@ module Stripe
3273
3347
  )
3274
3348
  end
3275
3349
 
3276
- # This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers.
3350
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
3351
+ #
3352
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
3353
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
3354
+ # invoice's status becomes paid.
3355
+ #
3356
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
3357
+ # credited to the invoice immediately.
3358
+ #
3359
+ # See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more.
3360
+ def attach_payment(params = {}, opts = {})
3361
+ request_stripe_object(
3362
+ method: :post,
3363
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(self["id"]) }),
3364
+ params: params,
3365
+ opts: opts
3366
+ )
3367
+ end
3368
+
3369
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
3370
+ #
3371
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
3372
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
3373
+ # invoice's status becomes paid.
3374
+ #
3375
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
3376
+ # credited to the invoice immediately.
3377
+ #
3378
+ # See: [Partial payments](https://docs.stripe.com/docs/invoicing/partial-payments) to learn more.
3379
+ def self.attach_payment(invoice, params = {}, opts = {})
3380
+ request_stripe_object(
3381
+ method: :post,
3382
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(invoice) }),
3383
+ params: params,
3384
+ opts: opts
3385
+ )
3386
+ end
3387
+
3388
+ # This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://docs.stripe.com/api#finalize_invoice) the invoice to your customers.
3277
3389
  def self.create(params = {}, opts = {})
3278
3390
  request_stripe_object(method: :post, path: "/v1/invoices", params: params, opts: opts)
3279
3391
  end
3280
3392
 
3281
- # At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.
3393
+ # At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.
3282
3394
  #
3283
- # Note that when you are viewing an upcoming invoice, you are simply viewing a preview the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount.
3395
+ # You can also preview the effects of creating or updating a subscription or subscription schedule, including a preview of any prorations that will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update.
3396
+ #
3397
+ # The recommended way to get only the prorations being previewed on the invoice is to consider line items where parent.subscription_item_details.proration is true.
3284
3398
  #
3285
- # You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.
3399
+ # Note that when you are viewing an upcoming invoice, you are simply viewing a preview the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount.
3286
3400
  #
3287
3401
  # Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. [Learn more](https://docs.stripe.com/currencies/conversions)
3288
3402
  def self.create_preview(params = {}, opts = {})
@@ -3294,7 +3408,7 @@ module Stripe
3294
3408
  )
3295
3409
  end
3296
3410
 
3297
- # Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://stripe.com/docs/api#void_invoice).
3411
+ # Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice).
3298
3412
  def self.delete(invoice, params = {}, opts = {})
3299
3413
  request_stripe_object(
3300
3414
  method: :delete,
@@ -3304,7 +3418,7 @@ module Stripe
3304
3418
  )
3305
3419
  end
3306
3420
 
3307
- # Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://stripe.com/docs/api#void_invoice).
3421
+ # Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be [voided](https://docs.stripe.com/api#void_invoice).
3308
3422
  def delete(params = {}, opts = {})
3309
3423
  request_stripe_object(
3310
3424
  method: :delete,
@@ -3431,11 +3545,11 @@ module Stripe
3431
3545
  )
3432
3546
  end
3433
3547
 
3434
- # Draft invoices are fully editable. Once an invoice is [finalized](https://stripe.com/docs/billing/invoices/workflow#finalized),
3548
+ # Draft invoices are fully editable. Once an invoice is [finalized](https://docs.stripe.com/docs/billing/invoices/workflow#finalized),
3435
3549
  # monetary values, as well as collection_method, become uneditable.
3436
3550
  #
3437
3551
  # If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on,
3438
- # sending reminders for, or [automatically reconciling](https://stripe.com/docs/billing/invoices/reconciliation) invoices, pass
3552
+ # sending reminders for, or [automatically reconciling](https://docs.stripe.com/docs/billing/invoices/reconciliation) invoices, pass
3439
3553
  # auto_advance=false.
3440
3554
  def self.update(invoice, params = {}, opts = {})
3441
3555
  request_stripe_object(
@@ -3466,9 +3580,9 @@ module Stripe
3466
3580
  )
3467
3581
  end
3468
3582
 
3469
- # Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://stripe.com/docs/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
3583
+ # Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
3470
3584
  #
3471
- # Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or <a href="#create_credit_note">credit note](https://stripe.com/docs/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
3585
+ # Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or <a href="#create_credit_note">credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
3472
3586
  def void_invoice(params = {}, opts = {})
3473
3587
  request_stripe_object(
3474
3588
  method: :post,
@@ -3478,9 +3592,9 @@ module Stripe
3478
3592
  )
3479
3593
  end
3480
3594
 
3481
- # Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://stripe.com/docs/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
3595
+ # Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://docs.stripe.com/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
3482
3596
  #
3483
- # Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or <a href="#create_credit_note">credit note](https://stripe.com/docs/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
3597
+ # Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or <a href="#create_credit_note">credit note](https://docs.stripe.com/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
3484
3598
  def self.void_invoice(invoice, params = {}, opts = {})
3485
3599
  request_stripe_object(
3486
3600
  method: :post,
@@ -2,10 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
- # Invoice Items represent the component lines of an [invoice](https://stripe.com/docs/api/invoices). An invoice item is added to an
6
- # invoice by creating or updating it with an `invoice` field, at which point it will be included as
7
- # [an invoice line item](https://stripe.com/docs/api/invoices/line_item) within
8
- # [invoice.lines](https://stripe.com/docs/api/invoices/object#invoice_object-lines).
5
+ # Invoice Items represent the component lines of an [invoice](https://stripe.com/docs/api/invoices). When you create an invoice item with an `invoice` field, it is attached to the specified invoice and included as [an invoice line item](https://stripe.com/docs/api/invoices/line_item) within [invoice.lines](https://stripe.com/docs/api/invoices/object#invoice_object-lines).
9
6
  #
10
7
  # Invoice Items can be created before you are ready to actually send the invoice. This can be particularly useful when combined
11
8
  # with a [subscription](https://stripe.com/docs/api/subscriptions). Sometimes you want to add a charge or credit to a customer, but actually charge
@@ -59,8 +56,7 @@ module Stripe
59
56
  attr_reader :unit_amount_decimal
60
57
  end
61
58
 
62
- class DeleteParams < Stripe::RequestParams
63
- end
59
+ class DeleteParams < Stripe::RequestParams; end
64
60
 
65
61
  class UpdateParams < Stripe::RequestParams
66
62
  class Discount < Stripe::RequestParams
@@ -407,7 +403,7 @@ module Stripe
407
403
  attr_reader :metadata
408
404
  # String representing the object's type. Objects of the same type share the same value.
409
405
  attr_reader :object
410
- # The parent that generated this invoice
406
+ # The parent that generated this invoice item.
411
407
  attr_reader :parent
412
408
  # Attribute for field period
413
409
  attr_reader :period
@@ -348,7 +348,7 @@ module Stripe
348
348
  attr_reader :metadata
349
349
  # String representing the object's type. Objects of the same type share the same value.
350
350
  attr_reader :object
351
- # The parent that generated this invoice
351
+ # The parent that generated this line item.
352
352
  attr_reader :parent
353
353
  # Attribute for field period
354
354
  attr_reader :period
@@ -2,7 +2,14 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
- # The invoice payment object
5
+ # Invoice Payments represent payments made against invoices. Invoice Payments can
6
+ # be accessed in two ways:
7
+ # 1. By expanding the `payments` field on the [Invoice](https://stripe.com/docs/api#invoice) resource.
8
+ # 2. By using the Invoice Payment retrieve and list endpoints.
9
+ #
10
+ # Invoice Payments include the mapping between payment objects, such as Payment Intent, and Invoices.
11
+ # This resource and its endpoints allows you to easily track if a payment is associated with a specific invoice and
12
+ # monitor the allocation details of the payments.
6
13
  class InvoicePayment < APIResource
7
14
  extend Stripe::APIOperations::List
8
15
 
@@ -12,7 +19,7 @@ module Stripe
12
19
  end
13
20
 
14
21
  class Payment < Stripe::StripeObject
15
- # ID of the successful charge for this payment when `type` is `charge`.
22
+ # ID of the successful charge for this payment when `type` is `charge`.Note: charge is only surfaced if the charge object is not associated with a payment intent. If the charge object does have a payment intent, the Invoice Payment surfaces the payment intent instead.
16
23
  attr_reader :charge
17
24
  # ID of the PaymentIntent associated with this payment when `type` is `payment_intent`. Note: This property is only populated for invoices finalized on or after March 15th, 2019.
18
25
  attr_reader :payment_intent
@@ -1122,8 +1122,8 @@ module Stripe
1122
1122
  # The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized.
1123
1123
  attr_reader :wallet
1124
1124
 
1125
- # [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1126
- # This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1125
+ # [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1126
+ # This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1127
1127
  def approve(params = {}, opts = {})
1128
1128
  request_stripe_object(
1129
1129
  method: :post,
@@ -1134,8 +1134,8 @@ module Stripe
1134
1134
  end
1135
1135
 
1136
1136
  deprecate :approve, :none, 2024, 3
1137
- # [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1138
- # This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1137
+ # [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1138
+ # This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1139
1139
  def self.approve(authorization, params = {}, opts = {})
1140
1140
  request_stripe_object(
1141
1141
  method: :post,
@@ -1150,8 +1150,8 @@ module Stripe
1150
1150
  deprecate :approve, :none, 2024, 3
1151
1151
  end
1152
1152
 
1153
- # [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1154
- # This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1153
+ # [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1154
+ # This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1155
1155
  def decline(params = {}, opts = {})
1156
1156
  request_stripe_object(
1157
1157
  method: :post,
@@ -1162,8 +1162,8 @@ module Stripe
1162
1162
  end
1163
1163
 
1164
1164
  deprecate :decline, :none, 2024, 3
1165
- # [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1166
- # This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1165
+ # [Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the [real time authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations) flow.
1166
+ # This method is deprecated. Instead, [respond directly to the webhook request to decline an authorization](https://docs.stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling).
1167
1167
  def self.decline(authorization, params = {}, opts = {})
1168
1168
  request_stripe_object(
1169
1169
  method: :post,
@@ -345,7 +345,7 @@ module Stripe
345
345
  attr_accessor :currency
346
346
  # Specifies which fields in the response should be expanded.
347
347
  attr_accessor :expand
348
- # Attribute for param field financial_account
348
+ # The new financial account ID the card will be associated with. This field allows a card to be reassigned to a different financial account.
349
349
  attr_accessor :financial_account
350
350
  # 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`.
351
351
  attr_accessor :metadata
@@ -797,7 +797,7 @@ module Stripe
797
797
  # [Treasury](https://stripe.com/docs/api/treasury) details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts
798
798
  attr_reader :treasury
799
799
 
800
- # Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements.
800
+ # Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence) for more details about evidence requirements.
801
801
  def self.create(params = {}, opts = {})
802
802
  request_stripe_object(
803
803
  method: :post,
@@ -817,7 +817,7 @@ module Stripe
817
817
  )
818
818
  end
819
819
 
820
- # Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence).
820
+ # Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence).
821
821
  def submit(params = {}, opts = {})
822
822
  request_stripe_object(
823
823
  method: :post,
@@ -827,7 +827,7 @@ module Stripe
827
827
  )
828
828
  end
829
829
 
830
- # Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence).
830
+ # Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://docs.stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence).
831
831
  def self.submit(dispute, params = {}, opts = {})
832
832
  request_stripe_object(
833
833
  method: :post,
@@ -2,7 +2,8 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
- # Login Links are single-use URLs for a connected account to access the Express Dashboard. The connected account's [account.controller.stripe_dashboard.type](https://stripe.com/api/accounts/object#account_object-controller-stripe_dashboard-type) must be `express` to have access to the Express Dashboard.
5
+ # Login Links are single-use URLs that takes an Express account to the login page for their Stripe dashboard.
6
+ # A Login Link differs from an [Account Link](https://stripe.com/docs/api/account_links) in that it takes the user directly to their [Express dashboard for the specified account](https://stripe.com/docs/connect/integrate-express-dashboard#create-login-link)
6
7
  class LoginLink < APIResource
7
8
  OBJECT_NAME = "login_link"
8
9
  def self.object_name
@@ -63,6 +63,7 @@ module Stripe
63
63
  class Card < Stripe::StripeObject; end
64
64
  class Cashapp < Stripe::StripeObject; end
65
65
  class KakaoPay < Stripe::StripeObject; end
66
+ class Klarna < Stripe::StripeObject; end
66
67
  class KrCard < Stripe::StripeObject; end
67
68
  class Link < Stripe::StripeObject; end
68
69
  class NaverPay < Stripe::StripeObject; end
@@ -102,6 +103,8 @@ module Stripe
102
103
  attr_reader :cashapp
103
104
  # Attribute for field kakao_pay
104
105
  attr_reader :kakao_pay
106
+ # Attribute for field klarna
107
+ attr_reader :klarna
105
108
  # Attribute for field kr_card
106
109
  attr_reader :kr_card
107
110
  # Attribute for field link