stripe 13.3.0 → 13.4.0.pre.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (743) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1416 -645
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_operations/request.rb +1 -0
  6. data/lib/stripe/api_requestor.rb +1 -0
  7. data/lib/stripe/object_types.rb +32 -0
  8. data/lib/stripe/request_params.rb +24 -0
  9. data/lib/stripe/request_signing_authenticator.rb +79 -0
  10. data/lib/stripe/resources/account.rb +5071 -0
  11. data/lib/stripe/resources/account_link.rb +54 -0
  12. data/lib/stripe/resources/account_notice.rb +132 -0
  13. data/lib/stripe/resources/account_session.rb +877 -0
  14. data/lib/stripe/resources/apple_pay_domain.rb +63 -0
  15. data/lib/stripe/resources/application.rb +20 -0
  16. data/lib/stripe/resources/application_fee.rb +96 -0
  17. data/lib/stripe/resources/application_fee_refund.rb +17 -0
  18. data/lib/stripe/resources/apps/secret.rb +141 -0
  19. data/lib/stripe/resources/balance.rb +131 -0
  20. data/lib/stripe/resources/balance_transaction.rb +112 -0
  21. data/lib/stripe/resources/bank_account.rb +84 -2
  22. data/lib/stripe/resources/billing/alert.rb +144 -0
  23. data/lib/stripe/resources/billing/alert_triggered.rb +26 -0
  24. data/lib/stripe/resources/billing/credit_balance_summary.rb +77 -0
  25. data/lib/stripe/resources/billing/credit_balance_transaction.rb +116 -0
  26. data/lib/stripe/resources/billing/credit_grant.rb +203 -0
  27. data/lib/stripe/resources/billing/meter.rb +178 -0
  28. data/lib/stripe/resources/billing/meter_error_report.rb +59 -0
  29. data/lib/stripe/resources/billing/meter_event.rb +35 -0
  30. data/lib/stripe/resources/billing/meter_event_adjustment.rb +43 -0
  31. data/lib/stripe/resources/billing/meter_event_summary.rb +15 -0
  32. data/lib/stripe/resources/billing_portal/configuration.rb +562 -0
  33. data/lib/stripe/resources/billing_portal/session.rb +271 -0
  34. data/lib/stripe/resources/capability.rb +84 -0
  35. data/lib/stripe/resources/capital/financing_offer.rb +188 -0
  36. data/lib/stripe/resources/capital/financing_summary.rb +64 -0
  37. data/lib/stripe/resources/capital/financing_transaction.rb +123 -0
  38. data/lib/stripe/resources/card.rb +79 -0
  39. data/lib/stripe/resources/cash_balance.rb +17 -0
  40. data/lib/stripe/resources/charge.rb +3026 -0
  41. data/lib/stripe/resources/checkout/session.rb +3654 -0
  42. data/lib/stripe/resources/climate/order.rb +176 -0
  43. data/lib/stripe/resources/climate/product.rb +56 -0
  44. data/lib/stripe/resources/climate/supplier.rb +54 -0
  45. data/lib/stripe/resources/confirmation_token.rb +1520 -0
  46. data/lib/stripe/resources/connect_collection_transfer.rb +24 -0
  47. data/lib/stripe/resources/country_spec.rb +63 -0
  48. data/lib/stripe/resources/coupon.rb +198 -0
  49. data/lib/stripe/resources/credit_note.rb +660 -0
  50. data/lib/stripe/resources/credit_note_line_item.rb +65 -0
  51. data/lib/stripe/resources/customer.rb +840 -0
  52. data/lib/stripe/resources/customer_balance_transaction.rb +27 -0
  53. data/lib/stripe/resources/customer_cash_balance_transaction.rb +109 -0
  54. data/lib/stripe/resources/customer_session.rb +159 -0
  55. data/lib/stripe/resources/discount.rb +29 -0
  56. data/lib/stripe/resources/dispute.rb +619 -0
  57. data/lib/stripe/resources/entitlements/active_entitlement.rb +46 -0
  58. data/lib/stripe/resources/entitlements/active_entitlement_summary.rb +23 -0
  59. data/lib/stripe/resources/entitlements/feature.rb +90 -0
  60. data/lib/stripe/resources/ephemeral_key.rb +21 -0
  61. data/lib/stripe/resources/event.rb +130 -0
  62. data/lib/stripe/resources/exchange_rate.rb +33 -0
  63. data/lib/stripe/resources/file.rb +111 -0
  64. data/lib/stripe/resources/file_link.rb +112 -0
  65. data/lib/stripe/resources/financial_connections/account.rb +260 -0
  66. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +27 -0
  67. data/lib/stripe/resources/financial_connections/account_owner.rb +17 -0
  68. data/lib/stripe/resources/financial_connections/account_ownership.rb +9 -0
  69. data/lib/stripe/resources/financial_connections/institution.rb +99 -0
  70. data/lib/stripe/resources/financial_connections/session.rb +159 -0
  71. data/lib/stripe/resources/financial_connections/transaction.rb +101 -0
  72. data/lib/stripe/resources/forwarding/request.rb +165 -0
  73. data/lib/stripe/resources/funding_instructions.rb +308 -0
  74. data/lib/stripe/resources/gift_cards/card.rb +217 -0
  75. data/lib/stripe/resources/gift_cards/transaction.rb +281 -0
  76. data/lib/stripe/resources/identity/verification_report.rb +266 -0
  77. data/lib/stripe/resources/identity/verification_session.rb +361 -0
  78. data/lib/stripe/resources/invoice.rb +8078 -0
  79. data/lib/stripe/resources/invoice_item.rb +445 -0
  80. data/lib/stripe/resources/invoice_line_item.rb +333 -0
  81. data/lib/stripe/resources/invoice_payment.rb +56 -0
  82. data/lib/stripe/resources/invoice_rendering_template.rb +67 -0
  83. data/lib/stripe/resources/issuing/authorization.rb +1117 -2
  84. data/lib/stripe/resources/issuing/card.rb +666 -0
  85. data/lib/stripe/resources/issuing/cardholder.rb +658 -0
  86. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +611 -0
  87. data/lib/stripe/resources/issuing/dispute.rb +790 -0
  88. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +84 -0
  89. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +95 -0
  90. data/lib/stripe/resources/issuing/personalization_design.rb +285 -0
  91. data/lib/stripe/resources/issuing/physical_bundle.rb +63 -0
  92. data/lib/stripe/resources/issuing/settlement.rb +49 -0
  93. data/lib/stripe/resources/issuing/token.rb +175 -0
  94. data/lib/stripe/resources/issuing/transaction.rb +927 -0
  95. data/lib/stripe/resources/line_item.rb +75 -0
  96. data/lib/stripe/resources/login_link.rb +7 -0
  97. data/lib/stripe/resources/mandate.rb +169 -0
  98. data/lib/stripe/resources/margin.rb +124 -0
  99. data/lib/stripe/resources/order.rb +2850 -0
  100. data/lib/stripe/resources/payment_attempt_record.rb +184 -0
  101. data/lib/stripe/resources/payment_intent.rb +12864 -0
  102. data/lib/stripe/resources/payment_link.rb +1563 -0
  103. data/lib/stripe/resources/payment_method.rb +1638 -0
  104. data/lib/stripe/resources/payment_method_configuration.rb +2844 -0
  105. data/lib/stripe/resources/payment_method_domain.rb +153 -0
  106. data/lib/stripe/resources/payment_record.rb +715 -0
  107. data/lib/stripe/resources/payout.rb +218 -0
  108. data/lib/stripe/resources/person.rb +263 -0
  109. data/lib/stripe/resources/plan.rb +317 -0
  110. data/lib/stripe/resources/price.rb +649 -0
  111. data/lib/stripe/resources/product.rb +536 -0
  112. data/lib/stripe/resources/product_feature.rb +12 -0
  113. data/lib/stripe/resources/promotion_code.rb +221 -0
  114. data/lib/stripe/resources/quote.rb +2946 -0
  115. data/lib/stripe/resources/quote_line.rb +274 -0
  116. data/lib/stripe/resources/quote_preview_invoice.rb +652 -0
  117. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +362 -0
  118. data/lib/stripe/resources/radar/early_fraud_warning.rb +77 -0
  119. data/lib/stripe/resources/radar/value_list.rb +125 -0
  120. data/lib/stripe/resources/radar/value_list_item.rb +95 -0
  121. data/lib/stripe/resources/refund.rb +397 -0
  122. data/lib/stripe/resources/reporting/report_run.rb +150 -0
  123. data/lib/stripe/resources/reporting/report_type.rb +36 -0
  124. data/lib/stripe/resources/reserve_transaction.rb +22 -0
  125. data/lib/stripe/resources/reversal.rb +21 -0
  126. data/lib/stripe/resources/review.rb +108 -0
  127. data/lib/stripe/resources/setup_attempt.rb +373 -0
  128. data/lib/stripe/resources/setup_intent.rb +3834 -0
  129. data/lib/stripe/resources/shipping_rate.rb +259 -0
  130. data/lib/stripe/resources/sigma/scheduled_query_run.rb +54 -0
  131. data/lib/stripe/resources/source.rb +1239 -0
  132. data/lib/stripe/resources/source_mandate_notification.rb +66 -0
  133. data/lib/stripe/resources/source_transaction.rb +85 -0
  134. data/lib/stripe/resources/subscription.rb +2057 -0
  135. data/lib/stripe/resources/subscription_item.rb +433 -0
  136. data/lib/stripe/resources/subscription_schedule.rb +2402 -0
  137. data/lib/stripe/resources/tax/association.rb +89 -0
  138. data/lib/stripe/resources/tax/calculation.rb +387 -0
  139. data/lib/stripe/resources/tax/calculation_line_item.rb +56 -0
  140. data/lib/stripe/resources/tax/form.rb +220 -0
  141. data/lib/stripe/resources/tax/registration.rb +2382 -0
  142. data/lib/stripe/resources/tax/settings.rb +126 -0
  143. data/lib/stripe/resources/tax/transaction.rb +267 -0
  144. data/lib/stripe/resources/tax/transaction_line_item.rb +31 -0
  145. data/lib/stripe/resources/tax_code.rb +35 -0
  146. data/lib/stripe/resources/tax_deducted_at_source.rb +22 -0
  147. data/lib/stripe/resources/tax_id.rb +121 -0
  148. data/lib/stripe/resources/tax_rate.rb +200 -0
  149. data/lib/stripe/resources/terminal/configuration.rb +1011 -0
  150. data/lib/stripe/resources/terminal/connection_token.rb +18 -0
  151. data/lib/stripe/resources/terminal/location.rb +175 -0
  152. data/lib/stripe/resources/terminal/reader.rb +782 -0
  153. data/lib/stripe/resources/terminal/reader_collected_data.rb +40 -0
  154. data/lib/stripe/resources/test_helpers/test_clock.rb +86 -0
  155. data/lib/stripe/resources/token.rb +1149 -0
  156. data/lib/stripe/resources/topup.rb +174 -0
  157. data/lib/stripe/resources/transfer.rb +153 -0
  158. data/lib/stripe/resources/treasury/credit_reversal.rb +92 -0
  159. data/lib/stripe/resources/treasury/debit_reversal.rb +103 -0
  160. data/lib/stripe/resources/treasury/financial_account.rb +772 -0
  161. data/lib/stripe/resources/treasury/financial_account_features.rb +191 -0
  162. data/lib/stripe/resources/treasury/inbound_transfer.rb +235 -0
  163. data/lib/stripe/resources/treasury/outbound_payment.rb +495 -0
  164. data/lib/stripe/resources/treasury/outbound_transfer.rb +387 -0
  165. data/lib/stripe/resources/treasury/received_credit.rb +283 -0
  166. data/lib/stripe/resources/treasury/received_debit.rb +244 -0
  167. data/lib/stripe/resources/treasury/transaction.rb +176 -0
  168. data/lib/stripe/resources/treasury/transaction_entry.rb +157 -0
  169. data/lib/stripe/resources/usage_record.rb +13 -0
  170. data/lib/stripe/resources/usage_record_summary.rb +21 -0
  171. data/lib/stripe/resources/v2/amount.rb +9 -0
  172. data/lib/stripe/resources/v2/billing/meter_event.rb +18 -0
  173. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +21 -0
  174. data/lib/stripe/resources/v2/billing/meter_event_session.rb +14 -0
  175. data/lib/stripe/resources/v2/event.rb +27 -0
  176. data/lib/stripe/resources/v2/event_destination.rb +59 -0
  177. data/lib/stripe/resources/webhook_endpoint.rb +122 -0
  178. data/lib/stripe/resources.rb +31 -0
  179. data/lib/stripe/services/account_capability_service.rb +32 -0
  180. data/lib/stripe/services/account_external_account_service.rb +250 -0
  181. data/lib/stripe/services/account_link_service.rb +46 -0
  182. data/lib/stripe/services/account_login_link_service.rb +9 -0
  183. data/lib/stripe/services/account_notice_service.rb +101 -0
  184. data/lib/stripe/services/account_person_service.rb +875 -0
  185. data/lib/stripe/services/account_service.rb +4351 -0
  186. data/lib/stripe/services/account_session_service.rb +664 -0
  187. data/lib/stripe/services/apple_pay_domain_service.rb +51 -0
  188. data/lib/stripe/services/application_fee_refund_service.rb +54 -0
  189. data/lib/stripe/services/application_fee_service.rb +57 -0
  190. data/lib/stripe/services/apps/secret_service.rb +116 -0
  191. data/lib/stripe/services/balance_service.rb +9 -0
  192. data/lib/stripe/services/balance_transaction_service.rb +69 -0
  193. data/lib/stripe/services/billing/alert_service.rb +113 -0
  194. data/lib/stripe/services/billing/credit_balance_summary_service.rb +37 -0
  195. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +40 -0
  196. data/lib/stripe/services/billing/credit_grant_service.rb +151 -0
  197. data/lib/stripe/services/billing/meter_event_adjustment_service.rb +26 -0
  198. data/lib/stripe/services/billing/meter_event_service.rb +21 -0
  199. data/lib/stripe/services/billing/meter_event_summary_service.rb +39 -0
  200. data/lib/stripe/services/billing/meter_service.rb +130 -0
  201. data/lib/stripe/services/billing_portal/configuration_service.rb +444 -0
  202. data/lib/stripe/services/billing_portal/session_service.rb +173 -0
  203. data/lib/stripe/services/capital/financing_offer_service.rb +112 -0
  204. data/lib/stripe/services/capital/financing_summary_service.rb +28 -0
  205. data/lib/stripe/services/capital/financing_transaction_service.rb +79 -0
  206. data/lib/stripe/services/capital_service.rb +15 -0
  207. data/lib/stripe/services/charge_service.rb +1736 -0
  208. data/lib/stripe/services/checkout/session_line_item_service.rb +18 -0
  209. data/lib/stripe/services/checkout/session_service.rb +2465 -0
  210. data/lib/stripe/services/climate/order_service.rb +102 -0
  211. data/lib/stripe/services/climate/product_service.rb +27 -0
  212. data/lib/stripe/services/climate/supplier_service.rb +27 -0
  213. data/lib/stripe/services/confirmation_token_service.rb +9 -0
  214. data/lib/stripe/services/country_spec_service.rb +27 -0
  215. data/lib/stripe/services/coupon_service.rb +152 -0
  216. data/lib/stripe/services/credit_note_line_item_service.rb +18 -0
  217. data/lib/stripe/services/credit_note_preview_lines_service.rb +156 -0
  218. data/lib/stripe/services/credit_note_service.rb +373 -0
  219. data/lib/stripe/services/customer_balance_transaction_service.rb +63 -0
  220. data/lib/stripe/services/customer_cash_balance_service.rb +29 -0
  221. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +27 -0
  222. data/lib/stripe/services/customer_funding_instructions_service.rb +42 -0
  223. data/lib/stripe/services/customer_payment_method_service.rb +40 -0
  224. data/lib/stripe/services/customer_payment_source_service.rb +179 -0
  225. data/lib/stripe/services/customer_service.rb +593 -0
  226. data/lib/stripe/services/customer_session_service.rb +96 -0
  227. data/lib/stripe/services/customer_tax_id_service.rb +45 -0
  228. data/lib/stripe/services/dispute_service.rb +374 -0
  229. data/lib/stripe/services/entitlements/active_entitlement_service.rb +36 -0
  230. data/lib/stripe/services/entitlements/feature_service.rb +76 -0
  231. data/lib/stripe/services/ephemeral_key_service.rb +36 -0
  232. data/lib/stripe/services/event_service.rb +65 -0
  233. data/lib/stripe/services/exchange_rate_service.rb +27 -0
  234. data/lib/stripe/services/file_link_service.rb +94 -0
  235. data/lib/stripe/services/file_service.rb +89 -0
  236. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +37 -0
  237. data/lib/stripe/services/financial_connections/account_owner_service.rb +27 -0
  238. data/lib/stripe/services/financial_connections/account_service.rb +99 -1
  239. data/lib/stripe/services/financial_connections/institution_service.rb +57 -0
  240. data/lib/stripe/services/financial_connections/session_service.rb +97 -0
  241. data/lib/stripe/services/financial_connections/transaction_service.rb +70 -0
  242. data/lib/stripe/services/financial_connections_service.rb +2 -1
  243. data/lib/stripe/services/forwarding/request_service.rb +106 -0
  244. data/lib/stripe/services/gift_cards/card_service.rb +170 -0
  245. data/lib/stripe/services/gift_cards/transaction_service.rb +209 -0
  246. data/lib/stripe/services/gift_cards_service.rb +14 -0
  247. data/lib/stripe/services/identity/verification_report_service.rb +65 -0
  248. data/lib/stripe/services/identity/verification_session_service.rb +231 -0
  249. data/lib/stripe/services/invoice_item_service.rb +388 -0
  250. data/lib/stripe/services/invoice_line_item_service.rb +237 -0
  251. data/lib/stripe/services/invoice_payment_service.rb +55 -0
  252. data/lib/stripe/services/invoice_rendering_template_service.rb +51 -0
  253. data/lib/stripe/services/invoice_service.rb +5567 -1
  254. data/lib/stripe/services/invoice_upcoming_lines_service.rb +1864 -0
  255. data/lib/stripe/services/issuing/authorization_service.rb +104 -0
  256. data/lib/stripe/services/issuing/card_service.rb +455 -0
  257. data/lib/stripe/services/issuing/cardholder_service.rb +526 -0
  258. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +504 -0
  259. data/lib/stripe/services/issuing/dispute_service.rb +633 -0
  260. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +66 -0
  261. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +83 -0
  262. data/lib/stripe/services/issuing/personalization_design_service.rb +193 -0
  263. data/lib/stripe/services/issuing/physical_bundle_service.rb +40 -0
  264. data/lib/stripe/services/issuing/token_service.rb +73 -0
  265. data/lib/stripe/services/issuing/transaction_service.rb +81 -0
  266. data/lib/stripe/services/issuing_service.rb +5 -1
  267. data/lib/stripe/services/mandate_service.rb +9 -0
  268. data/lib/stripe/services/margin_service.rb +119 -0
  269. data/lib/stripe/services/order_line_item_service.rb +35 -0
  270. data/lib/stripe/services/order_service.rb +2254 -0
  271. data/lib/stripe/services/payment_attempt_record_service.rb +49 -0
  272. data/lib/stripe/services/payment_intent_service.rb +10894 -0
  273. data/lib/stripe/services/payment_link_line_item_service.rb +18 -0
  274. data/lib/stripe/services/payment_link_service.rb +1223 -0
  275. data/lib/stripe/services/payment_method_configuration_service.rb +2046 -0
  276. data/lib/stripe/services/payment_method_domain_service.rb +76 -0
  277. data/lib/stripe/services/payment_method_service.rb +864 -0
  278. data/lib/stripe/services/payment_record_service.rb +542 -0
  279. data/lib/stripe/services/payout_service.rb +159 -0
  280. data/lib/stripe/services/plan_service.rb +253 -0
  281. data/lib/stripe/services/price_service.rb +516 -0
  282. data/lib/stripe/services/product_feature_service.rb +42 -0
  283. data/lib/stripe/services/product_service.rb +459 -0
  284. data/lib/stripe/services/promotion_code_service.rb +178 -0
  285. data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +18 -0
  286. data/lib/stripe/services/quote_line_item_service.rb +18 -0
  287. data/lib/stripe/services/quote_line_service.rb +35 -0
  288. data/lib/stripe/services/quote_preview_invoice_service.rb +35 -0
  289. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +35 -0
  290. data/lib/stripe/services/quote_service.rb +2319 -1
  291. data/lib/stripe/services/radar/early_fraud_warning_service.rb +61 -0
  292. data/lib/stripe/services/radar/value_list_item_service.rb +79 -0
  293. data/lib/stripe/services/radar/value_list_service.rb +103 -0
  294. data/lib/stripe/services/refund_service.rb +137 -0
  295. data/lib/stripe/services/reporting/report_run_service.rb +106 -0
  296. data/lib/stripe/services/reporting/report_type_service.rb +18 -0
  297. data/lib/stripe/services/review_service.rb +56 -0
  298. data/lib/stripe/services/setup_attempt_service.rb +51 -0
  299. data/lib/stripe/services/setup_intent_service.rb +3476 -0
  300. data/lib/stripe/services/shipping_rate_service.rb +200 -0
  301. data/lib/stripe/services/sigma/scheduled_query_run_service.rb +27 -0
  302. data/lib/stripe/services/source_service.rb +601 -0
  303. data/lib/stripe/services/source_transaction_service.rb +18 -0
  304. data/lib/stripe/services/subscription_item_service.rb +383 -0
  305. data/lib/stripe/services/subscription_item_usage_record_service.rb +18 -0
  306. data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +18 -0
  307. data/lib/stripe/services/subscription_schedule_service.rb +2053 -0
  308. data/lib/stripe/services/subscription_service.rb +1722 -0
  309. data/lib/stripe/services/tax/association_service.rb +31 -0
  310. data/lib/stripe/services/tax/calculation_line_item_service.rb +18 -0
  311. data/lib/stripe/services/tax/calculation_service.rb +205 -0
  312. data/lib/stripe/services/tax/form_service.rb +100 -0
  313. data/lib/stripe/services/tax/registration_service.rb +1564 -0
  314. data/lib/stripe/services/tax/settings_service.rb +74 -0
  315. data/lib/stripe/services/tax/transaction_line_item_service.rb +18 -0
  316. data/lib/stripe/services/tax/transaction_service.rb +111 -0
  317. data/lib/stripe/services/tax_code_service.rb +27 -0
  318. data/lib/stripe/services/tax_id_service.rb +79 -0
  319. data/lib/stripe/services/tax_rate_service.rb +155 -0
  320. data/lib/stripe/services/tax_service.rb +3 -1
  321. data/lib/stripe/services/terminal/configuration_service.rb +793 -0
  322. data/lib/stripe/services/terminal/connection_token_service.rb +12 -0
  323. data/lib/stripe/services/terminal/location_service.rb +144 -0
  324. data/lib/stripe/services/terminal/reader_collected_data_service.rb +28 -0
  325. data/lib/stripe/services/terminal/reader_service.rb +443 -0
  326. data/lib/stripe/services/terminal_service.rb +2 -1
  327. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +673 -0
  328. data/lib/stripe/services/test_helpers/customer_service.rb +18 -0
  329. data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +745 -0
  330. data/lib/stripe/services/test_helpers/issuing/card_service.rb +45 -0
  331. data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +41 -0
  332. data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +632 -0
  333. data/lib/stripe/services/test_helpers/refund_service.rb +9 -0
  334. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +44 -0
  335. data/lib/stripe/services/test_helpers/test_clock_service.rb +57 -0
  336. data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +38 -0
  337. data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +87 -0
  338. data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +87 -0
  339. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +84 -0
  340. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +84 -0
  341. data/lib/stripe/services/token_service.rb +1121 -0
  342. data/lib/stripe/services/topup_service.rb +142 -0
  343. data/lib/stripe/services/transfer_reversal_service.rb +66 -0
  344. data/lib/stripe/services/transfer_service.rb +119 -0
  345. data/lib/stripe/services/treasury/credit_reversal_service.rb +59 -0
  346. data/lib/stripe/services/treasury/debit_reversal_service.rb +63 -0
  347. data/lib/stripe/services/treasury/financial_account_features_service.rb +169 -0
  348. data/lib/stripe/services/treasury/financial_account_service.rb +509 -0
  349. data/lib/stripe/services/treasury/inbound_transfer_service.rb +88 -0
  350. data/lib/stripe/services/treasury/outbound_payment_service.rb +258 -0
  351. data/lib/stripe/services/treasury/outbound_transfer_service.rb +148 -0
  352. data/lib/stripe/services/treasury/received_credit_service.rb +52 -0
  353. data/lib/stripe/services/treasury/received_debit_service.rb +40 -0
  354. data/lib/stripe/services/treasury/transaction_entry_service.rb +87 -0
  355. data/lib/stripe/services/treasury/transaction_service.rb +95 -0
  356. data/lib/stripe/services/v1_services.rb +8 -1
  357. data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +23 -0
  358. data/lib/stripe/services/v2/billing/meter_event_service.rb +25 -0
  359. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +3 -0
  360. data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +33 -0
  361. data/lib/stripe/services/v2/core/event_destination_service.rb +146 -0
  362. data/lib/stripe/services/v2/core/event_service.rb +18 -0
  363. data/lib/stripe/services/webhook_endpoint_service.rb +96 -0
  364. data/lib/stripe/services.rb +25 -0
  365. data/lib/stripe/stripe_client.rb +1 -1
  366. data/lib/stripe/stripe_configuration.rb +3 -1
  367. data/lib/stripe/stripe_object.rb +5 -0
  368. data/lib/stripe/util.rb +7 -1
  369. data/lib/stripe/version.rb +1 -1
  370. data/lib/stripe.rb +46 -0
  371. data/rbi/stripe/resources/account.rbi +5100 -0
  372. data/rbi/stripe/resources/account_link.rbi +74 -0
  373. data/rbi/stripe/resources/account_notice.rbi +139 -0
  374. data/rbi/stripe/resources/account_session.rbi +1007 -0
  375. data/rbi/stripe/resources/apple_pay_domain.rbi +97 -0
  376. data/rbi/stripe/resources/application.rbi +20 -0
  377. data/rbi/stripe/resources/application_fee.rbi +123 -0
  378. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  379. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  380. data/rbi/stripe/resources/balance.rbi +187 -0
  381. data/rbi/stripe/resources/balance_transaction.rbi +149 -0
  382. data/rbi/stripe/resources/bank_account.rbi +127 -0
  383. data/rbi/stripe/resources/billing/alert.rbi +206 -0
  384. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  385. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +102 -0
  386. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +154 -0
  387. data/rbi/stripe/resources/billing/credit_grant.rbi +269 -0
  388. data/rbi/stripe/resources/billing/meter.rbi +233 -0
  389. data/rbi/stripe/resources/billing/meter_error_report.rbi +71 -0
  390. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  391. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  392. data/rbi/stripe/resources/billing/meter_event_summary.rbi +33 -0
  393. data/rbi/stripe/resources/billing_portal/configuration.rbi +640 -0
  394. data/rbi/stripe/resources/billing_portal/session.rbi +341 -0
  395. data/rbi/stripe/resources/capability.rbi +125 -0
  396. data/rbi/stripe/resources/capital/financing_offer.rbi +190 -0
  397. data/rbi/stripe/resources/capital/financing_summary.rbi +74 -0
  398. data/rbi/stripe/resources/capital/financing_transaction.rbi +130 -0
  399. data/rbi/stripe/resources/card.rbi +128 -0
  400. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  401. data/rbi/stripe/resources/charge.rbi +3484 -0
  402. data/rbi/stripe/resources/checkout/session.rbi +3995 -0
  403. data/rbi/stripe/resources/climate/order.rbi +250 -0
  404. data/rbi/stripe/resources/climate/product.rbi +82 -0
  405. data/rbi/stripe/resources/climate/supplier.rbi +79 -0
  406. data/rbi/stripe/resources/confirmation_token.rbi +1776 -0
  407. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  408. data/rbi/stripe/resources/country_spec.rbi +92 -0
  409. data/rbi/stripe/resources/coupon.rbi +257 -0
  410. data/rbi/stripe/resources/credit_note.rbi +759 -0
  411. data/rbi/stripe/resources/credit_note_line_item.rbi +99 -0
  412. data/rbi/stripe/resources/customer.rbi +1001 -0
  413. data/rbi/stripe/resources/customer_balance_transaction.rbi +53 -0
  414. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  415. data/rbi/stripe/resources/customer_session.rbi +196 -0
  416. data/rbi/stripe/resources/discount.rbi +53 -0
  417. data/rbi/stripe/resources/dispute.rbi +764 -0
  418. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +65 -0
  419. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  420. data/rbi/stripe/resources/entitlements/feature.rbi +124 -0
  421. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  422. data/rbi/stripe/resources/event.rbi +190 -0
  423. data/rbi/stripe/resources/exchange_rate.rbi +73 -0
  424. data/rbi/stripe/resources/file.rbi +148 -0
  425. data/rbi/stripe/resources/file_link.rbi +146 -0
  426. data/rbi/stripe/resources/financial_connections/account.rbi +358 -0
  427. data/rbi/stripe/resources/financial_connections/account_inferred_balance.rbi +27 -0
  428. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  429. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  430. data/rbi/stripe/resources/financial_connections/institution.rbi +99 -0
  431. data/rbi/stripe/resources/financial_connections/session.rbi +186 -0
  432. data/rbi/stripe/resources/financial_connections/transaction.rbi +127 -0
  433. data/rbi/stripe/resources/forwarding/request.rbi +219 -0
  434. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  435. data/rbi/stripe/resources/gift_cards/card.rbi +206 -0
  436. data/rbi/stripe/resources/gift_cards/transaction.rbi +257 -0
  437. data/rbi/stripe/resources/identity/verification_report.rbi +354 -0
  438. data/rbi/stripe/resources/identity/verification_session.rbi +518 -0
  439. data/rbi/stripe/resources/invoice.rbi +8928 -0
  440. data/rbi/stripe/resources/invoice_item.rbi +514 -0
  441. data/rbi/stripe/resources/invoice_line_item.rbi +400 -0
  442. data/rbi/stripe/resources/invoice_payment.rbi +70 -0
  443. data/rbi/stripe/resources/invoice_rendering_template.rbi +114 -0
  444. data/rbi/stripe/resources/issuing/authorization.rbi +1266 -0
  445. data/rbi/stripe/resources/issuing/card.rbi +738 -0
  446. data/rbi/stripe/resources/issuing/cardholder.rbi +732 -0
  447. data/rbi/stripe/resources/issuing/credit_underwriting_record.rbi +622 -0
  448. data/rbi/stripe/resources/issuing/dispute.rbi +900 -0
  449. data/rbi/stripe/resources/issuing/dispute_settlement_detail.rbi +83 -0
  450. data/rbi/stripe/resources/issuing/fraud_liability_debit.rbi +90 -0
  451. data/rbi/stripe/resources/issuing/personalization_design.rbi +333 -0
  452. data/rbi/stripe/resources/issuing/physical_bundle.rbi +86 -0
  453. data/rbi/stripe/resources/issuing/settlement.rbi +62 -0
  454. data/rbi/stripe/resources/issuing/token.rbi +231 -0
  455. data/rbi/stripe/resources/issuing/transaction.rbi +1057 -0
  456. data/rbi/stripe/resources/line_item.rbi +108 -0
  457. data/rbi/stripe/resources/login_link.rbi +18 -0
  458. data/rbi/stripe/resources/mandate.rbi +219 -0
  459. data/rbi/stripe/resources/margin.rbi +127 -0
  460. data/rbi/stripe/resources/order.rbi +3016 -0
  461. data/rbi/stripe/resources/payment_attempt_record.rbi +215 -0
  462. data/rbi/stripe/resources/payment_intent.rbi +13843 -0
  463. data/rbi/stripe/resources/payment_link.rbi +1666 -0
  464. data/rbi/stripe/resources/payment_method.rbi +1908 -0
  465. data/rbi/stripe/resources/payment_method_configuration.rbi +3171 -0
  466. data/rbi/stripe/resources/payment_method_domain.rbi +217 -0
  467. data/rbi/stripe/resources/payment_record.rbi +722 -0
  468. data/rbi/stripe/resources/payout.rbi +299 -0
  469. data/rbi/stripe/resources/person.rbi +371 -0
  470. data/rbi/stripe/resources/plan.rbi +385 -0
  471. data/rbi/stripe/resources/price.rbi +731 -0
  472. data/rbi/stripe/resources/product.rbi +615 -0
  473. data/rbi/stripe/resources/product_feature.rbi +26 -0
  474. data/rbi/stripe/resources/promotion_code.rbi +266 -0
  475. data/rbi/stripe/resources/quote.rbi +3186 -0
  476. data/rbi/stripe/resources/quote_line.rbi +350 -0
  477. data/rbi/stripe/resources/quote_preview_invoice.rbi +850 -0
  478. data/rbi/stripe/resources/quote_preview_subscription_schedule.rbi +474 -0
  479. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +101 -0
  480. data/rbi/stripe/resources/radar/value_list.rbi +175 -0
  481. data/rbi/stripe/resources/radar/value_list_item.rbi +134 -0
  482. data/rbi/stripe/resources/refund.rbi +515 -0
  483. data/rbi/stripe/resources/reporting/report_run.rbi +194 -0
  484. data/rbi/stripe/resources/reporting/report_type.rbi +64 -0
  485. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  486. data/rbi/stripe/resources/reversal.rbi +51 -0
  487. data/rbi/stripe/resources/review.rbi +159 -0
  488. data/rbi/stripe/resources/setup_attempt.rbi +484 -0
  489. data/rbi/stripe/resources/setup_intent.rbi +4041 -0
  490. data/rbi/stripe/resources/shipping_rate.rbi +310 -0
  491. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +82 -0
  492. data/rbi/stripe/resources/source.rbi +1543 -0
  493. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  494. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  495. data/rbi/stripe/resources/subscription.rbi +2308 -0
  496. data/rbi/stripe/resources/subscription_item.rbi +478 -0
  497. data/rbi/stripe/resources/subscription_schedule.rbi +2653 -0
  498. data/rbi/stripe/resources/tax/association.rbi +94 -0
  499. data/rbi/stripe/resources/tax/calculation.rbi +479 -0
  500. data/rbi/stripe/resources/tax/calculation_line_item.rbi +88 -0
  501. data/rbi/stripe/resources/tax/form.rbi +224 -0
  502. data/rbi/stripe/resources/tax/registration.rbi +2438 -0
  503. data/rbi/stripe/resources/tax/settings.rbi +148 -0
  504. data/rbi/stripe/resources/tax/transaction.rbi +356 -0
  505. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  506. data/rbi/stripe/resources/tax_code.rbi +51 -0
  507. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  508. data/rbi/stripe/resources/tax_id.rbi +174 -0
  509. data/rbi/stripe/resources/tax_rate.rbi +244 -0
  510. data/rbi/stripe/resources/terminal/configuration.rbi +1091 -0
  511. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  512. data/rbi/stripe/resources/terminal/location.rbi +231 -0
  513. data/rbi/stripe/resources/terminal/reader.rbi +952 -0
  514. data/rbi/stripe/resources/terminal/reader_collected_data.rbi +41 -0
  515. data/rbi/stripe/resources/test_helpers/test_clock.rbi +139 -0
  516. data/rbi/stripe/resources/token.rbi +1175 -0
  517. data/rbi/stripe/resources/topup.rbi +225 -0
  518. data/rbi/stripe/resources/transfer.rbi +204 -0
  519. data/rbi/stripe/resources/treasury/credit_reversal.rbi +126 -0
  520. data/rbi/stripe/resources/treasury/debit_reversal.rbi +138 -0
  521. data/rbi/stripe/resources/treasury/financial_account.rbi +870 -0
  522. data/rbi/stripe/resources/treasury/financial_account_features.rbi +263 -0
  523. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +302 -0
  524. data/rbi/stripe/resources/treasury/outbound_payment.rbi +589 -0
  525. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +473 -0
  526. data/rbi/stripe/resources/treasury/received_credit.rbi +348 -0
  527. data/rbi/stripe/resources/treasury/received_debit.rbi +305 -0
  528. data/rbi/stripe/resources/treasury/transaction.rbi +216 -0
  529. data/rbi/stripe/resources/treasury/transaction_entry.rbi +193 -0
  530. data/rbi/stripe/resources/usage_record.rbi +32 -0
  531. data/rbi/stripe/resources/usage_record_summary.rbi +38 -0
  532. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  533. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  534. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  535. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  536. data/rbi/stripe/resources/v2/event.rbi +47 -0
  537. data/rbi/stripe/resources/v2/event_destination.rbi +90 -0
  538. data/rbi/stripe/resources/webhook_endpoint.rbi +177 -0
  539. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  540. data/rbi/stripe/services/account_external_account_service.rbi +306 -0
  541. data/rbi/stripe/services/account_link_service.rbi +58 -0
  542. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  543. data/rbi/stripe/services/account_notice_service.rbi +90 -0
  544. data/rbi/stripe/services/account_person_service.rbi +903 -0
  545. data/rbi/stripe/services/account_service.rbi +4185 -0
  546. data/rbi/stripe/services/account_session_service.rbi +757 -0
  547. data/rbi/stripe/services/apple_pay_domain_service.rbi +78 -0
  548. data/rbi/stripe/services/application_fee_refund_service.rbi +91 -0
  549. data/rbi/stripe/services/application_fee_service.rbi +74 -0
  550. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  551. data/rbi/stripe/services/apps_service.rbi +9 -0
  552. data/rbi/stripe/services/balance_service.rbi +21 -0
  553. data/rbi/stripe/services/balance_transaction_service.rbi +89 -0
  554. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  555. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +54 -0
  556. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  557. data/rbi/stripe/services/billing/credit_grant_service.rbi +191 -0
  558. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +40 -0
  559. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  560. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  561. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  562. data/rbi/stripe/services/billing_portal/configuration_service.rbi +497 -0
  563. data/rbi/stripe/services/billing_portal/session_service.rbi +202 -0
  564. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  565. data/rbi/stripe/services/billing_service.rbi +15 -0
  566. data/rbi/stripe/services/capital/financing_offer_service.rbi +95 -0
  567. data/rbi/stripe/services/capital/financing_summary_service.rbi +22 -0
  568. data/rbi/stripe/services/capital/financing_transaction_service.rbi +68 -0
  569. data/rbi/stripe/services/capital_service.rbi +11 -0
  570. data/rbi/stripe/services/charge_service.rbi +1816 -0
  571. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  572. data/rbi/stripe/services/checkout/session_service.rbi +2582 -0
  573. data/rbi/stripe/services/checkout_service.rbi +9 -0
  574. data/rbi/stripe/services/climate/order_service.rbi +140 -0
  575. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  576. data/rbi/stripe/services/climate/supplier_service.rbi +46 -0
  577. data/rbi/stripe/services/climate_service.rbi +11 -0
  578. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  579. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  580. data/rbi/stripe/services/coupon_service.rbi +190 -0
  581. data/rbi/stripe/services/credit_note_line_item_service.rbi +31 -0
  582. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  583. data/rbi/stripe/services/credit_note_service.rbi +420 -0
  584. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  585. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  586. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  587. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  588. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  589. data/rbi/stripe/services/customer_payment_source_service.rbi +228 -0
  590. data/rbi/stripe/services/customer_service.rbi +647 -0
  591. data/rbi/stripe/services/customer_session_service.rbi +110 -0
  592. data/rbi/stripe/services/customer_tax_id_service.rbi +72 -0
  593. data/rbi/stripe/services/dispute_service.rbi +422 -0
  594. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  595. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  596. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  597. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  598. data/rbi/stripe/services/event_service.rbi +81 -0
  599. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  600. data/rbi/stripe/services/file_link_service.rbi +122 -0
  601. data/rbi/stripe/services/file_service.rbi +114 -0
  602. data/rbi/stripe/services/financial_connections/account_inferred_balance_service.rbi +33 -0
  603. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  604. data/rbi/stripe/services/financial_connections/account_service.rbi +132 -0
  605. data/rbi/stripe/services/financial_connections/institution_service.rbi +46 -0
  606. data/rbi/stripe/services/financial_connections/session_service.rbi +111 -0
  607. data/rbi/stripe/services/financial_connections/transaction_service.rbi +90 -0
  608. data/rbi/stripe/services/financial_connections_service.rbi +12 -0
  609. data/rbi/stripe/services/forwarding/request_service.rbi +132 -0
  610. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  611. data/rbi/stripe/services/gift_cards/card_service.rbi +142 -0
  612. data/rbi/stripe/services/gift_cards/transaction_service.rbi +174 -0
  613. data/rbi/stripe/services/gift_cards_service.rbi +10 -0
  614. data/rbi/stripe/services/identity/verification_report_service.rbi +85 -0
  615. data/rbi/stripe/services/identity/verification_session_service.rbi +317 -0
  616. data/rbi/stripe/services/identity_service.rbi +10 -0
  617. data/rbi/stripe/services/invoice_item_service.rbi +424 -0
  618. data/rbi/stripe/services/invoice_line_item_service.rbi +270 -0
  619. data/rbi/stripe/services/invoice_payment_service.rbi +44 -0
  620. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  621. data/rbi/stripe/services/invoice_service.rbi +6040 -0
  622. data/rbi/stripe/services/invoice_upcoming_lines_service.rbi +2023 -0
  623. data/rbi/stripe/services/issuing/authorization_service.rbi +140 -0
  624. data/rbi/stripe/services/issuing/card_service.rbi +479 -0
  625. data/rbi/stripe/services/issuing/cardholder_service.rbi +568 -0
  626. data/rbi/stripe/services/issuing/credit_underwriting_record_service.rbi +498 -0
  627. data/rbi/stripe/services/issuing/dispute_service.rbi +701 -0
  628. data/rbi/stripe/services/issuing/dispute_settlement_detail_service.rbi +55 -0
  629. data/rbi/stripe/services/issuing/fraud_liability_debit_service.rbi +73 -0
  630. data/rbi/stripe/services/issuing/personalization_design_service.rbi +233 -0
  631. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  632. data/rbi/stripe/services/issuing/token_service.rbi +95 -0
  633. data/rbi/stripe/services/issuing/transaction_service.rbi +103 -0
  634. data/rbi/stripe/services/issuing_service.rbi +19 -0
  635. data/rbi/stripe/services/mandate_service.rbi +20 -0
  636. data/rbi/stripe/services/margin_service.rbi +104 -0
  637. data/rbi/stripe/services/order_line_item_service.rbi +31 -0
  638. data/rbi/stripe/services/order_service.rbi +2306 -0
  639. data/rbi/stripe/services/payment_attempt_record_service.rbi +36 -0
  640. data/rbi/stripe/services/payment_intent_service.rbi +11429 -0
  641. data/rbi/stripe/services/payment_link_line_item_service.rbi +31 -0
  642. data/rbi/stripe/services/payment_link_service.rbi +1250 -0
  643. data/rbi/stripe/services/payment_method_configuration_service.rbi +2171 -0
  644. data/rbi/stripe/services/payment_method_domain_service.rbi +110 -0
  645. data/rbi/stripe/services/payment_method_service.rbi +883 -0
  646. data/rbi/stripe/services/payment_record_service.rbi +521 -0
  647. data/rbi/stripe/services/payout_service.rbi +197 -0
  648. data/rbi/stripe/services/plan_service.rbi +286 -0
  649. data/rbi/stripe/services/price_service.rbi +551 -0
  650. data/rbi/stripe/services/product_feature_service.rbi +69 -0
  651. data/rbi/stripe/services/product_service.rbi +503 -0
  652. data/rbi/stripe/services/promotion_code_service.rbi +210 -0
  653. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  654. data/rbi/stripe/services/quote_line_item_service.rbi +31 -0
  655. data/rbi/stripe/services/quote_line_service.rbi +31 -0
  656. data/rbi/stripe/services/quote_preview_invoice_service.rbi +31 -0
  657. data/rbi/stripe/services/quote_preview_subscription_schedule_service.rbi +31 -0
  658. data/rbi/stripe/services/quote_service.rbi +2390 -0
  659. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +83 -0
  660. data/rbi/stripe/services/radar/value_list_item_service.rbi +107 -0
  661. data/rbi/stripe/services/radar/value_list_service.rbi +139 -0
  662. data/rbi/stripe/services/radar_service.rbi +11 -0
  663. data/rbi/stripe/services/refund_service.rbi +181 -0
  664. data/rbi/stripe/services/reporting/report_run_service.rbi +131 -0
  665. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  666. data/rbi/stripe/services/reporting_service.rbi +10 -0
  667. data/rbi/stripe/services/review_service.rbi +82 -0
  668. data/rbi/stripe/services/setup_attempt_service.rbi +63 -0
  669. data/rbi/stripe/services/setup_intent_service.rbi +3609 -0
  670. data/rbi/stripe/services/shipping_rate_service.rbi +235 -0
  671. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  672. data/rbi/stripe/services/sigma_service.rbi +9 -0
  673. data/rbi/stripe/services/source_service.rbi +647 -0
  674. data/rbi/stripe/services/source_transaction_service.rbi +31 -0
  675. data/rbi/stripe/services/subscription_item_service.rbi +422 -0
  676. data/rbi/stripe/services/subscription_item_usage_record_service.rbi +37 -0
  677. data/rbi/stripe/services/subscription_item_usage_record_summary_service.rbi +33 -0
  678. data/rbi/stripe/services/subscription_schedule_service.rbi +2208 -0
  679. data/rbi/stripe/services/subscription_service.rbi +1870 -0
  680. data/rbi/stripe/services/tax/association_service.rbi +25 -0
  681. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +33 -0
  682. data/rbi/stripe/services/tax/calculation_service.rbi +228 -0
  683. data/rbi/stripe/services/tax/form_service.rbi +85 -0
  684. data/rbi/stripe/services/tax/registration_service.rbi +1517 -0
  685. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  686. data/rbi/stripe/services/tax/transaction_line_item_service.rbi +33 -0
  687. data/rbi/stripe/services/tax/transaction_service.rbi +142 -0
  688. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  689. data/rbi/stripe/services/tax_id_service.rbi +112 -0
  690. data/rbi/stripe/services/tax_rate_service.rbi +183 -0
  691. data/rbi/stripe/services/tax_service.rbi +14 -0
  692. data/rbi/stripe/services/terminal/configuration_service.rbi +822 -0
  693. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  694. data/rbi/stripe/services/terminal/location_service.rbi +184 -0
  695. data/rbi/stripe/services/terminal/reader_collected_data_service.rbi +22 -0
  696. data/rbi/stripe/services/terminal/reader_service.rbi +513 -0
  697. data/rbi/stripe/services/terminal_service.rbi +13 -0
  698. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +778 -0
  699. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  700. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +836 -0
  701. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  702. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +67 -0
  703. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +705 -0
  704. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  705. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  706. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +62 -0
  707. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  708. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +90 -0
  709. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  710. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +123 -0
  711. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +123 -0
  712. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +114 -0
  713. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +114 -0
  714. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  715. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  716. data/rbi/stripe/services/token_service.rbi +1136 -0
  717. data/rbi/stripe/services/topup_service.rbi +172 -0
  718. data/rbi/stripe/services/transfer_reversal_service.rbi +99 -0
  719. data/rbi/stripe/services/transfer_service.rbi +150 -0
  720. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  721. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  722. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +201 -0
  723. data/rbi/stripe/services/treasury/financial_account_service.rbi +566 -0
  724. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  725. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +300 -0
  726. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +182 -0
  727. data/rbi/stripe/services/treasury/received_credit_service.rbi +70 -0
  728. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  729. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +107 -0
  730. data/rbi/stripe/services/treasury/transaction_service.rbi +114 -0
  731. data/rbi/stripe/services/treasury_service.rbi +18 -0
  732. data/rbi/stripe/services/v1_services.rbi +83 -0
  733. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  734. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  735. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +20 -0
  736. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  737. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  738. data/rbi/stripe/services/v2/core/event_destination_service.rbi +203 -0
  739. data/rbi/stripe/services/v2/core/event_service.rbi +39 -0
  740. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  741. data/rbi/stripe/services/v2_services.rbi +10 -0
  742. data/rbi/stripe/services/webhook_endpoint_service.rbi +131 -0
  743. metadata +435 -4
