stripe 15.3.0.pre.beta.1 → 15.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. checksums.yaml +4 -4
  2. data/API_VERSION +1 -0
  3. data/CHANGELOG.md +683 -1581
  4. data/OPENAPI_VERSION +1 -1
  5. data/README.md +14 -50
  6. data/VERSION +1 -1
  7. data/lib/stripe/api_requestor.rb +0 -28
  8. data/lib/stripe/api_version.rb +2 -1
  9. data/lib/stripe/errors.rb +0 -54
  10. data/lib/stripe/event_types.rb +0 -98
  11. data/lib/stripe/events/v2_core_event_destination_ping_event.rb +1 -1
  12. data/lib/stripe/object_types.rb +0 -50
  13. data/lib/stripe/resources/account.rb +82 -650
  14. data/lib/stripe/resources/account_session.rb +80 -335
  15. data/lib/stripe/resources/billing/credit_balance_summary.rb +0 -2
  16. data/lib/stripe/resources/billing/credit_balance_transaction.rb +0 -4
  17. data/lib/stripe/resources/billing/credit_grant.rb +0 -10
  18. data/lib/stripe/resources/billing_portal/session.rb +2 -8
  19. data/lib/stripe/resources/card.rb +0 -2
  20. data/lib/stripe/resources/cash_balance.rb +0 -2
  21. data/lib/stripe/resources/charge.rb +28 -1553
  22. data/lib/stripe/resources/checkout/session.rb +55 -333
  23. data/lib/stripe/resources/confirmation_token.rb +19 -181
  24. data/lib/stripe/resources/coupon.rb +1 -30
  25. data/lib/stripe/resources/credit_note.rb +9 -15
  26. data/lib/stripe/resources/credit_note_line_item.rb +0 -9
  27. data/lib/stripe/resources/customer.rb +0 -2
  28. data/lib/stripe/resources/customer_balance_transaction.rb +0 -2
  29. data/lib/stripe/resources/customer_cash_balance_transaction.rb +0 -2
  30. data/lib/stripe/resources/customer_session.rb +3 -8
  31. data/lib/stripe/resources/discount.rb +0 -2
  32. data/lib/stripe/resources/event.rb +1 -32
  33. data/lib/stripe/resources/financial_connections/account.rb +1 -22
  34. data/lib/stripe/resources/financial_connections/session.rb +2 -62
  35. data/lib/stripe/resources/identity/verification_session.rb +34 -10
  36. data/lib/stripe/resources/invoice.rb +33 -1062
  37. data/lib/stripe/resources/invoice_item.rb +3 -82
  38. data/lib/stripe/resources/invoice_line_item.rb +1 -55
  39. data/lib/stripe/resources/invoice_payment.rb +53 -2
  40. data/lib/stripe/resources/issuing/cardholder.rb +1 -2
  41. data/lib/stripe/resources/issuing/transaction.rb +0 -6
  42. data/lib/stripe/resources/line_item.rb +0 -37
  43. data/lib/stripe/resources/mandate.rb +3 -24
  44. data/lib/stripe/resources/payment_intent.rb +875 -5512
  45. data/lib/stripe/resources/payment_method.rb +18 -201
  46. data/lib/stripe/resources/payment_method_configuration.rb +0 -295
  47. data/lib/stripe/resources/payout.rb +0 -6
  48. data/lib/stripe/resources/price.rb +0 -30
  49. data/lib/stripe/resources/promotion_code.rb +0 -10
  50. data/lib/stripe/resources/quote.rb +16 -2033
  51. data/lib/stripe/resources/refund.rb +0 -9
  52. data/lib/stripe/resources/setup_attempt.rb +1 -22
  53. data/lib/stripe/resources/setup_intent.rb +294 -581
  54. data/lib/stripe/resources/source.rb +0 -29
  55. data/lib/stripe/resources/subscription.rb +36 -298
  56. data/lib/stripe/resources/subscription_item.rb +3 -84
  57. data/lib/stripe/resources/subscription_schedule.rb +27 -1008
  58. data/lib/stripe/resources/tax/registration.rb +20 -0
  59. data/lib/stripe/resources/tax_id.rb +2 -12
  60. data/lib/stripe/resources/terminal/configuration.rb +1 -0
  61. data/lib/stripe/resources/terminal/reader.rb +10 -18
  62. data/lib/stripe/resources/token.rb +1 -1
  63. data/lib/stripe/resources/transfer.rb +0 -6
  64. data/lib/stripe/resources/treasury/financial_account.rb +8 -23
  65. data/lib/stripe/resources/treasury/financial_account_features.rb +0 -2
  66. data/lib/stripe/resources/treasury/outbound_transfer.rb +0 -37
  67. data/lib/stripe/resources/treasury/received_credit.rb +1 -38
  68. data/lib/stripe/resources/treasury/received_debit.rb +1 -40
  69. data/lib/stripe/resources.rb +0 -104
  70. data/lib/stripe/services/account_service.rb +76 -559
  71. data/lib/stripe/services/account_session_service.rb +49 -274
  72. data/lib/stripe/services/billing/credit_balance_summary_service.rb +1 -4
  73. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +0 -4
  74. data/lib/stripe/services/billing/credit_grant_service.rb +0 -8
  75. data/lib/stripe/services/billing_portal/session_service.rb +1 -5
  76. data/lib/stripe/services/charge_service.rb +0 -1418
  77. data/lib/stripe/services/checkout/session_service.rb +55 -250
  78. data/lib/stripe/services/coupon_service.rb +1 -17
  79. data/lib/stripe/services/credit_note_preview_lines_service.rb +3 -3
  80. data/lib/stripe/services/credit_note_service.rb +6 -10
  81. data/lib/stripe/services/customer_session_service.rb +2 -5
  82. data/lib/stripe/services/financial_connections/account_service.rb +2 -7
  83. data/lib/stripe/services/financial_connections/session_service.rb +2 -34
  84. data/lib/stripe/services/financial_connections_service.rb +1 -2
  85. data/lib/stripe/services/identity/verification_session_service.rb +16 -8
  86. data/lib/stripe/services/invoice_item_service.rb +2 -74
  87. data/lib/stripe/services/invoice_line_item_service.rb +1 -33
  88. data/lib/stripe/services/invoice_payment_service.rb +83 -0
  89. data/lib/stripe/services/invoice_service.rb +33 -1013
  90. data/lib/stripe/services/issuing/cardholder_service.rb +1 -2
  91. data/lib/stripe/services/issuing/transaction_service.rb +0 -4
  92. data/lib/stripe/services/issuing_service.rb +1 -5
  93. data/lib/stripe/services/payment_intent_service.rb +650 -4832
  94. data/lib/stripe/services/payment_method_configuration_service.rb +0 -210
  95. data/lib/stripe/services/payment_method_service.rb +6 -120
  96. data/lib/stripe/services/payout_service.rb +0 -4
  97. data/lib/stripe/services/price_service.rb +0 -19
  98. data/lib/stripe/services/promotion_code_service.rb +0 -8
  99. data/lib/stripe/services/quote_service.rb +13 -1719
  100. data/lib/stripe/services/setup_intent_service.rb +284 -540
  101. data/lib/stripe/services/subscription_item_service.rb +3 -75
  102. data/lib/stripe/services/subscription_schedule_service.rb +19 -911
  103. data/lib/stripe/services/subscription_service.rb +30 -253
  104. data/lib/stripe/services/tax/registration_service.rb +13 -0
  105. data/lib/stripe/services/tax_id_service.rb +2 -8
  106. data/lib/stripe/services/tax_service.rb +1 -3
  107. data/lib/stripe/services/terminal/reader_service.rb +4 -4
  108. data/lib/stripe/services/terminal_service.rb +1 -2
  109. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +6 -98
  110. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +1 -25
  111. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +1 -25
  112. data/lib/stripe/services/token_service.rb +1 -1
  113. data/lib/stripe/services/transfer_service.rb +0 -4
  114. data/lib/stripe/services/treasury/financial_account_features_service.rb +1 -4
  115. data/lib/stripe/services/treasury/financial_account_service.rb +7 -17
  116. data/lib/stripe/services/treasury/outbound_transfer_service.rb +0 -24
  117. data/lib/stripe/services/v1_services.rb +2 -11
  118. data/lib/stripe/services/v2/billing_service.rb +2 -2
  119. data/lib/stripe/services/v2/core/event_destination_service.rb +16 -16
  120. data/lib/stripe/services/v2/core_service.rb +1 -4
  121. data/lib/stripe/services/v2_services.rb +2 -5
  122. data/lib/stripe/services.rb +1 -53
  123. data/lib/stripe/stripe_configuration.rb +1 -3
  124. data/lib/stripe/stripe_object.rb +1 -1
  125. data/lib/stripe/util.rb +1 -7
  126. data/lib/stripe/version.rb +1 -1
  127. data/lib/stripe/webhook.rb +1 -1
  128. data/lib/stripe.rb +0 -53
  129. data/rbi/stripe/resources/account.rbi +4995 -0
  130. data/rbi/stripe/resources/account_link.rbi +74 -0
  131. data/rbi/stripe/resources/account_session.rbi +1013 -0
  132. data/rbi/stripe/resources/apple_pay_domain.rbi +88 -0
  133. data/rbi/stripe/resources/application.rbi +20 -0
  134. data/rbi/stripe/resources/application_fee.rbi +118 -0
  135. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  136. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  137. data/rbi/stripe/resources/balance.rbi +235 -0
  138. data/rbi/stripe/resources/balance_transaction.rbi +147 -0
  139. data/rbi/stripe/resources/bank_account.rbi +127 -0
  140. data/rbi/stripe/resources/billing/alert.rbi +201 -0
  141. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  142. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +63 -0
  143. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +147 -0
  144. data/rbi/stripe/resources/billing/credit_grant.rbi +291 -0
  145. data/rbi/stripe/resources/billing/meter.rbi +226 -0
  146. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  147. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  148. data/rbi/stripe/resources/billing/meter_event_summary.rbi +35 -0
  149. data/rbi/stripe/resources/billing_portal/configuration.rbi +645 -0
  150. data/rbi/stripe/resources/billing_portal/session.rbi +345 -0
  151. data/rbi/stripe/resources/capability.rbi +125 -0
  152. data/rbi/stripe/resources/card.rbi +125 -0
  153. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  154. data/rbi/stripe/resources/charge.rbi +2086 -0
  155. data/rbi/stripe/resources/checkout/session.rbi +4060 -0
  156. data/rbi/stripe/resources/climate/order.rbi +245 -0
  157. data/rbi/stripe/resources/climate/product.rbi +75 -0
  158. data/rbi/stripe/resources/climate/supplier.rbi +72 -0
  159. data/rbi/stripe/resources/confirmation_token.rbi +1818 -0
  160. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  161. data/rbi/stripe/resources/country_spec.rbi +85 -0
  162. data/rbi/stripe/resources/coupon.rbi +250 -0
  163. data/rbi/stripe/resources/credit_note.rbi +752 -0
  164. data/rbi/stripe/resources/credit_note_line_item.rbi +101 -0
  165. data/rbi/stripe/resources/customer.rbi +1005 -0
  166. data/rbi/stripe/resources/customer_balance_transaction.rbi +56 -0
  167. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  168. data/rbi/stripe/resources/customer_session.rbi +200 -0
  169. data/rbi/stripe/resources/discount.rbi +53 -0
  170. data/rbi/stripe/resources/dispute.rbi +761 -0
  171. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +58 -0
  172. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  173. data/rbi/stripe/resources/entitlements/feature.rbi +117 -0
  174. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  175. data/rbi/stripe/resources/event.rbi +149 -0
  176. data/rbi/stripe/resources/exchange_rate.rbi +66 -0
  177. data/rbi/stripe/resources/file.rbi +143 -0
  178. data/rbi/stripe/resources/file_link.rbi +141 -0
  179. data/rbi/stripe/resources/financial_connections/account.rbi +339 -0
  180. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  181. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  182. data/rbi/stripe/resources/financial_connections/session.rbi +123 -0
  183. data/rbi/stripe/resources/financial_connections/transaction.rbi +124 -0
  184. data/rbi/stripe/resources/forwarding/request.rbi +216 -0
  185. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  186. data/rbi/stripe/resources/identity/verification_report.rbi +360 -0
  187. data/rbi/stripe/resources/identity/verification_session.rbi +564 -0
  188. data/rbi/stripe/resources/invoice.rbi +3842 -0
  189. data/rbi/stripe/resources/invoice_item.rbi +470 -0
  190. data/rbi/stripe/resources/invoice_line_item.rbi +432 -0
  191. data/rbi/stripe/resources/invoice_payment.rbi +121 -0
  192. data/rbi/stripe/resources/invoice_rendering_template.rbi +104 -0
  193. data/rbi/stripe/resources/issuing/authorization.rbi +1283 -0
  194. data/rbi/stripe/resources/issuing/card.rbi +741 -0
  195. data/rbi/stripe/resources/issuing/cardholder.rbi +744 -0
  196. data/rbi/stripe/resources/issuing/dispute.rbi +913 -0
  197. data/rbi/stripe/resources/issuing/personalization_design.rbi +338 -0
  198. data/rbi/stripe/resources/issuing/physical_bundle.rbi +79 -0
  199. data/rbi/stripe/resources/issuing/token.rbi +226 -0
  200. data/rbi/stripe/resources/issuing/transaction.rbi +1061 -0
  201. data/rbi/stripe/resources/line_item.rbi +72 -0
  202. data/rbi/stripe/resources/login_link.rbi +19 -0
  203. data/rbi/stripe/resources/mandate.rbi +191 -0
  204. data/rbi/stripe/resources/payment_intent.rbi +9987 -0
  205. data/rbi/stripe/resources/payment_link.rbi +1801 -0
  206. data/rbi/stripe/resources/payment_method.rbi +1770 -0
  207. data/rbi/stripe/resources/payment_method_configuration.rbi +3550 -0
  208. data/rbi/stripe/resources/payment_method_domain.rbi +228 -0
  209. data/rbi/stripe/resources/payout.rbi +300 -0
  210. data/rbi/stripe/resources/person.rbi +401 -0
  211. data/rbi/stripe/resources/plan.rbi +371 -0
  212. data/rbi/stripe/resources/price.rbi +694 -0
  213. data/rbi/stripe/resources/product.rbi +555 -0
  214. data/rbi/stripe/resources/product_feature.rbi +26 -0
  215. data/rbi/stripe/resources/promotion_code.rbi +261 -0
  216. data/rbi/stripe/resources/quote.rbi +1145 -0
  217. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +98 -0
  218. data/rbi/stripe/resources/radar/value_list.rbi +168 -0
  219. data/rbi/stripe/resources/radar/value_list_item.rbi +129 -0
  220. data/rbi/stripe/resources/refund.rbi +523 -0
  221. data/rbi/stripe/resources/reporting/report_run.rbi +191 -0
  222. data/rbi/stripe/resources/reporting/report_type.rbi +57 -0
  223. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  224. data/rbi/stripe/resources/reversal.rbi +51 -0
  225. data/rbi/stripe/resources/review.rbi +154 -0
  226. data/rbi/stripe/resources/setup_attempt.rbi +477 -0
  227. data/rbi/stripe/resources/setup_intent.rbi +3978 -0
  228. data/rbi/stripe/resources/shipping_rate.rbi +305 -0
  229. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +75 -0
  230. data/rbi/stripe/resources/source.rbi +1496 -0
  231. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  232. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  233. data/rbi/stripe/resources/subscription.rbi +2080 -0
  234. data/rbi/stripe/resources/subscription_item.rbi +404 -0
  235. data/rbi/stripe/resources/subscription_schedule.rbi +1645 -0
  236. data/rbi/stripe/resources/tax/calculation.rbi +478 -0
  237. data/rbi/stripe/resources/tax/calculation_line_item.rbi +91 -0
  238. data/rbi/stripe/resources/tax/registration.rbi +2732 -0
  239. data/rbi/stripe/resources/tax/settings.rbi +141 -0
  240. data/rbi/stripe/resources/tax/transaction.rbi +351 -0
  241. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  242. data/rbi/stripe/resources/tax_code.rbi +44 -0
  243. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  244. data/rbi/stripe/resources/tax_id.rbi +165 -0
  245. data/rbi/stripe/resources/tax_rate.rbi +239 -0
  246. data/rbi/stripe/resources/terminal/configuration.rbi +1387 -0
  247. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  248. data/rbi/stripe/resources/terminal/location.rbi +222 -0
  249. data/rbi/stripe/resources/terminal/reader.rbi +994 -0
  250. data/rbi/stripe/resources/test_helpers/test_clock.rbi +132 -0
  251. data/rbi/stripe/resources/token.rbi +1283 -0
  252. data/rbi/stripe/resources/topup.rbi +222 -0
  253. data/rbi/stripe/resources/transfer.rbi +199 -0
  254. data/rbi/stripe/resources/treasury/credit_reversal.rbi +119 -0
  255. data/rbi/stripe/resources/treasury/debit_reversal.rbi +131 -0
  256. data/rbi/stripe/resources/treasury/financial_account.rbi +869 -0
  257. data/rbi/stripe/resources/treasury/financial_account_features.rbi +260 -0
  258. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +295 -0
  259. data/rbi/stripe/resources/treasury/outbound_payment.rbi +592 -0
  260. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +431 -0
  261. data/rbi/stripe/resources/treasury/received_credit.rbi +302 -0
  262. data/rbi/stripe/resources/treasury/received_debit.rbi +256 -0
  263. data/rbi/stripe/resources/treasury/transaction.rbi +215 -0
  264. data/rbi/stripe/resources/treasury/transaction_entry.rbi +192 -0
  265. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  266. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  267. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  268. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  269. data/rbi/stripe/resources/v2/event.rbi +48 -0
  270. data/rbi/stripe/resources/v2/event_destination.rbi +91 -0
  271. data/rbi/stripe/resources/webhook_endpoint.rbi +168 -0
  272. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  273. data/{lib/stripe/services/external_account_service.rb → rbi/stripe/services/account_external_account_service.rbi} +122 -135
  274. data/rbi/stripe/services/account_link_service.rbi +58 -0
  275. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  276. data/rbi/stripe/services/account_person_service.rbi +1011 -0
  277. data/rbi/stripe/services/account_service.rbi +4281 -0
  278. data/rbi/stripe/services/account_session_service.rbi +646 -0
  279. data/rbi/stripe/services/apple_pay_domain_service.rbi +76 -0
  280. data/rbi/stripe/services/application_fee_refund_service.rbi +93 -0
  281. data/rbi/stripe/services/application_fee_service.rbi +78 -0
  282. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  283. data/rbi/stripe/services/apps_service.rbi +9 -0
  284. data/rbi/stripe/services/balance_service.rbi +21 -0
  285. data/rbi/stripe/services/balance_transaction_service.rbi +93 -0
  286. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  287. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +68 -0
  288. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  289. data/rbi/stripe/services/billing/credit_grant_service.rbi +211 -0
  290. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +42 -0
  291. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  292. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  293. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  294. data/rbi/stripe/services/billing_portal/configuration_service.rbi +511 -0
  295. data/rbi/stripe/services/billing_portal/session_service.rbi +204 -0
  296. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  297. data/rbi/stripe/services/billing_service.rbi +15 -0
  298. data/rbi/stripe/services/charge_service.rbi +448 -0
  299. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  300. data/rbi/stripe/services/checkout/session_service.rbi +2670 -0
  301. data/rbi/stripe/services/checkout_service.rbi +9 -0
  302. data/rbi/stripe/services/climate/order_service.rbi +142 -0
  303. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  304. data/{lib/stripe/services/financial_connections/institution_service.rb → rbi/stripe/services/climate/supplier_service.rbi} +25 -36
  305. data/rbi/stripe/services/climate_service.rbi +11 -0
  306. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  307. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  308. data/rbi/stripe/services/coupon_service.rbi +194 -0
  309. data/{lib/stripe/services/quote_preview_invoice_service.rb → rbi/stripe/services/credit_note_line_item_service.rbi} +16 -20
  310. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  311. data/rbi/stripe/services/credit_note_service.rbi +415 -0
  312. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  313. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  314. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  315. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  316. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  317. data/rbi/stripe/services/customer_payment_source_service.rbi +232 -0
  318. data/rbi/stripe/services/customer_service.rbi +647 -0
  319. data/rbi/stripe/services/customer_session_service.rbi +116 -0
  320. data/rbi/stripe/services/customer_tax_id_service.rbi +70 -0
  321. data/rbi/stripe/services/dispute_service.rbi +424 -0
  322. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  323. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  324. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  325. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  326. data/rbi/stripe/services/event_service.rbi +83 -0
  327. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  328. data/rbi/stripe/services/file_link_service.rbi +124 -0
  329. data/rbi/stripe/services/file_service.rbi +116 -0
  330. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  331. data/rbi/stripe/services/financial_connections/account_service.rbi +133 -0
  332. data/rbi/stripe/services/financial_connections/session_service.rbi +88 -0
  333. data/rbi/stripe/services/financial_connections/transaction_service.rbi +92 -0
  334. data/rbi/stripe/services/financial_connections_service.rbi +11 -0
  335. data/rbi/stripe/services/forwarding/request_service.rbi +134 -0
  336. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  337. data/rbi/stripe/services/identity/verification_report_service.rbi +87 -0
  338. data/rbi/stripe/services/identity/verification_session_service.rbi +339 -0
  339. data/rbi/stripe/services/identity_service.rbi +10 -0
  340. data/rbi/stripe/services/invoice_item_service.rbi +366 -0
  341. data/rbi/stripe/services/invoice_line_item_service.rbi +259 -0
  342. data/rbi/stripe/services/invoice_payment_service.rbi +71 -0
  343. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  344. data/rbi/stripe/services/invoice_service.rbi +3011 -0
  345. data/rbi/stripe/services/issuing/authorization_service.rbi +146 -0
  346. data/rbi/stripe/services/issuing/card_service.rbi +495 -0
  347. data/rbi/stripe/services/issuing/cardholder_service.rbi +587 -0
  348. data/rbi/stripe/services/issuing/dispute_service.rbi +707 -0
  349. data/rbi/stripe/services/issuing/personalization_design_service.rbi +243 -0
  350. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  351. data/rbi/stripe/services/issuing/token_service.rbi +99 -0
  352. data/rbi/stripe/services/issuing/transaction_service.rbi +105 -0
  353. data/rbi/stripe/services/issuing_service.rbi +16 -0
  354. data/rbi/stripe/services/mandate_service.rbi +20 -0
  355. data/rbi/stripe/services/payment_intent_service.rbi +7989 -0
  356. data/{lib/stripe/services/payment_intent_amount_details_line_item_service.rb → rbi/stripe/services/payment_link_line_item_service.rbi} +16 -20
  357. data/rbi/stripe/services/payment_link_service.rbi +1352 -0
  358. data/rbi/stripe/services/payment_method_configuration_service.rbi +2487 -0
  359. data/rbi/stripe/services/payment_method_domain_service.rbi +112 -0
  360. data/rbi/stripe/services/payment_method_service.rbi +781 -0
  361. data/rbi/stripe/services/payout_service.rbi +205 -0
  362. data/rbi/stripe/services/plan_service.rbi +282 -0
  363. data/rbi/stripe/services/price_service.rbi +546 -0
  364. data/rbi/stripe/services/product_feature_service.rbi +67 -0
  365. data/rbi/stripe/services/product_service.rbi +477 -0
  366. data/rbi/stripe/services/promotion_code_service.rbi +214 -0
  367. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  368. data/{lib/stripe/services/order_line_item_service.rb → rbi/stripe/services/quote_line_item_service.rbi} +16 -20
  369. data/rbi/stripe/services/quote_service.rbi +699 -0
  370. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +85 -0
  371. data/rbi/stripe/services/radar/value_list_item_service.rbi +109 -0
  372. data/rbi/stripe/services/radar/value_list_service.rbi +141 -0
  373. data/rbi/stripe/services/radar_service.rbi +11 -0
  374. data/rbi/stripe/services/refund_service.rbi +185 -0
  375. data/rbi/stripe/services/reporting/report_run_service.rbi +135 -0
  376. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  377. data/rbi/stripe/services/reporting_service.rbi +10 -0
  378. data/rbi/stripe/services/review_service.rbi +84 -0
  379. data/rbi/stripe/services/setup_attempt_service.rbi +65 -0
  380. data/rbi/stripe/services/setup_intent_service.rbi +3709 -0
  381. data/rbi/stripe/services/shipping_rate_service.rbi +241 -0
  382. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  383. data/rbi/stripe/services/sigma_service.rbi +9 -0
  384. data/rbi/stripe/services/source_service.rbi +663 -0
  385. data/{lib/stripe/services/quote_line_service.rb → rbi/stripe/services/source_transaction_service.rbi} +16 -20
  386. data/rbi/stripe/services/subscription_item_service.rbi +350 -0
  387. data/rbi/stripe/services/subscription_schedule_service.rbi +1301 -0
  388. data/rbi/stripe/services/subscription_service.rbi +1684 -0
  389. data/{lib/stripe/services/financial_connections/account_inferred_balance_service.rb → rbi/stripe/services/tax/calculation_line_item_service.rbi} +17 -21
  390. data/rbi/stripe/services/tax/calculation_service.rbi +234 -0
  391. data/rbi/stripe/services/tax/registration_service.rbi +1858 -0
  392. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  393. data/{lib/stripe/services/privacy/redaction_job_validation_error_service.rb → rbi/stripe/services/tax/transaction_line_item_service.rbi} +17 -21
  394. data/rbi/stripe/services/tax/transaction_service.rbi +146 -0
  395. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  396. data/rbi/stripe/services/tax_id_service.rbi +110 -0
  397. data/rbi/stripe/services/tax_rate_service.rbi +185 -0
  398. data/rbi/stripe/services/tax_service.rbi +12 -0
  399. data/rbi/stripe/services/terminal/configuration_service.rbi +1118 -0
  400. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  401. data/rbi/stripe/services/terminal/location_service.rbi +182 -0
  402. data/rbi/stripe/services/terminal/reader_service.rbi +540 -0
  403. data/rbi/stripe/services/terminal_service.rbi +12 -0
  404. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +746 -0
  405. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  406. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +848 -0
  407. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  408. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +69 -0
  409. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +711 -0
  410. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  411. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  412. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +93 -0
  413. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  414. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +90 -0
  415. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  416. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +125 -0
  417. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +125 -0
  418. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +87 -0
  419. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +87 -0
  420. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  421. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  422. data/rbi/stripe/services/token_service.rbi +1257 -0
  423. data/rbi/stripe/services/topup_service.rbi +176 -0
  424. data/rbi/stripe/services/transfer_reversal_service.rbi +101 -0
  425. data/rbi/stripe/services/transfer_service.rbi +152 -0
  426. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  427. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  428. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +198 -0
  429. data/rbi/stripe/services/treasury/financial_account_service.rbi +566 -0
  430. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  431. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +304 -0
  432. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +157 -0
  433. data/rbi/stripe/services/treasury/received_credit_service.rbi +72 -0
  434. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  435. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +111 -0
  436. data/rbi/stripe/services/treasury/transaction_service.rbi +122 -0
  437. data/rbi/stripe/services/treasury_service.rbi +18 -0
  438. data/rbi/stripe/services/v1_services.rbi +77 -0
  439. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  440. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  441. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +18 -0
  442. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  443. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  444. data/rbi/stripe/services/v2/core/event_destination_service.rbi +192 -0
  445. data/rbi/stripe/services/v2/core/event_service.rbi +36 -0
  446. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  447. data/rbi/stripe/services/v2_services.rbi +10 -0
  448. data/rbi/stripe/services/webhook_endpoint_service.rbi +129 -0
  449. data/stripe.gemspec +1 -4
  450. metadata +326 -162
  451. data/lib/stripe/events/v2_core_account_closed_event.rb +0 -21
  452. data/lib/stripe/events/v2_core_account_created_event.rb +0 -21
  453. data/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +0 -23
  454. data/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +0 -21
  455. data/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +0 -23
  456. data/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +0 -21
  457. data/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +0 -23
  458. data/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +0 -21
  459. data/lib/stripe/events/v2_core_account_including_defaults_updated_event.rb +0 -21
  460. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +0 -21
  461. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +0 -21
  462. data/lib/stripe/events/v2_core_account_link_completed_event.rb +0 -13
  463. data/lib/stripe/events/v2_core_account_person_created_event.rb +0 -23
  464. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +0 -23
  465. data/lib/stripe/events/v2_core_account_person_updated_event.rb +0 -23
  466. data/lib/stripe/events/v2_core_account_updated_event.rb +0 -21
  467. data/lib/stripe/events/v2_money_management_adjustment_created_event.rb +0 -21
  468. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +0 -21
  469. data/lib/stripe/events/v2_money_management_financial_account_updated_event.rb +0 -21
  470. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +0 -21
  471. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +0 -21
  472. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +0 -23
  473. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +0 -21
  474. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +0 -21
  475. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +0 -21
  476. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +0 -21
  477. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +0 -21
  478. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +0 -21
  479. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +0 -21
  480. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +0 -21
  481. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +0 -21
  482. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +0 -21
  483. data/lib/stripe/events/v2_money_management_outbound_payment_updated_event.rb +0 -21
  484. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +0 -21
  485. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +0 -21
  486. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +0 -21
  487. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +0 -21
  488. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +0 -21
  489. data/lib/stripe/events/v2_money_management_outbound_transfer_updated_event.rb +0 -21
  490. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +0 -23
  491. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +0 -21
  492. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +0 -21
  493. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +0 -21
  494. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +0 -21
  495. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +0 -21
  496. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +0 -21
  497. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +0 -21
  498. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +0 -21
  499. data/lib/stripe/events/v2_money_management_transaction_created_event.rb +0 -21
  500. data/lib/stripe/events/v2_money_management_transaction_updated_event.rb +0 -21
  501. data/lib/stripe/events/v2_off_session_payment_requires_capture_event.rb +0 -21
  502. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_failed_event.rb +0 -21
  503. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_started_event.rb +0 -21
  504. data/lib/stripe/events/v2_payments_off_session_payment_canceled_event.rb +0 -21
  505. data/lib/stripe/events/v2_payments_off_session_payment_created_event.rb +0 -21
  506. data/lib/stripe/events/v2_payments_off_session_payment_failed_event.rb +0 -21
  507. data/lib/stripe/events/v2_payments_off_session_payment_succeeded_event.rb +0 -21
  508. data/lib/stripe/resources/account_notice.rb +0 -123
  509. data/lib/stripe/resources/balance_settings.rb +0 -105
  510. data/lib/stripe/resources/capital/financing_offer.rb +0 -179
  511. data/lib/stripe/resources/capital/financing_summary.rb +0 -55
  512. data/lib/stripe/resources/capital/financing_transaction.rb +0 -114
  513. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -27
  514. data/lib/stripe/resources/financial_connections/institution.rb +0 -92
  515. data/lib/stripe/resources/fx_quote.rb +0 -184
  516. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -602
  517. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +0 -82
  518. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +0 -86
  519. data/lib/stripe/resources/issuing/settlement.rb +0 -53
  520. data/lib/stripe/resources/margin.rb +0 -115
  521. data/lib/stripe/resources/order.rb +0 -2806
  522. data/lib/stripe/resources/payment_attempt_record.rb +0 -1086
  523. data/lib/stripe/resources/payment_intent_amount_details_line_item.rb +0 -72
  524. data/lib/stripe/resources/payment_record.rb +0 -1615
  525. data/lib/stripe/resources/privacy/redaction_job.rb +0 -298
  526. data/lib/stripe/resources/privacy/redaction_job_validation_error.rb +0 -33
  527. data/lib/stripe/resources/quote_line.rb +0 -274
  528. data/lib/stripe/resources/quote_preview_invoice.rb +0 -663
  529. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -364
  530. data/lib/stripe/resources/tax/association.rb +0 -66
  531. data/lib/stripe/resources/tax/form.rb +0 -211
  532. data/lib/stripe/resources/terminal/reader_collected_data.rb +0 -31
  533. data/lib/stripe/resources/v2/core/account.rb +0 -1746
  534. data/lib/stripe/resources/v2/core/account_link.rb +0 -56
  535. data/lib/stripe/resources/v2/core/person.rb +0 -276
  536. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +0 -74
  537. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +0 -39
  538. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +0 -20
  539. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +0 -22
  540. data/lib/stripe/resources/v2/money_management/adjustment.rb +0 -51
  541. data/lib/stripe/resources/v2/money_management/financial_account.rb +0 -58
  542. data/lib/stripe/resources/v2/money_management/financial_address.rb +0 -68
  543. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +0 -94
  544. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +0 -129
  545. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +0 -82
  546. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +0 -45
  547. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +0 -117
  548. data/lib/stripe/resources/v2/money_management/payout_method.rb +0 -75
  549. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +0 -49
  550. data/lib/stripe/resources/v2/money_management/received_credit.rb +0 -116
  551. data/lib/stripe/resources/v2/money_management/received_debit.rb +0 -84
  552. data/lib/stripe/resources/v2/money_management/transaction.rb +0 -78
  553. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +0 -68
  554. data/lib/stripe/resources/v2/payments/off_session_payment.rb +0 -74
  555. data/lib/stripe/services/account_notice_service.rb +0 -101
  556. data/lib/stripe/services/balance_settings_service.rb +0 -96
  557. data/lib/stripe/services/capital/financing_offer_service.rb +0 -112
  558. data/lib/stripe/services/capital/financing_summary_service.rb +0 -28
  559. data/lib/stripe/services/capital/financing_transaction_service.rb +0 -79
  560. data/lib/stripe/services/capital_service.rb +0 -15
  561. data/lib/stripe/services/fx_quote_service.rb +0 -123
  562. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +0 -504
  563. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +0 -66
  564. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +0 -83
  565. data/lib/stripe/services/margin_service.rb +0 -119
  566. data/lib/stripe/services/order_service.rb +0 -2236
  567. data/lib/stripe/services/payment_attempt_record_service.rb +0 -49
  568. data/lib/stripe/services/payment_record_service.rb +0 -542
  569. data/lib/stripe/services/privacy/redaction_job_service.rb +0 -240
  570. data/lib/stripe/services/privacy_service.rb +0 -13
  571. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +0 -35
  572. data/lib/stripe/services/tax/association_service.rb +0 -31
  573. data/lib/stripe/services/tax/form_service.rb +0 -100
  574. data/lib/stripe/services/terminal/reader_collected_data_service.rb +0 -28
  575. data/lib/stripe/services/v2/core/account_link_service.rb +0 -76
  576. data/lib/stripe/services/v2/core/account_service.rb +0 -4138
  577. data/lib/stripe/services/v2/core/accounts/person_service.rb +0 -1046
  578. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +0 -131
  579. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +0 -107
  580. data/lib/stripe/services/v2/core/vault_service.rb +0 -18
  581. data/lib/stripe/services/v2/money_management/adjustment_service.rb +0 -74
  582. data/lib/stripe/services/v2/money_management/financial_account_service.rb +0 -43
  583. data/lib/stripe/services/v2/money_management/financial_address_service.rb +0 -81
  584. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +0 -125
  585. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +0 -95
  586. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +0 -200
  587. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +0 -235
  588. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +0 -172
  589. data/lib/stripe/services/v2/money_management/payout_method_service.rb +0 -91
  590. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +0 -32
  591. data/lib/stripe/services/v2/money_management/received_credit_service.rb +0 -70
  592. data/lib/stripe/services/v2/money_management/received_debit_service.rb +0 -43
  593. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +0 -69
  594. data/lib/stripe/services/v2/money_management/transaction_service.rb +0 -73
  595. data/lib/stripe/services/v2/money_management_service.rb +0 -31
  596. data/lib/stripe/services/v2/payment_service.rb +0 -15
  597. data/lib/stripe/services/v2/payments/off_session_payment_service.rb +0 -138
  598. data/lib/stripe/services/v2/test_helper_service.rb +0 -15
  599. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +0 -49
  600. data/rbi/stripe.rbi +0 -191639
