stripe 5.38.0 → 15.2.1

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 (708) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +742 -0
  3. data/CONTRIBUTING.md +25 -0
  4. data/Gemfile +12 -4
  5. data/Makefile +22 -0
  6. data/OPENAPI_VERSION +1 -0
  7. data/README.md +137 -27
  8. data/Rakefile +3 -6
  9. data/VERSION +1 -1
  10. data/examples/README.md +16 -0
  11. data/examples/example_template.rb +36 -0
  12. data/examples/meter_event_stream.rb +57 -0
  13. data/examples/thinevent_webhook_handler.rb +39 -0
  14. data/{bin → exe}/stripe-console +1 -1
  15. data/justfile +43 -0
  16. data/lib/data/ca-certificates.crt +1241 -1937
  17. data/lib/stripe/api_operations/create.rb +6 -2
  18. data/lib/stripe/api_operations/delete.rb +12 -7
  19. data/lib/stripe/api_operations/list.rb +6 -9
  20. data/lib/stripe/api_operations/nested_resource.rb +59 -31
  21. data/lib/stripe/api_operations/request.rb +30 -65
  22. data/lib/stripe/api_operations/save.rb +20 -10
  23. data/lib/stripe/api_operations/search.rb +21 -0
  24. data/lib/stripe/api_operations/singleton_save.rb +90 -0
  25. data/lib/stripe/api_requestor.rb +1136 -0
  26. data/lib/stripe/api_resource.rb +49 -34
  27. data/lib/stripe/api_resource_test_helpers.rb +53 -0
  28. data/lib/stripe/{resources/usage_record.rb → api_version.rb} +2 -2
  29. data/lib/stripe/connection_manager.rb +28 -11
  30. data/lib/stripe/errors.rb +11 -20
  31. data/lib/stripe/event_types.rb +15 -0
  32. data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
  33. data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
  34. data/lib/stripe/events/v2_core_event_destination_ping_event.rb +21 -0
  35. data/lib/stripe/instrumentation.rb +37 -15
  36. data/lib/stripe/list_object.rb +5 -3
  37. data/lib/stripe/multipart_encoder.rb +7 -7
  38. data/lib/stripe/oauth.rb +14 -21
  39. data/lib/stripe/object_types.rb +157 -91
  40. data/lib/stripe/request_options.rb +129 -0
  41. data/lib/stripe/request_params.rb +24 -0
  42. data/lib/stripe/resources/account.rb +4854 -30
  43. data/lib/stripe/resources/account_link.rb +66 -0
  44. data/lib/stripe/resources/account_session.rb +868 -0
  45. data/lib/stripe/resources/alipay_account.rb +1 -1
  46. data/lib/stripe/resources/apple_pay_domain.rb +91 -0
  47. data/lib/stripe/resources/application.rb +20 -0
  48. data/lib/stripe/resources/application_fee.rb +96 -2
  49. data/lib/stripe/resources/application_fee_refund.rb +26 -2
  50. data/lib/stripe/resources/apps/secret.rb +196 -0
  51. data/lib/stripe/resources/balance.rb +178 -0
  52. data/lib/stripe/resources/balance_transaction.rb +124 -0
  53. data/lib/stripe/resources/bank_account.rb +137 -6
  54. data/lib/stripe/resources/billing/alert.rb +222 -0
  55. data/lib/stripe/resources/billing/alert_triggered.rb +26 -0
  56. data/lib/stripe/resources/billing/credit_balance_summary.rb +54 -0
  57. data/lib/stripe/resources/billing/credit_balance_transaction.rb +133 -0
  58. data/lib/stripe/resources/billing/credit_grant.rb +307 -0
  59. data/lib/stripe/resources/billing/meter.rb +254 -0
  60. data/lib/stripe/resources/billing/meter_event.rb +61 -0
  61. data/lib/stripe/resources/billing/meter_event_adjustment.rb +69 -0
  62. data/lib/stripe/resources/billing/meter_event_summary.rb +32 -0
  63. data/lib/stripe/resources/billing_portal/configuration.rb +587 -0
  64. data/lib/stripe/resources/billing_portal/session.rb +298 -0
  65. data/lib/stripe/resources/capability.rb +91 -2
  66. data/lib/stripe/resources/card.rb +111 -3
  67. data/lib/stripe/resources/cash_balance.rb +43 -0
  68. data/lib/stripe/resources/charge.rb +1682 -2
  69. data/lib/stripe/resources/checkout/session.rb +3666 -2
  70. data/lib/stripe/resources/climate/order.rb +234 -0
  71. data/lib/stripe/resources/climate/product.rb +74 -0
  72. data/lib/stripe/resources/climate/supplier.rb +71 -0
  73. data/lib/stripe/resources/confirmation_token.rb +1498 -0
  74. data/lib/stripe/resources/connect_collection_transfer.rb +24 -0
  75. data/lib/stripe/resources/country_spec.rb +68 -0
  76. data/lib/stripe/resources/coupon.rb +236 -0
  77. data/lib/stripe/resources/credit_note.rb +709 -9
  78. data/lib/stripe/resources/credit_note_line_item.rb +71 -0
  79. data/lib/stripe/resources/customer.rb +1015 -16
  80. data/lib/stripe/resources/customer_balance_transaction.rb +38 -1
  81. data/lib/stripe/resources/customer_cash_balance_transaction.rb +124 -0
  82. data/lib/stripe/resources/customer_session.rb +188 -0
  83. data/lib/stripe/resources/discount.rb +37 -0
  84. data/lib/stripe/resources/dispute.rb +650 -2
  85. data/lib/stripe/resources/entitlements/active_entitlement.rb +63 -0
  86. data/lib/stripe/resources/entitlements/active_entitlement_summary.rb +23 -0
  87. data/lib/stripe/resources/entitlements/feature.rb +130 -0
  88. data/lib/stripe/resources/ephemeral_key.rb +44 -0
  89. data/lib/stripe/resources/event.rb +130 -0
  90. data/lib/stripe/resources/exchange_rate.rb +58 -0
  91. data/lib/stripe/resources/file.rb +139 -15
  92. data/lib/stripe/resources/file_link.rb +129 -0
  93. data/lib/stripe/resources/financial_connections/account.rb +363 -0
  94. data/lib/stripe/resources/financial_connections/account_owner.rb +31 -0
  95. data/lib/stripe/resources/financial_connections/account_ownership.rb +23 -0
  96. data/lib/stripe/resources/financial_connections/session.rb +121 -0
  97. data/lib/stripe/resources/financial_connections/transaction.rb +118 -0
  98. data/lib/stripe/resources/forwarding/request.rb +208 -0
  99. data/lib/stripe/resources/funding_instructions.rb +332 -0
  100. data/lib/stripe/resources/identity/verification_report.rb +287 -0
  101. data/lib/stripe/resources/identity/verification_session.rb +474 -4
  102. data/lib/stripe/resources/invoice.rb +3525 -17
  103. data/lib/stripe/resources/invoice_item.rb +453 -0
  104. data/lib/stripe/resources/invoice_line_item.rb +372 -1
  105. data/lib/stripe/resources/invoice_payment.rb +112 -0
  106. data/lib/stripe/resources/invoice_rendering_template.rb +120 -0
  107. data/lib/stripe/resources/issuing/authorization.rb +1313 -4
  108. data/lib/stripe/resources/issuing/card.rb +785 -4
  109. data/lib/stripe/resources/issuing/cardholder.rb +684 -0
  110. data/lib/stripe/resources/issuing/dispute.rb +828 -2
  111. data/lib/stripe/resources/issuing/personalization_design.rb +395 -0
  112. data/lib/stripe/resources/issuing/physical_bundle.rb +80 -0
  113. data/lib/stripe/resources/issuing/token.rb +198 -0
  114. data/lib/stripe/resources/issuing/transaction.rb +991 -0
  115. data/lib/stripe/resources/line_item.rb +51 -0
  116. data/lib/stripe/resources/login_link.rb +12 -0
  117. data/lib/stripe/resources/mandate.rb +146 -0
  118. data/lib/stripe/resources/payment_intent.rb +8876 -6
  119. data/lib/stripe/resources/payment_link.rb +1692 -0
  120. data/lib/stripe/resources/payment_method.rb +1570 -4
  121. data/lib/stripe/resources/payment_method_configuration.rb +3189 -0
  122. data/lib/stripe/resources/payment_method_domain.rb +236 -0
  123. data/lib/stripe/resources/payout.rb +271 -4
  124. data/lib/stripe/resources/person.rb +295 -1
  125. data/lib/stripe/resources/plan.rb +352 -0
  126. data/lib/stripe/resources/price.rb +642 -0
  127. data/lib/stripe/resources/product.rb +534 -0
  128. data/lib/stripe/resources/product_feature.rb +25 -0
  129. data/lib/stripe/resources/promotion_code.rb +237 -0
  130. data/lib/stripe/resources/quote.rb +1015 -38
  131. data/lib/stripe/resources/radar/early_fraud_warning.rb +85 -0
  132. data/lib/stripe/resources/radar/value_list.rb +171 -0
  133. data/lib/stripe/resources/radar/value_list_item.rb +131 -0
  134. data/lib/stripe/resources/refund.rb +494 -0
  135. data/lib/stripe/resources/reporting/report_run.rb +172 -0
  136. data/lib/stripe/resources/reporting/report_type.rb +48 -1
  137. data/lib/stripe/resources/reserve_transaction.rb +22 -0
  138. data/lib/stripe/resources/reversal.rb +38 -2
  139. data/lib/stripe/resources/review.rb +122 -2
  140. data/lib/stripe/resources/setup_attempt.rb +380 -0
  141. data/lib/stripe/resources/setup_intent.rb +3432 -4
  142. data/lib/stripe/resources/shipping_rate.rb +287 -0
  143. data/lib/stripe/resources/sigma/scheduled_query_run.rb +62 -0
  144. data/lib/stripe/resources/source.rb +1250 -10
  145. data/lib/stripe/resources/source_mandate_notification.rb +66 -0
  146. data/lib/stripe/resources/source_transaction.rb +93 -0
  147. data/lib/stripe/resources/subscription.rb +1871 -3
  148. data/lib/stripe/resources/subscription_item.rb +399 -10
  149. data/lib/stripe/resources/subscription_schedule.rb +1455 -4
  150. data/lib/stripe/resources/tax/calculation.rb +430 -0
  151. data/lib/stripe/resources/tax/calculation_line_item.rb +71 -0
  152. data/lib/stripe/resources/tax/registration.rb +2667 -0
  153. data/lib/stripe/resources/tax/settings.rb +134 -0
  154. data/lib/stripe/resources/tax/transaction.rb +314 -0
  155. data/lib/stripe/resources/tax/transaction_line_item.rb +44 -0
  156. data/lib/stripe/resources/tax_code.rb +35 -0
  157. data/lib/stripe/resources/tax_deducted_at_source.rb +22 -0
  158. data/lib/stripe/resources/tax_id.rb +144 -11
  159. data/lib/stripe/resources/tax_rate.rb +217 -0
  160. data/lib/stripe/resources/terminal/configuration.rb +1328 -0
  161. data/lib/stripe/resources/terminal/connection_token.rb +34 -0
  162. data/lib/stripe/resources/terminal/location.rb +222 -0
  163. data/lib/stripe/resources/terminal/reader.rb +886 -0
  164. data/lib/stripe/resources/test_helpers/test_clock.rb +156 -0
  165. data/lib/stripe/resources/token.rb +1249 -0
  166. data/lib/stripe/resources/topup.rb +204 -2
  167. data/lib/stripe/resources/transfer.rb +173 -6
  168. data/lib/stripe/resources/treasury/credit_reversal.rb +120 -0
  169. data/lib/stripe/resources/treasury/debit_reversal.rb +131 -0
  170. data/lib/stripe/resources/treasury/financial_account.rb +833 -0
  171. data/lib/stripe/resources/treasury/financial_account_features.rb +204 -0
  172. data/lib/stripe/resources/treasury/inbound_transfer.rb +356 -0
  173. data/lib/stripe/resources/treasury/outbound_payment.rb +638 -0
  174. data/lib/stripe/resources/treasury/outbound_transfer.rb +493 -0
  175. data/lib/stripe/resources/treasury/received_credit.rb +284 -0
  176. data/lib/stripe/resources/treasury/received_debit.rb +243 -0
  177. data/lib/stripe/resources/treasury/transaction.rb +193 -0
  178. data/lib/stripe/resources/treasury/transaction_entry.rb +178 -0
  179. data/lib/stripe/resources/v2/amount.rb +9 -0
  180. data/lib/stripe/resources/v2/billing/meter_event.rb +34 -0
  181. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +36 -0
  182. data/lib/stripe/resources/v2/billing/meter_event_session.rb +29 -0
  183. data/lib/stripe/resources/v2/event.rb +41 -0
  184. data/lib/stripe/resources/v2/event_destination.rb +73 -0
  185. data/lib/stripe/resources/webhook_endpoint.rb +167 -0
  186. data/lib/stripe/resources.rb +70 -12
  187. data/lib/stripe/search_result_object.rb +89 -0
  188. data/lib/stripe/services/account_capability_service.rb +71 -0
  189. data/lib/stripe/services/account_external_account_service.rb +317 -0
  190. data/lib/stripe/services/account_link_service.rb +63 -0
  191. data/lib/stripe/services/account_login_link_service.rb +28 -0
  192. data/lib/stripe/services/account_person_service.rb +1019 -0
  193. data/lib/stripe/services/account_service.rb +4171 -0
  194. data/lib/stripe/services/account_session_service.rb +569 -0
  195. data/lib/stripe/services/apple_pay_domain_service.rb +100 -0
  196. data/lib/stripe/services/application_fee_refund_service.rb +114 -0
  197. data/lib/stripe/services/application_fee_service.rb +92 -0
  198. data/lib/stripe/services/apps/secret_service.rb +168 -0
  199. data/lib/stripe/services/apps_service.rb +13 -0
  200. data/lib/stripe/services/balance_service.rb +21 -0
  201. data/lib/stripe/services/balance_transaction_service.rb +101 -0
  202. data/lib/stripe/services/billing/alert_service.rb +187 -0
  203. data/lib/stripe/services/billing/credit_balance_summary_service.rb +67 -0
  204. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +70 -0
  205. data/lib/stripe/services/billing/credit_grant_service.rb +240 -0
  206. data/lib/stripe/services/billing/meter_event_adjustment_service.rb +45 -0
  207. data/lib/stripe/services/billing/meter_event_service.rb +40 -0
  208. data/lib/stripe/services/billing/meter_event_summary_service.rb +58 -0
  209. data/lib/stripe/services/billing/meter_service.rb +211 -0
  210. data/lib/stripe/services/billing_portal/configuration_service.rb +496 -0
  211. data/lib/stripe/services/billing_portal/session_service.rb +192 -0
  212. data/lib/stripe/services/billing_portal_service.rb +14 -0
  213. data/lib/stripe/services/billing_service.rb +20 -0
  214. data/lib/stripe/services/charge_service.rb +471 -0
  215. data/lib/stripe/services/checkout/session_line_item_service.rb +37 -0
  216. data/lib/stripe/services/checkout/session_service.rb +2495 -0
  217. data/lib/stripe/services/checkout_service.rb +13 -0
  218. data/lib/stripe/services/climate/order_service.rb +170 -0
  219. data/lib/stripe/services/climate/product_service.rb +57 -0
  220. data/lib/stripe/services/climate/supplier_service.rb +57 -0
  221. data/lib/stripe/services/climate_service.rb +15 -0
  222. data/lib/stripe/services/confirmation_token_service.rb +26 -0
  223. data/lib/stripe/services/country_spec_service.rb +55 -0
  224. data/lib/stripe/services/coupon_service.rb +202 -0
  225. data/lib/stripe/services/credit_note_line_item_service.rb +35 -0
  226. data/lib/stripe/services/credit_note_preview_lines_service.rb +169 -0
  227. data/lib/stripe/services/credit_note_service.rb +457 -0
  228. data/lib/stripe/services/customer_balance_transaction_service.rb +113 -0
  229. data/lib/stripe/services/customer_cash_balance_service.rb +57 -0
  230. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +55 -0
  231. data/lib/stripe/services/customer_funding_instructions_service.rb +61 -0
  232. data/lib/stripe/services/customer_payment_method_service.rb +68 -0
  233. data/lib/stripe/services/customer_payment_source_service.rb +255 -0
  234. data/lib/stripe/services/customer_service.rb +664 -0
  235. data/lib/stripe/services/customer_session_service.rb +113 -0
  236. data/lib/stripe/services/customer_tax_id_service.rb +94 -0
  237. data/lib/stripe/services/dispute_service.rb +422 -0
  238. data/lib/stripe/services/entitlements/active_entitlement_service.rb +66 -0
  239. data/lib/stripe/services/entitlements/feature_service.rb +128 -0
  240. data/lib/stripe/services/entitlements_service.rb +14 -0
  241. data/lib/stripe/services/ephemeral_key_service.rb +64 -0
  242. data/lib/stripe/services/event_service.rb +87 -0
  243. data/lib/stripe/services/exchange_rate_service.rb +55 -0
  244. data/lib/stripe/services/file_link_service.rb +132 -0
  245. data/lib/stripe/services/file_service.rb +124 -0
  246. data/lib/stripe/services/financial_connections/account_owner_service.rb +46 -0
  247. data/lib/stripe/services/financial_connections/account_service.rb +177 -0
  248. data/lib/stripe/services/financial_connections/session_service.rb +98 -0
  249. data/lib/stripe/services/financial_connections/transaction_service.rb +100 -0
  250. data/lib/stripe/services/financial_connections_service.rb +15 -0
  251. data/lib/stripe/services/forwarding/request_service.rb +147 -0
  252. data/lib/stripe/services/forwarding_service.rb +13 -0
  253. data/lib/stripe/services/identity/verification_report_service.rb +95 -0
  254. data/lib/stripe/services/identity/verification_session_service.rb +337 -0
  255. data/lib/stripe/services/identity_service.rb +14 -0
  256. data/lib/stripe/services/invoice_item_service.rb +394 -0
  257. data/lib/stripe/services/invoice_line_item_service.rb +252 -0
  258. data/lib/stripe/services/invoice_payment_service.rb +83 -0
  259. data/lib/stripe/services/invoice_rendering_template_service.rb +101 -0
  260. data/lib/stripe/services/invoice_service.rb +2900 -0
  261. data/lib/stripe/services/issuing/authorization_service.rb +169 -0
  262. data/lib/stripe/services/issuing/card_service.rb +507 -0
  263. data/lib/stripe/services/issuing/cardholder_service.rb +577 -0
  264. data/lib/stripe/services/issuing/dispute_service.rb +696 -0
  265. data/lib/stripe/services/issuing/personalization_design_service.rb +245 -0
  266. data/lib/stripe/services/issuing/physical_bundle_service.rb +70 -0
  267. data/lib/stripe/services/issuing/token_service.rb +114 -0
  268. data/lib/stripe/services/issuing/transaction_service.rb +118 -0
  269. data/lib/stripe/services/issuing_service.rb +20 -0
  270. data/lib/stripe/services/mandate_service.rb +26 -0
  271. data/lib/stripe/services/oauth_service.rb +63 -0
  272. data/lib/stripe/services/payment_intent_service.rb +7202 -0
  273. data/lib/stripe/services/payment_link_line_item_service.rb +35 -0
  274. data/lib/stripe/services/payment_link_service.rb +1333 -0
  275. data/lib/stripe/services/payment_method_configuration_service.rb +2306 -0
  276. data/lib/stripe/services/payment_method_domain_service.rb +142 -0
  277. data/lib/stripe/services/payment_method_service.rb +843 -0
  278. data/lib/stripe/services/payout_service.rb +225 -0
  279. data/lib/stripe/services/plan_service.rb +297 -0
  280. data/lib/stripe/services/price_service.rb +545 -0
  281. data/lib/stripe/services/product_feature_service.rb +91 -0
  282. data/lib/stripe/services/product_service.rb +494 -0
  283. data/lib/stripe/services/promotion_code_service.rb +228 -0
  284. data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +35 -0
  285. data/lib/stripe/services/quote_line_item_service.rb +35 -0
  286. data/lib/stripe/services/quote_service.rb +703 -0
  287. data/lib/stripe/services/radar/early_fraud_warning_service.rb +93 -0
  288. data/lib/stripe/services/radar/value_list_item_service.rb +130 -0
  289. data/lib/stripe/services/radar/value_list_service.rb +165 -0
  290. data/lib/stripe/services/radar_service.rb +15 -0
  291. data/lib/stripe/services/refund_service.rb +200 -0
  292. data/lib/stripe/services/reporting/report_run_service.rb +147 -0
  293. data/lib/stripe/services/reporting/report_type_service.rb +48 -0
  294. data/lib/stripe/services/reporting_service.rb +14 -0
  295. data/lib/stripe/services/review_service.rb +89 -0
  296. data/lib/stripe/services/setup_attempt_service.rb +68 -0
  297. data/lib/stripe/services/setup_intent_service.rb +3107 -0
  298. data/lib/stripe/services/shipping_rate_service.rb +250 -0
  299. data/lib/stripe/services/sigma/scheduled_query_run_service.rb +57 -0
  300. data/lib/stripe/services/sigma_service.rb +13 -0
  301. data/lib/stripe/services/source_service.rb +665 -0
  302. data/lib/stripe/services/source_transaction_service.rb +35 -0
  303. data/lib/stripe/services/subscription_item_service.rb +372 -0
  304. data/lib/stripe/services/subscription_schedule_service.rb +1224 -0
  305. data/lib/stripe/services/subscription_service.rb +1590 -0
  306. data/lib/stripe/services/tax/calculation_line_item_service.rb +37 -0
  307. data/lib/stripe/services/tax/calculation_service.rb +246 -0
  308. data/lib/stripe/services/tax/registration_service.rb +1774 -0
  309. data/lib/stripe/services/tax/settings_service.rb +104 -0
  310. data/lib/stripe/services/tax/transaction_line_item_service.rb +37 -0
  311. data/lib/stripe/services/tax/transaction_service.rb +159 -0
  312. data/lib/stripe/services/tax_code_service.rb +49 -0
  313. data/lib/stripe/services/tax_id_service.rb +116 -0
  314. data/lib/stripe/services/tax_rate_service.rb +193 -0
  315. data/lib/stripe/services/tax_service.rb +16 -0
  316. data/lib/stripe/services/terminal/configuration_service.rb +1059 -0
  317. data/lib/stripe/services/terminal/connection_token_service.rb +31 -0
  318. data/lib/stripe/services/terminal/location_service.rb +207 -0
  319. data/lib/stripe/services/terminal/reader_service.rb +488 -0
  320. data/lib/stripe/services/terminal_service.rb +16 -0
  321. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +655 -0
  322. data/lib/stripe/services/test_helpers/customer_service.rb +37 -0
  323. data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +832 -0
  324. data/lib/stripe/services/test_helpers/issuing/card_service.rb +110 -0
  325. data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +84 -0
  326. data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +675 -0
  327. data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
  328. data/lib/stripe/services/test_helpers/refund_service.rb +28 -0
  329. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +108 -0
  330. data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
  331. data/lib/stripe/services/test_helpers/test_clock_service.rb +119 -0
  332. data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +81 -0
  333. data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +141 -0
  334. data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +141 -0
  335. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +81 -0
  336. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +81 -0
  337. data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
  338. data/lib/stripe/services/test_helpers_service.rb +19 -0
  339. data/lib/stripe/services/token_service.rb +1224 -0
  340. data/lib/stripe/services/topup_service.rb +191 -0
  341. data/lib/stripe/services/transfer_reversal_service.rb +122 -0
  342. data/lib/stripe/services/transfer_service.rb +166 -0
  343. data/lib/stripe/services/treasury/credit_reversal_service.rb +100 -0
  344. data/lib/stripe/services/treasury/debit_reversal_service.rb +104 -0
  345. data/lib/stripe/services/treasury/financial_account_features_service.rb +196 -0
  346. data/lib/stripe/services/treasury/financial_account_service.rb +554 -0
  347. data/lib/stripe/services/treasury/inbound_transfer_service.rb +140 -0
  348. data/lib/stripe/services/treasury/outbound_payment_service.rb +310 -0
  349. data/lib/stripe/services/treasury/outbound_transfer_service.rb +176 -0
  350. data/lib/stripe/services/treasury/received_credit_service.rb +82 -0
  351. data/lib/stripe/services/treasury/received_debit_service.rb +70 -0
  352. data/lib/stripe/services/treasury/transaction_entry_service.rb +117 -0
  353. data/lib/stripe/services/treasury/transaction_service.rb +125 -0
  354. data/lib/stripe/services/treasury_service.rb +22 -0
  355. data/lib/stripe/services/v1_services.rb +90 -0
  356. data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +44 -0
  357. data/lib/stripe/services/v2/billing/meter_event_service.rb +46 -0
  358. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +23 -0
  359. data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +56 -0
  360. data/lib/stripe/services/v2/billing_service.rb +18 -0
  361. data/lib/stripe/services/v2/core/event_destination_service.rb +235 -0
  362. data/lib/stripe/services/v2/core/event_service.rb +48 -0
  363. data/lib/stripe/services/v2/core_service.rb +16 -0
  364. data/lib/stripe/services/v2_services.rb +14 -0
  365. data/lib/stripe/services/webhook_endpoint_service.rb +156 -0
  366. data/lib/stripe/services.rb +180 -0
  367. data/lib/stripe/singleton_api_resource.rb +3 -3
  368. data/lib/stripe/stripe_client.rb +56 -1021
  369. data/lib/stripe/stripe_configuration.rb +63 -42
  370. data/lib/stripe/stripe_object.rb +75 -39
  371. data/lib/stripe/stripe_response.rb +1 -3
  372. data/lib/stripe/stripe_service.rb +32 -0
  373. data/lib/stripe/thin_event.rb +37 -0
  374. data/lib/stripe/util.rb +161 -39
  375. data/lib/stripe/v2_list_object.rb +84 -0
  376. data/lib/stripe/version.rb +1 -1
  377. data/lib/stripe/webhook.rb +3 -2
  378. data/lib/stripe.rb +44 -1
  379. data/rbi/stripe/resources/account.rbi +4926 -0
  380. data/rbi/stripe/resources/account_link.rbi +74 -0
  381. data/rbi/stripe/resources/account_session.rbi +1013 -0
  382. data/rbi/stripe/resources/apple_pay_domain.rbi +88 -0
  383. data/rbi/stripe/resources/application.rbi +20 -0
  384. data/rbi/stripe/resources/application_fee.rbi +118 -0
  385. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  386. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  387. data/rbi/stripe/resources/balance.rbi +235 -0
  388. data/rbi/stripe/resources/balance_transaction.rbi +147 -0
  389. data/rbi/stripe/resources/bank_account.rbi +127 -0
  390. data/rbi/stripe/resources/billing/alert.rbi +201 -0
  391. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  392. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +63 -0
  393. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +147 -0
  394. data/rbi/stripe/resources/billing/credit_grant.rbi +291 -0
  395. data/rbi/stripe/resources/billing/meter.rbi +226 -0
  396. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  397. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  398. data/rbi/stripe/resources/billing/meter_event_summary.rbi +35 -0
  399. data/rbi/stripe/resources/billing_portal/configuration.rbi +645 -0
  400. data/rbi/stripe/resources/billing_portal/session.rbi +345 -0
  401. data/rbi/stripe/resources/capability.rbi +125 -0
  402. data/rbi/stripe/resources/card.rbi +125 -0
  403. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  404. data/rbi/stripe/resources/charge.rbi +2069 -0
  405. data/rbi/stripe/resources/checkout/session.rbi +4004 -0
  406. data/rbi/stripe/resources/climate/order.rbi +245 -0
  407. data/rbi/stripe/resources/climate/product.rbi +75 -0
  408. data/rbi/stripe/resources/climate/supplier.rbi +72 -0
  409. data/rbi/stripe/resources/confirmation_token.rbi +1807 -0
  410. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  411. data/rbi/stripe/resources/country_spec.rbi +85 -0
  412. data/rbi/stripe/resources/coupon.rbi +250 -0
  413. data/rbi/stripe/resources/credit_note.rbi +752 -0
  414. data/rbi/stripe/resources/credit_note_line_item.rbi +101 -0
  415. data/rbi/stripe/resources/customer.rbi +1005 -0
  416. data/rbi/stripe/resources/customer_balance_transaction.rbi +56 -0
  417. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  418. data/rbi/stripe/resources/customer_session.rbi +200 -0
  419. data/rbi/stripe/resources/discount.rbi +53 -0
  420. data/rbi/stripe/resources/dispute.rbi +761 -0
  421. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +58 -0
  422. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  423. data/rbi/stripe/resources/entitlements/feature.rbi +117 -0
  424. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  425. data/rbi/stripe/resources/event.rbi +149 -0
  426. data/rbi/stripe/resources/exchange_rate.rbi +66 -0
  427. data/rbi/stripe/resources/file.rbi +143 -0
  428. data/rbi/stripe/resources/file_link.rbi +141 -0
  429. data/rbi/stripe/resources/financial_connections/account.rbi +339 -0
  430. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  431. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  432. data/rbi/stripe/resources/financial_connections/session.rbi +123 -0
  433. data/rbi/stripe/resources/financial_connections/transaction.rbi +124 -0
  434. data/rbi/stripe/resources/forwarding/request.rbi +216 -0
  435. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  436. data/rbi/stripe/resources/identity/verification_report.rbi +360 -0
  437. data/rbi/stripe/resources/identity/verification_session.rbi +526 -0
  438. data/rbi/stripe/resources/invoice.rbi +3812 -0
  439. data/rbi/stripe/resources/invoice_item.rbi +473 -0
  440. data/rbi/stripe/resources/invoice_line_item.rbi +432 -0
  441. data/rbi/stripe/resources/invoice_payment.rbi +121 -0
  442. data/rbi/stripe/resources/invoice_rendering_template.rbi +104 -0
  443. data/rbi/stripe/resources/issuing/authorization.rbi +1283 -0
  444. data/rbi/stripe/resources/issuing/card.rbi +741 -0
  445. data/rbi/stripe/resources/issuing/cardholder.rbi +744 -0
  446. data/rbi/stripe/resources/issuing/dispute.rbi +913 -0
  447. data/rbi/stripe/resources/issuing/personalization_design.rbi +338 -0
  448. data/rbi/stripe/resources/issuing/physical_bundle.rbi +79 -0
  449. data/rbi/stripe/resources/issuing/token.rbi +226 -0
  450. data/rbi/stripe/resources/issuing/transaction.rbi +1061 -0
  451. data/rbi/stripe/resources/line_item.rbi +72 -0
  452. data/rbi/stripe/resources/login_link.rbi +19 -0
  453. data/rbi/stripe/resources/mandate.rbi +187 -0
  454. data/rbi/stripe/resources/payment_intent.rbi +9647 -0
  455. data/rbi/stripe/resources/payment_link.rbi +1801 -0
  456. data/rbi/stripe/resources/payment_method.rbi +1761 -0
  457. data/rbi/stripe/resources/payment_method_configuration.rbi +3550 -0
  458. data/rbi/stripe/resources/payment_method_domain.rbi +228 -0
  459. data/rbi/stripe/resources/payout.rbi +300 -0
  460. data/rbi/stripe/resources/person.rbi +401 -0
  461. data/rbi/stripe/resources/plan.rbi +371 -0
  462. data/rbi/stripe/resources/price.rbi +694 -0
  463. data/rbi/stripe/resources/product.rbi +555 -0
  464. data/rbi/stripe/resources/product_feature.rbi +26 -0
  465. data/rbi/stripe/resources/promotion_code.rbi +261 -0
  466. data/rbi/stripe/resources/quote.rbi +1126 -0
  467. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +98 -0
  468. data/rbi/stripe/resources/radar/value_list.rbi +168 -0
  469. data/rbi/stripe/resources/radar/value_list_item.rbi +129 -0
  470. data/rbi/stripe/resources/refund.rbi +523 -0
  471. data/rbi/stripe/resources/reporting/report_run.rbi +191 -0
  472. data/rbi/stripe/resources/reporting/report_type.rbi +57 -0
  473. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  474. data/rbi/stripe/resources/reversal.rbi +51 -0
  475. data/rbi/stripe/resources/review.rbi +154 -0
  476. data/rbi/stripe/resources/setup_attempt.rbi +477 -0
  477. data/rbi/stripe/resources/setup_intent.rbi +3655 -0
  478. data/rbi/stripe/resources/shipping_rate.rbi +305 -0
  479. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +75 -0
  480. data/rbi/stripe/resources/source.rbi +1496 -0
  481. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  482. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  483. data/rbi/stripe/resources/subscription.rbi +2027 -0
  484. data/rbi/stripe/resources/subscription_item.rbi +404 -0
  485. data/rbi/stripe/resources/subscription_schedule.rbi +1623 -0
  486. data/rbi/stripe/resources/tax/calculation.rbi +478 -0
  487. data/rbi/stripe/resources/tax/calculation_line_item.rbi +91 -0
  488. data/rbi/stripe/resources/tax/registration.rbi +2713 -0
  489. data/rbi/stripe/resources/tax/settings.rbi +141 -0
  490. data/rbi/stripe/resources/tax/transaction.rbi +351 -0
  491. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  492. data/rbi/stripe/resources/tax_code.rbi +44 -0
  493. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  494. data/rbi/stripe/resources/tax_id.rbi +165 -0
  495. data/rbi/stripe/resources/tax_rate.rbi +239 -0
  496. data/rbi/stripe/resources/terminal/configuration.rbi +1386 -0
  497. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  498. data/rbi/stripe/resources/terminal/location.rbi +222 -0
  499. data/rbi/stripe/resources/terminal/reader.rbi +847 -0
  500. data/rbi/stripe/resources/test_helpers/test_clock.rbi +132 -0
  501. data/rbi/stripe/resources/token.rbi +1283 -0
  502. data/rbi/stripe/resources/topup.rbi +222 -0
  503. data/rbi/stripe/resources/transfer.rbi +199 -0
  504. data/rbi/stripe/resources/treasury/credit_reversal.rbi +119 -0
  505. data/rbi/stripe/resources/treasury/debit_reversal.rbi +131 -0
  506. data/rbi/stripe/resources/treasury/financial_account.rbi +865 -0
  507. data/rbi/stripe/resources/treasury/financial_account_features.rbi +260 -0
  508. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +295 -0
  509. data/rbi/stripe/resources/treasury/outbound_payment.rbi +592 -0
  510. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +431 -0
  511. data/rbi/stripe/resources/treasury/received_credit.rbi +302 -0
  512. data/rbi/stripe/resources/treasury/received_debit.rbi +256 -0
  513. data/rbi/stripe/resources/treasury/transaction.rbi +215 -0
  514. data/rbi/stripe/resources/treasury/transaction_entry.rbi +192 -0
  515. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  516. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  517. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  518. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  519. data/rbi/stripe/resources/v2/event.rbi +48 -0
  520. data/rbi/stripe/resources/v2/event_destination.rbi +91 -0
  521. data/rbi/stripe/resources/webhook_endpoint.rbi +168 -0
  522. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  523. data/rbi/stripe/services/account_external_account_service.rbi +304 -0
  524. data/rbi/stripe/services/account_link_service.rbi +58 -0
  525. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  526. data/rbi/stripe/services/account_person_service.rbi +1011 -0
  527. data/rbi/stripe/services/account_service.rbi +4213 -0
  528. data/rbi/stripe/services/account_session_service.rbi +646 -0
  529. data/rbi/stripe/services/apple_pay_domain_service.rbi +76 -0
  530. data/rbi/stripe/services/application_fee_refund_service.rbi +93 -0
  531. data/rbi/stripe/services/application_fee_service.rbi +78 -0
  532. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  533. data/{lib/stripe/resources/usage_record_summary.rb → rbi/stripe/services/apps_service.rbi} +4 -3
  534. data/rbi/stripe/services/balance_service.rbi +21 -0
  535. data/rbi/stripe/services/balance_transaction_service.rbi +93 -0
  536. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  537. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +68 -0
  538. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  539. data/rbi/stripe/services/billing/credit_grant_service.rbi +211 -0
  540. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +42 -0
  541. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  542. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  543. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  544. data/rbi/stripe/services/billing_portal/configuration_service.rbi +511 -0
  545. data/rbi/stripe/services/billing_portal/session_service.rbi +204 -0
  546. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  547. data/rbi/stripe/services/billing_service.rbi +15 -0
  548. data/rbi/stripe/services/charge_service.rbi +448 -0
  549. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  550. data/rbi/stripe/services/checkout/session_service.rbi +2614 -0
  551. data/rbi/stripe/services/checkout_service.rbi +9 -0
  552. data/rbi/stripe/services/climate/order_service.rbi +142 -0
  553. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  554. data/rbi/stripe/services/climate/supplier_service.rbi +46 -0
  555. data/rbi/stripe/services/climate_service.rbi +11 -0
  556. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  557. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  558. data/rbi/stripe/services/coupon_service.rbi +194 -0
  559. data/rbi/stripe/services/credit_note_line_item_service.rbi +31 -0
  560. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  561. data/rbi/stripe/services/credit_note_service.rbi +415 -0
  562. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  563. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  564. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  565. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  566. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  567. data/rbi/stripe/services/customer_payment_source_service.rbi +232 -0
  568. data/rbi/stripe/services/customer_service.rbi +647 -0
  569. data/rbi/stripe/services/customer_session_service.rbi +116 -0
  570. data/rbi/stripe/services/customer_tax_id_service.rbi +70 -0
  571. data/rbi/stripe/services/dispute_service.rbi +424 -0
  572. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  573. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  574. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  575. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  576. data/rbi/stripe/services/event_service.rbi +83 -0
  577. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  578. data/rbi/stripe/services/file_link_service.rbi +124 -0
  579. data/rbi/stripe/services/file_service.rbi +116 -0
  580. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  581. data/rbi/stripe/services/financial_connections/account_service.rbi +133 -0
  582. data/rbi/stripe/services/financial_connections/session_service.rbi +88 -0
  583. data/rbi/stripe/services/financial_connections/transaction_service.rbi +92 -0
  584. data/rbi/stripe/services/financial_connections_service.rbi +11 -0
  585. data/rbi/stripe/services/forwarding/request_service.rbi +134 -0
  586. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  587. data/rbi/stripe/services/identity/verification_report_service.rbi +87 -0
  588. data/rbi/stripe/services/identity/verification_session_service.rbi +323 -0
  589. data/rbi/stripe/services/identity_service.rbi +10 -0
  590. data/rbi/stripe/services/invoice_item_service.rbi +366 -0
  591. data/rbi/stripe/services/invoice_line_item_service.rbi +259 -0
  592. data/rbi/stripe/services/invoice_payment_service.rbi +71 -0
  593. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  594. data/rbi/stripe/services/invoice_service.rbi +2981 -0
  595. data/rbi/stripe/services/issuing/authorization_service.rbi +146 -0
  596. data/rbi/stripe/services/issuing/card_service.rbi +495 -0
  597. data/rbi/stripe/services/issuing/cardholder_service.rbi +587 -0
  598. data/rbi/stripe/services/issuing/dispute_service.rbi +707 -0
  599. data/rbi/stripe/services/issuing/personalization_design_service.rbi +243 -0
  600. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  601. data/rbi/stripe/services/issuing/token_service.rbi +99 -0
  602. data/rbi/stripe/services/issuing/transaction_service.rbi +105 -0
  603. data/rbi/stripe/services/issuing_service.rbi +16 -0
  604. data/rbi/stripe/services/mandate_service.rbi +20 -0
  605. data/rbi/stripe/services/payment_intent_service.rbi +7659 -0
  606. data/rbi/stripe/services/payment_link_line_item_service.rbi +31 -0
  607. data/rbi/stripe/services/payment_link_service.rbi +1352 -0
  608. data/rbi/stripe/services/payment_method_configuration_service.rbi +2487 -0
  609. data/rbi/stripe/services/payment_method_domain_service.rbi +112 -0
  610. data/rbi/stripe/services/payment_method_service.rbi +776 -0
  611. data/rbi/stripe/services/payout_service.rbi +205 -0
  612. data/rbi/stripe/services/plan_service.rbi +282 -0
  613. data/rbi/stripe/services/price_service.rbi +546 -0
  614. data/rbi/stripe/services/product_feature_service.rbi +67 -0
  615. data/rbi/stripe/services/product_service.rbi +477 -0
  616. data/rbi/stripe/services/promotion_code_service.rbi +214 -0
  617. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  618. data/rbi/stripe/services/quote_line_item_service.rbi +31 -0
  619. data/rbi/stripe/services/quote_service.rbi +686 -0
  620. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +85 -0
  621. data/rbi/stripe/services/radar/value_list_item_service.rbi +109 -0
  622. data/rbi/stripe/services/radar/value_list_service.rbi +141 -0
  623. data/rbi/stripe/services/radar_service.rbi +11 -0
  624. data/rbi/stripe/services/refund_service.rbi +185 -0
  625. data/rbi/stripe/services/reporting/report_run_service.rbi +135 -0
  626. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  627. data/rbi/stripe/services/reporting_service.rbi +10 -0
  628. data/rbi/stripe/services/review_service.rbi +84 -0
  629. data/rbi/stripe/services/setup_attempt_service.rbi +65 -0
  630. data/rbi/stripe/services/setup_intent_service.rbi +3391 -0
  631. data/rbi/stripe/services/shipping_rate_service.rbi +241 -0
  632. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  633. data/rbi/stripe/services/sigma_service.rbi +9 -0
  634. data/rbi/stripe/services/source_service.rbi +663 -0
  635. data/rbi/stripe/services/source_transaction_service.rbi +31 -0
  636. data/rbi/stripe/services/subscription_item_service.rbi +350 -0
  637. data/rbi/stripe/services/subscription_schedule_service.rbi +1290 -0
  638. data/rbi/stripe/services/subscription_service.rbi +1648 -0
  639. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +33 -0
  640. data/rbi/stripe/services/tax/calculation_service.rbi +234 -0
  641. data/rbi/stripe/services/tax/registration_service.rbi +1845 -0
  642. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  643. data/rbi/stripe/services/tax/transaction_line_item_service.rbi +33 -0
  644. data/rbi/stripe/services/tax/transaction_service.rbi +146 -0
  645. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  646. data/rbi/stripe/services/tax_id_service.rbi +110 -0
  647. data/rbi/stripe/services/tax_rate_service.rbi +185 -0
  648. data/rbi/stripe/services/tax_service.rbi +12 -0
  649. data/rbi/stripe/services/terminal/configuration_service.rbi +1118 -0
  650. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  651. data/rbi/stripe/services/terminal/location_service.rbi +182 -0
  652. data/rbi/stripe/services/terminal/reader_service.rbi +455 -0
  653. data/rbi/stripe/services/terminal_service.rbi +12 -0
  654. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +739 -0
  655. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  656. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +848 -0
  657. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  658. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +69 -0
  659. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +711 -0
  660. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  661. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  662. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +93 -0
  663. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  664. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +90 -0
  665. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  666. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +125 -0
  667. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +125 -0
  668. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +87 -0
  669. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +87 -0
  670. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  671. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  672. data/rbi/stripe/services/token_service.rbi +1257 -0
  673. data/rbi/stripe/services/topup_service.rbi +176 -0
  674. data/rbi/stripe/services/transfer_reversal_service.rbi +101 -0
  675. data/rbi/stripe/services/transfer_service.rbi +152 -0
  676. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  677. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  678. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +198 -0
  679. data/rbi/stripe/services/treasury/financial_account_service.rbi +562 -0
  680. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  681. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +304 -0
  682. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +157 -0
  683. data/rbi/stripe/services/treasury/received_credit_service.rbi +72 -0
  684. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  685. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +111 -0
  686. data/rbi/stripe/services/treasury/transaction_service.rbi +122 -0
  687. data/rbi/stripe/services/treasury_service.rbi +18 -0
  688. data/rbi/stripe/services/v1_services.rbi +77 -0
  689. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  690. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  691. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +18 -0
  692. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  693. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  694. data/rbi/stripe/services/v2/core/event_destination_service.rbi +192 -0
  695. data/rbi/stripe/services/v2/core/event_service.rbi +36 -0
  696. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  697. data/rbi/stripe/services/v2_services.rbi +10 -0
  698. data/rbi/stripe/services/webhook_endpoint_service.rbi +129 -0
  699. data/stripe.gemspec +10 -7
  700. metadata +599 -18
  701. data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
  702. data/lib/stripe/resources/bitcoin_transaction.rb +0 -16
  703. data/lib/stripe/resources/issuing/card_details.rb +0 -9
  704. data/lib/stripe/resources/order.rb +0 -33
  705. data/lib/stripe/resources/order_return.rb +0 -10
  706. data/lib/stripe/resources/recipient.rb +0 -14
  707. data/lib/stripe/resources/sku.rb +0 -13
  708. data/lib/stripe/resources/three_d_secure.rb +0 -14