@@ -0,0 +1,2208 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ # typed: true
5
+ module Stripe
6
+ class SubscriptionScheduleService < StripeService
7
+ class ListParams < Stripe::RequestParams
8
+ class CanceledAt < Stripe::RequestParams
9
+ # Minimum value to filter by (exclusive)
10
+ sig { returns(Integer) }
11
+ attr_accessor :gt
12
+ # Minimum value to filter by (inclusive)
13
+ sig { returns(Integer) }
14
+ attr_accessor :gte
15
+ # Maximum value to filter by (exclusive)
16
+ sig { returns(Integer) }
17
+ attr_accessor :lt
18
+ # Maximum value to filter by (inclusive)
19
+ sig { returns(Integer) }
20
+ attr_accessor :lte
21
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
22
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
23
+ end
24
+ class CompletedAt < Stripe::RequestParams
25
+ # Minimum value to filter by (exclusive)
26
+ sig { returns(Integer) }
27
+ attr_accessor :gt
28
+ # Minimum value to filter by (inclusive)
29
+ sig { returns(Integer) }
30
+ attr_accessor :gte
31
+ # Maximum value to filter by (exclusive)
32
+ sig { returns(Integer) }
33
+ attr_accessor :lt
34
+ # Maximum value to filter by (inclusive)
35
+ sig { returns(Integer) }
36
+ attr_accessor :lte
37
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
38
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
39
+ end
40
+ class Created < Stripe::RequestParams
41
+ # Minimum value to filter by (exclusive)
42
+ sig { returns(Integer) }
43
+ attr_accessor :gt
44
+ # Minimum value to filter by (inclusive)
45
+ sig { returns(Integer) }
46
+ attr_accessor :gte
47
+ # Maximum value to filter by (exclusive)
48
+ sig { returns(Integer) }
49
+ attr_accessor :lt
50
+ # Maximum value to filter by (inclusive)
51
+ sig { returns(Integer) }
52
+ attr_accessor :lte
53
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
54
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
55
+ end
56
+ class ReleasedAt < Stripe::RequestParams
57
+ # Minimum value to filter by (exclusive)
58
+ sig { returns(Integer) }
59
+ attr_accessor :gt
60
+ # Minimum value to filter by (inclusive)
61
+ sig { returns(Integer) }
62
+ attr_accessor :gte
63
+ # Maximum value to filter by (exclusive)
64
+ sig { returns(Integer) }
65
+ attr_accessor :lt
66
+ # Maximum value to filter by (inclusive)
67
+ sig { returns(Integer) }
68
+ attr_accessor :lte
69
+ sig { params(gt: Integer, gte: Integer, lt: Integer, lte: Integer).void }
70
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
71
+ end
72
+ # Only return subscription schedules that were created canceled the given date interval.
73
+ sig { returns(T.any(::Stripe::SubscriptionScheduleService::ListParams::CanceledAt, Integer)) }
74
+ attr_accessor :canceled_at
75
+ # Only return subscription schedules that completed during the given date interval.
76
+ sig {
77
+ returns(T.any(::Stripe::SubscriptionScheduleService::ListParams::CompletedAt, Integer))
78
+ }
79
+ attr_accessor :completed_at
80
+ # Only return subscription schedules that were created during the given date interval.
81
+ sig { returns(T.any(::Stripe::SubscriptionScheduleService::ListParams::Created, Integer)) }
82
+ attr_accessor :created
83
+ # Only return subscription schedules for the given customer.
84
+ sig { returns(String) }
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
+ sig { returns(String) }
88
+ attr_accessor :ending_before
89
+ # Specifies which fields in the response should be expanded.
90
+ sig { returns(T::Array[String]) }
91
+ attr_accessor :expand
92
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
93
+ sig { returns(Integer) }
94
+ attr_accessor :limit
95
+ # Only return subscription schedules that were released during the given date interval.
96
+ sig { returns(T.any(::Stripe::SubscriptionScheduleService::ListParams::ReleasedAt, Integer)) }
97
+ attr_accessor :released_at
98
+ # Only return subscription schedules that have not started yet.
99
+ sig { returns(T::Boolean) }
100
+ attr_accessor :scheduled
101
+ # 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.
102
+ sig { returns(String) }
103
+ attr_accessor :starting_after
104
+ sig {
105
+ params(canceled_at: T.any(::Stripe::SubscriptionScheduleService::ListParams::CanceledAt, Integer), completed_at: T.any(::Stripe::SubscriptionScheduleService::ListParams::CompletedAt, Integer), created: T.any(::Stripe::SubscriptionScheduleService::ListParams::Created, Integer), customer: String, ending_before: String, expand: T::Array[String], limit: Integer, released_at: T.any(::Stripe::SubscriptionScheduleService::ListParams::ReleasedAt, Integer), scheduled: T::Boolean, starting_after: String).void
106
+ }
107
+ def initialize(
108
+ canceled_at: nil,
109
+ completed_at: nil,
110
+ created: nil,
111
+ customer: nil,
112
+ ending_before: nil,
113
+ expand: nil,
114
+ limit: nil,
115
+ released_at: nil,
116
+ scheduled: nil,
117
+ starting_after: nil
118
+ ); end
119
+ end
120
+ class CreateParams < Stripe::RequestParams
121
+ class DefaultSettings < Stripe::RequestParams
122
+ class AutomaticTax < Stripe::RequestParams
123
+ class Liability < Stripe::RequestParams
124
+ # The connected account being referenced when `type` is `account`.
125
+ sig { returns(String) }
126
+ attr_accessor :account
127
+ # Type of the account referenced in the request.
128
+ sig { returns(String) }
129
+ attr_accessor :type
130
+ sig { params(account: String, type: String).void }
131
+ def initialize(account: nil, type: nil); end
132
+ end
133
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
134
+ sig { returns(T::Boolean) }
135
+ attr_accessor :enabled
136
+ # 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.
137
+ sig {
138
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax::Liability)
139
+ }
140
+ attr_accessor :liability
141
+ sig {
142
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax::Liability).void
143
+ }
144
+ def initialize(enabled: nil, liability: nil); end
145
+ end
146
+ class BillingThresholds < Stripe::RequestParams
147
+ # Monetary threshold that triggers the subscription to advance to a new billing period
148
+ sig { returns(Integer) }
149
+ attr_accessor :amount_gte
150
+ # 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.
151
+ sig { returns(T::Boolean) }
152
+ attr_accessor :reset_billing_cycle_anchor
153
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
154
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
155
+ end
156
+ class InvoiceSettings < Stripe::RequestParams
157
+ class Issuer < Stripe::RequestParams
158
+ # The connected account being referenced when `type` is `account`.
159
+ sig { returns(String) }
160
+ attr_accessor :account
161
+ # Type of the account referenced in the request.
162
+ sig { returns(String) }
163
+ attr_accessor :type
164
+ sig { params(account: String, type: String).void }
165
+ def initialize(account: nil, type: nil); end
166
+ end
167
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
168
+ sig { returns(T.nilable(T::Array[String])) }
169
+ attr_accessor :account_tax_ids
170
+ # 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`.
171
+ sig { returns(Integer) }
172
+ attr_accessor :days_until_due
173
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
174
+ sig {
175
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings::Issuer)
176
+ }
177
+ attr_accessor :issuer
178
+ sig {
179
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings::Issuer).void
180
+ }
181
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
182
+ end
183
+ class TransferData < Stripe::RequestParams
184
+ # 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.
185
+ sig { returns(Float) }
186
+ attr_accessor :amount_percent
187
+ # ID of an existing, connected Stripe account.
188
+ sig { returns(String) }
189
+ attr_accessor :destination
190
+ sig { params(amount_percent: Float, destination: String).void }
191
+ def initialize(amount_percent: nil, destination: nil); end
192
+ end
193
+ # 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).
194
+ sig { returns(Float) }
195
+ attr_accessor :application_fee_percent
196
+ # Default settings for automatic tax computation.
197
+ sig {
198
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax)
199
+ }
200
+ attr_accessor :automatic_tax
201
+ # 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).
202
+ sig { returns(String) }
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
+ sig {
206
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::BillingThresholds))
207
+ }
208
+ attr_accessor :billing_thresholds
209
+ # 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.
210
+ sig { returns(String) }
211
+ attr_accessor :collection_method
212
+ # 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.
213
+ sig { returns(String) }
214
+ attr_accessor :default_payment_method
215
+ # 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.
216
+ sig { returns(T.nilable(String)) }
217
+ attr_accessor :description
218
+ # All invoices will be billed using the specified settings.
219
+ sig {
220
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings)
221
+ }
222
+ attr_accessor :invoice_settings
223
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
224
+ sig { returns(T.nilable(String)) }
225
+ attr_accessor :on_behalf_of
226
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
227
+ sig {
228
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::TransferData))
229
+ }
230
+ attr_accessor :transfer_data
231
+ sig {
232
+ params(application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::BillingThresholds), collection_method: String, default_payment_method: String, description: T.nilable(String), invoice_settings: ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings, on_behalf_of: T.nilable(String), transfer_data: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::TransferData)).void
233
+ }
234
+ def initialize(
235
+ application_fee_percent: nil,
236
+ automatic_tax: nil,
237
+ billing_cycle_anchor: nil,
238
+ billing_thresholds: nil,
239
+ collection_method: nil,
240
+ default_payment_method: nil,
241
+ description: nil,
242
+ invoice_settings: nil,
243
+ on_behalf_of: nil,
244
+ transfer_data: nil
245
+ ); end
246
+ end
247
+ class Phase < Stripe::RequestParams
248
+ class AddInvoiceItem < Stripe::RequestParams
249
+ class Discount < Stripe::RequestParams
250
+ class DiscountEnd < Stripe::RequestParams
251
+ class Duration < Stripe::RequestParams
252
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
253
+ sig { returns(String) }
254
+ attr_accessor :interval
255
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
256
+ sig { returns(Integer) }
257
+ attr_accessor :interval_count
258
+ sig { params(interval: String, interval_count: Integer).void }
259
+ def initialize(interval: nil, interval_count: nil); end
260
+ end
261
+ # Time span for the redeemed discount.
262
+ sig {
263
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration)
264
+ }
265
+ attr_accessor :duration
266
+ # A precise Unix timestamp for the discount to end. Must be in the future.
267
+ sig { returns(Integer) }
268
+ attr_accessor :timestamp
269
+ # The type of calculation made to determine when the discount ends.
270
+ sig { returns(String) }
271
+ attr_accessor :type
272
+ sig {
273
+ params(duration: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
274
+ }
275
+ def initialize(duration: nil, timestamp: nil, type: nil); end
276
+ end
277
+ # ID of the coupon to create a new discount for.
278
+ sig { returns(String) }
279
+ attr_accessor :coupon
280
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
281
+ sig { returns(String) }
282
+ attr_accessor :discount
283
+ # Details to determine how long the discount should be applied for.
284
+ sig {
285
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd)
286
+ }
287
+ attr_accessor :discount_end
288
+ # ID of the promotion code to create a new discount for.
289
+ sig { returns(String) }
290
+ attr_accessor :promotion_code
291
+ sig {
292
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount::DiscountEnd, promotion_code: String).void
293
+ }
294
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
295
+ end
296
+ class PriceData < Stripe::RequestParams
297
+ # 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).
298
+ sig { returns(String) }
299
+ attr_accessor :currency
300
+ # The ID of the product that this price will belong to.
301
+ sig { returns(String) }
302
+ attr_accessor :product
303
+ # 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.
304
+ sig { returns(String) }
305
+ attr_accessor :tax_behavior
306
+ # 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.
307
+ sig { returns(Integer) }
308
+ attr_accessor :unit_amount
309
+ # 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.
310
+ sig { returns(String) }
311
+ attr_accessor :unit_amount_decimal
312
+ sig {
313
+ params(currency: String, product: String, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
314
+ }
315
+ def initialize(
316
+ currency: nil,
317
+ product: nil,
318
+ tax_behavior: nil,
319
+ unit_amount: nil,
320
+ unit_amount_decimal: nil
321
+ ); end
322
+ end
323
+ # The coupons to redeem into discounts for the item.
324
+ sig {
325
+ returns(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount])
326
+ }
327
+ attr_accessor :discounts
328
+ # The ID of the price object. One of `price` or `price_data` is required.
329
+ sig { returns(String) }
330
+ attr_accessor :price
331
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
332
+ sig {
333
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::PriceData)
334
+ }
335
+ attr_accessor :price_data
336
+ # Quantity for this item. Defaults to 1.
337
+ sig { returns(Integer) }
338
+ attr_accessor :quantity
339
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
340
+ sig { returns(T.nilable(T::Array[String])) }
341
+ attr_accessor :tax_rates
342
+ sig {
343
+ params(discounts: T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount], price: String, price_data: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String])).void
344
+ }
345
+ def initialize(
346
+ discounts: nil,
347
+ price: nil,
348
+ price_data: nil,
349
+ quantity: nil,
350
+ tax_rates: nil
351
+ ); end
352
+ end
353
+ class AutomaticTax < Stripe::RequestParams
354
+ class Liability < Stripe::RequestParams
355
+ # The connected account being referenced when `type` is `account`.
356
+ sig { returns(String) }
357
+ attr_accessor :account
358
+ # Type of the account referenced in the request.
359
+ sig { returns(String) }
360
+ attr_accessor :type
361
+ sig { params(account: String, type: String).void }
362
+ def initialize(account: nil, type: nil); end
363
+ end
364
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
365
+ sig { returns(T::Boolean) }
366
+ attr_accessor :enabled
367
+ # 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.
368
+ sig {
369
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax::Liability)
370
+ }
371
+ attr_accessor :liability
372
+ sig {
373
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax::Liability).void
374
+ }
375
+ def initialize(enabled: nil, liability: nil); end
376
+ end
377
+ class BillingThresholds < Stripe::RequestParams
378
+ # Monetary threshold that triggers the subscription to advance to a new billing period
379
+ sig { returns(Integer) }
380
+ attr_accessor :amount_gte
381
+ # 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.
382
+ sig { returns(T::Boolean) }
383
+ attr_accessor :reset_billing_cycle_anchor
384
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
385
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
386
+ end
387
+ class Discount < Stripe::RequestParams
388
+ class DiscountEnd < Stripe::RequestParams
389
+ class Duration < Stripe::RequestParams
390
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
391
+ sig { returns(String) }
392
+ attr_accessor :interval
393
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
394
+ sig { returns(Integer) }
395
+ attr_accessor :interval_count
396
+ sig { params(interval: String, interval_count: Integer).void }
397
+ def initialize(interval: nil, interval_count: nil); end
398
+ end
399
+ # Time span for the redeemed discount.
400
+ sig {
401
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount::DiscountEnd::Duration)
402
+ }
403
+ attr_accessor :duration
404
+ # A precise Unix timestamp for the discount to end. Must be in the future.
405
+ sig { returns(Integer) }
406
+ attr_accessor :timestamp
407
+ # The type of calculation made to determine when the discount ends.
408
+ sig { returns(String) }
409
+ attr_accessor :type
410
+ sig {
411
+ params(duration: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
412
+ }
413
+ def initialize(duration: nil, timestamp: nil, type: nil); end
414
+ end
415
+ # ID of the coupon to create a new discount for.
416
+ sig { returns(String) }
417
+ attr_accessor :coupon
418
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
419
+ sig { returns(String) }
420
+ attr_accessor :discount
421
+ # Details to determine how long the discount should be applied for.
422
+ sig {
423
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount::DiscountEnd)
424
+ }
425
+ attr_accessor :discount_end
426
+ # ID of the promotion code to create a new discount for.
427
+ sig { returns(String) }
428
+ attr_accessor :promotion_code
429
+ sig {
430
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount::DiscountEnd, promotion_code: String).void
431
+ }
432
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
433
+ end
434
+ class InvoiceSettings < Stripe::RequestParams
435
+ class Issuer < Stripe::RequestParams
436
+ # The connected account being referenced when `type` is `account`.
437
+ sig { returns(String) }
438
+ attr_accessor :account
439
+ # Type of the account referenced in the request.
440
+ sig { returns(String) }
441
+ attr_accessor :type
442
+ sig { params(account: String, type: String).void }
443
+ def initialize(account: nil, type: nil); end
444
+ end
445
+ # 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.
446
+ sig { returns(T.nilable(T::Array[String])) }
447
+ attr_accessor :account_tax_ids
448
+ # 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`.
449
+ sig { returns(Integer) }
450
+ attr_accessor :days_until_due
451
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
452
+ sig {
453
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings::Issuer)
454
+ }
455
+ attr_accessor :issuer
456
+ sig {
457
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings::Issuer).void
458
+ }
459
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
460
+ end
461
+ class Item < Stripe::RequestParams
462
+ class BillingThresholds < Stripe::RequestParams
463
+ # 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))
464
+ sig { returns(Integer) }
465
+ attr_accessor :usage_gte
466
+ sig { params(usage_gte: Integer).void }
467
+ def initialize(usage_gte: nil); end
468
+ end
469
+ class Discount < Stripe::RequestParams
470
+ class DiscountEnd < Stripe::RequestParams
471
+ class Duration < Stripe::RequestParams
472
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
473
+ sig { returns(String) }
474
+ attr_accessor :interval
475
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
476
+ sig { returns(Integer) }
477
+ attr_accessor :interval_count
478
+ sig { params(interval: String, interval_count: Integer).void }
479
+ def initialize(interval: nil, interval_count: nil); end
480
+ end
481
+ # Time span for the redeemed discount.
482
+ sig {
483
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount::DiscountEnd::Duration)
484
+ }
485
+ attr_accessor :duration
486
+ # A precise Unix timestamp for the discount to end. Must be in the future.
487
+ sig { returns(Integer) }
488
+ attr_accessor :timestamp
489
+ # The type of calculation made to determine when the discount ends.
490
+ sig { returns(String) }
491
+ attr_accessor :type
492
+ sig {
493
+ params(duration: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
494
+ }
495
+ def initialize(duration: nil, timestamp: nil, type: nil); end
496
+ end
497
+ # ID of the coupon to create a new discount for.
498
+ sig { returns(String) }
499
+ attr_accessor :coupon
500
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
501
+ sig { returns(String) }
502
+ attr_accessor :discount
503
+ # Details to determine how long the discount should be applied for.
504
+ sig {
505
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount::DiscountEnd)
506
+ }
507
+ attr_accessor :discount_end
508
+ # ID of the promotion code to create a new discount for.
509
+ sig { returns(String) }
510
+ attr_accessor :promotion_code
511
+ sig {
512
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount::DiscountEnd, promotion_code: String).void
513
+ }
514
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
515
+ end
516
+ class PriceData < Stripe::RequestParams
517
+ class Recurring < Stripe::RequestParams
518
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
519
+ sig { returns(String) }
520
+ attr_accessor :interval
521
+ # 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).
522
+ sig { returns(Integer) }
523
+ attr_accessor :interval_count
524
+ sig { params(interval: String, interval_count: Integer).void }
525
+ def initialize(interval: nil, interval_count: nil); end
526
+ end
527
+ # 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).
528
+ sig { returns(String) }
529
+ attr_accessor :currency
530
+ # The ID of the product that this price will belong to.
531
+ sig { returns(String) }
532
+ attr_accessor :product
533
+ # The recurring components of a price such as `interval` and `interval_count`.
534
+ sig {
535
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData::Recurring)
536
+ }
537
+ attr_accessor :recurring
538
+ # 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.
539
+ sig { returns(String) }
540
+ attr_accessor :tax_behavior
541
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
542
+ sig { returns(Integer) }
543
+ attr_accessor :unit_amount
544
+ # 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.
545
+ sig { returns(String) }
546
+ attr_accessor :unit_amount_decimal
547
+ sig {
548
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData::Recurring, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
549
+ }
550
+ def initialize(
551
+ currency: nil,
552
+ product: nil,
553
+ recurring: nil,
554
+ tax_behavior: nil,
555
+ unit_amount: nil,
556
+ unit_amount_decimal: nil
557
+ ); end
558
+ end
559
+ class Trial < Stripe::RequestParams
560
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
561
+ sig { returns(T::Array[String]) }
562
+ attr_accessor :converts_to
563
+ # Determines the type of trial for this item.
564
+ sig { returns(String) }
565
+ attr_accessor :type
566
+ sig { params(converts_to: T::Array[String], type: String).void }
567
+ def initialize(converts_to: nil, type: nil); end
568
+ end
569
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
570
+ sig {
571
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::BillingThresholds))
572
+ }
573
+ attr_accessor :billing_thresholds
574
+ # The coupons to redeem into discounts for the subscription item.
575
+ sig {
576
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount]))
577
+ }
578
+ attr_accessor :discounts
579
+ # 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`.
580
+ sig { returns(T::Hash[String, String]) }
581
+ attr_accessor :metadata
582
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
583
+ sig { returns(String) }
584
+ attr_accessor :plan
585
+ # The ID of the price object.
586
+ sig { returns(String) }
587
+ attr_accessor :price
588
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
589
+ sig {
590
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData)
591
+ }
592
+ attr_accessor :price_data
593
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
594
+ sig { returns(Integer) }
595
+ attr_accessor :quantity
596
+ # 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.
597
+ sig { returns(T.nilable(T::Array[String])) }
598
+ attr_accessor :tax_rates
599
+ # Options that configure the trial on the subscription item.
600
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Trial) }
601
+ attr_accessor :trial
602
+ sig {
603
+ params(billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::BillingThresholds), discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount]), metadata: T::Hash[String, String], plan: String, price: String, price_data: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String]), trial: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Trial).void
604
+ }
605
+ def initialize(
606
+ billing_thresholds: nil,
607
+ discounts: nil,
608
+ metadata: nil,
609
+ plan: nil,
610
+ price: nil,
611
+ price_data: nil,
612
+ quantity: nil,
613
+ tax_rates: nil,
614
+ trial: nil
615
+ ); end
616
+ end
617
+ class PauseCollection < Stripe::RequestParams
618
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
619
+ sig { returns(String) }
620
+ attr_accessor :behavior
621
+ sig { params(behavior: String).void }
622
+ def initialize(behavior: nil); end
623
+ end
624
+ class TransferData < Stripe::RequestParams
625
+ # 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.
626
+ sig { returns(Float) }
627
+ attr_accessor :amount_percent
628
+ # ID of an existing, connected Stripe account.
629
+ sig { returns(String) }
630
+ attr_accessor :destination
631
+ sig { params(amount_percent: Float, destination: String).void }
632
+ def initialize(amount_percent: nil, destination: nil); end
633
+ end
634
+ class TrialSettings < Stripe::RequestParams
635
+ class EndBehavior < Stripe::RequestParams
636
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
637
+ sig { returns(String) }
638
+ attr_accessor :prorate_up_front
639
+ sig { params(prorate_up_front: String).void }
640
+ def initialize(prorate_up_front: nil); end
641
+ end
642
+ # Defines how the subscription should behave when a trial ends.
643
+ sig {
644
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::TrialSettings::EndBehavior)
645
+ }
646
+ attr_accessor :end_behavior
647
+ sig {
648
+ params(end_behavior: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::TrialSettings::EndBehavior).void
649
+ }
650
+ def initialize(end_behavior: nil); end
651
+ end
652
+ # 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.
653
+ sig {
654
+ returns(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem])
655
+ }
656
+ attr_accessor :add_invoice_items
657
+ # 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).
658
+ sig { returns(Float) }
659
+ attr_accessor :application_fee_percent
660
+ # Automatic tax settings for this phase.
661
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax) }
662
+ attr_accessor :automatic_tax
663
+ # 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).
664
+ sig { returns(String) }
665
+ attr_accessor :billing_cycle_anchor
666
+ # 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.
667
+ sig {
668
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::BillingThresholds))
669
+ }
670
+ attr_accessor :billing_thresholds
671
+ # 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.
672
+ sig { returns(String) }
673
+ attr_accessor :collection_method
674
+ # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.
675
+ sig { returns(String) }
676
+ attr_accessor :coupon
677
+ # 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).
678
+ sig { returns(String) }
679
+ attr_accessor :currency
680
+ # 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.
681
+ sig { returns(String) }
682
+ attr_accessor :default_payment_method
683
+ # 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.
684
+ sig { returns(T.nilable(T::Array[String])) }
685
+ attr_accessor :default_tax_rates
686
+ # 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.
687
+ sig { returns(T.nilable(String)) }
688
+ attr_accessor :description
689
+ # 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.
690
+ sig {
691
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount]))
692
+ }
693
+ attr_accessor :discounts
694
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
695
+ sig { returns(Integer) }
696
+ attr_accessor :end_date
697
+ # All invoices will be billed using the specified settings.
698
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings) }
699
+ attr_accessor :invoice_settings
700
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
701
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item]) }
702
+ attr_accessor :items
703
+ # 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.
704
+ sig { returns(Integer) }
705
+ attr_accessor :iterations
706
+ # 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`.
707
+ sig { returns(T::Hash[String, String]) }
708
+ attr_accessor :metadata
709
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
710
+ sig { returns(String) }
711
+ attr_accessor :on_behalf_of
712
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
713
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::PauseCollection) }
714
+ attr_accessor :pause_collection
715
+ # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
716
+ sig { returns(String) }
717
+ attr_accessor :proration_behavior
718
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
719
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::TransferData) }
720
+ attr_accessor :transfer_data
721
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
722
+ sig { returns(T::Boolean) }
723
+ attr_accessor :trial
724
+ # Specify trial behavior when crossing phase boundaries
725
+ sig { returns(String) }
726
+ attr_accessor :trial_continuation
727
+ # 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`
728
+ sig { returns(Integer) }
729
+ attr_accessor :trial_end
730
+ # Settings related to subscription trials.
731
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::TrialSettings) }
732
+ attr_accessor :trial_settings
733
+ sig {
734
+ params(add_invoice_items: T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem], application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::BillingThresholds), collection_method: String, coupon: String, currency: String, default_payment_method: String, default_tax_rates: T.nilable(T::Array[String]), description: T.nilable(String), discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount]), end_date: Integer, invoice_settings: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings, items: T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item], iterations: Integer, metadata: T::Hash[String, String], on_behalf_of: String, pause_collection: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::PauseCollection, proration_behavior: String, transfer_data: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::TransferData, trial: T::Boolean, trial_continuation: String, trial_end: Integer, trial_settings: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::TrialSettings).void
735
+ }
736
+ def initialize(
737
+ add_invoice_items: nil,
738
+ application_fee_percent: nil,
739
+ automatic_tax: nil,
740
+ billing_cycle_anchor: nil,
741
+ billing_thresholds: nil,
742
+ collection_method: nil,
743
+ coupon: nil,
744
+ currency: nil,
745
+ default_payment_method: nil,
746
+ default_tax_rates: nil,
747
+ description: nil,
748
+ discounts: nil,
749
+ end_date: nil,
750
+ invoice_settings: nil,
751
+ items: nil,
752
+ iterations: nil,
753
+ metadata: nil,
754
+ on_behalf_of: nil,
755
+ pause_collection: nil,
756
+ proration_behavior: nil,
757
+ transfer_data: nil,
758
+ trial: nil,
759
+ trial_continuation: nil,
760
+ trial_end: nil,
761
+ trial_settings: nil
762
+ ); end
763
+ end
764
+ class Prebilling < Stripe::RequestParams
765
+ # This is used to determine the number of billing cycles to prebill.
766
+ sig { returns(Integer) }
767
+ attr_accessor :iterations
768
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
769
+ sig { returns(String) }
770
+ attr_accessor :update_behavior
771
+ sig { params(iterations: Integer, update_behavior: String).void }
772
+ def initialize(iterations: nil, update_behavior: nil); end
773
+ end
774
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
775
+ sig { returns(String) }
776
+ attr_accessor :billing_behavior
777
+ # The identifier of the customer to create the subscription schedule for.
778
+ sig { returns(String) }
779
+ attr_accessor :customer
780
+ # Object representing the subscription schedule's default settings.
781
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings) }
782
+ attr_accessor :default_settings
783
+ # 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.
784
+ sig { returns(String) }
785
+ attr_accessor :end_behavior
786
+ # Specifies which fields in the response should be expanded.
787
+ sig { returns(T::Array[String]) }
788
+ attr_accessor :expand
789
+ # 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.
790
+ sig { returns(String) }
791
+ attr_accessor :from_subscription
792
+ # 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`.
793
+ sig { returns(T.nilable(T::Hash[String, String])) }
794
+ attr_accessor :metadata
795
+ # 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.
796
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase]) }
797
+ attr_accessor :phases
798
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
799
+ sig { returns(::Stripe::SubscriptionScheduleService::CreateParams::Prebilling) }
800
+ attr_accessor :prebilling
801
+ # 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.
802
+ sig { returns(T.any(Integer, String)) }
803
+ attr_accessor :start_date
804
+ sig {
805
+ params(billing_behavior: String, customer: String, default_settings: ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings, end_behavior: String, expand: T::Array[String], from_subscription: String, metadata: T.nilable(T::Hash[String, String]), phases: T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase], prebilling: ::Stripe::SubscriptionScheduleService::CreateParams::Prebilling, start_date: T.any(Integer, String)).void
806
+ }
807
+ def initialize(
808
+ billing_behavior: nil,
809
+ customer: nil,
810
+ default_settings: nil,
811
+ end_behavior: nil,
812
+ expand: nil,
813
+ from_subscription: nil,
814
+ metadata: nil,
815
+ phases: nil,
816
+ prebilling: nil,
817
+ start_date: nil
818
+ ); end
819
+ end
820
+ class RetrieveParams < Stripe::RequestParams
821
+ # Specifies which fields in the response should be expanded.
822
+ sig { returns(T::Array[String]) }
823
+ attr_accessor :expand
824
+ sig { params(expand: T::Array[String]).void }
825
+ def initialize(expand: nil); end
826
+ end
827
+ class UpdateParams < Stripe::RequestParams
828
+ class DefaultSettings < Stripe::RequestParams
829
+ class AutomaticTax < Stripe::RequestParams
830
+ class Liability < Stripe::RequestParams
831
+ # The connected account being referenced when `type` is `account`.
832
+ sig { returns(String) }
833
+ attr_accessor :account
834
+ # Type of the account referenced in the request.
835
+ sig { returns(String) }
836
+ attr_accessor :type
837
+ sig { params(account: String, type: String).void }
838
+ def initialize(account: nil, type: nil); end
839
+ end
840
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
841
+ sig { returns(T::Boolean) }
842
+ attr_accessor :enabled
843
+ # 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.
844
+ sig {
845
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax::Liability)
846
+ }
847
+ attr_accessor :liability
848
+ sig {
849
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax::Liability).void
850
+ }
851
+ def initialize(enabled: nil, liability: nil); end
852
+ end
853
+ class BillingThresholds < Stripe::RequestParams
854
+ # Monetary threshold that triggers the subscription to advance to a new billing period
855
+ sig { returns(Integer) }
856
+ attr_accessor :amount_gte
857
+ # 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.
858
+ sig { returns(T::Boolean) }
859
+ attr_accessor :reset_billing_cycle_anchor
860
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
861
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
862
+ end
863
+ class InvoiceSettings < Stripe::RequestParams
864
+ class Issuer < Stripe::RequestParams
865
+ # The connected account being referenced when `type` is `account`.
866
+ sig { returns(String) }
867
+ attr_accessor :account
868
+ # Type of the account referenced in the request.
869
+ sig { returns(String) }
870
+ attr_accessor :type
871
+ sig { params(account: String, type: String).void }
872
+ def initialize(account: nil, type: nil); end
873
+ end
874
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
875
+ sig { returns(T.nilable(T::Array[String])) }
876
+ attr_accessor :account_tax_ids
877
+ # 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`.
878
+ sig { returns(Integer) }
879
+ attr_accessor :days_until_due
880
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
881
+ sig {
882
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings::Issuer)
883
+ }
884
+ attr_accessor :issuer
885
+ sig {
886
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings::Issuer).void
887
+ }
888
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
889
+ end
890
+ class TransferData < Stripe::RequestParams
891
+ # 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.
892
+ sig { returns(Float) }
893
+ attr_accessor :amount_percent
894
+ # ID of an existing, connected Stripe account.
895
+ sig { returns(String) }
896
+ attr_accessor :destination
897
+ sig { params(amount_percent: Float, destination: String).void }
898
+ def initialize(amount_percent: nil, destination: nil); end
899
+ end
900
+ # 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).
901
+ sig { returns(Float) }
902
+ attr_accessor :application_fee_percent
903
+ # Default settings for automatic tax computation.
904
+ sig {
905
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax)
906
+ }
907
+ attr_accessor :automatic_tax
908
+ # 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).
909
+ sig { returns(String) }
910
+ attr_accessor :billing_cycle_anchor
911
+ # 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.
912
+ sig {
913
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::BillingThresholds))
914
+ }
915
+ attr_accessor :billing_thresholds
916
+ # 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.
917
+ sig { returns(String) }
918
+ attr_accessor :collection_method
919
+ # 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.
920
+ sig { returns(String) }
921
+ attr_accessor :default_payment_method
922
+ # 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.
923
+ sig { returns(T.nilable(String)) }
924
+ attr_accessor :description
925
+ # All invoices will be billed using the specified settings.
926
+ sig {
927
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings)
928
+ }
929
+ attr_accessor :invoice_settings
930
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
931
+ sig { returns(T.nilable(String)) }
932
+ attr_accessor :on_behalf_of
933
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
934
+ sig {
935
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::TransferData))
936
+ }
937
+ attr_accessor :transfer_data
938
+ sig {
939
+ params(application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::BillingThresholds), collection_method: String, default_payment_method: String, description: T.nilable(String), invoice_settings: ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings, on_behalf_of: T.nilable(String), transfer_data: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::TransferData)).void
940
+ }
941
+ def initialize(
942
+ application_fee_percent: nil,
943
+ automatic_tax: nil,
944
+ billing_cycle_anchor: nil,
945
+ billing_thresholds: nil,
946
+ collection_method: nil,
947
+ default_payment_method: nil,
948
+ description: nil,
949
+ invoice_settings: nil,
950
+ on_behalf_of: nil,
951
+ transfer_data: nil
952
+ ); end
953
+ end
954
+ class Phase < Stripe::RequestParams
955
+ class AddInvoiceItem < Stripe::RequestParams
956
+ class Discount < Stripe::RequestParams
957
+ class DiscountEnd < Stripe::RequestParams
958
+ class Duration < Stripe::RequestParams
959
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
960
+ sig { returns(String) }
961
+ attr_accessor :interval
962
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
963
+ sig { returns(Integer) }
964
+ attr_accessor :interval_count
965
+ sig { params(interval: String, interval_count: Integer).void }
966
+ def initialize(interval: nil, interval_count: nil); end
967
+ end
968
+ # Time span for the redeemed discount.
969
+ sig {
970
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration)
971
+ }
972
+ attr_accessor :duration
973
+ # A precise Unix timestamp for the discount to end. Must be in the future.
974
+ sig { returns(Integer) }
975
+ attr_accessor :timestamp
976
+ # The type of calculation made to determine when the discount ends.
977
+ sig { returns(String) }
978
+ attr_accessor :type
979
+ sig {
980
+ params(duration: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
981
+ }
982
+ def initialize(duration: nil, timestamp: nil, type: nil); end
983
+ end
984
+ # ID of the coupon to create a new discount for.
985
+ sig { returns(String) }
986
+ attr_accessor :coupon
987
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
988
+ sig { returns(String) }
989
+ attr_accessor :discount
990
+ # Details to determine how long the discount should be applied for.
991
+ sig {
992
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd)
993
+ }
994
+ attr_accessor :discount_end
995
+ # ID of the promotion code to create a new discount for.
996
+ sig { returns(String) }
997
+ attr_accessor :promotion_code
998
+ sig {
999
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount::DiscountEnd, promotion_code: String).void
1000
+ }
1001
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1002
+ end
1003
+ class PriceData < Stripe::RequestParams
1004
+ # 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).
1005
+ sig { returns(String) }
1006
+ attr_accessor :currency
1007
+ # The ID of the product that this price will belong to.
1008
+ sig { returns(String) }
1009
+ attr_accessor :product
1010
+ # 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.
1011
+ sig { returns(String) }
1012
+ attr_accessor :tax_behavior
1013
+ # 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.
1014
+ sig { returns(Integer) }
1015
+ attr_accessor :unit_amount
1016
+ # 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.
1017
+ sig { returns(String) }
1018
+ attr_accessor :unit_amount_decimal
1019
+ sig {
1020
+ params(currency: String, product: String, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
1021
+ }
1022
+ def initialize(
1023
+ currency: nil,
1024
+ product: nil,
1025
+ tax_behavior: nil,
1026
+ unit_amount: nil,
1027
+ unit_amount_decimal: nil
1028
+ ); end
1029
+ end
1030
+ # The coupons to redeem into discounts for the item.
1031
+ sig {
1032
+ returns(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount])
1033
+ }
1034
+ attr_accessor :discounts
1035
+ # The ID of the price object. One of `price` or `price_data` is required.
1036
+ sig { returns(String) }
1037
+ attr_accessor :price
1038
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
1039
+ sig {
1040
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::PriceData)
1041
+ }
1042
+ attr_accessor :price_data
1043
+ # Quantity for this item. Defaults to 1.
1044
+ sig { returns(Integer) }
1045
+ attr_accessor :quantity
1046
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
1047
+ sig { returns(T.nilable(T::Array[String])) }
1048
+ attr_accessor :tax_rates
1049
+ sig {
1050
+ params(discounts: T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount], price: String, price_data: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String])).void
1051
+ }
1052
+ def initialize(
1053
+ discounts: nil,
1054
+ price: nil,
1055
+ price_data: nil,
1056
+ quantity: nil,
1057
+ tax_rates: nil
1058
+ ); end
1059
+ end
1060
+ class AutomaticTax < Stripe::RequestParams
1061
+ class Liability < Stripe::RequestParams
1062
+ # The connected account being referenced when `type` is `account`.
1063
+ sig { returns(String) }
1064
+ attr_accessor :account
1065
+ # Type of the account referenced in the request.
1066
+ sig { returns(String) }
1067
+ attr_accessor :type
1068
+ sig { params(account: String, type: String).void }
1069
+ def initialize(account: nil, type: nil); end
1070
+ end
1071
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
1072
+ sig { returns(T::Boolean) }
1073
+ attr_accessor :enabled
1074
+ # 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.
1075
+ sig {
1076
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax::Liability)
1077
+ }
1078
+ attr_accessor :liability
1079
+ sig {
1080
+ params(enabled: T::Boolean, liability: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax::Liability).void
1081
+ }
1082
+ def initialize(enabled: nil, liability: nil); end
1083
+ end
1084
+ class BillingThresholds < Stripe::RequestParams
1085
+ # Monetary threshold that triggers the subscription to advance to a new billing period
1086
+ sig { returns(Integer) }
1087
+ attr_accessor :amount_gte
1088
+ # 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.
1089
+ sig { returns(T::Boolean) }
1090
+ attr_accessor :reset_billing_cycle_anchor
1091
+ sig { params(amount_gte: Integer, reset_billing_cycle_anchor: T::Boolean).void }
1092
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
1093
+ end
1094
+ class Discount < Stripe::RequestParams
1095
+ class DiscountEnd < Stripe::RequestParams
1096
+ class Duration < Stripe::RequestParams
1097
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1098
+ sig { returns(String) }
1099
+ attr_accessor :interval
1100
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1101
+ sig { returns(Integer) }
1102
+ attr_accessor :interval_count
1103
+ sig { params(interval: String, interval_count: Integer).void }
1104
+ def initialize(interval: nil, interval_count: nil); end
1105
+ end
1106
+ # Time span for the redeemed discount.
1107
+ sig {
1108
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount::DiscountEnd::Duration)
1109
+ }
1110
+ attr_accessor :duration
1111
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1112
+ sig { returns(Integer) }
1113
+ attr_accessor :timestamp
1114
+ # The type of calculation made to determine when the discount ends.
1115
+ sig { returns(String) }
1116
+ attr_accessor :type
1117
+ sig {
1118
+ params(duration: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1119
+ }
1120
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1121
+ end
1122
+ # ID of the coupon to create a new discount for.
1123
+ sig { returns(String) }
1124
+ attr_accessor :coupon
1125
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1126
+ sig { returns(String) }
1127
+ attr_accessor :discount
1128
+ # Details to determine how long the discount should be applied for.
1129
+ sig {
1130
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount::DiscountEnd)
1131
+ }
1132
+ attr_accessor :discount_end
1133
+ # ID of the promotion code to create a new discount for.
1134
+ sig { returns(String) }
1135
+ attr_accessor :promotion_code
1136
+ sig {
1137
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount::DiscountEnd, promotion_code: String).void
1138
+ }
1139
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1140
+ end
1141
+ class InvoiceSettings < Stripe::RequestParams
1142
+ class Issuer < Stripe::RequestParams
1143
+ # The connected account being referenced when `type` is `account`.
1144
+ sig { returns(String) }
1145
+ attr_accessor :account
1146
+ # Type of the account referenced in the request.
1147
+ sig { returns(String) }
1148
+ attr_accessor :type
1149
+ sig { params(account: String, type: String).void }
1150
+ def initialize(account: nil, type: nil); end
1151
+ end
1152
+ # 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.
1153
+ sig { returns(T.nilable(T::Array[String])) }
1154
+ attr_accessor :account_tax_ids
1155
+ # 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`.
1156
+ sig { returns(Integer) }
1157
+ attr_accessor :days_until_due
1158
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
1159
+ sig {
1160
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings::Issuer)
1161
+ }
1162
+ attr_accessor :issuer
1163
+ sig {
1164
+ params(account_tax_ids: T.nilable(T::Array[String]), days_until_due: Integer, issuer: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings::Issuer).void
1165
+ }
1166
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1167
+ end
1168
+ class Item < Stripe::RequestParams
1169
+ class BillingThresholds < Stripe::RequestParams
1170
+ # 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))
1171
+ sig { returns(Integer) }
1172
+ attr_accessor :usage_gte
1173
+ sig { params(usage_gte: Integer).void }
1174
+ def initialize(usage_gte: nil); end
1175
+ end
1176
+ class Discount < Stripe::RequestParams
1177
+ class DiscountEnd < Stripe::RequestParams
1178
+ class Duration < Stripe::RequestParams
1179
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1180
+ sig { returns(String) }
1181
+ attr_accessor :interval
1182
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1183
+ sig { returns(Integer) }
1184
+ attr_accessor :interval_count
1185
+ sig { params(interval: String, interval_count: Integer).void }
1186
+ def initialize(interval: nil, interval_count: nil); end
1187
+ end
1188
+ # Time span for the redeemed discount.
1189
+ sig {
1190
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount::DiscountEnd::Duration)
1191
+ }
1192
+ attr_accessor :duration
1193
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1194
+ sig { returns(Integer) }
1195
+ attr_accessor :timestamp
1196
+ # The type of calculation made to determine when the discount ends.
1197
+ sig { returns(String) }
1198
+ attr_accessor :type
1199
+ sig {
1200
+ params(duration: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1201
+ }
1202
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1203
+ end
1204
+ # ID of the coupon to create a new discount for.
1205
+ sig { returns(String) }
1206
+ attr_accessor :coupon
1207
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1208
+ sig { returns(String) }
1209
+ attr_accessor :discount
1210
+ # Details to determine how long the discount should be applied for.
1211
+ sig {
1212
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount::DiscountEnd)
1213
+ }
1214
+ attr_accessor :discount_end
1215
+ # ID of the promotion code to create a new discount for.
1216
+ sig { returns(String) }
1217
+ attr_accessor :promotion_code
1218
+ sig {
1219
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount::DiscountEnd, promotion_code: String).void
1220
+ }
1221
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil); end
1222
+ end
1223
+ class PriceData < Stripe::RequestParams
1224
+ class Recurring < Stripe::RequestParams
1225
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
1226
+ sig { returns(String) }
1227
+ attr_accessor :interval
1228
+ # 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).
1229
+ sig { returns(Integer) }
1230
+ attr_accessor :interval_count
1231
+ sig { params(interval: String, interval_count: Integer).void }
1232
+ def initialize(interval: nil, interval_count: nil); end
1233
+ end
1234
+ # 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).
1235
+ sig { returns(String) }
1236
+ attr_accessor :currency
1237
+ # The ID of the product that this price will belong to.
1238
+ sig { returns(String) }
1239
+ attr_accessor :product
1240
+ # The recurring components of a price such as `interval` and `interval_count`.
1241
+ sig {
1242
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData::Recurring)
1243
+ }
1244
+ attr_accessor :recurring
1245
+ # 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.
1246
+ sig { returns(String) }
1247
+ attr_accessor :tax_behavior
1248
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
1249
+ sig { returns(Integer) }
1250
+ attr_accessor :unit_amount
1251
+ # 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.
1252
+ sig { returns(String) }
1253
+ attr_accessor :unit_amount_decimal
1254
+ sig {
1255
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData::Recurring, tax_behavior: String, unit_amount: Integer, unit_amount_decimal: String).void
1256
+ }
1257
+ def initialize(
1258
+ currency: nil,
1259
+ product: nil,
1260
+ recurring: nil,
1261
+ tax_behavior: nil,
1262
+ unit_amount: nil,
1263
+ unit_amount_decimal: nil
1264
+ ); end
1265
+ end
1266
+ class Trial < Stripe::RequestParams
1267
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1268
+ sig { returns(T::Array[String]) }
1269
+ attr_accessor :converts_to
1270
+ # Determines the type of trial for this item.
1271
+ sig { returns(String) }
1272
+ attr_accessor :type
1273
+ sig { params(converts_to: T::Array[String], type: String).void }
1274
+ def initialize(converts_to: nil, type: nil); end
1275
+ end
1276
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds.
1277
+ sig {
1278
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::BillingThresholds))
1279
+ }
1280
+ attr_accessor :billing_thresholds
1281
+ # The coupons to redeem into discounts for the subscription item.
1282
+ sig {
1283
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount]))
1284
+ }
1285
+ attr_accessor :discounts
1286
+ # 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`.
1287
+ sig { returns(T::Hash[String, String]) }
1288
+ attr_accessor :metadata
1289
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
1290
+ sig { returns(String) }
1291
+ attr_accessor :plan
1292
+ # The ID of the price object.
1293
+ sig { returns(String) }
1294
+ attr_accessor :price
1295
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1296
+ sig {
1297
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData)
1298
+ }
1299
+ attr_accessor :price_data
1300
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
1301
+ sig { returns(Integer) }
1302
+ attr_accessor :quantity
1303
+ # 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.
1304
+ sig { returns(T.nilable(T::Array[String])) }
1305
+ attr_accessor :tax_rates
1306
+ # Options that configure the trial on the subscription item.
1307
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Trial) }
1308
+ attr_accessor :trial
1309
+ sig {
1310
+ params(billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::BillingThresholds), discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount]), metadata: T::Hash[String, String], plan: String, price: String, price_data: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData, quantity: Integer, tax_rates: T.nilable(T::Array[String]), trial: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Trial).void
1311
+ }
1312
+ def initialize(
1313
+ billing_thresholds: nil,
1314
+ discounts: nil,
1315
+ metadata: nil,
1316
+ plan: nil,
1317
+ price: nil,
1318
+ price_data: nil,
1319
+ quantity: nil,
1320
+ tax_rates: nil,
1321
+ trial: nil
1322
+ ); end
1323
+ end
1324
+ class PauseCollection < Stripe::RequestParams
1325
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1326
+ sig { returns(String) }
1327
+ attr_accessor :behavior
1328
+ sig { params(behavior: String).void }
1329
+ def initialize(behavior: nil); end
1330
+ end
1331
+ class TransferData < Stripe::RequestParams
1332
+ # 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.
1333
+ sig { returns(Float) }
1334
+ attr_accessor :amount_percent
1335
+ # ID of an existing, connected Stripe account.
1336
+ sig { returns(String) }
1337
+ attr_accessor :destination
1338
+ sig { params(amount_percent: Float, destination: String).void }
1339
+ def initialize(amount_percent: nil, destination: nil); end
1340
+ end
1341
+ class TrialSettings < Stripe::RequestParams
1342
+ class EndBehavior < Stripe::RequestParams
1343
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1344
+ sig { returns(String) }
1345
+ attr_accessor :prorate_up_front
1346
+ sig { params(prorate_up_front: String).void }
1347
+ def initialize(prorate_up_front: nil); end
1348
+ end
1349
+ # Defines how the subscription should behave when a trial ends.
1350
+ sig {
1351
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TrialSettings::EndBehavior)
1352
+ }
1353
+ attr_accessor :end_behavior
1354
+ sig {
1355
+ params(end_behavior: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TrialSettings::EndBehavior).void
1356
+ }
1357
+ def initialize(end_behavior: nil); end
1358
+ end
1359
+ # 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.
1360
+ sig {
1361
+ returns(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem])
1362
+ }
1363
+ attr_accessor :add_invoice_items
1364
+ # 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).
1365
+ sig { returns(Float) }
1366
+ attr_accessor :application_fee_percent
1367
+ # Automatic tax settings for this phase.
1368
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax) }
1369
+ attr_accessor :automatic_tax
1370
+ # 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).
1371
+ sig { returns(String) }
1372
+ attr_accessor :billing_cycle_anchor
1373
+ # 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.
1374
+ sig {
1375
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::BillingThresholds))
1376
+ }
1377
+ attr_accessor :billing_thresholds
1378
+ # 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.
1379
+ sig { returns(String) }
1380
+ attr_accessor :collection_method
1381
+ # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.
1382
+ sig { returns(String) }
1383
+ attr_accessor :coupon
1384
+ # 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).
1385
+ sig { returns(String) }
1386
+ attr_accessor :currency
1387
+ # 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.
1388
+ sig { returns(String) }
1389
+ attr_accessor :default_payment_method
1390
+ # 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.
1391
+ sig { returns(T.nilable(T::Array[String])) }
1392
+ attr_accessor :default_tax_rates
1393
+ # 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.
1394
+ sig { returns(T.nilable(String)) }
1395
+ attr_accessor :description
1396
+ # 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.
1397
+ sig {
1398
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount]))
1399
+ }
1400
+ attr_accessor :discounts
1401
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1402
+ sig { returns(T.any(Integer, String)) }
1403
+ attr_accessor :end_date
1404
+ # All invoices will be billed using the specified settings.
1405
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings) }
1406
+ attr_accessor :invoice_settings
1407
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1408
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item]) }
1409
+ attr_accessor :items
1410
+ # 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.
1411
+ sig { returns(Integer) }
1412
+ attr_accessor :iterations
1413
+ # 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`.
1414
+ sig { returns(T::Hash[String, String]) }
1415
+ attr_accessor :metadata
1416
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1417
+ sig { returns(String) }
1418
+ attr_accessor :on_behalf_of
1419
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
1420
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::PauseCollection) }
1421
+ attr_accessor :pause_collection
1422
+ # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
1423
+ sig { returns(String) }
1424
+ attr_accessor :proration_behavior
1425
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
1426
+ sig { returns(T.any(Integer, String)) }
1427
+ attr_accessor :start_date
1428
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1429
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TransferData) }
1430
+ attr_accessor :transfer_data
1431
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1432
+ sig { returns(T::Boolean) }
1433
+ attr_accessor :trial
1434
+ # Specify trial behavior when crossing phase boundaries
1435
+ sig { returns(String) }
1436
+ attr_accessor :trial_continuation
1437
+ # 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`
1438
+ sig { returns(T.any(Integer, String)) }
1439
+ attr_accessor :trial_end
1440
+ # Settings related to subscription trials.
1441
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TrialSettings) }
1442
+ attr_accessor :trial_settings
1443
+ sig {
1444
+ params(add_invoice_items: T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem], application_fee_percent: Float, automatic_tax: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax, billing_cycle_anchor: String, billing_thresholds: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::BillingThresholds), collection_method: String, coupon: String, currency: String, default_payment_method: String, default_tax_rates: T.nilable(T::Array[String]), description: T.nilable(String), discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount]), end_date: T.any(Integer, String), invoice_settings: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings, items: T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item], iterations: Integer, metadata: T::Hash[String, String], on_behalf_of: String, pause_collection: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::PauseCollection, proration_behavior: String, start_date: T.any(Integer, String), transfer_data: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TransferData, trial: T::Boolean, trial_continuation: String, trial_end: T.any(Integer, String), trial_settings: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TrialSettings).void
1445
+ }
1446
+ def initialize(
1447
+ add_invoice_items: nil,
1448
+ application_fee_percent: nil,
1449
+ automatic_tax: nil,
1450
+ billing_cycle_anchor: nil,
1451
+ billing_thresholds: nil,
1452
+ collection_method: nil,
1453
+ coupon: nil,
1454
+ currency: nil,
1455
+ default_payment_method: nil,
1456
+ default_tax_rates: nil,
1457
+ description: nil,
1458
+ discounts: nil,
1459
+ end_date: nil,
1460
+ invoice_settings: nil,
1461
+ items: nil,
1462
+ iterations: nil,
1463
+ metadata: nil,
1464
+ on_behalf_of: nil,
1465
+ pause_collection: nil,
1466
+ proration_behavior: nil,
1467
+ start_date: nil,
1468
+ transfer_data: nil,
1469
+ trial: nil,
1470
+ trial_continuation: nil,
1471
+ trial_end: nil,
1472
+ trial_settings: nil
1473
+ ); end
1474
+ end
1475
+ class Prebilling < Stripe::RequestParams
1476
+ # This is used to determine the number of billing cycles to prebill.
1477
+ sig { returns(Integer) }
1478
+ attr_accessor :iterations
1479
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
1480
+ sig { returns(String) }
1481
+ attr_accessor :update_behavior
1482
+ sig { params(iterations: Integer, update_behavior: String).void }
1483
+ def initialize(iterations: nil, update_behavior: nil); end
1484
+ end
1485
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
1486
+ sig { returns(String) }
1487
+ attr_accessor :billing_behavior
1488
+ # Object representing the subscription schedule's default settings.
1489
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings) }
1490
+ attr_accessor :default_settings
1491
+ # 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.
1492
+ sig { returns(String) }
1493
+ attr_accessor :end_behavior
1494
+ # Specifies which fields in the response should be expanded.
1495
+ sig { returns(T::Array[String]) }
1496
+ attr_accessor :expand
1497
+ # 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`.
1498
+ sig { returns(T.nilable(T::Hash[String, String])) }
1499
+ attr_accessor :metadata
1500
+ # 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.
1501
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase]) }
1502
+ attr_accessor :phases
1503
+ # If specified, the invoicing for the given billing cycle iterations will be processed now.
1504
+ sig { returns(::Stripe::SubscriptionScheduleService::UpdateParams::Prebilling) }
1505
+ attr_accessor :prebilling
1506
+ # If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations`.
1507
+ sig { returns(String) }
1508
+ attr_accessor :proration_behavior
1509
+ sig {
1510
+ params(billing_behavior: String, default_settings: ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings, end_behavior: String, expand: T::Array[String], metadata: T.nilable(T::Hash[String, String]), phases: T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase], prebilling: ::Stripe::SubscriptionScheduleService::UpdateParams::Prebilling, proration_behavior: String).void
1511
+ }
1512
+ def initialize(
1513
+ billing_behavior: nil,
1514
+ default_settings: nil,
1515
+ end_behavior: nil,
1516
+ expand: nil,
1517
+ metadata: nil,
1518
+ phases: nil,
1519
+ prebilling: nil,
1520
+ proration_behavior: nil
1521
+ ); end
1522
+ end
1523
+ class AmendParams < Stripe::RequestParams
1524
+ class Amendment < Stripe::RequestParams
1525
+ class AmendmentEnd < Stripe::RequestParams
1526
+ class DiscountEnd < Stripe::RequestParams
1527
+ # The ID of a specific discount.
1528
+ sig { returns(String) }
1529
+ attr_accessor :discount
1530
+ sig { params(discount: String).void }
1531
+ def initialize(discount: nil); end
1532
+ end
1533
+ class Duration < Stripe::RequestParams
1534
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1535
+ sig { returns(String) }
1536
+ attr_accessor :interval
1537
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1538
+ sig { returns(Integer) }
1539
+ attr_accessor :interval_count
1540
+ sig { params(interval: String, interval_count: Integer).void }
1541
+ def initialize(interval: nil, interval_count: nil); end
1542
+ end
1543
+ # Use the `end` time of a given discount.
1544
+ sig {
1545
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd::DiscountEnd)
1546
+ }
1547
+ attr_accessor :discount_end
1548
+ # Time span for the amendment starting from the `amendment_start`.
1549
+ sig {
1550
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd::Duration)
1551
+ }
1552
+ attr_accessor :duration
1553
+ # A precise Unix timestamp for the amendment to end. Must be after the `amendment_start`.
1554
+ sig { returns(Integer) }
1555
+ attr_accessor :timestamp
1556
+ # Select one of three ways to pass the `amendment_end`.
1557
+ sig { returns(String) }
1558
+ attr_accessor :type
1559
+ sig {
1560
+ params(discount_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd::DiscountEnd, duration: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd::Duration, timestamp: Integer, type: String).void
1561
+ }
1562
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil); end
1563
+ end
1564
+ class AmendmentStart < Stripe::RequestParams
1565
+ class AmendmentEnd < Stripe::RequestParams
1566
+ # The position of the previous amendment in the `amendments` array after which this amendment should begin. Indexes start from 0 and must be less than the index of the current amendment in the array.
1567
+ sig { returns(Integer) }
1568
+ attr_accessor :index
1569
+ sig { params(index: Integer).void }
1570
+ def initialize(index: nil); end
1571
+ end
1572
+ class DiscountEnd < Stripe::RequestParams
1573
+ # The ID of a specific discount.
1574
+ sig { returns(String) }
1575
+ attr_accessor :discount
1576
+ sig { params(discount: String).void }
1577
+ def initialize(discount: nil); end
1578
+ end
1579
+ # Details of another amendment in the same array, immediately after which this amendment should begin.
1580
+ sig {
1581
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart::AmendmentEnd)
1582
+ }
1583
+ attr_accessor :amendment_end
1584
+ # Use the `end` time of a given discount.
1585
+ sig {
1586
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart::DiscountEnd)
1587
+ }
1588
+ attr_accessor :discount_end
1589
+ # A precise Unix timestamp for the amendment to start.
1590
+ sig { returns(Integer) }
1591
+ attr_accessor :timestamp
1592
+ # Select one of three ways to pass the `amendment_start`.
1593
+ sig { returns(String) }
1594
+ attr_accessor :type
1595
+ sig {
1596
+ params(amendment_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart::AmendmentEnd, discount_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart::DiscountEnd, timestamp: Integer, type: String).void
1597
+ }
1598
+ def initialize(amendment_end: nil, discount_end: nil, timestamp: nil, type: nil); end
1599
+ end
1600
+ class DiscountAction < Stripe::RequestParams
1601
+ class Add < Stripe::RequestParams
1602
+ class DiscountEnd < Stripe::RequestParams
1603
+ # The type of calculation made to determine when the discount ends.
1604
+ sig { returns(String) }
1605
+ attr_accessor :type
1606
+ sig { params(type: String).void }
1607
+ def initialize(type: nil); end
1608
+ end
1609
+ # The coupon code to redeem.
1610
+ sig { returns(String) }
1611
+ attr_accessor :coupon
1612
+ # An ID of an existing discount for a coupon that was already redeemed.
1613
+ sig { returns(String) }
1614
+ attr_accessor :discount
1615
+ # Details to determine how long the discount should be applied for.
1616
+ sig {
1617
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Add::DiscountEnd)
1618
+ }
1619
+ attr_accessor :discount_end
1620
+ # The index, starting at 0, at which to position the new discount. When not supplied, Stripe defaults to appending the discount to the end of the `discounts` array.
1621
+ sig { returns(Integer) }
1622
+ attr_accessor :index
1623
+ # The promotion code to redeem.
1624
+ sig { returns(String) }
1625
+ attr_accessor :promotion_code
1626
+ sig {
1627
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Add::DiscountEnd, index: Integer, promotion_code: String).void
1628
+ }
1629
+ def initialize(
1630
+ coupon: nil,
1631
+ discount: nil,
1632
+ discount_end: nil,
1633
+ index: nil,
1634
+ promotion_code: nil
1635
+ ); end
1636
+ end
1637
+ class Remove < Stripe::RequestParams
1638
+ # The coupon code to remove from the `discounts` array.
1639
+ sig { returns(String) }
1640
+ attr_accessor :coupon
1641
+ # The ID of a discount to remove from the `discounts` array.
1642
+ sig { returns(String) }
1643
+ attr_accessor :discount
1644
+ # The ID of a promotion code to remove from the `discounts` array.
1645
+ sig { returns(String) }
1646
+ attr_accessor :promotion_code
1647
+ sig { params(coupon: String, discount: String, promotion_code: String).void }
1648
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1649
+ end
1650
+ class Set < Stripe::RequestParams
1651
+ # The coupon code to replace the `discounts` array with.
1652
+ sig { returns(String) }
1653
+ attr_accessor :coupon
1654
+ # An ID of an existing discount to replace the `discounts` array with.
1655
+ sig { returns(String) }
1656
+ attr_accessor :discount
1657
+ # An ID of an existing promotion code to replace the `discounts` array with.
1658
+ sig { returns(String) }
1659
+ attr_accessor :promotion_code
1660
+ sig { params(coupon: String, discount: String, promotion_code: String).void }
1661
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1662
+ end
1663
+ # Details of the discount to add.
1664
+ sig {
1665
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Add)
1666
+ }
1667
+ attr_accessor :add
1668
+ # Details of the discount to remove.
1669
+ sig {
1670
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Remove)
1671
+ }
1672
+ attr_accessor :remove
1673
+ # Details of the discount to replace the existing discounts with.
1674
+ sig {
1675
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Set)
1676
+ }
1677
+ attr_accessor :set
1678
+ # Determines the type of discount action.
1679
+ sig { returns(String) }
1680
+ attr_accessor :type
1681
+ sig {
1682
+ params(add: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Add, remove: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Remove, set: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction::Set, type: String).void
1683
+ }
1684
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
1685
+ end
1686
+ class ItemAction < Stripe::RequestParams
1687
+ class Add < Stripe::RequestParams
1688
+ class Discount < Stripe::RequestParams
1689
+ class DiscountEnd < Stripe::RequestParams
1690
+ class Duration < Stripe::RequestParams
1691
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1692
+ sig { returns(String) }
1693
+ attr_accessor :interval
1694
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1695
+ sig { returns(Integer) }
1696
+ attr_accessor :interval_count
1697
+ sig { params(interval: String, interval_count: Integer).void }
1698
+ def initialize(interval: nil, interval_count: nil); end
1699
+ end
1700
+ # Time span for the redeemed discount.
1701
+ sig {
1702
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd::Duration)
1703
+ }
1704
+ attr_accessor :duration
1705
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1706
+ sig { returns(Integer) }
1707
+ attr_accessor :timestamp
1708
+ # The type of calculation made to determine when the discount ends.
1709
+ sig { returns(String) }
1710
+ attr_accessor :type
1711
+ sig {
1712
+ params(duration: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1713
+ }
1714
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1715
+ end
1716
+ # ID of the coupon to create a new discount for.
1717
+ sig { returns(String) }
1718
+ attr_accessor :coupon
1719
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1720
+ sig { returns(String) }
1721
+ attr_accessor :discount
1722
+ # Details to determine how long the discount should be applied for.
1723
+ sig {
1724
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd)
1725
+ }
1726
+ attr_accessor :discount_end
1727
+ # ID of the promotion code to create a new discount for.
1728
+ sig { returns(String) }
1729
+ attr_accessor :promotion_code
1730
+ sig {
1731
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount::DiscountEnd, promotion_code: String).void
1732
+ }
1733
+ def initialize(
1734
+ coupon: nil,
1735
+ discount: nil,
1736
+ discount_end: nil,
1737
+ promotion_code: nil
1738
+ ); end
1739
+ end
1740
+ class Trial < Stripe::RequestParams
1741
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1742
+ sig { returns(T::Array[String]) }
1743
+ attr_accessor :converts_to
1744
+ # Determines the type of trial for this item.
1745
+ sig { returns(String) }
1746
+ attr_accessor :type
1747
+ sig { params(converts_to: T::Array[String], type: String).void }
1748
+ def initialize(converts_to: nil, type: nil); end
1749
+ end
1750
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
1751
+ sig {
1752
+ returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount])
1753
+ }
1754
+ attr_accessor :discounts
1755
+ # 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`.
1756
+ sig { returns(T::Hash[String, String]) }
1757
+ attr_accessor :metadata
1758
+ # The ID of the price object.
1759
+ sig { returns(String) }
1760
+ attr_accessor :price
1761
+ # Quantity for this item.
1762
+ sig { returns(Integer) }
1763
+ attr_accessor :quantity
1764
+ # The tax rates that apply to this subscription item. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
1765
+ sig { returns(T::Array[String]) }
1766
+ attr_accessor :tax_rates
1767
+ # Options that configure the trial on the subscription item.
1768
+ sig {
1769
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Trial)
1770
+ }
1771
+ attr_accessor :trial
1772
+ sig {
1773
+ params(discounts: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Discount], metadata: T::Hash[String, String], price: String, quantity: Integer, tax_rates: T::Array[String], trial: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add::Trial).void
1774
+ }
1775
+ def initialize(
1776
+ discounts: nil,
1777
+ metadata: nil,
1778
+ price: nil,
1779
+ quantity: nil,
1780
+ tax_rates: nil,
1781
+ trial: nil
1782
+ ); end
1783
+ end
1784
+ class Remove < Stripe::RequestParams
1785
+ # ID of a price to remove.
1786
+ sig { returns(String) }
1787
+ attr_accessor :price
1788
+ sig { params(price: String).void }
1789
+ def initialize(price: nil); end
1790
+ end
1791
+ class Set < Stripe::RequestParams
1792
+ class Discount < Stripe::RequestParams
1793
+ class DiscountEnd < Stripe::RequestParams
1794
+ class Duration < Stripe::RequestParams
1795
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1796
+ sig { returns(String) }
1797
+ attr_accessor :interval
1798
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1799
+ sig { returns(Integer) }
1800
+ attr_accessor :interval_count
1801
+ sig { params(interval: String, interval_count: Integer).void }
1802
+ def initialize(interval: nil, interval_count: nil); end
1803
+ end
1804
+ # Time span for the redeemed discount.
1805
+ sig {
1806
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd::Duration)
1807
+ }
1808
+ attr_accessor :duration
1809
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1810
+ sig { returns(Integer) }
1811
+ attr_accessor :timestamp
1812
+ # The type of calculation made to determine when the discount ends.
1813
+ sig { returns(String) }
1814
+ attr_accessor :type
1815
+ sig {
1816
+ params(duration: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd::Duration, timestamp: Integer, type: String).void
1817
+ }
1818
+ def initialize(duration: nil, timestamp: nil, type: nil); end
1819
+ end
1820
+ # ID of the coupon to create a new discount for.
1821
+ sig { returns(String) }
1822
+ attr_accessor :coupon
1823
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1824
+ sig { returns(String) }
1825
+ attr_accessor :discount
1826
+ # Details to determine how long the discount should be applied for.
1827
+ sig {
1828
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd)
1829
+ }
1830
+ attr_accessor :discount_end
1831
+ # ID of the promotion code to create a new discount for.
1832
+ sig { returns(String) }
1833
+ attr_accessor :promotion_code
1834
+ sig {
1835
+ params(coupon: String, discount: String, discount_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount::DiscountEnd, promotion_code: String).void
1836
+ }
1837
+ def initialize(
1838
+ coupon: nil,
1839
+ discount: nil,
1840
+ discount_end: nil,
1841
+ promotion_code: nil
1842
+ ); end
1843
+ end
1844
+ class Trial < Stripe::RequestParams
1845
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1846
+ sig { returns(T::Array[String]) }
1847
+ attr_accessor :converts_to
1848
+ # Determines the type of trial for this item.
1849
+ sig { returns(String) }
1850
+ attr_accessor :type
1851
+ sig { params(converts_to: T::Array[String], type: String).void }
1852
+ def initialize(converts_to: nil, type: nil); end
1853
+ end
1854
+ # If an item with the `price` already exists, passing this will override the `discounts` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `discounts`.
1855
+ sig {
1856
+ returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount])
1857
+ }
1858
+ attr_accessor :discounts
1859
+ # If an item with the `price` already exists, passing this will override the `metadata` on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `metadata`.
1860
+ sig { returns(T::Hash[String, String]) }
1861
+ attr_accessor :metadata
1862
+ # The ID of the price object.
1863
+ sig { returns(String) }
1864
+ attr_accessor :price
1865
+ # If an item with the `price` already exists, passing this will override the quantity on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `quantity`.
1866
+ sig { returns(Integer) }
1867
+ attr_accessor :quantity
1868
+ # If an item with the `price` already exists, passing this will override the `tax_rates` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `tax_rates`.
1869
+ sig { returns(T::Array[String]) }
1870
+ attr_accessor :tax_rates
1871
+ # If an item with the `price` already exists, passing this will override the `trial` configuration on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `trial`.
1872
+ sig {
1873
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Trial)
1874
+ }
1875
+ attr_accessor :trial
1876
+ sig {
1877
+ params(discounts: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Discount], metadata: T::Hash[String, String], price: String, quantity: Integer, tax_rates: T::Array[String], trial: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set::Trial).void
1878
+ }
1879
+ def initialize(
1880
+ discounts: nil,
1881
+ metadata: nil,
1882
+ price: nil,
1883
+ quantity: nil,
1884
+ tax_rates: nil,
1885
+ trial: nil
1886
+ ); end
1887
+ end
1888
+ # Details of the subscription item to add. If an item with the same `price` exists, it will be replaced by this new item. Otherwise, it adds the new item.
1889
+ sig {
1890
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add)
1891
+ }
1892
+ attr_accessor :add
1893
+ # Details of the subscription item to remove.
1894
+ sig {
1895
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Remove)
1896
+ }
1897
+ attr_accessor :remove
1898
+ # Details of the subscription item to replace the existing items with. If an item with the `set[price]` already exists, the `items` array is not cleared. Instead, all of the other `set` properties that are passed in this request will replace the existing values for the configuration item.
1899
+ sig {
1900
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set)
1901
+ }
1902
+ attr_accessor :set
1903
+ # Determines the type of item action.
1904
+ sig { returns(String) }
1905
+ attr_accessor :type
1906
+ sig {
1907
+ params(add: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Add, remove: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Remove, set: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction::Set, type: String).void
1908
+ }
1909
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
1910
+ end
1911
+ class MetadataAction < Stripe::RequestParams
1912
+ # Key-value pairs to add to schedule phase metadata. These values will merge with existing schedule phase metadata.
1913
+ sig { returns(T::Hash[String, String]) }
1914
+ attr_accessor :add
1915
+ # Keys to remove from schedule phase metadata.
1916
+ sig { returns(T::Array[String]) }
1917
+ attr_accessor :remove
1918
+ # Key-value pairs to set as schedule phase metadata. Existing schedule phase metadata will be overwritten.
1919
+ sig { returns(T.nilable(T::Hash[String, String])) }
1920
+ attr_accessor :set
1921
+ # Select one of three ways to update phase-level `metadata` on subscription schedules.
1922
+ sig { returns(String) }
1923
+ attr_accessor :type
1924
+ sig {
1925
+ params(add: T::Hash[String, String], remove: T::Array[String], set: T.nilable(T::Hash[String, String]), type: String).void
1926
+ }
1927
+ def initialize(add: nil, remove: nil, set: nil, type: nil); end
1928
+ end
1929
+ class SetPauseCollection < Stripe::RequestParams
1930
+ class Set < Stripe::RequestParams
1931
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1932
+ sig { returns(String) }
1933
+ attr_accessor :behavior
1934
+ sig { params(behavior: String).void }
1935
+ def initialize(behavior: nil); end
1936
+ end
1937
+ # Details of the pause_collection behavior to apply to the amendment.
1938
+ sig {
1939
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::SetPauseCollection::Set)
1940
+ }
1941
+ attr_accessor :set
1942
+ # Determines the type of the pause_collection amendment.
1943
+ sig { returns(String) }
1944
+ attr_accessor :type
1945
+ sig {
1946
+ params(set: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::SetPauseCollection::Set, type: String).void
1947
+ }
1948
+ def initialize(set: nil, type: nil); end
1949
+ end
1950
+ class TrialSettings < Stripe::RequestParams
1951
+ class EndBehavior < Stripe::RequestParams
1952
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1953
+ sig { returns(String) }
1954
+ attr_accessor :prorate_up_front
1955
+ sig { params(prorate_up_front: String).void }
1956
+ def initialize(prorate_up_front: nil); end
1957
+ end
1958
+ # Defines how the subscription should behave when a trial ends.
1959
+ sig {
1960
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::TrialSettings::EndBehavior)
1961
+ }
1962
+ attr_accessor :end_behavior
1963
+ sig {
1964
+ params(end_behavior: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::TrialSettings::EndBehavior).void
1965
+ }
1966
+ def initialize(end_behavior: nil); end
1967
+ end
1968
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the amendment is considered a point-in-time operation that only affects the exact timestamp at `amendment_start`, and a restricted set of attributes is supported on the amendment.
1969
+ sig { returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd) }
1970
+ attr_accessor :amendment_end
1971
+ # Details to identify the earliest timestamp where the proposed change should take effect.
1972
+ sig {
1973
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart)
1974
+ }
1975
+ attr_accessor :amendment_start
1976
+ # For point-in-time amendments (having no `amendment_end`), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the `amendment_start` timestamp.For time-span based amendments (having both `amendment_start` and `amendment_end`), the only value valid is `automatic`, which removes any previously configured billing cycle anchor resets scheduled to occur during the window of time spanned by the amendment.
1977
+ sig { returns(String) }
1978
+ attr_accessor :billing_cycle_anchor
1979
+ # Changes to the coupons being redeemed or discounts being applied during the amendment time span.
1980
+ sig {
1981
+ returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction])
1982
+ }
1983
+ attr_accessor :discount_actions
1984
+ # Changes to the subscription items during the amendment time span.
1985
+ sig {
1986
+ returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction])
1987
+ }
1988
+ attr_accessor :item_actions
1989
+ # Instructions for how to modify phase metadata
1990
+ sig {
1991
+ returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::MetadataAction])
1992
+ }
1993
+ attr_accessor :metadata_actions
1994
+ # Changes to how Stripe handles prorations during the amendment time span. Affects if and how prorations are created when a future phase starts. In cases where the amendment changes the currently active phase, it is used to determine whether or how to prorate now, at the time of the request. Also supported as a point-in-time operation when `amendment_end` is `null`.
1995
+ sig { returns(String) }
1996
+ attr_accessor :proration_behavior
1997
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
1998
+ sig {
1999
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::SetPauseCollection)
2000
+ }
2001
+ attr_accessor :set_pause_collection
2002
+ # Ends the subscription schedule early as dictated by either the accompanying amendment's start or end.
2003
+ sig { returns(String) }
2004
+ attr_accessor :set_schedule_end
2005
+ # Settings related to subscription trials.
2006
+ sig {
2007
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Amendment::TrialSettings)
2008
+ }
2009
+ attr_accessor :trial_settings
2010
+ sig {
2011
+ params(amendment_end: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentEnd, amendment_start: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::AmendmentStart, billing_cycle_anchor: String, discount_actions: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::DiscountAction], item_actions: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::ItemAction], metadata_actions: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment::MetadataAction], proration_behavior: String, set_pause_collection: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::SetPauseCollection, set_schedule_end: String, trial_settings: ::Stripe::SubscriptionScheduleService::AmendParams::Amendment::TrialSettings).void
2012
+ }
2013
+ def initialize(
2014
+ amendment_end: nil,
2015
+ amendment_start: nil,
2016
+ billing_cycle_anchor: nil,
2017
+ discount_actions: nil,
2018
+ item_actions: nil,
2019
+ metadata_actions: nil,
2020
+ proration_behavior: nil,
2021
+ set_pause_collection: nil,
2022
+ set_schedule_end: nil,
2023
+ trial_settings: nil
2024
+ ); end
2025
+ end
2026
+ class Prebilling < Stripe::RequestParams
2027
+ class BillFrom < Stripe::RequestParams
2028
+ class AmendmentStart < Stripe::RequestParams
2029
+ # The position of the amendment in the `amendments` array with which prebilling should begin. Indexes start from 0 and must be less than the total number of supplied amendments.
2030
+ sig { returns(Integer) }
2031
+ attr_accessor :index
2032
+ sig { params(index: Integer).void }
2033
+ def initialize(index: nil); end
2034
+ end
2035
+ # Start the prebilled period when a specified amendment begins.
2036
+ sig {
2037
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillFrom::AmendmentStart)
2038
+ }
2039
+ attr_accessor :amendment_start
2040
+ # Start the prebilled period at a precise integer timestamp, starting from the Unix epoch.
2041
+ sig { returns(Integer) }
2042
+ attr_accessor :timestamp
2043
+ # Select one of several ways to pass the `bill_from` value.
2044
+ sig { returns(String) }
2045
+ attr_accessor :type
2046
+ sig {
2047
+ params(amendment_start: ::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillFrom::AmendmentStart, timestamp: Integer, type: String).void
2048
+ }
2049
+ def initialize(amendment_start: nil, timestamp: nil, type: nil); end
2050
+ end
2051
+ class BillUntil < Stripe::RequestParams
2052
+ class AmendmentEnd < Stripe::RequestParams
2053
+ # The position of the amendment in the `amendments` array at which prebilling should end. Indexes start from 0 and must be less than the total number of supplied amendments.
2054
+ sig { returns(Integer) }
2055
+ attr_accessor :index
2056
+ sig { params(index: Integer).void }
2057
+ def initialize(index: nil); end
2058
+ end
2059
+ class Duration < Stripe::RequestParams
2060
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2061
+ sig { returns(String) }
2062
+ attr_accessor :interval
2063
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2064
+ sig { returns(Integer) }
2065
+ attr_accessor :interval_count
2066
+ sig { params(interval: String, interval_count: Integer).void }
2067
+ def initialize(interval: nil, interval_count: nil); end
2068
+ end
2069
+ # End the prebilled period when a specified amendment ends.
2070
+ sig {
2071
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil::AmendmentEnd)
2072
+ }
2073
+ attr_accessor :amendment_end
2074
+ # Time span for prebilling, starting from `bill_from`.
2075
+ sig {
2076
+ returns(::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil::Duration)
2077
+ }
2078
+ attr_accessor :duration
2079
+ # End the prebilled period at a precise integer timestamp, starting from the Unix epoch.
2080
+ sig { returns(Integer) }
2081
+ attr_accessor :timestamp
2082
+ # Select one of several ways to pass the `bill_until` value.
2083
+ sig { returns(String) }
2084
+ attr_accessor :type
2085
+ sig {
2086
+ params(amendment_end: ::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil::AmendmentEnd, duration: ::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil::Duration, timestamp: Integer, type: String).void
2087
+ }
2088
+ def initialize(amendment_end: nil, duration: nil, timestamp: nil, type: nil); end
2089
+ end
2090
+ # The beginning of the prebilled time period. The default value is `now`.
2091
+ sig { returns(::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillFrom) }
2092
+ attr_accessor :bill_from
2093
+ # The end of the prebilled time period.
2094
+ sig { returns(::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil) }
2095
+ attr_accessor :bill_until
2096
+ # When the prebilling invoice should be created. The default value is `now`.
2097
+ sig { returns(String) }
2098
+ attr_accessor :invoice_at
2099
+ # Whether to cancel or preserve `prebilling` if the subscription is updated during the prebilled period. The default value is `reset`.
2100
+ sig { returns(String) }
2101
+ attr_accessor :update_behavior
2102
+ sig {
2103
+ params(bill_from: ::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillFrom, bill_until: ::Stripe::SubscriptionScheduleService::AmendParams::Prebilling::BillUntil, invoice_at: String, update_behavior: String).void
2104
+ }
2105
+ def initialize(bill_from: nil, bill_until: nil, invoice_at: nil, update_behavior: nil); end
2106
+ end
2107
+ class ScheduleSettings < Stripe::RequestParams
2108
+ # Behavior of the subscription schedule and underlying subscription when it ends.
2109
+ sig { returns(String) }
2110
+ attr_accessor :end_behavior
2111
+ sig { params(end_behavior: String).void }
2112
+ def initialize(end_behavior: nil); end
2113
+ end
2114
+ # Changes to apply to the phases of the subscription schedule, in the order provided.
2115
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment]) }
2116
+ attr_accessor :amendments
2117
+ # Specifies which fields in the response should be expanded.
2118
+ sig { returns(T::Array[String]) }
2119
+ attr_accessor :expand
2120
+ # Provide any time periods to bill in advance.
2121
+ sig {
2122
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Prebilling]))
2123
+ }
2124
+ attr_accessor :prebilling
2125
+ # In cases where the amendment changes the currently active phase,
2126
+ # specifies if and how to prorate at the time of the request.
2127
+ sig { returns(String) }
2128
+ attr_accessor :proration_behavior
2129
+ # Changes to apply to the subscription schedule.
2130
+ sig { returns(::Stripe::SubscriptionScheduleService::AmendParams::ScheduleSettings) }
2131
+ attr_accessor :schedule_settings
2132
+ sig {
2133
+ params(amendments: T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Amendment], expand: T::Array[String], prebilling: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::AmendParams::Prebilling]), proration_behavior: String, schedule_settings: ::Stripe::SubscriptionScheduleService::AmendParams::ScheduleSettings).void
2134
+ }
2135
+ def initialize(
2136
+ amendments: nil,
2137
+ expand: nil,
2138
+ prebilling: nil,
2139
+ proration_behavior: nil,
2140
+ schedule_settings: nil
2141
+ ); end
2142
+ end
2143
+ class CancelParams < Stripe::RequestParams
2144
+ # Specifies which fields in the response should be expanded.
2145
+ sig { returns(T::Array[String]) }
2146
+ attr_accessor :expand
2147
+ # 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`.
2148
+ sig { returns(T::Boolean) }
2149
+ attr_accessor :invoice_now
2150
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
2151
+ sig { returns(T::Boolean) }
2152
+ attr_accessor :prorate
2153
+ sig { params(expand: T::Array[String], invoice_now: T::Boolean, prorate: T::Boolean).void }
2154
+ def initialize(expand: nil, invoice_now: nil, prorate: nil); end
2155
+ end
2156
+ class ReleaseParams < Stripe::RequestParams
2157
+ # Specifies which fields in the response should be expanded.
2158
+ sig { returns(T::Array[String]) }
2159
+ attr_accessor :expand
2160
+ # Keep any cancellation on the subscription that the schedule has set
2161
+ sig { returns(T::Boolean) }
2162
+ attr_accessor :preserve_cancel_date
2163
+ sig { params(expand: T::Array[String], preserve_cancel_date: T::Boolean).void }
2164
+ def initialize(expand: nil, preserve_cancel_date: nil); end
2165
+ end
2166
+ # Amends an existing subscription schedule.
2167
+ sig {
2168
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::AmendParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2169
+ }
2170
+ def amend(schedule, params = {}, opts = {}); end
2171
+
2172
+ # 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.
2173
+ sig {
2174
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2175
+ }
2176
+ def cancel(schedule, params = {}, opts = {}); end
2177
+
2178
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
2179
+ sig {
2180
+ params(params: T.any(::Stripe::SubscriptionScheduleService::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2181
+ }
2182
+ def create(params = {}, opts = {}); end
2183
+
2184
+ # Retrieves the list of your subscription schedules.
2185
+ sig {
2186
+ params(params: T.any(::Stripe::SubscriptionScheduleService::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject)
2187
+ }
2188
+ def list(params = {}, opts = {}); end
2189
+
2190
+ # 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.
2191
+ sig {
2192
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2193
+ }
2194
+ def release(schedule, params = {}, opts = {}); end
2195
+
2196
+ # 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.
2197
+ sig {
2198
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::RetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2199
+ }
2200
+ def retrieve(schedule, params = {}, opts = {}); end
2201
+
2202
+ # Updates an existing subscription schedule.
2203
+ sig {
2204
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::UpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
2205
+ }
2206
+ def update(schedule, params = {}, opts = {}); end
2207
+ end
2208
+ end