@@ -0,0 +1,1645 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ # typed: true
5
+ module Stripe
6
+ # A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
7
+ #
8
+ # Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules)
9
+ class SubscriptionSchedule < APIResource
10
+ class BillingMode < Stripe::StripeObject
11
+ # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
12
+ sig { returns(String) }
13
+ attr_reader :type
14
+ # Details on when the current billing_mode was adopted.
15
+ sig { returns(Integer) }
16
+ attr_reader :updated_at
17
+ end
18
+ class CurrentPhase < Stripe::StripeObject
19
+ # The end of this phase of the subscription schedule.
20
+ sig { returns(Integer) }
21
+ attr_reader :end_date
22
+ # The start of this phase of the subscription schedule.
23
+ sig { returns(Integer) }
24
+ attr_reader :start_date
25
+ end
26
+ class DefaultSettings < Stripe::StripeObject
27
+ class AutomaticTax < Stripe::StripeObject
28
+ class Liability < Stripe::StripeObject
29
+ # The connected account being referenced when `type` is `account`.
30
+ sig { returns(T.any(String, Stripe::Account)) }
31
+ attr_reader :account
32
+ # Type of the account referenced.
33
+ sig { returns(String) }
34
+ attr_reader :type
35
+ end
36
+ # If Stripe disabled automatic tax, this enum describes why.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :disabled_reason
39
+ # Whether Stripe automatically computes tax on invoices created during this phase.
40
+ sig { returns(T::Boolean) }
41
+ attr_reader :enabled
42
+ # 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.
43
+ sig { returns(T.nilable(Liability)) }
44
+ attr_reader :liability
45
+ end
46
+ class BillingThresholds < Stripe::StripeObject
47
+ # Monetary threshold that triggers the subscription to create an invoice
48
+ sig { returns(T.nilable(Integer)) }
49
+ attr_reader :amount_gte
50
+ # 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. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.
51
+ sig { returns(T.nilable(T::Boolean)) }
52
+ attr_reader :reset_billing_cycle_anchor
53
+ end
54
+ class InvoiceSettings < Stripe::StripeObject
55
+ class Issuer < Stripe::StripeObject
56
+ # The connected account being referenced when `type` is `account`.
57
+ sig { returns(T.any(String, Stripe::Account)) }
58
+ attr_reader :account
59
+ # Type of the account referenced.
60
+ sig { returns(String) }
61
+ attr_reader :type
62
+ end
63
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
64
+ sig { returns(T.nilable(T::Array[T.any(String, Stripe::TaxId)])) }
65
+ attr_reader :account_tax_ids
66
+ # 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`.
67
+ sig { returns(T.nilable(Integer)) }
68
+ attr_reader :days_until_due
69
+ # Attribute for field issuer
70
+ sig { returns(Issuer) }
71
+ attr_reader :issuer
72
+ end
73
+ class TransferData < Stripe::StripeObject
74
+ # 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.
75
+ sig { returns(T.nilable(Float)) }
76
+ attr_reader :amount_percent
77
+ # The account where funds from the payment will be transferred to upon payment success.
78
+ sig { returns(T.any(String, Stripe::Account)) }
79
+ attr_reader :destination
80
+ end
81
+ # 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 during this phase of the schedule.
82
+ sig { returns(T.nilable(Float)) }
83
+ attr_reader :application_fee_percent
84
+ # Attribute for field automatic_tax
85
+ sig { returns(AutomaticTax) }
86
+ attr_reader :automatic_tax
87
+ # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
88
+ sig { returns(String) }
89
+ attr_reader :billing_cycle_anchor
90
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
91
+ sig { returns(T.nilable(BillingThresholds)) }
92
+ attr_reader :billing_thresholds
93
+ # 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`.
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :collection_method
96
+ # ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.
97
+ sig { returns(T.nilable(T.any(String, Stripe::PaymentMethod))) }
98
+ attr_reader :default_payment_method
99
+ # 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.
100
+ sig { returns(T.nilable(String)) }
101
+ attr_reader :description
102
+ # Attribute for field invoice_settings
103
+ sig { returns(InvoiceSettings) }
104
+ attr_reader :invoice_settings
105
+ # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
106
+ sig { returns(T.nilable(T.any(String, Stripe::Account))) }
107
+ attr_reader :on_behalf_of
108
+ # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
109
+ sig { returns(T.nilable(TransferData)) }
110
+ attr_reader :transfer_data
111
+ end
112
+ class Phase < Stripe::StripeObject
113
+ class AddInvoiceItem < Stripe::StripeObject
114
+ class Discount < Stripe::StripeObject
115
+ # ID of the coupon to create a new discount for.
116
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
117
+ attr_reader :coupon
118
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
119
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
120
+ attr_reader :discount
121
+ # ID of the promotion code to create a new discount for.
122
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
123
+ attr_reader :promotion_code
124
+ end
125
+ # The stackable discounts that will be applied to the item.
126
+ sig { returns(T::Array[Discount]) }
127
+ attr_reader :discounts
128
+ # ID of the price used to generate the invoice item.
129
+ sig { returns(T.any(String, Stripe::Price)) }
130
+ attr_reader :price
131
+ # The quantity of the invoice item.
132
+ sig { returns(T.nilable(Integer)) }
133
+ attr_reader :quantity
134
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
135
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
136
+ attr_reader :tax_rates
137
+ end
138
+ class AutomaticTax < Stripe::StripeObject
139
+ class Liability < Stripe::StripeObject
140
+ # The connected account being referenced when `type` is `account`.
141
+ sig { returns(T.any(String, Stripe::Account)) }
142
+ attr_reader :account
143
+ # Type of the account referenced.
144
+ sig { returns(String) }
145
+ attr_reader :type
146
+ end
147
+ # If Stripe disabled automatic tax, this enum describes why.
148
+ sig { returns(T.nilable(String)) }
149
+ attr_reader :disabled_reason
150
+ # Whether Stripe automatically computes tax on invoices created during this phase.
151
+ sig { returns(T::Boolean) }
152
+ attr_reader :enabled
153
+ # 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.
154
+ sig { returns(T.nilable(Liability)) }
155
+ attr_reader :liability
156
+ end
157
+ class BillingThresholds < Stripe::StripeObject
158
+ # Monetary threshold that triggers the subscription to create an invoice
159
+ sig { returns(T.nilable(Integer)) }
160
+ attr_reader :amount_gte
161
+ # 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. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.
162
+ sig { returns(T.nilable(T::Boolean)) }
163
+ attr_reader :reset_billing_cycle_anchor
164
+ end
165
+ class Discount < Stripe::StripeObject
166
+ # ID of the coupon to create a new discount for.
167
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
168
+ attr_reader :coupon
169
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
170
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
171
+ attr_reader :discount
172
+ # ID of the promotion code to create a new discount for.
173
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
174
+ attr_reader :promotion_code
175
+ end
176
+ class InvoiceSettings < Stripe::StripeObject
177
+ class Issuer < Stripe::StripeObject
178
+ # The connected account being referenced when `type` is `account`.
179
+ sig { returns(T.any(String, Stripe::Account)) }
180
+ attr_reader :account
181
+ # Type of the account referenced.
182
+ sig { returns(String) }
183
+ attr_reader :type
184
+ end
185
+ # 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.
186
+ sig { returns(T.nilable(T::Array[T.any(String, Stripe::TaxId)])) }
187
+ attr_reader :account_tax_ids
188
+ # 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`.
189
+ sig { returns(T.nilable(Integer)) }
190
+ attr_reader :days_until_due
191
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
192
+ sig { returns(T.nilable(Issuer)) }
193
+ attr_reader :issuer
194
+ end
195
+ class Item < Stripe::StripeObject
196
+ class BillingThresholds < Stripe::StripeObject
197
+ # Usage threshold that triggers the subscription to create an invoice
198
+ sig { returns(T.nilable(Integer)) }
199
+ attr_reader :usage_gte
200
+ end
201
+ class Discount < Stripe::StripeObject
202
+ # ID of the coupon to create a new discount for.
203
+ sig { returns(T.nilable(T.any(String, Stripe::Coupon))) }
204
+ attr_reader :coupon
205
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
206
+ sig { returns(T.nilable(T.any(String, Stripe::Discount))) }
207
+ attr_reader :discount
208
+ # ID of the promotion code to create a new discount for.
209
+ sig { returns(T.nilable(T.any(String, Stripe::PromotionCode))) }
210
+ attr_reader :promotion_code
211
+ end
212
+ # Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
213
+ sig { returns(T.nilable(BillingThresholds)) }
214
+ attr_reader :billing_thresholds
215
+ # The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.
216
+ sig { returns(T::Array[Discount]) }
217
+ attr_reader :discounts
218
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered.
219
+ sig { returns(T.nilable(T::Hash[String, String])) }
220
+ attr_reader :metadata
221
+ # ID of the plan to which the customer should be subscribed.
222
+ sig { returns(T.any(String, Stripe::Plan)) }
223
+ attr_reader :plan
224
+ # ID of the price to which the customer should be subscribed.
225
+ sig { returns(T.any(String, Stripe::Price)) }
226
+ attr_reader :price
227
+ # Quantity of the plan to which the customer should be subscribed.
228
+ sig { returns(Integer) }
229
+ attr_reader :quantity
230
+ # The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`.
231
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
232
+ attr_reader :tax_rates
233
+ end
234
+ class TransferData < Stripe::StripeObject
235
+ # 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.
236
+ sig { returns(T.nilable(Float)) }
237
+ attr_reader :amount_percent
238
+ # The account where funds from the payment will be transferred to upon payment success.
239
+ sig { returns(T.any(String, Stripe::Account)) }
240
+ attr_reader :destination
241
+ end
242
+ # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase.
243
+ sig { returns(T::Array[AddInvoiceItem]) }
244
+ attr_reader :add_invoice_items
245
+ # 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 during this phase of the schedule.
246
+ sig { returns(T.nilable(Float)) }
247
+ attr_reader :application_fee_percent
248
+ # Attribute for field automatic_tax
249
+ sig { returns(AutomaticTax) }
250
+ attr_reader :automatic_tax
251
+ # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).
252
+ sig { returns(T.nilable(String)) }
253
+ attr_reader :billing_cycle_anchor
254
+ # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
255
+ sig { returns(T.nilable(BillingThresholds)) }
256
+ attr_reader :billing_thresholds
257
+ # 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`.
258
+ sig { returns(T.nilable(String)) }
259
+ attr_reader :collection_method
260
+ # 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).
261
+ sig { returns(String) }
262
+ attr_reader :currency
263
+ # 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.
264
+ sig { returns(T.nilable(T.any(String, Stripe::PaymentMethod))) }
265
+ attr_reader :default_payment_method
266
+ # The default tax rates to apply to the subscription during this phase of the subscription schedule.
267
+ sig { returns(T.nilable(T::Array[Stripe::TaxRate])) }
268
+ attr_reader :default_tax_rates
269
+ # 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.
270
+ sig { returns(T.nilable(String)) }
271
+ attr_reader :description
272
+ # The stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts.
273
+ sig { returns(T::Array[Discount]) }
274
+ attr_reader :discounts
275
+ # The end of this phase of the subscription schedule.
276
+ sig { returns(Integer) }
277
+ attr_reader :end_date
278
+ # The invoice settings applicable during this phase.
279
+ sig { returns(T.nilable(InvoiceSettings)) }
280
+ attr_reader :invoice_settings
281
+ # Subscription items to configure the subscription to during this phase of the subscription schedule.
282
+ sig { returns(T::Array[Item]) }
283
+ attr_reader :items
284
+ # 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. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata`.
285
+ sig { returns(T.nilable(T::Hash[String, String])) }
286
+ attr_reader :metadata
287
+ # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.
288
+ sig { returns(T.nilable(T.any(String, Stripe::Account))) }
289
+ attr_reader :on_behalf_of
290
+ # When transitioning phases, controls how prorations are handled (if any). Possible values are `create_prorations`, `none`, and `always_invoice`.
291
+ sig { returns(String) }
292
+ attr_reader :proration_behavior
293
+ # The start of this phase of the subscription schedule.
294
+ sig { returns(Integer) }
295
+ attr_reader :start_date
296
+ # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
297
+ sig { returns(T.nilable(TransferData)) }
298
+ attr_reader :transfer_data
299
+ # When the trial ends within the phase.
300
+ sig { returns(T.nilable(Integer)) }
301
+ attr_reader :trial_end
302
+ end
303
+ # ID of the Connect Application that created the schedule.
304
+ sig { returns(T.nilable(T.any(String, Stripe::Application))) }
305
+ attr_reader :application
306
+ # The billing mode of the subscription.
307
+ sig { returns(BillingMode) }
308
+ attr_reader :billing_mode
309
+ # Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
310
+ sig { returns(T.nilable(Integer)) }
311
+ attr_reader :canceled_at
312
+ # Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.
313
+ sig { returns(T.nilable(Integer)) }
314
+ attr_reader :completed_at
315
+ # Time at which the object was created. Measured in seconds since the Unix epoch.
316
+ sig { returns(Integer) }
317
+ attr_reader :created
318
+ # Object representing the start and end dates for the current phase of the subscription schedule, if it is `active`.
319
+ sig { returns(T.nilable(CurrentPhase)) }
320
+ attr_reader :current_phase
321
+ # ID of the customer who owns the subscription schedule.
322
+ sig { returns(T.any(String, Stripe::Customer)) }
323
+ attr_reader :customer
324
+ # Attribute for field default_settings
325
+ sig { returns(DefaultSettings) }
326
+ attr_reader :default_settings
327
+ # 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.
328
+ sig { returns(String) }
329
+ attr_reader :end_behavior
330
+ # Unique identifier for the object.
331
+ sig { returns(String) }
332
+ attr_reader :id
333
+ # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
334
+ sig { returns(T::Boolean) }
335
+ attr_reader :livemode
336
+ # 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.
337
+ sig { returns(T.nilable(T::Hash[String, String])) }
338
+ attr_reader :metadata
339
+ # String representing the object's type. Objects of the same type share the same value.
340
+ sig { returns(String) }
341
+ attr_reader :object
342
+ # Configuration for the subscription schedule's phases.
343
+ sig { returns(T::Array[Phase]) }
344
+ attr_reader :phases
345
+ # Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.
346
+ sig { returns(T.nilable(Integer)) }
347
+ attr_reader :released_at
348
+ # ID of the subscription once managed by the subscription schedule (if it is released).
349
+ sig { returns(T.nilable(String)) }
350
+ attr_reader :released_subscription
351
+ # The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://stripe.com/docs/billing/subscriptions/subscription-schedules).
352
+ sig { returns(String) }
353
+ attr_reader :status
354
+ # ID of the subscription managed by the subscription schedule.
355
+ sig { returns(T.nilable(T.any(String, Stripe::Subscription))) }
356
+ attr_reader :subscription
357
+ # ID of the test clock this subscription schedule belongs to.
358
+ sig { returns(T.nilable(T.any(String, Stripe::TestHelpers::TestClock))) }
359
+ attr_reader :test_clock
360
+ class ListParams < Stripe::RequestParams
361
+ class CanceledAt < Stripe::RequestParams
362
+ # Minimum value to filter by (exclusive)
363
+ sig { returns(T.nilable(Integer)) }
364
+ attr_accessor :gt
365
+ # Minimum value to filter by (inclusive)
366
+ sig { returns(T.nilable(Integer)) }
367
+ attr_accessor :gte
368
+ # Maximum value to filter by (exclusive)
369
+ sig { returns(T.nilable(Integer)) }
370
+ attr_accessor :lt
371
+ # Maximum value to filter by (inclusive)
372
+ sig { returns(T.nilable(Integer)) }
373
+ attr_accessor :lte
374
+ sig {
375
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
376
+ }
377
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
378
+ end
379
+ class CompletedAt < Stripe::RequestParams
380
+ # Minimum value to filter by (exclusive)
381
+ sig { returns(T.nilable(Integer)) }
382
+ attr_accessor :gt
383
+ # Minimum value to filter by (inclusive)
384
+ sig { returns(T.nilable(Integer)) }
385
+ attr_accessor :gte
386
+ # Maximum value to filter by (exclusive)
387
+ sig { returns(T.nilable(Integer)) }
388
+ attr_accessor :lt
389
+ # Maximum value to filter by (inclusive)
390
+ sig { returns(T.nilable(Integer)) }
391
+ attr_accessor :lte
392
+ sig {
393
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
394
+ }
395
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
396
+ end
397
+ class Created < Stripe::RequestParams
398
+ # Minimum value to filter by (exclusive)
399
+ sig { returns(T.nilable(Integer)) }
400
+ attr_accessor :gt
401
+ # Minimum value to filter by (inclusive)
402
+ sig { returns(T.nilable(Integer)) }
403
+ attr_accessor :gte
404
+ # Maximum value to filter by (exclusive)
405
+ sig { returns(T.nilable(Integer)) }
406
+ attr_accessor :lt
407
+ # Maximum value to filter by (inclusive)
408
+ sig { returns(T.nilable(Integer)) }
409
+ attr_accessor :lte
410
+ sig {
411
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
412
+ }
413
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
414
+ end
415
+ class ReleasedAt < Stripe::RequestParams
416
+ # Minimum value to filter by (exclusive)
417
+ sig { returns(T.nilable(Integer)) }
418
+ attr_accessor :gt
419
+ # Minimum value to filter by (inclusive)
420
+ sig { returns(T.nilable(Integer)) }
421
+ attr_accessor :gte
422
+ # Maximum value to filter by (exclusive)
423
+ sig { returns(T.nilable(Integer)) }
424
+ attr_accessor :lt
425
+ # Maximum value to filter by (inclusive)
426
+ sig { returns(T.nilable(Integer)) }
427
+ attr_accessor :lte
428
+ sig {
429
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
430
+ }
431
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
432
+ end
433
+ # Only return subscription schedules that were created canceled the given date interval.
434
+ sig {
435
+ returns(T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::CanceledAt, Integer)))
436
+ }
437
+ attr_accessor :canceled_at
438
+ # Only return subscription schedules that completed during the given date interval.
439
+ sig {
440
+ returns(T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::CompletedAt, Integer)))
441
+ }
442
+ attr_accessor :completed_at
443
+ # Only return subscription schedules that were created during the given date interval.
444
+ sig {
445
+ returns(T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::Created, Integer)))
446
+ }
447
+ attr_accessor :created
448
+ # Only return subscription schedules for the given customer.
449
+ sig { returns(T.nilable(String)) }
450
+ attr_accessor :customer
451
+ # 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.
452
+ sig { returns(T.nilable(String)) }
453
+ attr_accessor :ending_before
454
+ # Specifies which fields in the response should be expanded.
455
+ sig { returns(T.nilable(T::Array[String])) }
456
+ attr_accessor :expand
457
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
458
+ sig { returns(T.nilable(Integer)) }
459
+ attr_accessor :limit
460
+ # Only return subscription schedules that were released during the given date interval.
461
+ sig {
462
+ returns(T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::ReleasedAt, Integer)))
463
+ }
464
+ attr_accessor :released_at
465
+ # Only return subscription schedules that have not started yet.
466
+ sig { returns(T.nilable(T::Boolean)) }
467
+ attr_accessor :scheduled
468
+ # 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.
469
+ sig { returns(T.nilable(String)) }
470
+ attr_accessor :starting_after
471
+ sig {
472
+ params(canceled_at: T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::CanceledAt, Integer)), completed_at: T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::CompletedAt, Integer)), created: T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::Created, Integer)), customer: T.nilable(String), ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), released_at: T.nilable(T.any(::Stripe::SubscriptionSchedule::ListParams::ReleasedAt, Integer)), scheduled: T.nilable(T::Boolean), starting_after: T.nilable(String)).void
473
+ }
474
+ def initialize(
475
+ canceled_at: nil,
476
+ completed_at: nil,
477
+ created: nil,
478
+ customer: nil,
479
+ ending_before: nil,
480
+ expand: nil,
481
+ limit: nil,
482
+ released_at: nil,
483
+ scheduled: nil,
484
+ starting_after: nil
485
+ ); end
486
+ end
487
+ class CreateParams < Stripe::RequestParams
488
+ class BillingMode < Stripe::RequestParams
489
+ # Attribute for param field type
490
+ sig { returns(String) }
491
+ attr_accessor :type
492
+ sig { params(type: String).void }
493
+ def initialize(type: nil); end
494
+ end
495
+ class DefaultSettings < Stripe::RequestParams
496
+ class AutomaticTax < Stripe::RequestParams
497
+ class Liability < Stripe::RequestParams
498
+ # The connected account being referenced when `type` is `account`.
499
+ sig { returns(T.nilable(String)) }
500
+ attr_accessor :account
501
+ # Type of the account referenced in the request.
502
+ sig { returns(String) }
503
+ attr_accessor :type
504
+ sig { params(account: T.nilable(String), type: String).void }
505
+ def initialize(account: nil, type: nil); end
506
+ end
507
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
508
+ sig { returns(T::Boolean) }
509
+ attr_accessor :enabled
510
+ # 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.
511
+ sig {
512
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax::Liability))
513
+ }
514
+ attr_accessor :liability
515
+ sig {
516
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax::Liability)).void
517
+ }
518
+ def initialize(enabled: nil, liability: nil); end
519
+ end
520
+ class BillingThresholds < Stripe::RequestParams
521
+ # Monetary threshold that triggers the subscription to advance to a new billing period
522
+ sig { returns(T.nilable(Integer)) }
523
+ attr_accessor :amount_gte
524
+ # 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.
525
+ sig { returns(T.nilable(T::Boolean)) }
526
+ attr_accessor :reset_billing_cycle_anchor
527
+ sig {
528
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
529
+ }
530
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
531
+ end
532
+ class InvoiceSettings < Stripe::RequestParams
533
+ class Issuer < Stripe::RequestParams
534
+ # The connected account being referenced when `type` is `account`.
535
+ sig { returns(T.nilable(String)) }
536
+ attr_accessor :account
537
+ # Type of the account referenced in the request.
538
+ sig { returns(String) }
539
+ attr_accessor :type
540
+ sig { params(account: T.nilable(String), type: String).void }
541
+ def initialize(account: nil, type: nil); end
542
+ end
543
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
544
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
545
+ attr_accessor :account_tax_ids
546
+ # 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`.
547
+ sig { returns(T.nilable(Integer)) }
548
+ attr_accessor :days_until_due
549
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
550
+ sig {
551
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings::Issuer))
552
+ }
553
+ attr_accessor :issuer
554
+ sig {
555
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings::Issuer)).void
556
+ }
557
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
558
+ end
559
+ class TransferData < Stripe::RequestParams
560
+ # 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.
561
+ sig { returns(T.nilable(Float)) }
562
+ attr_accessor :amount_percent
563
+ # ID of an existing, connected Stripe account.
564
+ sig { returns(String) }
565
+ attr_accessor :destination
566
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
567
+ def initialize(amount_percent: nil, destination: nil); end
568
+ end
569
+ # 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).
570
+ sig { returns(T.nilable(Float)) }
571
+ attr_accessor :application_fee_percent
572
+ # Default settings for automatic tax computation.
573
+ sig {
574
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax))
575
+ }
576
+ attr_accessor :automatic_tax
577
+ # 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).
578
+ sig { returns(T.nilable(String)) }
579
+ attr_accessor :billing_cycle_anchor
580
+ # 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.
581
+ sig {
582
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::BillingThresholds))))
583
+ }
584
+ attr_accessor :billing_thresholds
585
+ # 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.
586
+ sig { returns(T.nilable(String)) }
587
+ attr_accessor :collection_method
588
+ # 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.
589
+ sig { returns(T.nilable(String)) }
590
+ attr_accessor :default_payment_method
591
+ # 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.
592
+ sig { returns(T.nilable(T.nilable(String))) }
593
+ attr_accessor :description
594
+ # All invoices will be billed using the specified settings.
595
+ sig {
596
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings))
597
+ }
598
+ attr_accessor :invoice_settings
599
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
600
+ sig { returns(T.nilable(T.nilable(String))) }
601
+ attr_accessor :on_behalf_of
602
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
603
+ sig {
604
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::TransferData))))
605
+ }
606
+ attr_accessor :transfer_data
607
+ sig {
608
+ params(application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::BillingThresholds))), collection_method: T.nilable(String), default_payment_method: T.nilable(String), description: T.nilable(T.nilable(String)), invoice_settings: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::InvoiceSettings), on_behalf_of: T.nilable(T.nilable(String)), transfer_data: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings::TransferData)))).void
609
+ }
610
+ def initialize(
611
+ application_fee_percent: nil,
612
+ automatic_tax: nil,
613
+ billing_cycle_anchor: nil,
614
+ billing_thresholds: nil,
615
+ collection_method: nil,
616
+ default_payment_method: nil,
617
+ description: nil,
618
+ invoice_settings: nil,
619
+ on_behalf_of: nil,
620
+ transfer_data: nil
621
+ ); end
622
+ end
623
+ class Phase < Stripe::RequestParams
624
+ class AddInvoiceItem < Stripe::RequestParams
625
+ class Discount < Stripe::RequestParams
626
+ # ID of the coupon to create a new discount for.
627
+ sig { returns(T.nilable(String)) }
628
+ attr_accessor :coupon
629
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
630
+ sig { returns(T.nilable(String)) }
631
+ attr_accessor :discount
632
+ # ID of the promotion code to create a new discount for.
633
+ sig { returns(T.nilable(String)) }
634
+ attr_accessor :promotion_code
635
+ sig {
636
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
637
+ }
638
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
639
+ end
640
+ class PriceData < Stripe::RequestParams
641
+ # 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).
642
+ sig { returns(String) }
643
+ attr_accessor :currency
644
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
645
+ sig { returns(String) }
646
+ attr_accessor :product
647
+ # 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.
648
+ sig { returns(T.nilable(String)) }
649
+ attr_accessor :tax_behavior
650
+ # 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.
651
+ sig { returns(T.nilable(Integer)) }
652
+ attr_accessor :unit_amount
653
+ # 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.
654
+ sig { returns(T.nilable(String)) }
655
+ attr_accessor :unit_amount_decimal
656
+ sig {
657
+ params(currency: String, product: String, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
658
+ }
659
+ def initialize(
660
+ currency: nil,
661
+ product: nil,
662
+ tax_behavior: nil,
663
+ unit_amount: nil,
664
+ unit_amount_decimal: nil
665
+ ); end
666
+ end
667
+ # The coupons to redeem into discounts for the item.
668
+ sig {
669
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount]))
670
+ }
671
+ attr_accessor :discounts
672
+ # The ID of the price object. One of `price` or `price_data` is required.
673
+ sig { returns(T.nilable(String)) }
674
+ attr_accessor :price
675
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
676
+ sig {
677
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::PriceData))
678
+ }
679
+ attr_accessor :price_data
680
+ # Quantity for this item. Defaults to 1.
681
+ sig { returns(T.nilable(Integer)) }
682
+ attr_accessor :quantity
683
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
684
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
685
+ attr_accessor :tax_rates
686
+ sig {
687
+ params(discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::Discount]), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
688
+ }
689
+ def initialize(
690
+ discounts: nil,
691
+ price: nil,
692
+ price_data: nil,
693
+ quantity: nil,
694
+ tax_rates: nil
695
+ ); end
696
+ end
697
+ class AutomaticTax < Stripe::RequestParams
698
+ class Liability < Stripe::RequestParams
699
+ # The connected account being referenced when `type` is `account`.
700
+ sig { returns(T.nilable(String)) }
701
+ attr_accessor :account
702
+ # Type of the account referenced in the request.
703
+ sig { returns(String) }
704
+ attr_accessor :type
705
+ sig { params(account: T.nilable(String), type: String).void }
706
+ def initialize(account: nil, type: nil); end
707
+ end
708
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
709
+ sig { returns(T::Boolean) }
710
+ attr_accessor :enabled
711
+ # 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.
712
+ sig {
713
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax::Liability))
714
+ }
715
+ attr_accessor :liability
716
+ sig {
717
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax::Liability)).void
718
+ }
719
+ def initialize(enabled: nil, liability: nil); end
720
+ end
721
+ class BillingThresholds < Stripe::RequestParams
722
+ # Monetary threshold that triggers the subscription to advance to a new billing period
723
+ sig { returns(T.nilable(Integer)) }
724
+ attr_accessor :amount_gte
725
+ # 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.
726
+ sig { returns(T.nilable(T::Boolean)) }
727
+ attr_accessor :reset_billing_cycle_anchor
728
+ sig {
729
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
730
+ }
731
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
732
+ end
733
+ class Discount < Stripe::RequestParams
734
+ # ID of the coupon to create a new discount for.
735
+ sig { returns(T.nilable(String)) }
736
+ attr_accessor :coupon
737
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
738
+ sig { returns(T.nilable(String)) }
739
+ attr_accessor :discount
740
+ # ID of the promotion code to create a new discount for.
741
+ sig { returns(T.nilable(String)) }
742
+ attr_accessor :promotion_code
743
+ sig {
744
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
745
+ }
746
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
747
+ end
748
+ class InvoiceSettings < Stripe::RequestParams
749
+ class Issuer < Stripe::RequestParams
750
+ # The connected account being referenced when `type` is `account`.
751
+ sig { returns(T.nilable(String)) }
752
+ attr_accessor :account
753
+ # Type of the account referenced in the request.
754
+ sig { returns(String) }
755
+ attr_accessor :type
756
+ sig { params(account: T.nilable(String), type: String).void }
757
+ def initialize(account: nil, type: nil); end
758
+ end
759
+ # 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.
760
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
761
+ attr_accessor :account_tax_ids
762
+ # 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`.
763
+ sig { returns(T.nilable(Integer)) }
764
+ attr_accessor :days_until_due
765
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
766
+ sig {
767
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings::Issuer))
768
+ }
769
+ attr_accessor :issuer
770
+ sig {
771
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings::Issuer)).void
772
+ }
773
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
774
+ end
775
+ class Item < Stripe::RequestParams
776
+ class BillingThresholds < Stripe::RequestParams
777
+ # 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))
778
+ sig { returns(Integer) }
779
+ attr_accessor :usage_gte
780
+ sig { params(usage_gte: Integer).void }
781
+ def initialize(usage_gte: nil); end
782
+ end
783
+ class Discount < Stripe::RequestParams
784
+ # ID of the coupon to create a new discount for.
785
+ sig { returns(T.nilable(String)) }
786
+ attr_accessor :coupon
787
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
788
+ sig { returns(T.nilable(String)) }
789
+ attr_accessor :discount
790
+ # ID of the promotion code to create a new discount for.
791
+ sig { returns(T.nilable(String)) }
792
+ attr_accessor :promotion_code
793
+ sig {
794
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
795
+ }
796
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
797
+ end
798
+ class PriceData < Stripe::RequestParams
799
+ class Recurring < Stripe::RequestParams
800
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
801
+ sig { returns(String) }
802
+ attr_accessor :interval
803
+ # 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).
804
+ sig { returns(T.nilable(Integer)) }
805
+ attr_accessor :interval_count
806
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
807
+ def initialize(interval: nil, interval_count: nil); end
808
+ end
809
+ # 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).
810
+ sig { returns(String) }
811
+ attr_accessor :currency
812
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
813
+ sig { returns(String) }
814
+ attr_accessor :product
815
+ # The recurring components of a price such as `interval` and `interval_count`.
816
+ sig {
817
+ returns(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData::Recurring)
818
+ }
819
+ attr_accessor :recurring
820
+ # 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.
821
+ sig { returns(T.nilable(String)) }
822
+ attr_accessor :tax_behavior
823
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
824
+ sig { returns(T.nilable(Integer)) }
825
+ attr_accessor :unit_amount
826
+ # 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.
827
+ sig { returns(T.nilable(String)) }
828
+ attr_accessor :unit_amount_decimal
829
+ sig {
830
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData::Recurring, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
831
+ }
832
+ def initialize(
833
+ currency: nil,
834
+ product: nil,
835
+ recurring: nil,
836
+ tax_behavior: nil,
837
+ unit_amount: nil,
838
+ unit_amount_decimal: nil
839
+ ); end
840
+ end
841
+ # 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.
842
+ sig {
843
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::BillingThresholds))))
844
+ }
845
+ attr_accessor :billing_thresholds
846
+ # The coupons to redeem into discounts for the subscription item.
847
+ sig {
848
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount]))))
849
+ }
850
+ attr_accessor :discounts
851
+ # 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`.
852
+ sig { returns(T.nilable(T::Hash[String, String])) }
853
+ attr_accessor :metadata
854
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
855
+ sig { returns(T.nilable(String)) }
856
+ attr_accessor :plan
857
+ # The ID of the price object.
858
+ sig { returns(T.nilable(String)) }
859
+ attr_accessor :price
860
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
861
+ sig {
862
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData))
863
+ }
864
+ attr_accessor :price_data
865
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
866
+ sig { returns(T.nilable(Integer)) }
867
+ attr_accessor :quantity
868
+ # 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.
869
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
870
+ attr_accessor :tax_rates
871
+ sig {
872
+ params(billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::BillingThresholds))), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::Discount]))), metadata: T.nilable(T::Hash[String, String]), plan: T.nilable(String), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::Item::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
873
+ }
874
+ def initialize(
875
+ billing_thresholds: nil,
876
+ discounts: nil,
877
+ metadata: nil,
878
+ plan: nil,
879
+ price: nil,
880
+ price_data: nil,
881
+ quantity: nil,
882
+ tax_rates: nil
883
+ ); end
884
+ end
885
+ class TransferData < Stripe::RequestParams
886
+ # 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.
887
+ sig { returns(T.nilable(Float)) }
888
+ attr_accessor :amount_percent
889
+ # ID of an existing, connected Stripe account.
890
+ sig { returns(String) }
891
+ attr_accessor :destination
892
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
893
+ def initialize(amount_percent: nil, destination: nil); end
894
+ end
895
+ # 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.
896
+ sig {
897
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem]))
898
+ }
899
+ attr_accessor :add_invoice_items
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(T.nilable(Float)) }
902
+ attr_accessor :application_fee_percent
903
+ # Automatic tax settings for this phase.
904
+ sig {
905
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::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(T.nilable(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(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::Phase::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(T.nilable(String)) }
918
+ attr_accessor :collection_method
919
+ # 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).
920
+ sig { returns(T.nilable(String)) }
921
+ attr_accessor :currency
922
+ # 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.
923
+ sig { returns(T.nilable(String)) }
924
+ attr_accessor :default_payment_method
925
+ # 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.
926
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
927
+ attr_accessor :default_tax_rates
928
+ # 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.
929
+ sig { returns(T.nilable(T.nilable(String))) }
930
+ attr_accessor :description
931
+ # 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.
932
+ sig {
933
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount]))))
934
+ }
935
+ attr_accessor :discounts
936
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
937
+ sig { returns(T.nilable(Integer)) }
938
+ attr_accessor :end_date
939
+ # All invoices will be billed using the specified settings.
940
+ sig {
941
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings))
942
+ }
943
+ attr_accessor :invoice_settings
944
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
945
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item]) }
946
+ attr_accessor :items
947
+ # 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.
948
+ sig { returns(T.nilable(Integer)) }
949
+ attr_accessor :iterations
950
+ # 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`.
951
+ sig { returns(T.nilable(T::Hash[String, String])) }
952
+ attr_accessor :metadata
953
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
954
+ sig { returns(T.nilable(String)) }
955
+ attr_accessor :on_behalf_of
956
+ # Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase.
957
+ sig { returns(T.nilable(String)) }
958
+ attr_accessor :proration_behavior
959
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
960
+ sig {
961
+ returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::TransferData))
962
+ }
963
+ attr_accessor :transfer_data
964
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
965
+ sig { returns(T.nilable(T::Boolean)) }
966
+ attr_accessor :trial
967
+ # 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`
968
+ sig { returns(T.nilable(Integer)) }
969
+ attr_accessor :trial_end
970
+ sig {
971
+ params(add_invoice_items: T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::AddInvoiceItem]), application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::CreateParams::Phase::BillingThresholds))), collection_method: T.nilable(String), currency: T.nilable(String), default_payment_method: T.nilable(String), default_tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String]))), description: T.nilable(T.nilable(String)), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Discount]))), end_date: T.nilable(Integer), invoice_settings: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::InvoiceSettings), items: T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase::Item], iterations: T.nilable(Integer), metadata: T.nilable(T::Hash[String, String]), on_behalf_of: T.nilable(String), proration_behavior: T.nilable(String), transfer_data: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::Phase::TransferData), trial: T.nilable(T::Boolean), trial_end: T.nilable(Integer)).void
972
+ }
973
+ def initialize(
974
+ add_invoice_items: nil,
975
+ application_fee_percent: nil,
976
+ automatic_tax: nil,
977
+ billing_cycle_anchor: nil,
978
+ billing_thresholds: nil,
979
+ collection_method: nil,
980
+ currency: nil,
981
+ default_payment_method: nil,
982
+ default_tax_rates: nil,
983
+ description: nil,
984
+ discounts: nil,
985
+ end_date: nil,
986
+ invoice_settings: nil,
987
+ items: nil,
988
+ iterations: nil,
989
+ metadata: nil,
990
+ on_behalf_of: nil,
991
+ proration_behavior: nil,
992
+ transfer_data: nil,
993
+ trial: nil,
994
+ trial_end: nil
995
+ ); end
996
+ end
997
+ # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
998
+ sig { returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::BillingMode)) }
999
+ attr_accessor :billing_mode
1000
+ # The identifier of the customer to create the subscription schedule for.
1001
+ sig { returns(T.nilable(String)) }
1002
+ attr_accessor :customer
1003
+ # Object representing the subscription schedule's default settings.
1004
+ sig { returns(T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings)) }
1005
+ attr_accessor :default_settings
1006
+ # 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.
1007
+ sig { returns(T.nilable(String)) }
1008
+ attr_accessor :end_behavior
1009
+ # Specifies which fields in the response should be expanded.
1010
+ sig { returns(T.nilable(T::Array[String])) }
1011
+ attr_accessor :expand
1012
+ # 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.
1013
+ sig { returns(T.nilable(String)) }
1014
+ attr_accessor :from_subscription
1015
+ # 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`.
1016
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) }
1017
+ attr_accessor :metadata
1018
+ # 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.
1019
+ sig { returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase])) }
1020
+ attr_accessor :phases
1021
+ # 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.
1022
+ sig { returns(T.nilable(T.any(Integer, String))) }
1023
+ attr_accessor :start_date
1024
+ sig {
1025
+ params(billing_mode: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::BillingMode), customer: T.nilable(String), default_settings: T.nilable(::Stripe::SubscriptionSchedule::CreateParams::DefaultSettings), end_behavior: T.nilable(String), expand: T.nilable(T::Array[String]), from_subscription: T.nilable(String), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), phases: T.nilable(T::Array[::Stripe::SubscriptionSchedule::CreateParams::Phase]), start_date: T.nilable(T.any(Integer, String))).void
1026
+ }
1027
+ def initialize(
1028
+ billing_mode: nil,
1029
+ customer: nil,
1030
+ default_settings: nil,
1031
+ end_behavior: nil,
1032
+ expand: nil,
1033
+ from_subscription: nil,
1034
+ metadata: nil,
1035
+ phases: nil,
1036
+ start_date: nil
1037
+ ); end
1038
+ end
1039
+ class UpdateParams < Stripe::RequestParams
1040
+ class DefaultSettings < Stripe::RequestParams
1041
+ class AutomaticTax < Stripe::RequestParams
1042
+ class Liability < Stripe::RequestParams
1043
+ # The connected account being referenced when `type` is `account`.
1044
+ sig { returns(T.nilable(String)) }
1045
+ attr_accessor :account
1046
+ # Type of the account referenced in the request.
1047
+ sig { returns(String) }
1048
+ attr_accessor :type
1049
+ sig { params(account: T.nilable(String), type: String).void }
1050
+ def initialize(account: nil, type: nil); end
1051
+ end
1052
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
1053
+ sig { returns(T::Boolean) }
1054
+ attr_accessor :enabled
1055
+ # 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.
1056
+ sig {
1057
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax::Liability))
1058
+ }
1059
+ attr_accessor :liability
1060
+ sig {
1061
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax::Liability)).void
1062
+ }
1063
+ def initialize(enabled: nil, liability: nil); end
1064
+ end
1065
+ class BillingThresholds < Stripe::RequestParams
1066
+ # Monetary threshold that triggers the subscription to advance to a new billing period
1067
+ sig { returns(T.nilable(Integer)) }
1068
+ attr_accessor :amount_gte
1069
+ # 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.
1070
+ sig { returns(T.nilable(T::Boolean)) }
1071
+ attr_accessor :reset_billing_cycle_anchor
1072
+ sig {
1073
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
1074
+ }
1075
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
1076
+ end
1077
+ class InvoiceSettings < Stripe::RequestParams
1078
+ class Issuer < Stripe::RequestParams
1079
+ # The connected account being referenced when `type` is `account`.
1080
+ sig { returns(T.nilable(String)) }
1081
+ attr_accessor :account
1082
+ # Type of the account referenced in the request.
1083
+ sig { returns(String) }
1084
+ attr_accessor :type
1085
+ sig { params(account: T.nilable(String), type: String).void }
1086
+ def initialize(account: nil, type: nil); end
1087
+ end
1088
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
1089
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1090
+ attr_accessor :account_tax_ids
1091
+ # 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`.
1092
+ sig { returns(T.nilable(Integer)) }
1093
+ attr_accessor :days_until_due
1094
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
1095
+ sig {
1096
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings::Issuer))
1097
+ }
1098
+ attr_accessor :issuer
1099
+ sig {
1100
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings::Issuer)).void
1101
+ }
1102
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1103
+ end
1104
+ class TransferData < Stripe::RequestParams
1105
+ # 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.
1106
+ sig { returns(T.nilable(Float)) }
1107
+ attr_accessor :amount_percent
1108
+ # ID of an existing, connected Stripe account.
1109
+ sig { returns(String) }
1110
+ attr_accessor :destination
1111
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
1112
+ def initialize(amount_percent: nil, destination: nil); end
1113
+ end
1114
+ # 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).
1115
+ sig { returns(T.nilable(Float)) }
1116
+ attr_accessor :application_fee_percent
1117
+ # Default settings for automatic tax computation.
1118
+ sig {
1119
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax))
1120
+ }
1121
+ attr_accessor :automatic_tax
1122
+ # 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).
1123
+ sig { returns(T.nilable(String)) }
1124
+ attr_accessor :billing_cycle_anchor
1125
+ # 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.
1126
+ sig {
1127
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::BillingThresholds))))
1128
+ }
1129
+ attr_accessor :billing_thresholds
1130
+ # 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.
1131
+ sig { returns(T.nilable(String)) }
1132
+ attr_accessor :collection_method
1133
+ # 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.
1134
+ sig { returns(T.nilable(String)) }
1135
+ attr_accessor :default_payment_method
1136
+ # 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.
1137
+ sig { returns(T.nilable(T.nilable(String))) }
1138
+ attr_accessor :description
1139
+ # All invoices will be billed using the specified settings.
1140
+ sig {
1141
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings))
1142
+ }
1143
+ attr_accessor :invoice_settings
1144
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1145
+ sig { returns(T.nilable(T.nilable(String))) }
1146
+ attr_accessor :on_behalf_of
1147
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1148
+ sig {
1149
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::TransferData))))
1150
+ }
1151
+ attr_accessor :transfer_data
1152
+ sig {
1153
+ params(application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::BillingThresholds))), collection_method: T.nilable(String), default_payment_method: T.nilable(String), description: T.nilable(T.nilable(String)), invoice_settings: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::InvoiceSettings), on_behalf_of: T.nilable(T.nilable(String)), transfer_data: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings::TransferData)))).void
1154
+ }
1155
+ def initialize(
1156
+ application_fee_percent: nil,
1157
+ automatic_tax: nil,
1158
+ billing_cycle_anchor: nil,
1159
+ billing_thresholds: nil,
1160
+ collection_method: nil,
1161
+ default_payment_method: nil,
1162
+ description: nil,
1163
+ invoice_settings: nil,
1164
+ on_behalf_of: nil,
1165
+ transfer_data: nil
1166
+ ); end
1167
+ end
1168
+ class Phase < Stripe::RequestParams
1169
+ class AddInvoiceItem < Stripe::RequestParams
1170
+ class Discount < Stripe::RequestParams
1171
+ # ID of the coupon to create a new discount for.
1172
+ sig { returns(T.nilable(String)) }
1173
+ attr_accessor :coupon
1174
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1175
+ sig { returns(T.nilable(String)) }
1176
+ attr_accessor :discount
1177
+ # ID of the promotion code to create a new discount for.
1178
+ sig { returns(T.nilable(String)) }
1179
+ attr_accessor :promotion_code
1180
+ sig {
1181
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
1182
+ }
1183
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1184
+ end
1185
+ class PriceData < Stripe::RequestParams
1186
+ # 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).
1187
+ sig { returns(String) }
1188
+ attr_accessor :currency
1189
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
1190
+ sig { returns(String) }
1191
+ attr_accessor :product
1192
+ # 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.
1193
+ sig { returns(T.nilable(String)) }
1194
+ attr_accessor :tax_behavior
1195
+ # 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.
1196
+ sig { returns(T.nilable(Integer)) }
1197
+ attr_accessor :unit_amount
1198
+ # 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.
1199
+ sig { returns(T.nilable(String)) }
1200
+ attr_accessor :unit_amount_decimal
1201
+ sig {
1202
+ params(currency: String, product: String, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
1203
+ }
1204
+ def initialize(
1205
+ currency: nil,
1206
+ product: nil,
1207
+ tax_behavior: nil,
1208
+ unit_amount: nil,
1209
+ unit_amount_decimal: nil
1210
+ ); end
1211
+ end
1212
+ # The coupons to redeem into discounts for the item.
1213
+ sig {
1214
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount]))
1215
+ }
1216
+ attr_accessor :discounts
1217
+ # The ID of the price object. One of `price` or `price_data` is required.
1218
+ sig { returns(T.nilable(String)) }
1219
+ attr_accessor :price
1220
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
1221
+ sig {
1222
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::PriceData))
1223
+ }
1224
+ attr_accessor :price_data
1225
+ # Quantity for this item. Defaults to 1.
1226
+ sig { returns(T.nilable(Integer)) }
1227
+ attr_accessor :quantity
1228
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
1229
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1230
+ attr_accessor :tax_rates
1231
+ sig {
1232
+ params(discounts: T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::Discount]), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
1233
+ }
1234
+ def initialize(
1235
+ discounts: nil,
1236
+ price: nil,
1237
+ price_data: nil,
1238
+ quantity: nil,
1239
+ tax_rates: nil
1240
+ ); end
1241
+ end
1242
+ class AutomaticTax < Stripe::RequestParams
1243
+ class Liability < Stripe::RequestParams
1244
+ # The connected account being referenced when `type` is `account`.
1245
+ sig { returns(T.nilable(String)) }
1246
+ attr_accessor :account
1247
+ # Type of the account referenced in the request.
1248
+ sig { returns(String) }
1249
+ attr_accessor :type
1250
+ sig { params(account: T.nilable(String), type: String).void }
1251
+ def initialize(account: nil, type: nil); end
1252
+ end
1253
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
1254
+ sig { returns(T::Boolean) }
1255
+ attr_accessor :enabled
1256
+ # 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.
1257
+ sig {
1258
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax::Liability))
1259
+ }
1260
+ attr_accessor :liability
1261
+ sig {
1262
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax::Liability)).void
1263
+ }
1264
+ def initialize(enabled: nil, liability: nil); end
1265
+ end
1266
+ class BillingThresholds < Stripe::RequestParams
1267
+ # Monetary threshold that triggers the subscription to advance to a new billing period
1268
+ sig { returns(T.nilable(Integer)) }
1269
+ attr_accessor :amount_gte
1270
+ # 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.
1271
+ sig { returns(T.nilable(T::Boolean)) }
1272
+ attr_accessor :reset_billing_cycle_anchor
1273
+ sig {
1274
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
1275
+ }
1276
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
1277
+ end
1278
+ class Discount < Stripe::RequestParams
1279
+ # ID of the coupon to create a new discount for.
1280
+ sig { returns(T.nilable(String)) }
1281
+ attr_accessor :coupon
1282
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1283
+ sig { returns(T.nilable(String)) }
1284
+ attr_accessor :discount
1285
+ # ID of the promotion code to create a new discount for.
1286
+ sig { returns(T.nilable(String)) }
1287
+ attr_accessor :promotion_code
1288
+ sig {
1289
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
1290
+ }
1291
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1292
+ end
1293
+ class InvoiceSettings < Stripe::RequestParams
1294
+ class Issuer < Stripe::RequestParams
1295
+ # The connected account being referenced when `type` is `account`.
1296
+ sig { returns(T.nilable(String)) }
1297
+ attr_accessor :account
1298
+ # Type of the account referenced in the request.
1299
+ sig { returns(String) }
1300
+ attr_accessor :type
1301
+ sig { params(account: T.nilable(String), type: String).void }
1302
+ def initialize(account: nil, type: nil); end
1303
+ end
1304
+ # 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.
1305
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1306
+ attr_accessor :account_tax_ids
1307
+ # 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`.
1308
+ sig { returns(T.nilable(Integer)) }
1309
+ attr_accessor :days_until_due
1310
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
1311
+ sig {
1312
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings::Issuer))
1313
+ }
1314
+ attr_accessor :issuer
1315
+ sig {
1316
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings::Issuer)).void
1317
+ }
1318
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1319
+ end
1320
+ class Item < Stripe::RequestParams
1321
+ class BillingThresholds < Stripe::RequestParams
1322
+ # 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))
1323
+ sig { returns(Integer) }
1324
+ attr_accessor :usage_gte
1325
+ sig { params(usage_gte: Integer).void }
1326
+ def initialize(usage_gte: nil); end
1327
+ end
1328
+ class Discount < Stripe::RequestParams
1329
+ # ID of the coupon to create a new discount for.
1330
+ sig { returns(T.nilable(String)) }
1331
+ attr_accessor :coupon
1332
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1333
+ sig { returns(T.nilable(String)) }
1334
+ attr_accessor :discount
1335
+ # ID of the promotion code to create a new discount for.
1336
+ sig { returns(T.nilable(String)) }
1337
+ attr_accessor :promotion_code
1338
+ sig {
1339
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
1340
+ }
1341
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1342
+ end
1343
+ class PriceData < Stripe::RequestParams
1344
+ class Recurring < Stripe::RequestParams
1345
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
1346
+ sig { returns(String) }
1347
+ attr_accessor :interval
1348
+ # 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).
1349
+ sig { returns(T.nilable(Integer)) }
1350
+ attr_accessor :interval_count
1351
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
1352
+ def initialize(interval: nil, interval_count: nil); end
1353
+ end
1354
+ # 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).
1355
+ sig { returns(String) }
1356
+ attr_accessor :currency
1357
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
1358
+ sig { returns(String) }
1359
+ attr_accessor :product
1360
+ # The recurring components of a price such as `interval` and `interval_count`.
1361
+ sig {
1362
+ returns(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData::Recurring)
1363
+ }
1364
+ attr_accessor :recurring
1365
+ # 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.
1366
+ sig { returns(T.nilable(String)) }
1367
+ attr_accessor :tax_behavior
1368
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
1369
+ sig { returns(T.nilable(Integer)) }
1370
+ attr_accessor :unit_amount
1371
+ # 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.
1372
+ sig { returns(T.nilable(String)) }
1373
+ attr_accessor :unit_amount_decimal
1374
+ sig {
1375
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData::Recurring, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
1376
+ }
1377
+ def initialize(
1378
+ currency: nil,
1379
+ product: nil,
1380
+ recurring: nil,
1381
+ tax_behavior: nil,
1382
+ unit_amount: nil,
1383
+ unit_amount_decimal: nil
1384
+ ); end
1385
+ end
1386
+ # 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.
1387
+ sig {
1388
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::BillingThresholds))))
1389
+ }
1390
+ attr_accessor :billing_thresholds
1391
+ # The coupons to redeem into discounts for the subscription item.
1392
+ sig {
1393
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount]))))
1394
+ }
1395
+ attr_accessor :discounts
1396
+ # 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`.
1397
+ sig { returns(T.nilable(T::Hash[String, String])) }
1398
+ attr_accessor :metadata
1399
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
1400
+ sig { returns(T.nilable(String)) }
1401
+ attr_accessor :plan
1402
+ # The ID of the price object.
1403
+ sig { returns(T.nilable(String)) }
1404
+ attr_accessor :price
1405
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1406
+ sig {
1407
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData))
1408
+ }
1409
+ attr_accessor :price_data
1410
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
1411
+ sig { returns(T.nilable(Integer)) }
1412
+ attr_accessor :quantity
1413
+ # 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.
1414
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1415
+ attr_accessor :tax_rates
1416
+ sig {
1417
+ params(billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::BillingThresholds))), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::Discount]))), metadata: T.nilable(T::Hash[String, String]), plan: T.nilable(String), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
1418
+ }
1419
+ def initialize(
1420
+ billing_thresholds: nil,
1421
+ discounts: nil,
1422
+ metadata: nil,
1423
+ plan: nil,
1424
+ price: nil,
1425
+ price_data: nil,
1426
+ quantity: nil,
1427
+ tax_rates: nil
1428
+ ); end
1429
+ end
1430
+ class TransferData < Stripe::RequestParams
1431
+ # 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.
1432
+ sig { returns(T.nilable(Float)) }
1433
+ attr_accessor :amount_percent
1434
+ # ID of an existing, connected Stripe account.
1435
+ sig { returns(String) }
1436
+ attr_accessor :destination
1437
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
1438
+ def initialize(amount_percent: nil, destination: nil); end
1439
+ end
1440
+ # 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.
1441
+ sig {
1442
+ returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem]))
1443
+ }
1444
+ attr_accessor :add_invoice_items
1445
+ # 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).
1446
+ sig { returns(T.nilable(Float)) }
1447
+ attr_accessor :application_fee_percent
1448
+ # Automatic tax settings for this phase.
1449
+ sig {
1450
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax))
1451
+ }
1452
+ attr_accessor :automatic_tax
1453
+ # 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).
1454
+ sig { returns(T.nilable(String)) }
1455
+ attr_accessor :billing_cycle_anchor
1456
+ # 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.
1457
+ sig {
1458
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::Phase::BillingThresholds))))
1459
+ }
1460
+ attr_accessor :billing_thresholds
1461
+ # 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.
1462
+ sig { returns(T.nilable(String)) }
1463
+ attr_accessor :collection_method
1464
+ # 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).
1465
+ sig { returns(T.nilable(String)) }
1466
+ attr_accessor :currency
1467
+ # 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.
1468
+ sig { returns(T.nilable(String)) }
1469
+ attr_accessor :default_payment_method
1470
+ # 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.
1471
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1472
+ attr_accessor :default_tax_rates
1473
+ # 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.
1474
+ sig { returns(T.nilable(T.nilable(String))) }
1475
+ attr_accessor :description
1476
+ # 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.
1477
+ sig {
1478
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount]))))
1479
+ }
1480
+ attr_accessor :discounts
1481
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1482
+ sig { returns(T.nilable(T.any(Integer, String))) }
1483
+ attr_accessor :end_date
1484
+ # All invoices will be billed using the specified settings.
1485
+ sig {
1486
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings))
1487
+ }
1488
+ attr_accessor :invoice_settings
1489
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1490
+ sig { returns(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item]) }
1491
+ attr_accessor :items
1492
+ # 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.
1493
+ sig { returns(T.nilable(Integer)) }
1494
+ attr_accessor :iterations
1495
+ # 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`.
1496
+ sig { returns(T.nilable(T::Hash[String, String])) }
1497
+ attr_accessor :metadata
1498
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1499
+ sig { returns(T.nilable(String)) }
1500
+ attr_accessor :on_behalf_of
1501
+ # Controls whether the subscription schedule should create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase if there is a difference in billing configuration. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration (item price, quantity, etc.) of the current phase.
1502
+ sig { returns(T.nilable(String)) }
1503
+ attr_accessor :proration_behavior
1504
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
1505
+ sig { returns(T.nilable(T.any(Integer, String))) }
1506
+ attr_accessor :start_date
1507
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1508
+ sig {
1509
+ returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::TransferData))
1510
+ }
1511
+ attr_accessor :transfer_data
1512
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1513
+ sig { returns(T.nilable(T::Boolean)) }
1514
+ attr_accessor :trial
1515
+ # 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`
1516
+ sig { returns(T.nilable(T.any(Integer, String))) }
1517
+ attr_accessor :trial_end
1518
+ sig {
1519
+ params(add_invoice_items: T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::AddInvoiceItem]), application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionSchedule::UpdateParams::Phase::BillingThresholds))), collection_method: T.nilable(String), currency: T.nilable(String), default_payment_method: T.nilable(String), default_tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String]))), description: T.nilable(T.nilable(String)), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Discount]))), end_date: T.nilable(T.any(Integer, String)), invoice_settings: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::InvoiceSettings), items: T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase::Item], iterations: T.nilable(Integer), metadata: T.nilable(T::Hash[String, String]), on_behalf_of: T.nilable(String), proration_behavior: T.nilable(String), start_date: T.nilable(T.any(Integer, String)), transfer_data: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::Phase::TransferData), trial: T.nilable(T::Boolean), trial_end: T.nilable(T.any(Integer, String))).void
1520
+ }
1521
+ def initialize(
1522
+ add_invoice_items: nil,
1523
+ application_fee_percent: nil,
1524
+ automatic_tax: nil,
1525
+ billing_cycle_anchor: nil,
1526
+ billing_thresholds: nil,
1527
+ collection_method: nil,
1528
+ currency: nil,
1529
+ default_payment_method: nil,
1530
+ default_tax_rates: nil,
1531
+ description: nil,
1532
+ discounts: nil,
1533
+ end_date: nil,
1534
+ invoice_settings: nil,
1535
+ items: nil,
1536
+ iterations: nil,
1537
+ metadata: nil,
1538
+ on_behalf_of: nil,
1539
+ proration_behavior: nil,
1540
+ start_date: nil,
1541
+ transfer_data: nil,
1542
+ trial: nil,
1543
+ trial_end: nil
1544
+ ); end
1545
+ end
1546
+ # Object representing the subscription schedule's default settings.
1547
+ sig { returns(T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings)) }
1548
+ attr_accessor :default_settings
1549
+ # 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.
1550
+ sig { returns(T.nilable(String)) }
1551
+ attr_accessor :end_behavior
1552
+ # Specifies which fields in the response should be expanded.
1553
+ sig { returns(T.nilable(T::Array[String])) }
1554
+ attr_accessor :expand
1555
+ # 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`.
1556
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) }
1557
+ attr_accessor :metadata
1558
+ # 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.
1559
+ sig { returns(T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase])) }
1560
+ attr_accessor :phases
1561
+ # If the update changes the billing configuration (item price, quantity, etc.) of the current phase, indicates how prorations from this change should be handled. The default value is `create_prorations`.
1562
+ sig { returns(T.nilable(String)) }
1563
+ attr_accessor :proration_behavior
1564
+ sig {
1565
+ params(default_settings: T.nilable(::Stripe::SubscriptionSchedule::UpdateParams::DefaultSettings), end_behavior: T.nilable(String), expand: T.nilable(T::Array[String]), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), phases: T.nilable(T::Array[::Stripe::SubscriptionSchedule::UpdateParams::Phase]), proration_behavior: T.nilable(String)).void
1566
+ }
1567
+ def initialize(
1568
+ default_settings: nil,
1569
+ end_behavior: nil,
1570
+ expand: nil,
1571
+ metadata: nil,
1572
+ phases: nil,
1573
+ proration_behavior: nil
1574
+ ); end
1575
+ end
1576
+ class CancelParams < Stripe::RequestParams
1577
+ # Specifies which fields in the response should be expanded.
1578
+ sig { returns(T.nilable(T::Array[String])) }
1579
+ attr_accessor :expand
1580
+ # 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`.
1581
+ sig { returns(T.nilable(T::Boolean)) }
1582
+ attr_accessor :invoice_now
1583
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
1584
+ sig { returns(T.nilable(T::Boolean)) }
1585
+ attr_accessor :prorate
1586
+ sig {
1587
+ params(expand: T.nilable(T::Array[String]), invoice_now: T.nilable(T::Boolean), prorate: T.nilable(T::Boolean)).void
1588
+ }
1589
+ def initialize(expand: nil, invoice_now: nil, prorate: nil); end
1590
+ end
1591
+ class ReleaseParams < Stripe::RequestParams
1592
+ # Specifies which fields in the response should be expanded.
1593
+ sig { returns(T.nilable(T::Array[String])) }
1594
+ attr_accessor :expand
1595
+ # Keep any cancellation on the subscription that the schedule has set
1596
+ sig { returns(T.nilable(T::Boolean)) }
1597
+ attr_accessor :preserve_cancel_date
1598
+ sig {
1599
+ params(expand: T.nilable(T::Array[String]), preserve_cancel_date: T.nilable(T::Boolean)).void
1600
+ }
1601
+ def initialize(expand: nil, preserve_cancel_date: nil); end
1602
+ end
1603
+ # 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.
1604
+ sig {
1605
+ params(params: T.any(::Stripe::SubscriptionSchedule::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1606
+ }
1607
+ def cancel(params = {}, opts = {}); end
1608
+
1609
+ # 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.
1610
+ sig {
1611
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1612
+ }
1613
+ def self.cancel(schedule, params = {}, opts = {}); end
1614
+
1615
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
1616
+ sig {
1617
+ params(params: T.any(::Stripe::SubscriptionSchedule::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1618
+ }
1619
+ def self.create(params = {}, opts = {}); end
1620
+
1621
+ # Retrieves the list of your subscription schedules.
1622
+ sig {
1623
+ params(params: T.any(::Stripe::SubscriptionSchedule::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject)
1624
+ }
1625
+ def self.list(params = {}, opts = {}); end
1626
+
1627
+ # 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.
1628
+ sig {
1629
+ params(params: T.any(::Stripe::SubscriptionSchedule::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1630
+ }
1631
+ def release(params = {}, opts = {}); end
1632
+
1633
+ # 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.
1634
+ sig {
1635
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1636
+ }
1637
+ def self.release(schedule, params = {}, opts = {}); end
1638
+
1639
+ # Updates an existing subscription schedule.
1640
+ sig {
1641
+ params(schedule: String, params: T.any(::Stripe::SubscriptionSchedule::UpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1642
+ }
1643
+ def self.update(schedule, params = {}, opts = {}); end
1644
+ end
1645
+ end