@@ -0,0 +1,1224 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class SubscriptionScheduleService < StripeService
6
+ class ListParams < Stripe::RequestParams
7
+ class CanceledAt < Stripe::RequestParams
8
+ # Minimum value to filter by (exclusive)
9
+ attr_accessor :gt
10
+ # Minimum value to filter by (inclusive)
11
+ attr_accessor :gte
12
+ # Maximum value to filter by (exclusive)
13
+ attr_accessor :lt
14
+ # Maximum value to filter by (inclusive)
15
+ attr_accessor :lte
16
+
17
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
18
+ @gt = gt
19
+ @gte = gte
20
+ @lt = lt
21
+ @lte = lte
22
+ end
23
+ end
24
+
25
+ class CompletedAt < Stripe::RequestParams
26
+ # Minimum value to filter by (exclusive)
27
+ attr_accessor :gt
28
+ # Minimum value to filter by (inclusive)
29
+ attr_accessor :gte
30
+ # Maximum value to filter by (exclusive)
31
+ attr_accessor :lt
32
+ # Maximum value to filter by (inclusive)
33
+ attr_accessor :lte
34
+
35
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
36
+ @gt = gt
37
+ @gte = gte
38
+ @lt = lt
39
+ @lte = lte
40
+ end
41
+ end
42
+
43
+ class Created < Stripe::RequestParams
44
+ # Minimum value to filter by (exclusive)
45
+ attr_accessor :gt
46
+ # Minimum value to filter by (inclusive)
47
+ attr_accessor :gte
48
+ # Maximum value to filter by (exclusive)
49
+ attr_accessor :lt
50
+ # Maximum value to filter by (inclusive)
51
+ attr_accessor :lte
52
+
53
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
54
+ @gt = gt
55
+ @gte = gte
56
+ @lt = lt
57
+ @lte = lte
58
+ end
59
+ end
60
+
61
+ class ReleasedAt < Stripe::RequestParams
62
+ # Minimum value to filter by (exclusive)
63
+ attr_accessor :gt
64
+ # Minimum value to filter by (inclusive)
65
+ attr_accessor :gte
66
+ # Maximum value to filter by (exclusive)
67
+ attr_accessor :lt
68
+ # Maximum value to filter by (inclusive)
69
+ attr_accessor :lte
70
+
71
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
72
+ @gt = gt
73
+ @gte = gte
74
+ @lt = lt
75
+ @lte = lte
76
+ end
77
+ end
78
+ # Only return subscription schedules that were created canceled the given date interval.
79
+ attr_accessor :canceled_at
80
+ # Only return subscription schedules that completed during the given date interval.
81
+ attr_accessor :completed_at
82
+ # Only return subscription schedules that were created during the given date interval.
83
+ attr_accessor :created
84
+ # Only return subscription schedules for the given customer.
85
+ attr_accessor :customer
86
+ # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
87
+ attr_accessor :ending_before
88
+ # Specifies which fields in the response should be expanded.
89
+ attr_accessor :expand
90
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
91
+ attr_accessor :limit
92
+ # Only return subscription schedules that were released during the given date interval.
93
+ attr_accessor :released_at
94
+ # Only return subscription schedules that have not started yet.
95
+ attr_accessor :scheduled
96
+ # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
97
+ attr_accessor :starting_after
98
+
99
+ def initialize(
100
+ canceled_at: nil,
101
+ completed_at: nil,
102
+ created: nil,
103
+ customer: nil,
104
+ ending_before: nil,
105
+ expand: nil,
106
+ limit: nil,
107
+ released_at: nil,
108
+ scheduled: nil,
109
+ starting_after: nil
110
+ )
111
+ @canceled_at = canceled_at
112
+ @completed_at = completed_at
113
+ @created = created
114
+ @customer = customer
115
+ @ending_before = ending_before
116
+ @expand = expand
117
+ @limit = limit
118
+ @released_at = released_at
119
+ @scheduled = scheduled
120
+ @starting_after = starting_after
121
+ end
122
+ end
123
+
124
+ class CreateParams < Stripe::RequestParams
125
+ class DefaultSettings < Stripe::RequestParams
126
+ class AutomaticTax < Stripe::RequestParams
127
+ class Liability < Stripe::RequestParams
128
+ # The connected account being referenced when `type` is `account`.
129
+ attr_accessor :account
130
+ # Type of the account referenced in the request.
131
+ attr_accessor :type
132
+
133
+ def initialize(account: nil, type: nil)
134
+ @account = account
135
+ @type = type
136
+ end
137
+ end
138
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
139
+ attr_accessor :enabled
140
+ # 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.
141
+ attr_accessor :liability
142
+
143
+ def initialize(enabled: nil, liability: nil)
144
+ @enabled = enabled
145
+ @liability = liability
146
+ end
147
+ end
148
+
149
+ class BillingThresholds < Stripe::RequestParams
150
+ # Monetary threshold that triggers the subscription to advance to a new billing period
151
+ attr_accessor :amount_gte
152
+ # 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.
153
+ attr_accessor :reset_billing_cycle_anchor
154
+
155
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
156
+ @amount_gte = amount_gte
157
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
158
+ end
159
+ end
160
+
161
+ class InvoiceSettings < Stripe::RequestParams
162
+ class Issuer < Stripe::RequestParams
163
+ # The connected account being referenced when `type` is `account`.
164
+ attr_accessor :account
165
+ # Type of the account referenced in the request.
166
+ attr_accessor :type
167
+
168
+ def initialize(account: nil, type: nil)
169
+ @account = account
170
+ @type = type
171
+ end
172
+ end
173
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
174
+ attr_accessor :account_tax_ids
175
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`.
176
+ attr_accessor :days_until_due
177
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
178
+ attr_accessor :issuer
179
+
180
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
181
+ @account_tax_ids = account_tax_ids
182
+ @days_until_due = days_until_due
183
+ @issuer = issuer
184
+ end
185
+ end
186
+
187
+ class TransferData < Stripe::RequestParams
188
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
189
+ attr_accessor :amount_percent
190
+ # ID of an existing, connected Stripe account.
191
+ attr_accessor :destination
192
+
193
+ def initialize(amount_percent: nil, destination: nil)
194
+ @amount_percent = amount_percent
195
+ @destination = destination
196
+ end
197
+ end
198
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
199
+ attr_accessor :application_fee_percent
200
+ # Default settings for automatic tax computation.
201
+ attr_accessor :automatic_tax
202
+ # 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).
203
+ attr_accessor :billing_cycle_anchor
204
+ # 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.
205
+ attr_accessor :billing_thresholds
206
+ # 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.
207
+ attr_accessor :collection_method
208
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
209
+ attr_accessor :default_payment_method
210
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
211
+ attr_accessor :description
212
+ # All invoices will be billed using the specified settings.
213
+ attr_accessor :invoice_settings
214
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
215
+ attr_accessor :on_behalf_of
216
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
217
+ attr_accessor :transfer_data
218
+
219
+ def initialize(
220
+ application_fee_percent: nil,
221
+ automatic_tax: nil,
222
+ billing_cycle_anchor: nil,
223
+ billing_thresholds: nil,
224
+ collection_method: nil,
225
+ default_payment_method: nil,
226
+ description: nil,
227
+ invoice_settings: nil,
228
+ on_behalf_of: nil,
229
+ transfer_data: nil
230
+ )
231
+ @application_fee_percent = application_fee_percent
232
+ @automatic_tax = automatic_tax
233
+ @billing_cycle_anchor = billing_cycle_anchor
234
+ @billing_thresholds = billing_thresholds
235
+ @collection_method = collection_method
236
+ @default_payment_method = default_payment_method
237
+ @description = description
238
+ @invoice_settings = invoice_settings
239
+ @on_behalf_of = on_behalf_of
240
+ @transfer_data = transfer_data
241
+ end
242
+ end
243
+
244
+ class Phase < Stripe::RequestParams
245
+ class AddInvoiceItem < Stripe::RequestParams
246
+ class Discount < Stripe::RequestParams
247
+ # ID of the coupon to create a new discount for.
248
+ attr_accessor :coupon
249
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
250
+ attr_accessor :discount
251
+ # ID of the promotion code to create a new discount for.
252
+ attr_accessor :promotion_code
253
+
254
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
255
+ @coupon = coupon
256
+ @discount = discount
257
+ @promotion_code = promotion_code
258
+ end
259
+ end
260
+
261
+ class PriceData < Stripe::RequestParams
262
+ # 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).
263
+ attr_accessor :currency
264
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
265
+ attr_accessor :product
266
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
267
+ attr_accessor :tax_behavior
268
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer.
269
+ attr_accessor :unit_amount
270
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
271
+ attr_accessor :unit_amount_decimal
272
+
273
+ def initialize(
274
+ currency: nil,
275
+ product: nil,
276
+ tax_behavior: nil,
277
+ unit_amount: nil,
278
+ unit_amount_decimal: nil
279
+ )
280
+ @currency = currency
281
+ @product = product
282
+ @tax_behavior = tax_behavior
283
+ @unit_amount = unit_amount
284
+ @unit_amount_decimal = unit_amount_decimal
285
+ end
286
+ end
287
+ # The coupons to redeem into discounts for the item.
288
+ attr_accessor :discounts
289
+ # The ID of the price object. One of `price` or `price_data` is required.
290
+ attr_accessor :price
291
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
292
+ attr_accessor :price_data
293
+ # Quantity for this item. Defaults to 1.
294
+ attr_accessor :quantity
295
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
296
+ attr_accessor :tax_rates
297
+
298
+ def initialize(discounts: nil, price: nil, price_data: nil, quantity: nil, tax_rates: nil)
299
+ @discounts = discounts
300
+ @price = price
301
+ @price_data = price_data
302
+ @quantity = quantity
303
+ @tax_rates = tax_rates
304
+ end
305
+ end
306
+
307
+ class AutomaticTax < Stripe::RequestParams
308
+ class Liability < Stripe::RequestParams
309
+ # The connected account being referenced when `type` is `account`.
310
+ attr_accessor :account
311
+ # Type of the account referenced in the request.
312
+ attr_accessor :type
313
+
314
+ def initialize(account: nil, type: nil)
315
+ @account = account
316
+ @type = type
317
+ end
318
+ end
319
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
320
+ attr_accessor :enabled
321
+ # 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.
322
+ attr_accessor :liability
323
+
324
+ def initialize(enabled: nil, liability: nil)
325
+ @enabled = enabled
326
+ @liability = liability
327
+ end
328
+ end
329
+
330
+ class BillingThresholds < Stripe::RequestParams
331
+ # Monetary threshold that triggers the subscription to advance to a new billing period
332
+ attr_accessor :amount_gte
333
+ # 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.
334
+ attr_accessor :reset_billing_cycle_anchor
335
+
336
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
337
+ @amount_gte = amount_gte
338
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
339
+ end
340
+ end
341
+
342
+ class Discount < Stripe::RequestParams
343
+ # ID of the coupon to create a new discount for.
344
+ attr_accessor :coupon
345
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
346
+ attr_accessor :discount
347
+ # ID of the promotion code to create a new discount for.
348
+ attr_accessor :promotion_code
349
+
350
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
351
+ @coupon = coupon
352
+ @discount = discount
353
+ @promotion_code = promotion_code
354
+ end
355
+ end
356
+
357
+ class InvoiceSettings < Stripe::RequestParams
358
+ class Issuer < Stripe::RequestParams
359
+ # The connected account being referenced when `type` is `account`.
360
+ attr_accessor :account
361
+ # Type of the account referenced in the request.
362
+ attr_accessor :type
363
+
364
+ def initialize(account: nil, type: nil)
365
+ @account = account
366
+ @type = type
367
+ end
368
+ end
369
+ # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
370
+ attr_accessor :account_tax_ids
371
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
372
+ attr_accessor :days_until_due
373
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
374
+ attr_accessor :issuer
375
+
376
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
377
+ @account_tax_ids = account_tax_ids
378
+ @days_until_due = days_until_due
379
+ @issuer = issuer
380
+ end
381
+ end
382
+
383
+ class Item < Stripe::RequestParams
384
+ class BillingThresholds < Stripe::RequestParams
385
+ # 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))
386
+ attr_accessor :usage_gte
387
+
388
+ def initialize(usage_gte: nil)
389
+ @usage_gte = usage_gte
390
+ end
391
+ end
392
+
393
+ class Discount < Stripe::RequestParams
394
+ # ID of the coupon to create a new discount for.
395
+ attr_accessor :coupon
396
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
397
+ attr_accessor :discount
398
+ # ID of the promotion code to create a new discount for.
399
+ attr_accessor :promotion_code
400
+
401
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
402
+ @coupon = coupon
403
+ @discount = discount
404
+ @promotion_code = promotion_code
405
+ end
406
+ end
407
+
408
+ class PriceData < Stripe::RequestParams
409
+ class Recurring < Stripe::RequestParams
410
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
411
+ attr_accessor :interval
412
+ # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).
413
+ attr_accessor :interval_count
414
+
415
+ def initialize(interval: nil, interval_count: nil)
416
+ @interval = interval
417
+ @interval_count = interval_count
418
+ end
419
+ end
420
+ # 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).
421
+ attr_accessor :currency
422
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
423
+ attr_accessor :product
424
+ # The recurring components of a price such as `interval` and `interval_count`.
425
+ attr_accessor :recurring
426
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
427
+ attr_accessor :tax_behavior
428
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
429
+ attr_accessor :unit_amount
430
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
431
+ attr_accessor :unit_amount_decimal
432
+
433
+ def initialize(
434
+ currency: nil,
435
+ product: nil,
436
+ recurring: nil,
437
+ tax_behavior: nil,
438
+ unit_amount: nil,
439
+ unit_amount_decimal: nil
440
+ )
441
+ @currency = currency
442
+ @product = product
443
+ @recurring = recurring
444
+ @tax_behavior = tax_behavior
445
+ @unit_amount = unit_amount
446
+ @unit_amount_decimal = unit_amount_decimal
447
+ end
448
+ end
449
+ # 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.
450
+ attr_accessor :billing_thresholds
451
+ # The coupons to redeem into discounts for the subscription item.
452
+ attr_accessor :discounts
453
+ # 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`.
454
+ attr_accessor :metadata
455
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
456
+ attr_accessor :plan
457
+ # The ID of the price object.
458
+ attr_accessor :price
459
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
460
+ attr_accessor :price_data
461
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
462
+ attr_accessor :quantity
463
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
464
+ attr_accessor :tax_rates
465
+
466
+ def initialize(
467
+ billing_thresholds: nil,
468
+ discounts: nil,
469
+ metadata: nil,
470
+ plan: nil,
471
+ price: nil,
472
+ price_data: nil,
473
+ quantity: nil,
474
+ tax_rates: nil
475
+ )
476
+ @billing_thresholds = billing_thresholds
477
+ @discounts = discounts
478
+ @metadata = metadata
479
+ @plan = plan
480
+ @price = price
481
+ @price_data = price_data
482
+ @quantity = quantity
483
+ @tax_rates = tax_rates
484
+ end
485
+ end
486
+
487
+ class TransferData < Stripe::RequestParams
488
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
489
+ attr_accessor :amount_percent
490
+ # ID of an existing, connected Stripe account.
491
+ attr_accessor :destination
492
+
493
+ def initialize(amount_percent: nil, destination: nil)
494
+ @amount_percent = amount_percent
495
+ @destination = destination
496
+ end
497
+ end
498
+ # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items.
499
+ attr_accessor :add_invoice_items
500
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
501
+ attr_accessor :application_fee_percent
502
+ # Automatic tax settings for this phase.
503
+ attr_accessor :automatic_tax
504
+ # 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).
505
+ attr_accessor :billing_cycle_anchor
506
+ # 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.
507
+ attr_accessor :billing_thresholds
508
+ # 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.
509
+ attr_accessor :collection_method
510
+ # 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).
511
+ attr_accessor :currency
512
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
513
+ attr_accessor :default_payment_method
514
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase.
515
+ attr_accessor :default_tax_rates
516
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
517
+ attr_accessor :description
518
+ # The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts.
519
+ attr_accessor :discounts
520
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
521
+ attr_accessor :end_date
522
+ # All invoices will be billed using the specified settings.
523
+ attr_accessor :invoice_settings
524
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
525
+ attr_accessor :items
526
+ # Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
527
+ attr_accessor :iterations
528
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`.
529
+ attr_accessor :metadata
530
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
531
+ attr_accessor :on_behalf_of
532
+ # 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.
533
+ attr_accessor :proration_behavior
534
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
535
+ attr_accessor :transfer_data
536
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
537
+ attr_accessor :trial
538
+ # Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial`
539
+ attr_accessor :trial_end
540
+
541
+ def initialize(
542
+ add_invoice_items: nil,
543
+ application_fee_percent: nil,
544
+ automatic_tax: nil,
545
+ billing_cycle_anchor: nil,
546
+ billing_thresholds: nil,
547
+ collection_method: nil,
548
+ currency: nil,
549
+ default_payment_method: nil,
550
+ default_tax_rates: nil,
551
+ description: nil,
552
+ discounts: nil,
553
+ end_date: nil,
554
+ invoice_settings: nil,
555
+ items: nil,
556
+ iterations: nil,
557
+ metadata: nil,
558
+ on_behalf_of: nil,
559
+ proration_behavior: nil,
560
+ transfer_data: nil,
561
+ trial: nil,
562
+ trial_end: nil
563
+ )
564
+ @add_invoice_items = add_invoice_items
565
+ @application_fee_percent = application_fee_percent
566
+ @automatic_tax = automatic_tax
567
+ @billing_cycle_anchor = billing_cycle_anchor
568
+ @billing_thresholds = billing_thresholds
569
+ @collection_method = collection_method
570
+ @currency = currency
571
+ @default_payment_method = default_payment_method
572
+ @default_tax_rates = default_tax_rates
573
+ @description = description
574
+ @discounts = discounts
575
+ @end_date = end_date
576
+ @invoice_settings = invoice_settings
577
+ @items = items
578
+ @iterations = iterations
579
+ @metadata = metadata
580
+ @on_behalf_of = on_behalf_of
581
+ @proration_behavior = proration_behavior
582
+ @transfer_data = transfer_data
583
+ @trial = trial
584
+ @trial_end = trial_end
585
+ end
586
+ end
587
+ # The identifier of the customer to create the subscription schedule for.
588
+ attr_accessor :customer
589
+ # Object representing the subscription schedule's default settings.
590
+ attr_accessor :default_settings
591
+ # 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.
592
+ attr_accessor :end_behavior
593
+ # Specifies which fields in the response should be expanded.
594
+ attr_accessor :expand
595
+ # Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription's item(s), set to auto-renew using the subscription's interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls.
596
+ attr_accessor :from_subscription
597
+ # 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`.
598
+ attr_accessor :metadata
599
+ # 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.
600
+ attr_accessor :phases
601
+ # When the subscription schedule starts. We recommend using `now` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on.
602
+ attr_accessor :start_date
603
+
604
+ def initialize(
605
+ customer: nil,
606
+ default_settings: nil,
607
+ end_behavior: nil,
608
+ expand: nil,
609
+ from_subscription: nil,
610
+ metadata: nil,
611
+ phases: nil,
612
+ start_date: nil
613
+ )
614
+ @customer = customer
615
+ @default_settings = default_settings
616
+ @end_behavior = end_behavior
617
+ @expand = expand
618
+ @from_subscription = from_subscription
619
+ @metadata = metadata
620
+ @phases = phases
621
+ @start_date = start_date
622
+ end
623
+ end
624
+
625
+ class RetrieveParams < Stripe::RequestParams
626
+ # Specifies which fields in the response should be expanded.
627
+ attr_accessor :expand
628
+
629
+ def initialize(expand: nil)
630
+ @expand = expand
631
+ end
632
+ end
633
+
634
+ class UpdateParams < Stripe::RequestParams
635
+ class DefaultSettings < Stripe::RequestParams
636
+ class AutomaticTax < Stripe::RequestParams
637
+ class Liability < Stripe::RequestParams
638
+ # The connected account being referenced when `type` is `account`.
639
+ attr_accessor :account
640
+ # Type of the account referenced in the request.
641
+ attr_accessor :type
642
+
643
+ def initialize(account: nil, type: nil)
644
+ @account = account
645
+ @type = type
646
+ end
647
+ end
648
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
649
+ attr_accessor :enabled
650
+ # 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.
651
+ attr_accessor :liability
652
+
653
+ def initialize(enabled: nil, liability: nil)
654
+ @enabled = enabled
655
+ @liability = liability
656
+ end
657
+ end
658
+
659
+ class BillingThresholds < Stripe::RequestParams
660
+ # Monetary threshold that triggers the subscription to advance to a new billing period
661
+ attr_accessor :amount_gte
662
+ # 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.
663
+ attr_accessor :reset_billing_cycle_anchor
664
+
665
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
666
+ @amount_gte = amount_gte
667
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
668
+ end
669
+ end
670
+
671
+ class InvoiceSettings < Stripe::RequestParams
672
+ class Issuer < Stripe::RequestParams
673
+ # The connected account being referenced when `type` is `account`.
674
+ attr_accessor :account
675
+ # Type of the account referenced in the request.
676
+ attr_accessor :type
677
+
678
+ def initialize(account: nil, type: nil)
679
+ @account = account
680
+ @type = type
681
+ end
682
+ end
683
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
684
+ attr_accessor :account_tax_ids
685
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `collection_method=charge_automatically`.
686
+ attr_accessor :days_until_due
687
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
688
+ attr_accessor :issuer
689
+
690
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
691
+ @account_tax_ids = account_tax_ids
692
+ @days_until_due = days_until_due
693
+ @issuer = issuer
694
+ end
695
+ end
696
+
697
+ class TransferData < Stripe::RequestParams
698
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
699
+ attr_accessor :amount_percent
700
+ # ID of an existing, connected Stripe account.
701
+ attr_accessor :destination
702
+
703
+ def initialize(amount_percent: nil, destination: nil)
704
+ @amount_percent = amount_percent
705
+ @destination = destination
706
+ end
707
+ end
708
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
709
+ attr_accessor :application_fee_percent
710
+ # Default settings for automatic tax computation.
711
+ attr_accessor :automatic_tax
712
+ # 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).
713
+ attr_accessor :billing_cycle_anchor
714
+ # 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.
715
+ attr_accessor :billing_thresholds
716
+ # 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.
717
+ attr_accessor :collection_method
718
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
719
+ attr_accessor :default_payment_method
720
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
721
+ attr_accessor :description
722
+ # All invoices will be billed using the specified settings.
723
+ attr_accessor :invoice_settings
724
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
725
+ attr_accessor :on_behalf_of
726
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
727
+ attr_accessor :transfer_data
728
+
729
+ def initialize(
730
+ application_fee_percent: nil,
731
+ automatic_tax: nil,
732
+ billing_cycle_anchor: nil,
733
+ billing_thresholds: nil,
734
+ collection_method: nil,
735
+ default_payment_method: nil,
736
+ description: nil,
737
+ invoice_settings: nil,
738
+ on_behalf_of: nil,
739
+ transfer_data: nil
740
+ )
741
+ @application_fee_percent = application_fee_percent
742
+ @automatic_tax = automatic_tax
743
+ @billing_cycle_anchor = billing_cycle_anchor
744
+ @billing_thresholds = billing_thresholds
745
+ @collection_method = collection_method
746
+ @default_payment_method = default_payment_method
747
+ @description = description
748
+ @invoice_settings = invoice_settings
749
+ @on_behalf_of = on_behalf_of
750
+ @transfer_data = transfer_data
751
+ end
752
+ end
753
+
754
+ class Phase < Stripe::RequestParams
755
+ class AddInvoiceItem < Stripe::RequestParams
756
+ class Discount < Stripe::RequestParams
757
+ # ID of the coupon to create a new discount for.
758
+ attr_accessor :coupon
759
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
760
+ attr_accessor :discount
761
+ # ID of the promotion code to create a new discount for.
762
+ attr_accessor :promotion_code
763
+
764
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
765
+ @coupon = coupon
766
+ @discount = discount
767
+ @promotion_code = promotion_code
768
+ end
769
+ end
770
+
771
+ class PriceData < Stripe::RequestParams
772
+ # 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).
773
+ attr_accessor :currency
774
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
775
+ attr_accessor :product
776
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
777
+ attr_accessor :tax_behavior
778
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge or a negative integer representing the amount to credit to the customer.
779
+ attr_accessor :unit_amount
780
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
781
+ attr_accessor :unit_amount_decimal
782
+
783
+ def initialize(
784
+ currency: nil,
785
+ product: nil,
786
+ tax_behavior: nil,
787
+ unit_amount: nil,
788
+ unit_amount_decimal: nil
789
+ )
790
+ @currency = currency
791
+ @product = product
792
+ @tax_behavior = tax_behavior
793
+ @unit_amount = unit_amount
794
+ @unit_amount_decimal = unit_amount_decimal
795
+ end
796
+ end
797
+ # The coupons to redeem into discounts for the item.
798
+ attr_accessor :discounts
799
+ # The ID of the price object. One of `price` or `price_data` is required.
800
+ attr_accessor :price
801
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
802
+ attr_accessor :price_data
803
+ # Quantity for this item. Defaults to 1.
804
+ attr_accessor :quantity
805
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
806
+ attr_accessor :tax_rates
807
+
808
+ def initialize(discounts: nil, price: nil, price_data: nil, quantity: nil, tax_rates: nil)
809
+ @discounts = discounts
810
+ @price = price
811
+ @price_data = price_data
812
+ @quantity = quantity
813
+ @tax_rates = tax_rates
814
+ end
815
+ end
816
+
817
+ class AutomaticTax < Stripe::RequestParams
818
+ class Liability < Stripe::RequestParams
819
+ # The connected account being referenced when `type` is `account`.
820
+ attr_accessor :account
821
+ # Type of the account referenced in the request.
822
+ attr_accessor :type
823
+
824
+ def initialize(account: nil, type: nil)
825
+ @account = account
826
+ @type = type
827
+ end
828
+ end
829
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
830
+ attr_accessor :enabled
831
+ # 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.
832
+ attr_accessor :liability
833
+
834
+ def initialize(enabled: nil, liability: nil)
835
+ @enabled = enabled
836
+ @liability = liability
837
+ end
838
+ end
839
+
840
+ class BillingThresholds < Stripe::RequestParams
841
+ # Monetary threshold that triggers the subscription to advance to a new billing period
842
+ attr_accessor :amount_gte
843
+ # 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.
844
+ attr_accessor :reset_billing_cycle_anchor
845
+
846
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil)
847
+ @amount_gte = amount_gte
848
+ @reset_billing_cycle_anchor = reset_billing_cycle_anchor
849
+ end
850
+ end
851
+
852
+ class Discount < Stripe::RequestParams
853
+ # ID of the coupon to create a new discount for.
854
+ attr_accessor :coupon
855
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
856
+ attr_accessor :discount
857
+ # ID of the promotion code to create a new discount for.
858
+ attr_accessor :promotion_code
859
+
860
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
861
+ @coupon = coupon
862
+ @discount = discount
863
+ @promotion_code = promotion_code
864
+ end
865
+ end
866
+
867
+ class InvoiceSettings < Stripe::RequestParams
868
+ class Issuer < Stripe::RequestParams
869
+ # The connected account being referenced when `type` is `account`.
870
+ attr_accessor :account
871
+ # Type of the account referenced in the request.
872
+ attr_accessor :type
873
+
874
+ def initialize(account: nil, type: nil)
875
+ @account = account
876
+ @type = type
877
+ end
878
+ end
879
+ # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.
880
+ attr_accessor :account_tax_ids
881
+ # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.
882
+ attr_accessor :days_until_due
883
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
884
+ attr_accessor :issuer
885
+
886
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
887
+ @account_tax_ids = account_tax_ids
888
+ @days_until_due = days_until_due
889
+ @issuer = issuer
890
+ end
891
+ end
892
+
893
+ class Item < Stripe::RequestParams
894
+ class BillingThresholds < Stripe::RequestParams
895
+ # 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))
896
+ attr_accessor :usage_gte
897
+
898
+ def initialize(usage_gte: nil)
899
+ @usage_gte = usage_gte
900
+ end
901
+ end
902
+
903
+ class Discount < Stripe::RequestParams
904
+ # ID of the coupon to create a new discount for.
905
+ attr_accessor :coupon
906
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
907
+ attr_accessor :discount
908
+ # ID of the promotion code to create a new discount for.
909
+ attr_accessor :promotion_code
910
+
911
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
912
+ @coupon = coupon
913
+ @discount = discount
914
+ @promotion_code = promotion_code
915
+ end
916
+ end
917
+
918
+ class PriceData < Stripe::RequestParams
919
+ class Recurring < Stripe::RequestParams
920
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
921
+ attr_accessor :interval
922
+ # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).
923
+ attr_accessor :interval_count
924
+
925
+ def initialize(interval: nil, interval_count: nil)
926
+ @interval = interval
927
+ @interval_count = interval_count
928
+ end
929
+ end
930
+ # 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).
931
+ attr_accessor :currency
932
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
933
+ attr_accessor :product
934
+ # The recurring components of a price such as `interval` and `interval_count`.
935
+ attr_accessor :recurring
936
+ # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.
937
+ attr_accessor :tax_behavior
938
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
939
+ attr_accessor :unit_amount
940
+ # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.
941
+ attr_accessor :unit_amount_decimal
942
+
943
+ def initialize(
944
+ currency: nil,
945
+ product: nil,
946
+ recurring: nil,
947
+ tax_behavior: nil,
948
+ unit_amount: nil,
949
+ unit_amount_decimal: nil
950
+ )
951
+ @currency = currency
952
+ @product = product
953
+ @recurring = recurring
954
+ @tax_behavior = tax_behavior
955
+ @unit_amount = unit_amount
956
+ @unit_amount_decimal = unit_amount_decimal
957
+ end
958
+ end
959
+ # 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.
960
+ attr_accessor :billing_thresholds
961
+ # The coupons to redeem into discounts for the subscription item.
962
+ attr_accessor :discounts
963
+ # 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`.
964
+ attr_accessor :metadata
965
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
966
+ attr_accessor :plan
967
+ # The ID of the price object.
968
+ attr_accessor :price
969
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
970
+ attr_accessor :price_data
971
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
972
+ attr_accessor :quantity
973
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
974
+ attr_accessor :tax_rates
975
+
976
+ def initialize(
977
+ billing_thresholds: nil,
978
+ discounts: nil,
979
+ metadata: nil,
980
+ plan: nil,
981
+ price: nil,
982
+ price_data: nil,
983
+ quantity: nil,
984
+ tax_rates: nil
985
+ )
986
+ @billing_thresholds = billing_thresholds
987
+ @discounts = discounts
988
+ @metadata = metadata
989
+ @plan = plan
990
+ @price = price
991
+ @price_data = price_data
992
+ @quantity = quantity
993
+ @tax_rates = tax_rates
994
+ end
995
+ end
996
+
997
+ class TransferData < Stripe::RequestParams
998
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
999
+ attr_accessor :amount_percent
1000
+ # ID of an existing, connected Stripe account.
1001
+ attr_accessor :destination
1002
+
1003
+ def initialize(amount_percent: nil, destination: nil)
1004
+ @amount_percent = amount_percent
1005
+ @destination = destination
1006
+ end
1007
+ end
1008
+ # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items.
1009
+ attr_accessor :add_invoice_items
1010
+ # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
1011
+ attr_accessor :application_fee_percent
1012
+ # Automatic tax settings for this phase.
1013
+ attr_accessor :automatic_tax
1014
+ # 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).
1015
+ attr_accessor :billing_cycle_anchor
1016
+ # 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.
1017
+ attr_accessor :billing_thresholds
1018
+ # 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.
1019
+ attr_accessor :collection_method
1020
+ # 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).
1021
+ attr_accessor :currency
1022
+ # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
1023
+ attr_accessor :default_payment_method
1024
+ # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will set the Subscription's [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates), which means they will be the Invoice's [`default_tax_rates`](https://stripe.com/docs/api/invoices/create#create_invoice-default_tax_rates) for any Invoices issued by the Subscription during this Phase.
1025
+ attr_accessor :default_tax_rates
1026
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
1027
+ attr_accessor :description
1028
+ # The coupons to redeem into discounts for the schedule phase. If not specified, inherits the discount from the subscription's customer. Pass an empty string to avoid inheriting any discounts.
1029
+ attr_accessor :discounts
1030
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1031
+ attr_accessor :end_date
1032
+ # All invoices will be billed using the specified settings.
1033
+ attr_accessor :invoice_settings
1034
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1035
+ attr_accessor :items
1036
+ # Integer representing the multiplier applied to the price interval. For example, `iterations=2` applied to a price with `interval=month` and `interval_count=3` results in a phase of duration `2 * 3 months = 6 months`. If set, `end_date` must not be set.
1037
+ attr_accessor :iterations
1038
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`.
1039
+ attr_accessor :metadata
1040
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1041
+ attr_accessor :on_behalf_of
1042
+ # 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.
1043
+ attr_accessor :proration_behavior
1044
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
1045
+ attr_accessor :start_date
1046
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1047
+ attr_accessor :transfer_data
1048
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1049
+ attr_accessor :trial
1050
+ # Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial`
1051
+ attr_accessor :trial_end
1052
+
1053
+ def initialize(
1054
+ add_invoice_items: nil,
1055
+ application_fee_percent: nil,
1056
+ automatic_tax: nil,
1057
+ billing_cycle_anchor: nil,
1058
+ billing_thresholds: nil,
1059
+ collection_method: nil,
1060
+ currency: nil,
1061
+ default_payment_method: nil,
1062
+ default_tax_rates: nil,
1063
+ description: nil,
1064
+ discounts: nil,
1065
+ end_date: nil,
1066
+ invoice_settings: nil,
1067
+ items: nil,
1068
+ iterations: nil,
1069
+ metadata: nil,
1070
+ on_behalf_of: nil,
1071
+ proration_behavior: nil,
1072
+ start_date: nil,
1073
+ transfer_data: nil,
1074
+ trial: nil,
1075
+ trial_end: nil
1076
+ )
1077
+ @add_invoice_items = add_invoice_items
1078
+ @application_fee_percent = application_fee_percent
1079
+ @automatic_tax = automatic_tax
1080
+ @billing_cycle_anchor = billing_cycle_anchor
1081
+ @billing_thresholds = billing_thresholds
1082
+ @collection_method = collection_method
1083
+ @currency = currency
1084
+ @default_payment_method = default_payment_method
1085
+ @default_tax_rates = default_tax_rates
1086
+ @description = description
1087
+ @discounts = discounts
1088
+ @end_date = end_date
1089
+ @invoice_settings = invoice_settings
1090
+ @items = items
1091
+ @iterations = iterations
1092
+ @metadata = metadata
1093
+ @on_behalf_of = on_behalf_of
1094
+ @proration_behavior = proration_behavior
1095
+ @start_date = start_date
1096
+ @transfer_data = transfer_data
1097
+ @trial = trial
1098
+ @trial_end = trial_end
1099
+ end
1100
+ end
1101
+ # Object representing the subscription schedule's default settings.
1102
+ attr_accessor :default_settings
1103
+ # 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.
1104
+ attr_accessor :end_behavior
1105
+ # Specifies which fields in the response should be expanded.
1106
+ attr_accessor :expand
1107
+ # 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`.
1108
+ attr_accessor :metadata
1109
+ # 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. Note that past phases can be omitted.
1110
+ attr_accessor :phases
1111
+ # If the update changes the billing configuration (item price, quantity, etc.) of the current phase, indicates how prorations from this change should be handled. The default value is `create_prorations`.
1112
+ attr_accessor :proration_behavior
1113
+
1114
+ def initialize(
1115
+ default_settings: nil,
1116
+ end_behavior: nil,
1117
+ expand: nil,
1118
+ metadata: nil,
1119
+ phases: nil,
1120
+ proration_behavior: nil
1121
+ )
1122
+ @default_settings = default_settings
1123
+ @end_behavior = end_behavior
1124
+ @expand = expand
1125
+ @metadata = metadata
1126
+ @phases = phases
1127
+ @proration_behavior = proration_behavior
1128
+ end
1129
+ end
1130
+
1131
+ class CancelParams < Stripe::RequestParams
1132
+ # Specifies which fields in the response should be expanded.
1133
+ attr_accessor :expand
1134
+ # If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true`.
1135
+ attr_accessor :invoice_now
1136
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
1137
+ attr_accessor :prorate
1138
+
1139
+ def initialize(expand: nil, invoice_now: nil, prorate: nil)
1140
+ @expand = expand
1141
+ @invoice_now = invoice_now
1142
+ @prorate = prorate
1143
+ end
1144
+ end
1145
+
1146
+ class ReleaseParams < Stripe::RequestParams
1147
+ # Specifies which fields in the response should be expanded.
1148
+ attr_accessor :expand
1149
+ # Keep any cancellation on the subscription that the schedule has set
1150
+ attr_accessor :preserve_cancel_date
1151
+
1152
+ def initialize(expand: nil, preserve_cancel_date: nil)
1153
+ @expand = expand
1154
+ @preserve_cancel_date = preserve_cancel_date
1155
+ end
1156
+ end
1157
+
1158
+ # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
1159
+ def cancel(schedule, params = {}, opts = {})
1160
+ request(
1161
+ method: :post,
1162
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
1163
+ params: params,
1164
+ opts: opts,
1165
+ base_address: :api
1166
+ )
1167
+ end
1168
+
1169
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
1170
+ def create(params = {}, opts = {})
1171
+ request(
1172
+ method: :post,
1173
+ path: "/v1/subscription_schedules",
1174
+ params: params,
1175
+ opts: opts,
1176
+ base_address: :api
1177
+ )
1178
+ end
1179
+
1180
+ # Retrieves the list of your subscription schedules.
1181
+ def list(params = {}, opts = {})
1182
+ request(
1183
+ method: :get,
1184
+ path: "/v1/subscription_schedules",
1185
+ params: params,
1186
+ opts: opts,
1187
+ base_address: :api
1188
+ )
1189
+ end
1190
+
1191
+ # Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription's ID to the released_subscription property.
1192
+ def release(schedule, params = {}, opts = {})
1193
+ request(
1194
+ method: :post,
1195
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
1196
+ params: params,
1197
+ opts: opts,
1198
+ base_address: :api
1199
+ )
1200
+ end
1201
+
1202
+ # Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.
1203
+ def retrieve(schedule, params = {}, opts = {})
1204
+ request(
1205
+ method: :get,
1206
+ path: format("/v1/subscription_schedules/%<schedule>s", { schedule: CGI.escape(schedule) }),
1207
+ params: params,
1208
+ opts: opts,
1209
+ base_address: :api
1210
+ )
1211
+ end
1212
+
1213
+ # Updates an existing subscription schedule.
1214
+ def update(schedule, params = {}, opts = {})
1215
+ request(
1216
+ method: :post,
1217
+ path: format("/v1/subscription_schedules/%<schedule>s", { schedule: CGI.escape(schedule) }),
1218
+ params: params,
1219
+ opts: opts,
1220
+ base_address: :api
1221
+ )
1222
+ end
1223
+ end
1224
+ end