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