stripe 15.4.0.pre.beta.1 → 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 (603) hide show
  1. checksums.yaml +4 -4
  2. data/API_VERSION +1 -1
  3. data/CHANGELOG.md +686 -1593
  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 -28
  8. data/lib/stripe/api_version.rb +2 -1
  9. data/lib/stripe/errors.rb +0 -54
  10. data/lib/stripe/event_types.rb +0 -98
  11. data/lib/stripe/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 -104
  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 -162
  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_defaults_updated_event.rb +0 -21
  463. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +0 -21
  464. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +0 -21
  465. data/lib/stripe/events/v2_core_account_link_completed_event.rb +0 -13
  466. data/lib/stripe/events/v2_core_account_person_created_event.rb +0 -23
  467. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +0 -23
  468. data/lib/stripe/events/v2_core_account_person_updated_event.rb +0 -23
  469. data/lib/stripe/events/v2_core_account_updated_event.rb +0 -21
  470. data/lib/stripe/events/v2_money_management_adjustment_created_event.rb +0 -21
  471. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +0 -21
  472. data/lib/stripe/events/v2_money_management_financial_account_updated_event.rb +0 -21
  473. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +0 -21
  474. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +0 -21
  475. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +0 -23
  476. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +0 -21
  477. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +0 -21
  478. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +0 -21
  479. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +0 -21
  480. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +0 -21
  481. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +0 -21
  482. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +0 -21
  483. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +0 -21
  484. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +0 -21
  485. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +0 -21
  486. data/lib/stripe/events/v2_money_management_outbound_payment_updated_event.rb +0 -21
  487. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +0 -21
  488. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +0 -21
  489. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +0 -21
  490. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +0 -21
  491. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +0 -21
  492. data/lib/stripe/events/v2_money_management_outbound_transfer_updated_event.rb +0 -21
  493. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +0 -23
  494. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +0 -21
  495. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +0 -21
  496. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +0 -21
  497. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +0 -21
  498. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +0 -21
  499. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +0 -21
  500. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +0 -21
  501. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +0 -21
  502. data/lib/stripe/events/v2_money_management_transaction_created_event.rb +0 -21
  503. data/lib/stripe/events/v2_money_management_transaction_updated_event.rb +0 -21
  504. data/lib/stripe/events/v2_off_session_payment_requires_capture_event.rb +0 -21
  505. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_failed_event.rb +0 -21
  506. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_started_event.rb +0 -21
  507. data/lib/stripe/events/v2_payments_off_session_payment_canceled_event.rb +0 -21
  508. data/lib/stripe/events/v2_payments_off_session_payment_created_event.rb +0 -21
  509. data/lib/stripe/events/v2_payments_off_session_payment_failed_event.rb +0 -21
  510. data/lib/stripe/events/v2_payments_off_session_payment_succeeded_event.rb +0 -21
  511. data/lib/stripe/resources/account_notice.rb +0 -123
  512. data/lib/stripe/resources/balance_settings.rb +0 -105
  513. data/lib/stripe/resources/capital/financing_offer.rb +0 -179
  514. data/lib/stripe/resources/capital/financing_summary.rb +0 -55
  515. data/lib/stripe/resources/capital/financing_transaction.rb +0 -114
  516. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -27
  517. data/lib/stripe/resources/financial_connections/institution.rb +0 -92
  518. data/lib/stripe/resources/fx_quote.rb +0 -184
  519. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -602
  520. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +0 -82
  521. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +0 -86
  522. data/lib/stripe/resources/issuing/settlement.rb +0 -53
  523. data/lib/stripe/resources/margin.rb +0 -115
  524. data/lib/stripe/resources/order.rb +0 -2958
  525. data/lib/stripe/resources/payment_attempt_record.rb +0 -1099
  526. data/lib/stripe/resources/payment_intent_amount_details_line_item.rb +0 -72
  527. data/lib/stripe/resources/payment_record.rb +0 -1628
  528. data/lib/stripe/resources/privacy/redaction_job.rb +0 -298
  529. data/lib/stripe/resources/privacy/redaction_job_validation_error.rb +0 -33
  530. data/lib/stripe/resources/quote_line.rb +0 -274
  531. data/lib/stripe/resources/quote_preview_invoice.rb +0 -663
  532. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -371
  533. data/lib/stripe/resources/tax/association.rb +0 -66
  534. data/lib/stripe/resources/tax/form.rb +0 -211
  535. data/lib/stripe/resources/terminal/reader_collected_data.rb +0 -31
  536. data/lib/stripe/resources/v2/core/account.rb +0 -1755
  537. data/lib/stripe/resources/v2/core/account_link.rb +0 -56
  538. data/lib/stripe/resources/v2/core/person.rb +0 -276
  539. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +0 -74
  540. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +0 -39
  541. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +0 -20
  542. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +0 -22
  543. data/lib/stripe/resources/v2/money_management/adjustment.rb +0 -51
  544. data/lib/stripe/resources/v2/money_management/financial_account.rb +0 -58
  545. data/lib/stripe/resources/v2/money_management/financial_address.rb +0 -68
  546. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +0 -94
  547. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +0 -129
  548. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +0 -82
  549. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +0 -45
  550. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +0 -117
  551. data/lib/stripe/resources/v2/money_management/payout_method.rb +0 -75
  552. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +0 -49
  553. data/lib/stripe/resources/v2/money_management/received_credit.rb +0 -122
  554. data/lib/stripe/resources/v2/money_management/received_debit.rb +0 -84
  555. data/lib/stripe/resources/v2/money_management/transaction.rb +0 -78
  556. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +0 -68
  557. data/lib/stripe/resources/v2/payments/off_session_payment.rb +0 -72
  558. data/lib/stripe/services/account_notice_service.rb +0 -101
  559. data/lib/stripe/services/balance_settings_service.rb +0 -96
  560. data/lib/stripe/services/capital/financing_offer_service.rb +0 -112
  561. data/lib/stripe/services/capital/financing_summary_service.rb +0 -28
  562. data/lib/stripe/services/capital/financing_transaction_service.rb +0 -79
  563. data/lib/stripe/services/capital_service.rb +0 -15
  564. data/lib/stripe/services/fx_quote_service.rb +0 -123
  565. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +0 -504
  566. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +0 -66
  567. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +0 -83
  568. data/lib/stripe/services/margin_service.rb +0 -119
  569. data/lib/stripe/services/order_service.rb +0 -2388
  570. data/lib/stripe/services/payment_attempt_record_service.rb +0 -49
  571. data/lib/stripe/services/payment_record_service.rb +0 -542
  572. data/lib/stripe/services/privacy/redaction_job_service.rb +0 -240
  573. data/lib/stripe/services/privacy_service.rb +0 -13
  574. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +0 -35
  575. data/lib/stripe/services/tax/association_service.rb +0 -31
  576. data/lib/stripe/services/tax/form_service.rb +0 -100
  577. data/lib/stripe/services/terminal/reader_collected_data_service.rb +0 -28
  578. data/lib/stripe/services/v2/core/account_link_service.rb +0 -76
  579. data/lib/stripe/services/v2/core/account_service.rb +0 -4170
  580. data/lib/stripe/services/v2/core/accounts/person_service.rb +0 -1045
  581. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +0 -130
  582. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +0 -107
  583. data/lib/stripe/services/v2/core/vault_service.rb +0 -18
  584. data/lib/stripe/services/v2/money_management/adjustment_service.rb +0 -74
  585. data/lib/stripe/services/v2/money_management/financial_account_service.rb +0 -43
  586. data/lib/stripe/services/v2/money_management/financial_address_service.rb +0 -82
  587. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +0 -125
  588. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +0 -95
  589. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +0 -199
  590. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +0 -235
  591. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +0 -172
  592. data/lib/stripe/services/v2/money_management/payout_method_service.rb +0 -90
  593. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +0 -32
  594. data/lib/stripe/services/v2/money_management/received_credit_service.rb +0 -70
  595. data/lib/stripe/services/v2/money_management/received_debit_service.rb +0 -43
  596. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +0 -69
  597. data/lib/stripe/services/v2/money_management/transaction_service.rb +0 -73
  598. data/lib/stripe/services/v2/money_management_service.rb +0 -31
  599. data/lib/stripe/services/v2/payment_service.rb +0 -15
  600. data/lib/stripe/services/v2/payments/off_session_payment_service.rb +0 -137
  601. data/lib/stripe/services/v2/test_helper_service.rb +0 -15
  602. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +0 -49
  603. data/rbi/stripe.rbi +0 -193855
@@ -0,0 +1,1333 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ # typed: true
5
+ module Stripe
6
+ class SubscriptionScheduleService < StripeService
7
+ class ListParams < Stripe::RequestParams
8
+ class CanceledAt < Stripe::RequestParams
9
+ # Minimum value to filter by (exclusive)
10
+ sig { returns(T.nilable(Integer)) }
11
+ attr_accessor :gt
12
+ # Minimum value to filter by (inclusive)
13
+ sig { returns(T.nilable(Integer)) }
14
+ attr_accessor :gte
15
+ # Maximum value to filter by (exclusive)
16
+ sig { returns(T.nilable(Integer)) }
17
+ attr_accessor :lt
18
+ # Maximum value to filter by (inclusive)
19
+ sig { returns(T.nilable(Integer)) }
20
+ attr_accessor :lte
21
+ sig {
22
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
23
+ }
24
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
25
+ end
26
+ class CompletedAt < Stripe::RequestParams
27
+ # Minimum value to filter by (exclusive)
28
+ sig { returns(T.nilable(Integer)) }
29
+ attr_accessor :gt
30
+ # Minimum value to filter by (inclusive)
31
+ sig { returns(T.nilable(Integer)) }
32
+ attr_accessor :gte
33
+ # Maximum value to filter by (exclusive)
34
+ sig { returns(T.nilable(Integer)) }
35
+ attr_accessor :lt
36
+ # Maximum value to filter by (inclusive)
37
+ sig { returns(T.nilable(Integer)) }
38
+ attr_accessor :lte
39
+ sig {
40
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
41
+ }
42
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
43
+ end
44
+ class Created < Stripe::RequestParams
45
+ # Minimum value to filter by (exclusive)
46
+ sig { returns(T.nilable(Integer)) }
47
+ attr_accessor :gt
48
+ # Minimum value to filter by (inclusive)
49
+ sig { returns(T.nilable(Integer)) }
50
+ attr_accessor :gte
51
+ # Maximum value to filter by (exclusive)
52
+ sig { returns(T.nilable(Integer)) }
53
+ attr_accessor :lt
54
+ # Maximum value to filter by (inclusive)
55
+ sig { returns(T.nilable(Integer)) }
56
+ attr_accessor :lte
57
+ sig {
58
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
59
+ }
60
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
61
+ end
62
+ class ReleasedAt < Stripe::RequestParams
63
+ # Minimum value to filter by (exclusive)
64
+ sig { returns(T.nilable(Integer)) }
65
+ attr_accessor :gt
66
+ # Minimum value to filter by (inclusive)
67
+ sig { returns(T.nilable(Integer)) }
68
+ attr_accessor :gte
69
+ # Maximum value to filter by (exclusive)
70
+ sig { returns(T.nilable(Integer)) }
71
+ attr_accessor :lt
72
+ # Maximum value to filter by (inclusive)
73
+ sig { returns(T.nilable(Integer)) }
74
+ attr_accessor :lte
75
+ sig {
76
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
77
+ }
78
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
79
+ end
80
+ # Only return subscription schedules that were created canceled the given date interval.
81
+ sig {
82
+ returns(T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::CanceledAt, Integer)))
83
+ }
84
+ attr_accessor :canceled_at
85
+ # Only return subscription schedules that completed during the given date interval.
86
+ sig {
87
+ returns(T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::CompletedAt, Integer)))
88
+ }
89
+ attr_accessor :completed_at
90
+ # Only return subscription schedules that were created during the given date interval.
91
+ sig {
92
+ returns(T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::Created, Integer)))
93
+ }
94
+ attr_accessor :created
95
+ # Only return subscription schedules for the given customer.
96
+ sig { returns(T.nilable(String)) }
97
+ attr_accessor :customer
98
+ # 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.
99
+ sig { returns(T.nilable(String)) }
100
+ attr_accessor :ending_before
101
+ # Specifies which fields in the response should be expanded.
102
+ sig { returns(T.nilable(T::Array[String])) }
103
+ attr_accessor :expand
104
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
105
+ sig { returns(T.nilable(Integer)) }
106
+ attr_accessor :limit
107
+ # Only return subscription schedules that were released during the given date interval.
108
+ sig {
109
+ returns(T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::ReleasedAt, Integer)))
110
+ }
111
+ attr_accessor :released_at
112
+ # Only return subscription schedules that have not started yet.
113
+ sig { returns(T.nilable(T::Boolean)) }
114
+ attr_accessor :scheduled
115
+ # 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.
116
+ sig { returns(T.nilable(String)) }
117
+ attr_accessor :starting_after
118
+ sig {
119
+ params(canceled_at: T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::CanceledAt, Integer)), completed_at: T.nilable(T.any(::Stripe::SubscriptionScheduleService::ListParams::CompletedAt, Integer)), created: T.nilable(T.any(::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::ListParams::ReleasedAt, Integer)), scheduled: T.nilable(T::Boolean), starting_after: T.nilable(String)).void
120
+ }
121
+ def initialize(
122
+ canceled_at: nil,
123
+ completed_at: nil,
124
+ created: nil,
125
+ customer: nil,
126
+ ending_before: nil,
127
+ expand: nil,
128
+ limit: nil,
129
+ released_at: nil,
130
+ scheduled: nil,
131
+ starting_after: nil
132
+ ); end
133
+ end
134
+ class CreateParams < Stripe::RequestParams
135
+ class BillingMode < Stripe::RequestParams
136
+ # Controls the calculation and orchestration of prorations and invoices for subscriptions.
137
+ sig { returns(String) }
138
+ attr_accessor :type
139
+ sig { params(type: String).void }
140
+ def initialize(type: nil); end
141
+ end
142
+ class DefaultSettings < Stripe::RequestParams
143
+ class AutomaticTax < Stripe::RequestParams
144
+ class Liability < Stripe::RequestParams
145
+ # The connected account being referenced when `type` is `account`.
146
+ sig { returns(T.nilable(String)) }
147
+ attr_accessor :account
148
+ # Type of the account referenced in the request.
149
+ sig { returns(String) }
150
+ attr_accessor :type
151
+ sig { params(account: T.nilable(String), type: String).void }
152
+ def initialize(account: nil, type: nil); end
153
+ end
154
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
155
+ sig { returns(T::Boolean) }
156
+ attr_accessor :enabled
157
+ # 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.
158
+ sig {
159
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax::Liability))
160
+ }
161
+ attr_accessor :liability
162
+ sig {
163
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax::Liability)).void
164
+ }
165
+ def initialize(enabled: nil, liability: nil); end
166
+ end
167
+ class BillingThresholds < Stripe::RequestParams
168
+ # Monetary threshold that triggers the subscription to advance to a new billing period
169
+ sig { returns(T.nilable(Integer)) }
170
+ attr_accessor :amount_gte
171
+ # 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.
172
+ sig { returns(T.nilable(T::Boolean)) }
173
+ attr_accessor :reset_billing_cycle_anchor
174
+ sig {
175
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
176
+ }
177
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
178
+ end
179
+ class InvoiceSettings < Stripe::RequestParams
180
+ class Issuer < Stripe::RequestParams
181
+ # The connected account being referenced when `type` is `account`.
182
+ sig { returns(T.nilable(String)) }
183
+ attr_accessor :account
184
+ # Type of the account referenced in the request.
185
+ sig { returns(String) }
186
+ attr_accessor :type
187
+ sig { params(account: T.nilable(String), type: String).void }
188
+ def initialize(account: nil, type: nil); end
189
+ end
190
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
191
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
192
+ attr_accessor :account_tax_ids
193
+ # 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`.
194
+ sig { returns(T.nilable(Integer)) }
195
+ attr_accessor :days_until_due
196
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
197
+ sig {
198
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings::Issuer))
199
+ }
200
+ attr_accessor :issuer
201
+ sig {
202
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings::Issuer)).void
203
+ }
204
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
205
+ end
206
+ class TransferData < Stripe::RequestParams
207
+ # 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.
208
+ sig { returns(T.nilable(Float)) }
209
+ attr_accessor :amount_percent
210
+ # ID of an existing, connected Stripe account.
211
+ sig { returns(String) }
212
+ attr_accessor :destination
213
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
214
+ def initialize(amount_percent: nil, destination: nil); end
215
+ end
216
+ # 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).
217
+ sig { returns(T.nilable(Float)) }
218
+ attr_accessor :application_fee_percent
219
+ # Default settings for automatic tax computation.
220
+ sig {
221
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax))
222
+ }
223
+ attr_accessor :automatic_tax
224
+ # 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).
225
+ sig { returns(T.nilable(String)) }
226
+ attr_accessor :billing_cycle_anchor
227
+ # 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.
228
+ sig {
229
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::BillingThresholds))))
230
+ }
231
+ attr_accessor :billing_thresholds
232
+ # 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.
233
+ sig { returns(T.nilable(String)) }
234
+ attr_accessor :collection_method
235
+ # 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.
236
+ sig { returns(T.nilable(String)) }
237
+ attr_accessor :default_payment_method
238
+ # 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.
239
+ sig { returns(T.nilable(T.nilable(String))) }
240
+ attr_accessor :description
241
+ # All invoices will be billed using the specified settings.
242
+ sig {
243
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings))
244
+ }
245
+ attr_accessor :invoice_settings
246
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
247
+ sig { returns(T.nilable(T.nilable(String))) }
248
+ attr_accessor :on_behalf_of
249
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
250
+ sig {
251
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::TransferData))))
252
+ }
253
+ attr_accessor :transfer_data
254
+ sig {
255
+ params(application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::CreateParams::DefaultSettings::InvoiceSettings), on_behalf_of: T.nilable(T.nilable(String)), transfer_data: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings::TransferData)))).void
256
+ }
257
+ def initialize(
258
+ application_fee_percent: nil,
259
+ automatic_tax: nil,
260
+ billing_cycle_anchor: nil,
261
+ billing_thresholds: nil,
262
+ collection_method: nil,
263
+ default_payment_method: nil,
264
+ description: nil,
265
+ invoice_settings: nil,
266
+ on_behalf_of: nil,
267
+ transfer_data: nil
268
+ ); end
269
+ end
270
+ class Phase < Stripe::RequestParams
271
+ class AddInvoiceItem < Stripe::RequestParams
272
+ class Discount < Stripe::RequestParams
273
+ # ID of the coupon to create a new discount for.
274
+ sig { returns(T.nilable(String)) }
275
+ attr_accessor :coupon
276
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
277
+ sig { returns(T.nilable(String)) }
278
+ attr_accessor :discount
279
+ # ID of the promotion code to create a new discount for.
280
+ sig { returns(T.nilable(String)) }
281
+ attr_accessor :promotion_code
282
+ sig {
283
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
284
+ }
285
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
286
+ end
287
+ class PriceData < Stripe::RequestParams
288
+ # 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).
289
+ sig { returns(String) }
290
+ attr_accessor :currency
291
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
292
+ sig { returns(String) }
293
+ attr_accessor :product
294
+ # 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.
295
+ sig { returns(T.nilable(String)) }
296
+ attr_accessor :tax_behavior
297
+ # 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.
298
+ sig { returns(T.nilable(Integer)) }
299
+ attr_accessor :unit_amount
300
+ # 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.
301
+ sig { returns(T.nilable(String)) }
302
+ attr_accessor :unit_amount_decimal
303
+ sig {
304
+ params(currency: String, product: String, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
305
+ }
306
+ def initialize(
307
+ currency: nil,
308
+ product: nil,
309
+ tax_behavior: nil,
310
+ unit_amount: nil,
311
+ unit_amount_decimal: nil
312
+ ); end
313
+ end
314
+ # The coupons to redeem into discounts for the item.
315
+ sig {
316
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount]))
317
+ }
318
+ attr_accessor :discounts
319
+ # The ID of the price object. One of `price` or `price_data` is required.
320
+ sig { returns(T.nilable(String)) }
321
+ attr_accessor :price
322
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
323
+ sig {
324
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::PriceData))
325
+ }
326
+ attr_accessor :price_data
327
+ # Quantity for this item. Defaults to 1.
328
+ sig { returns(T.nilable(Integer)) }
329
+ attr_accessor :quantity
330
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
331
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
332
+ attr_accessor :tax_rates
333
+ sig {
334
+ params(discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::Discount]), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
335
+ }
336
+ def initialize(
337
+ discounts: nil,
338
+ price: nil,
339
+ price_data: nil,
340
+ quantity: nil,
341
+ tax_rates: nil
342
+ ); end
343
+ end
344
+ class AutomaticTax < Stripe::RequestParams
345
+ class Liability < Stripe::RequestParams
346
+ # The connected account being referenced when `type` is `account`.
347
+ sig { returns(T.nilable(String)) }
348
+ attr_accessor :account
349
+ # Type of the account referenced in the request.
350
+ sig { returns(String) }
351
+ attr_accessor :type
352
+ sig { params(account: T.nilable(String), type: String).void }
353
+ def initialize(account: nil, type: nil); end
354
+ end
355
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
356
+ sig { returns(T::Boolean) }
357
+ attr_accessor :enabled
358
+ # 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.
359
+ sig {
360
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax::Liability))
361
+ }
362
+ attr_accessor :liability
363
+ sig {
364
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax::Liability)).void
365
+ }
366
+ def initialize(enabled: nil, liability: nil); end
367
+ end
368
+ class BillingThresholds < Stripe::RequestParams
369
+ # Monetary threshold that triggers the subscription to advance to a new billing period
370
+ sig { returns(T.nilable(Integer)) }
371
+ attr_accessor :amount_gte
372
+ # 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.
373
+ sig { returns(T.nilable(T::Boolean)) }
374
+ attr_accessor :reset_billing_cycle_anchor
375
+ sig {
376
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
377
+ }
378
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
379
+ end
380
+ class Discount < Stripe::RequestParams
381
+ # ID of the coupon to create a new discount for.
382
+ sig { returns(T.nilable(String)) }
383
+ attr_accessor :coupon
384
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
385
+ sig { returns(T.nilable(String)) }
386
+ attr_accessor :discount
387
+ # ID of the promotion code to create a new discount for.
388
+ sig { returns(T.nilable(String)) }
389
+ attr_accessor :promotion_code
390
+ sig {
391
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
392
+ }
393
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
394
+ end
395
+ class Duration < Stripe::RequestParams
396
+ # Specifies phase duration. Either `day`, `week`, `month` or `year`.
397
+ sig { returns(String) }
398
+ attr_accessor :interval
399
+ # The multiplier applied to the interval.
400
+ sig { returns(T.nilable(Integer)) }
401
+ attr_accessor :interval_count
402
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
403
+ def initialize(interval: nil, interval_count: nil); end
404
+ end
405
+ class InvoiceSettings < Stripe::RequestParams
406
+ class Issuer < Stripe::RequestParams
407
+ # The connected account being referenced when `type` is `account`.
408
+ sig { returns(T.nilable(String)) }
409
+ attr_accessor :account
410
+ # Type of the account referenced in the request.
411
+ sig { returns(String) }
412
+ attr_accessor :type
413
+ sig { params(account: T.nilable(String), type: String).void }
414
+ def initialize(account: nil, type: nil); end
415
+ end
416
+ # 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.
417
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
418
+ attr_accessor :account_tax_ids
419
+ # 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`.
420
+ sig { returns(T.nilable(Integer)) }
421
+ attr_accessor :days_until_due
422
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
423
+ sig {
424
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings::Issuer))
425
+ }
426
+ attr_accessor :issuer
427
+ sig {
428
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings::Issuer)).void
429
+ }
430
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
431
+ end
432
+ class Item < Stripe::RequestParams
433
+ class BillingThresholds < Stripe::RequestParams
434
+ # 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))
435
+ sig { returns(Integer) }
436
+ attr_accessor :usage_gte
437
+ sig { params(usage_gte: Integer).void }
438
+ def initialize(usage_gte: nil); end
439
+ end
440
+ class Discount < Stripe::RequestParams
441
+ # ID of the coupon to create a new discount for.
442
+ sig { returns(T.nilable(String)) }
443
+ attr_accessor :coupon
444
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
445
+ sig { returns(T.nilable(String)) }
446
+ attr_accessor :discount
447
+ # ID of the promotion code to create a new discount for.
448
+ sig { returns(T.nilable(String)) }
449
+ attr_accessor :promotion_code
450
+ sig {
451
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
452
+ }
453
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
454
+ end
455
+ class PriceData < Stripe::RequestParams
456
+ class Recurring < Stripe::RequestParams
457
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
458
+ sig { returns(String) }
459
+ attr_accessor :interval
460
+ # 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).
461
+ sig { returns(T.nilable(Integer)) }
462
+ attr_accessor :interval_count
463
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
464
+ def initialize(interval: nil, interval_count: nil); end
465
+ end
466
+ # 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).
467
+ sig { returns(String) }
468
+ attr_accessor :currency
469
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
470
+ sig { returns(String) }
471
+ attr_accessor :product
472
+ # The recurring components of a price such as `interval` and `interval_count`.
473
+ sig {
474
+ returns(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData::Recurring)
475
+ }
476
+ attr_accessor :recurring
477
+ # 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.
478
+ sig { returns(T.nilable(String)) }
479
+ attr_accessor :tax_behavior
480
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
481
+ sig { returns(T.nilable(Integer)) }
482
+ attr_accessor :unit_amount
483
+ # 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.
484
+ sig { returns(T.nilable(String)) }
485
+ attr_accessor :unit_amount_decimal
486
+ sig {
487
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData::Recurring, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
488
+ }
489
+ def initialize(
490
+ currency: nil,
491
+ product: nil,
492
+ recurring: nil,
493
+ tax_behavior: nil,
494
+ unit_amount: nil,
495
+ unit_amount_decimal: nil
496
+ ); end
497
+ end
498
+ # 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.
499
+ sig {
500
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::BillingThresholds))))
501
+ }
502
+ attr_accessor :billing_thresholds
503
+ # The coupons to redeem into discounts for the subscription item.
504
+ sig {
505
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount]))))
506
+ }
507
+ attr_accessor :discounts
508
+ # 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`.
509
+ sig { returns(T.nilable(T::Hash[String, String])) }
510
+ attr_accessor :metadata
511
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
512
+ sig { returns(T.nilable(String)) }
513
+ attr_accessor :plan
514
+ # The ID of the price object.
515
+ sig { returns(T.nilable(String)) }
516
+ attr_accessor :price
517
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
518
+ sig {
519
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData))
520
+ }
521
+ attr_accessor :price_data
522
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
523
+ sig { returns(T.nilable(Integer)) }
524
+ attr_accessor :quantity
525
+ # 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.
526
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
527
+ attr_accessor :tax_rates
528
+ sig {
529
+ params(billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::BillingThresholds))), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::Discount]))), metadata: T.nilable(T::Hash[String, String]), plan: T.nilable(String), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
530
+ }
531
+ def initialize(
532
+ billing_thresholds: nil,
533
+ discounts: nil,
534
+ metadata: nil,
535
+ plan: nil,
536
+ price: nil,
537
+ price_data: nil,
538
+ quantity: nil,
539
+ tax_rates: nil
540
+ ); end
541
+ end
542
+ class TransferData < Stripe::RequestParams
543
+ # 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.
544
+ sig { returns(T.nilable(Float)) }
545
+ attr_accessor :amount_percent
546
+ # ID of an existing, connected Stripe account.
547
+ sig { returns(String) }
548
+ attr_accessor :destination
549
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
550
+ def initialize(amount_percent: nil, destination: nil); end
551
+ end
552
+ # 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.
553
+ sig {
554
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem]))
555
+ }
556
+ attr_accessor :add_invoice_items
557
+ # 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).
558
+ sig { returns(T.nilable(Float)) }
559
+ attr_accessor :application_fee_percent
560
+ # Automatic tax settings for this phase.
561
+ sig {
562
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax))
563
+ }
564
+ attr_accessor :automatic_tax
565
+ # 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).
566
+ sig { returns(T.nilable(String)) }
567
+ attr_accessor :billing_cycle_anchor
568
+ # 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.
569
+ sig {
570
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::CreateParams::Phase::BillingThresholds))))
571
+ }
572
+ attr_accessor :billing_thresholds
573
+ # 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.
574
+ sig { returns(T.nilable(String)) }
575
+ attr_accessor :collection_method
576
+ # 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).
577
+ sig { returns(T.nilable(String)) }
578
+ attr_accessor :currency
579
+ # 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.
580
+ sig { returns(T.nilable(String)) }
581
+ attr_accessor :default_payment_method
582
+ # 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.
583
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
584
+ attr_accessor :default_tax_rates
585
+ # 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.
586
+ sig { returns(T.nilable(T.nilable(String))) }
587
+ attr_accessor :description
588
+ # 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.
589
+ sig {
590
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Discount]))))
591
+ }
592
+ attr_accessor :discounts
593
+ # The number of intervals the phase should last. If set, `end_date` must not be set.
594
+ sig {
595
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Duration))
596
+ }
597
+ attr_accessor :duration
598
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
599
+ sig { returns(T.nilable(Integer)) }
600
+ attr_accessor :end_date
601
+ # All invoices will be billed using the specified settings.
602
+ sig {
603
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings))
604
+ }
605
+ attr_accessor :invoice_settings
606
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
607
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::Item]) }
608
+ attr_accessor :items
609
+ # 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.
610
+ sig { returns(T.nilable(Integer)) }
611
+ attr_accessor :iterations
612
+ # 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`.
613
+ sig { returns(T.nilable(T::Hash[String, String])) }
614
+ attr_accessor :metadata
615
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
616
+ sig { returns(T.nilable(String)) }
617
+ attr_accessor :on_behalf_of
618
+ # 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.
619
+ sig { returns(T.nilable(String)) }
620
+ attr_accessor :proration_behavior
621
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
622
+ sig {
623
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::TransferData))
624
+ }
625
+ attr_accessor :transfer_data
626
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
627
+ sig { returns(T.nilable(T::Boolean)) }
628
+ attr_accessor :trial
629
+ # 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`
630
+ sig { returns(T.nilable(Integer)) }
631
+ attr_accessor :trial_end
632
+ sig {
633
+ params(add_invoice_items: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase::AddInvoiceItem]), application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::CreateParams::Phase::Discount]))), duration: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::Duration), end_date: T.nilable(Integer), invoice_settings: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::Phase::InvoiceSettings), items: T::Array[::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::CreateParams::Phase::TransferData), trial: T.nilable(T::Boolean), trial_end: T.nilable(Integer)).void
634
+ }
635
+ def initialize(
636
+ add_invoice_items: nil,
637
+ application_fee_percent: nil,
638
+ automatic_tax: nil,
639
+ billing_cycle_anchor: nil,
640
+ billing_thresholds: nil,
641
+ collection_method: nil,
642
+ currency: nil,
643
+ default_payment_method: nil,
644
+ default_tax_rates: nil,
645
+ description: nil,
646
+ discounts: nil,
647
+ duration: nil,
648
+ end_date: nil,
649
+ invoice_settings: nil,
650
+ items: nil,
651
+ iterations: nil,
652
+ metadata: nil,
653
+ on_behalf_of: nil,
654
+ proration_behavior: nil,
655
+ transfer_data: nil,
656
+ trial: nil,
657
+ trial_end: nil
658
+ ); end
659
+ end
660
+ # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
661
+ sig { returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::BillingMode)) }
662
+ attr_accessor :billing_mode
663
+ # The identifier of the customer to create the subscription schedule for.
664
+ sig { returns(T.nilable(String)) }
665
+ attr_accessor :customer
666
+ # Object representing the subscription schedule's default settings.
667
+ sig {
668
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::DefaultSettings))
669
+ }
670
+ attr_accessor :default_settings
671
+ # 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.
672
+ sig { returns(T.nilable(String)) }
673
+ attr_accessor :end_behavior
674
+ # Specifies which fields in the response should be expanded.
675
+ sig { returns(T.nilable(T::Array[String])) }
676
+ attr_accessor :expand
677
+ # 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.
678
+ sig { returns(T.nilable(String)) }
679
+ attr_accessor :from_subscription
680
+ # 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`.
681
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) }
682
+ attr_accessor :metadata
683
+ # 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.
684
+ sig {
685
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::CreateParams::Phase]))
686
+ }
687
+ attr_accessor :phases
688
+ # 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.
689
+ sig { returns(T.nilable(T.any(Integer, String))) }
690
+ attr_accessor :start_date
691
+ sig {
692
+ params(billing_mode: T.nilable(::Stripe::SubscriptionScheduleService::CreateParams::BillingMode), customer: T.nilable(String), default_settings: T.nilable(::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::CreateParams::Phase]), start_date: T.nilable(T.any(Integer, String))).void
693
+ }
694
+ def initialize(
695
+ billing_mode: nil,
696
+ customer: nil,
697
+ default_settings: nil,
698
+ end_behavior: nil,
699
+ expand: nil,
700
+ from_subscription: nil,
701
+ metadata: nil,
702
+ phases: nil,
703
+ start_date: nil
704
+ ); end
705
+ end
706
+ class RetrieveParams < Stripe::RequestParams
707
+ # Specifies which fields in the response should be expanded.
708
+ sig { returns(T.nilable(T::Array[String])) }
709
+ attr_accessor :expand
710
+ sig { params(expand: T.nilable(T::Array[String])).void }
711
+ def initialize(expand: nil); end
712
+ end
713
+ class UpdateParams < Stripe::RequestParams
714
+ class DefaultSettings < Stripe::RequestParams
715
+ class AutomaticTax < Stripe::RequestParams
716
+ class Liability < Stripe::RequestParams
717
+ # The connected account being referenced when `type` is `account`.
718
+ sig { returns(T.nilable(String)) }
719
+ attr_accessor :account
720
+ # Type of the account referenced in the request.
721
+ sig { returns(String) }
722
+ attr_accessor :type
723
+ sig { params(account: T.nilable(String), type: String).void }
724
+ def initialize(account: nil, type: nil); end
725
+ end
726
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
727
+ sig { returns(T::Boolean) }
728
+ attr_accessor :enabled
729
+ # 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.
730
+ sig {
731
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax::Liability))
732
+ }
733
+ attr_accessor :liability
734
+ sig {
735
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax::Liability)).void
736
+ }
737
+ def initialize(enabled: nil, liability: nil); end
738
+ end
739
+ class BillingThresholds < Stripe::RequestParams
740
+ # Monetary threshold that triggers the subscription to advance to a new billing period
741
+ sig { returns(T.nilable(Integer)) }
742
+ attr_accessor :amount_gte
743
+ # 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.
744
+ sig { returns(T.nilable(T::Boolean)) }
745
+ attr_accessor :reset_billing_cycle_anchor
746
+ sig {
747
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
748
+ }
749
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
750
+ end
751
+ class InvoiceSettings < Stripe::RequestParams
752
+ class Issuer < Stripe::RequestParams
753
+ # The connected account being referenced when `type` is `account`.
754
+ sig { returns(T.nilable(String)) }
755
+ attr_accessor :account
756
+ # Type of the account referenced in the request.
757
+ sig { returns(String) }
758
+ attr_accessor :type
759
+ sig { params(account: T.nilable(String), type: String).void }
760
+ def initialize(account: nil, type: nil); end
761
+ end
762
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
763
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
764
+ attr_accessor :account_tax_ids
765
+ # 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`.
766
+ sig { returns(T.nilable(Integer)) }
767
+ attr_accessor :days_until_due
768
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
769
+ sig {
770
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings::Issuer))
771
+ }
772
+ attr_accessor :issuer
773
+ sig {
774
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings::Issuer)).void
775
+ }
776
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
777
+ end
778
+ class TransferData < Stripe::RequestParams
779
+ # 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.
780
+ sig { returns(T.nilable(Float)) }
781
+ attr_accessor :amount_percent
782
+ # ID of an existing, connected Stripe account.
783
+ sig { returns(String) }
784
+ attr_accessor :destination
785
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
786
+ def initialize(amount_percent: nil, destination: nil); end
787
+ end
788
+ # 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).
789
+ sig { returns(T.nilable(Float)) }
790
+ attr_accessor :application_fee_percent
791
+ # Default settings for automatic tax computation.
792
+ sig {
793
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax))
794
+ }
795
+ attr_accessor :automatic_tax
796
+ # 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).
797
+ sig { returns(T.nilable(String)) }
798
+ attr_accessor :billing_cycle_anchor
799
+ # 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.
800
+ sig {
801
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::BillingThresholds))))
802
+ }
803
+ attr_accessor :billing_thresholds
804
+ # 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.
805
+ sig { returns(T.nilable(String)) }
806
+ attr_accessor :collection_method
807
+ # 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.
808
+ sig { returns(T.nilable(String)) }
809
+ attr_accessor :default_payment_method
810
+ # 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.
811
+ sig { returns(T.nilable(T.nilable(String))) }
812
+ attr_accessor :description
813
+ # All invoices will be billed using the specified settings.
814
+ sig {
815
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings))
816
+ }
817
+ attr_accessor :invoice_settings
818
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
819
+ sig { returns(T.nilable(T.nilable(String))) }
820
+ attr_accessor :on_behalf_of
821
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
822
+ sig {
823
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::TransferData))))
824
+ }
825
+ attr_accessor :transfer_data
826
+ sig {
827
+ params(application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::UpdateParams::DefaultSettings::InvoiceSettings), on_behalf_of: T.nilable(T.nilable(String)), transfer_data: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings::TransferData)))).void
828
+ }
829
+ def initialize(
830
+ application_fee_percent: nil,
831
+ automatic_tax: nil,
832
+ billing_cycle_anchor: nil,
833
+ billing_thresholds: nil,
834
+ collection_method: nil,
835
+ default_payment_method: nil,
836
+ description: nil,
837
+ invoice_settings: nil,
838
+ on_behalf_of: nil,
839
+ transfer_data: nil
840
+ ); end
841
+ end
842
+ class Phase < Stripe::RequestParams
843
+ class AddInvoiceItem < Stripe::RequestParams
844
+ class Discount < Stripe::RequestParams
845
+ # ID of the coupon to create a new discount for.
846
+ sig { returns(T.nilable(String)) }
847
+ attr_accessor :coupon
848
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
849
+ sig { returns(T.nilable(String)) }
850
+ attr_accessor :discount
851
+ # ID of the promotion code to create a new discount for.
852
+ sig { returns(T.nilable(String)) }
853
+ attr_accessor :promotion_code
854
+ sig {
855
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
856
+ }
857
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
858
+ end
859
+ class PriceData < Stripe::RequestParams
860
+ # 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).
861
+ sig { returns(String) }
862
+ attr_accessor :currency
863
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
864
+ sig { returns(String) }
865
+ attr_accessor :product
866
+ # 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.
867
+ sig { returns(T.nilable(String)) }
868
+ attr_accessor :tax_behavior
869
+ # 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.
870
+ sig { returns(T.nilable(Integer)) }
871
+ attr_accessor :unit_amount
872
+ # 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.
873
+ sig { returns(T.nilable(String)) }
874
+ attr_accessor :unit_amount_decimal
875
+ sig {
876
+ params(currency: String, product: String, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
877
+ }
878
+ def initialize(
879
+ currency: nil,
880
+ product: nil,
881
+ tax_behavior: nil,
882
+ unit_amount: nil,
883
+ unit_amount_decimal: nil
884
+ ); end
885
+ end
886
+ # The coupons to redeem into discounts for the item.
887
+ sig {
888
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount]))
889
+ }
890
+ attr_accessor :discounts
891
+ # The ID of the price object. One of `price` or `price_data` is required.
892
+ sig { returns(T.nilable(String)) }
893
+ attr_accessor :price
894
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
895
+ sig {
896
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::PriceData))
897
+ }
898
+ attr_accessor :price_data
899
+ # Quantity for this item. Defaults to 1.
900
+ sig { returns(T.nilable(Integer)) }
901
+ attr_accessor :quantity
902
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
903
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
904
+ attr_accessor :tax_rates
905
+ sig {
906
+ params(discounts: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::Discount]), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
907
+ }
908
+ def initialize(
909
+ discounts: nil,
910
+ price: nil,
911
+ price_data: nil,
912
+ quantity: nil,
913
+ tax_rates: nil
914
+ ); end
915
+ end
916
+ class AutomaticTax < Stripe::RequestParams
917
+ class Liability < Stripe::RequestParams
918
+ # The connected account being referenced when `type` is `account`.
919
+ sig { returns(T.nilable(String)) }
920
+ attr_accessor :account
921
+ # Type of the account referenced in the request.
922
+ sig { returns(String) }
923
+ attr_accessor :type
924
+ sig { params(account: T.nilable(String), type: String).void }
925
+ def initialize(account: nil, type: nil); end
926
+ end
927
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
928
+ sig { returns(T::Boolean) }
929
+ attr_accessor :enabled
930
+ # 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.
931
+ sig {
932
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax::Liability))
933
+ }
934
+ attr_accessor :liability
935
+ sig {
936
+ params(enabled: T::Boolean, liability: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax::Liability)).void
937
+ }
938
+ def initialize(enabled: nil, liability: nil); end
939
+ end
940
+ class BillingThresholds < Stripe::RequestParams
941
+ # Monetary threshold that triggers the subscription to advance to a new billing period
942
+ sig { returns(T.nilable(Integer)) }
943
+ attr_accessor :amount_gte
944
+ # 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.
945
+ sig { returns(T.nilable(T::Boolean)) }
946
+ attr_accessor :reset_billing_cycle_anchor
947
+ sig {
948
+ params(amount_gte: T.nilable(Integer), reset_billing_cycle_anchor: T.nilable(T::Boolean)).void
949
+ }
950
+ def initialize(amount_gte: nil, reset_billing_cycle_anchor: nil); end
951
+ end
952
+ class Discount < Stripe::RequestParams
953
+ # ID of the coupon to create a new discount for.
954
+ sig { returns(T.nilable(String)) }
955
+ attr_accessor :coupon
956
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
957
+ sig { returns(T.nilable(String)) }
958
+ attr_accessor :discount
959
+ # ID of the promotion code to create a new discount for.
960
+ sig { returns(T.nilable(String)) }
961
+ attr_accessor :promotion_code
962
+ sig {
963
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
964
+ }
965
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
966
+ end
967
+ class Duration < Stripe::RequestParams
968
+ # Specifies phase duration. Either `day`, `week`, `month` or `year`.
969
+ sig { returns(String) }
970
+ attr_accessor :interval
971
+ # The multiplier applied to the interval.
972
+ sig { returns(T.nilable(Integer)) }
973
+ attr_accessor :interval_count
974
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
975
+ def initialize(interval: nil, interval_count: nil); end
976
+ end
977
+ class InvoiceSettings < Stripe::RequestParams
978
+ class Issuer < Stripe::RequestParams
979
+ # The connected account being referenced when `type` is `account`.
980
+ sig { returns(T.nilable(String)) }
981
+ attr_accessor :account
982
+ # Type of the account referenced in the request.
983
+ sig { returns(String) }
984
+ attr_accessor :type
985
+ sig { params(account: T.nilable(String), type: String).void }
986
+ def initialize(account: nil, type: nil); end
987
+ end
988
+ # 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.
989
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
990
+ attr_accessor :account_tax_ids
991
+ # 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`.
992
+ sig { returns(T.nilable(Integer)) }
993
+ attr_accessor :days_until_due
994
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
995
+ sig {
996
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings::Issuer))
997
+ }
998
+ attr_accessor :issuer
999
+ sig {
1000
+ params(account_tax_ids: T.nilable(T.nilable(T.any(String, T::Array[String]))), days_until_due: T.nilable(Integer), issuer: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings::Issuer)).void
1001
+ }
1002
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil); end
1003
+ end
1004
+ class Item < Stripe::RequestParams
1005
+ class BillingThresholds < Stripe::RequestParams
1006
+ # 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))
1007
+ sig { returns(Integer) }
1008
+ attr_accessor :usage_gte
1009
+ sig { params(usage_gte: Integer).void }
1010
+ def initialize(usage_gte: nil); end
1011
+ end
1012
+ class Discount < Stripe::RequestParams
1013
+ # ID of the coupon to create a new discount for.
1014
+ sig { returns(T.nilable(String)) }
1015
+ attr_accessor :coupon
1016
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1017
+ sig { returns(T.nilable(String)) }
1018
+ attr_accessor :discount
1019
+ # ID of the promotion code to create a new discount for.
1020
+ sig { returns(T.nilable(String)) }
1021
+ attr_accessor :promotion_code
1022
+ sig {
1023
+ params(coupon: T.nilable(String), discount: T.nilable(String), promotion_code: T.nilable(String)).void
1024
+ }
1025
+ def initialize(coupon: nil, discount: nil, promotion_code: nil); end
1026
+ end
1027
+ class PriceData < Stripe::RequestParams
1028
+ class Recurring < Stripe::RequestParams
1029
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
1030
+ sig { returns(String) }
1031
+ attr_accessor :interval
1032
+ # 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).
1033
+ sig { returns(T.nilable(Integer)) }
1034
+ attr_accessor :interval_count
1035
+ sig { params(interval: String, interval_count: T.nilable(Integer)).void }
1036
+ def initialize(interval: nil, interval_count: nil); end
1037
+ end
1038
+ # 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).
1039
+ sig { returns(String) }
1040
+ attr_accessor :currency
1041
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
1042
+ sig { returns(String) }
1043
+ attr_accessor :product
1044
+ # The recurring components of a price such as `interval` and `interval_count`.
1045
+ sig {
1046
+ returns(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData::Recurring)
1047
+ }
1048
+ attr_accessor :recurring
1049
+ # 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.
1050
+ sig { returns(T.nilable(String)) }
1051
+ attr_accessor :tax_behavior
1052
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
1053
+ sig { returns(T.nilable(Integer)) }
1054
+ attr_accessor :unit_amount
1055
+ # 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.
1056
+ sig { returns(T.nilable(String)) }
1057
+ attr_accessor :unit_amount_decimal
1058
+ sig {
1059
+ params(currency: String, product: String, recurring: ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData::Recurring, tax_behavior: T.nilable(String), unit_amount: T.nilable(Integer), unit_amount_decimal: T.nilable(String)).void
1060
+ }
1061
+ def initialize(
1062
+ currency: nil,
1063
+ product: nil,
1064
+ recurring: nil,
1065
+ tax_behavior: nil,
1066
+ unit_amount: nil,
1067
+ unit_amount_decimal: nil
1068
+ ); end
1069
+ end
1070
+ # 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.
1071
+ sig {
1072
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::BillingThresholds))))
1073
+ }
1074
+ attr_accessor :billing_thresholds
1075
+ # The coupons to redeem into discounts for the subscription item.
1076
+ sig {
1077
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount]))))
1078
+ }
1079
+ attr_accessor :discounts
1080
+ # 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`.
1081
+ sig { returns(T.nilable(T::Hash[String, String])) }
1082
+ attr_accessor :metadata
1083
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
1084
+ sig { returns(T.nilable(String)) }
1085
+ attr_accessor :plan
1086
+ # The ID of the price object.
1087
+ sig { returns(T.nilable(String)) }
1088
+ attr_accessor :price
1089
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
1090
+ sig {
1091
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData))
1092
+ }
1093
+ attr_accessor :price_data
1094
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
1095
+ sig { returns(T.nilable(Integer)) }
1096
+ attr_accessor :quantity
1097
+ # 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.
1098
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1099
+ attr_accessor :tax_rates
1100
+ sig {
1101
+ params(billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::BillingThresholds))), discounts: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::Discount]))), metadata: T.nilable(T::Hash[String, String]), plan: T.nilable(String), price: T.nilable(String), price_data: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item::PriceData), quantity: T.nilable(Integer), tax_rates: T.nilable(T.nilable(T.any(String, T::Array[String])))).void
1102
+ }
1103
+ def initialize(
1104
+ billing_thresholds: nil,
1105
+ discounts: nil,
1106
+ metadata: nil,
1107
+ plan: nil,
1108
+ price: nil,
1109
+ price_data: nil,
1110
+ quantity: nil,
1111
+ tax_rates: nil
1112
+ ); end
1113
+ end
1114
+ class TransferData < Stripe::RequestParams
1115
+ # 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.
1116
+ sig { returns(T.nilable(Float)) }
1117
+ attr_accessor :amount_percent
1118
+ # ID of an existing, connected Stripe account.
1119
+ sig { returns(String) }
1120
+ attr_accessor :destination
1121
+ sig { params(amount_percent: T.nilable(Float), destination: String).void }
1122
+ def initialize(amount_percent: nil, destination: nil); end
1123
+ end
1124
+ # 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.
1125
+ sig {
1126
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem]))
1127
+ }
1128
+ attr_accessor :add_invoice_items
1129
+ # 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).
1130
+ sig { returns(T.nilable(Float)) }
1131
+ attr_accessor :application_fee_percent
1132
+ # Automatic tax settings for this phase.
1133
+ sig {
1134
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax))
1135
+ }
1136
+ attr_accessor :automatic_tax
1137
+ # 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).
1138
+ sig { returns(T.nilable(String)) }
1139
+ attr_accessor :billing_cycle_anchor
1140
+ # 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.
1141
+ sig {
1142
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::UpdateParams::Phase::BillingThresholds))))
1143
+ }
1144
+ attr_accessor :billing_thresholds
1145
+ # 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.
1146
+ sig { returns(T.nilable(String)) }
1147
+ attr_accessor :collection_method
1148
+ # 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).
1149
+ sig { returns(T.nilable(String)) }
1150
+ attr_accessor :currency
1151
+ # 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.
1152
+ sig { returns(T.nilable(String)) }
1153
+ attr_accessor :default_payment_method
1154
+ # 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.
1155
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Array[String])))) }
1156
+ attr_accessor :default_tax_rates
1157
+ # 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.
1158
+ sig { returns(T.nilable(T.nilable(String))) }
1159
+ attr_accessor :description
1160
+ # 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.
1161
+ sig {
1162
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Discount]))))
1163
+ }
1164
+ attr_accessor :discounts
1165
+ # The number of intervals the phase should last. If set, `end_date` must not be set.
1166
+ sig {
1167
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Duration))
1168
+ }
1169
+ attr_accessor :duration
1170
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
1171
+ sig { returns(T.nilable(T.any(Integer, String))) }
1172
+ attr_accessor :end_date
1173
+ # All invoices will be billed using the specified settings.
1174
+ sig {
1175
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings))
1176
+ }
1177
+ attr_accessor :invoice_settings
1178
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
1179
+ sig { returns(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Item]) }
1180
+ attr_accessor :items
1181
+ # 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.
1182
+ sig { returns(T.nilable(Integer)) }
1183
+ attr_accessor :iterations
1184
+ # 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`.
1185
+ sig { returns(T.nilable(T::Hash[String, String])) }
1186
+ attr_accessor :metadata
1187
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
1188
+ sig { returns(T.nilable(String)) }
1189
+ attr_accessor :on_behalf_of
1190
+ # 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.
1191
+ sig { returns(T.nilable(String)) }
1192
+ attr_accessor :proration_behavior
1193
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
1194
+ sig { returns(T.nilable(T.any(Integer, String))) }
1195
+ attr_accessor :start_date
1196
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
1197
+ sig {
1198
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::TransferData))
1199
+ }
1200
+ attr_accessor :transfer_data
1201
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
1202
+ sig { returns(T.nilable(T::Boolean)) }
1203
+ attr_accessor :trial
1204
+ # 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`
1205
+ sig { returns(T.nilable(T.any(Integer, String))) }
1206
+ attr_accessor :trial_end
1207
+ sig {
1208
+ params(add_invoice_items: T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AddInvoiceItem]), application_fee_percent: T.nilable(Float), automatic_tax: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::AutomaticTax), billing_cycle_anchor: T.nilable(String), billing_thresholds: T.nilable(T.nilable(T.any(String, ::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::UpdateParams::Phase::Discount]))), duration: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::Duration), end_date: T.nilable(T.any(Integer, String)), invoice_settings: T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::Phase::InvoiceSettings), items: T::Array[::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::UpdateParams::Phase::TransferData), trial: T.nilable(T::Boolean), trial_end: T.nilable(T.any(Integer, String))).void
1209
+ }
1210
+ def initialize(
1211
+ add_invoice_items: nil,
1212
+ application_fee_percent: nil,
1213
+ automatic_tax: nil,
1214
+ billing_cycle_anchor: nil,
1215
+ billing_thresholds: nil,
1216
+ collection_method: nil,
1217
+ currency: nil,
1218
+ default_payment_method: nil,
1219
+ default_tax_rates: nil,
1220
+ description: nil,
1221
+ discounts: nil,
1222
+ duration: nil,
1223
+ end_date: nil,
1224
+ invoice_settings: nil,
1225
+ items: nil,
1226
+ iterations: nil,
1227
+ metadata: nil,
1228
+ on_behalf_of: nil,
1229
+ proration_behavior: nil,
1230
+ start_date: nil,
1231
+ transfer_data: nil,
1232
+ trial: nil,
1233
+ trial_end: nil
1234
+ ); end
1235
+ end
1236
+ # Object representing the subscription schedule's default settings.
1237
+ sig {
1238
+ returns(T.nilable(::Stripe::SubscriptionScheduleService::UpdateParams::DefaultSettings))
1239
+ }
1240
+ attr_accessor :default_settings
1241
+ # 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.
1242
+ sig { returns(T.nilable(String)) }
1243
+ attr_accessor :end_behavior
1244
+ # Specifies which fields in the response should be expanded.
1245
+ sig { returns(T.nilable(T::Array[String])) }
1246
+ attr_accessor :expand
1247
+ # 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`.
1248
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) }
1249
+ attr_accessor :metadata
1250
+ # 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.
1251
+ sig {
1252
+ returns(T.nilable(T::Array[::Stripe::SubscriptionScheduleService::UpdateParams::Phase]))
1253
+ }
1254
+ attr_accessor :phases
1255
+ # 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`.
1256
+ sig { returns(T.nilable(String)) }
1257
+ attr_accessor :proration_behavior
1258
+ sig {
1259
+ params(default_settings: T.nilable(::Stripe::SubscriptionScheduleService::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::SubscriptionScheduleService::UpdateParams::Phase]), proration_behavior: T.nilable(String)).void
1260
+ }
1261
+ def initialize(
1262
+ default_settings: nil,
1263
+ end_behavior: nil,
1264
+ expand: nil,
1265
+ metadata: nil,
1266
+ phases: nil,
1267
+ proration_behavior: nil
1268
+ ); end
1269
+ end
1270
+ class CancelParams < Stripe::RequestParams
1271
+ # Specifies which fields in the response should be expanded.
1272
+ sig { returns(T.nilable(T::Array[String])) }
1273
+ attr_accessor :expand
1274
+ # 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`.
1275
+ sig { returns(T.nilable(T::Boolean)) }
1276
+ attr_accessor :invoice_now
1277
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
1278
+ sig { returns(T.nilable(T::Boolean)) }
1279
+ attr_accessor :prorate
1280
+ sig {
1281
+ params(expand: T.nilable(T::Array[String]), invoice_now: T.nilable(T::Boolean), prorate: T.nilable(T::Boolean)).void
1282
+ }
1283
+ def initialize(expand: nil, invoice_now: nil, prorate: nil); end
1284
+ end
1285
+ class ReleaseParams < Stripe::RequestParams
1286
+ # Specifies which fields in the response should be expanded.
1287
+ sig { returns(T.nilable(T::Array[String])) }
1288
+ attr_accessor :expand
1289
+ # Keep any cancellation on the subscription that the schedule has set
1290
+ sig { returns(T.nilable(T::Boolean)) }
1291
+ attr_accessor :preserve_cancel_date
1292
+ sig {
1293
+ params(expand: T.nilable(T::Array[String]), preserve_cancel_date: T.nilable(T::Boolean)).void
1294
+ }
1295
+ def initialize(expand: nil, preserve_cancel_date: nil); end
1296
+ end
1297
+ # 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.
1298
+ sig {
1299
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1300
+ }
1301
+ def cancel(schedule, params = {}, opts = {}); end
1302
+
1303
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
1304
+ sig {
1305
+ params(params: T.any(::Stripe::SubscriptionScheduleService::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1306
+ }
1307
+ def create(params = {}, opts = {}); end
1308
+
1309
+ # Retrieves the list of your subscription schedules.
1310
+ sig {
1311
+ params(params: T.any(::Stripe::SubscriptionScheduleService::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject)
1312
+ }
1313
+ def list(params = {}, opts = {}); end
1314
+
1315
+ # 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.
1316
+ sig {
1317
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::ReleaseParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1318
+ }
1319
+ def release(schedule, params = {}, opts = {}); end
1320
+
1321
+ # Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.
1322
+ sig {
1323
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::RetrieveParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1324
+ }
1325
+ def retrieve(schedule, params = {}, opts = {}); end
1326
+
1327
+ # Updates an existing subscription schedule.
1328
+ sig {
1329
+ params(schedule: String, params: T.any(::Stripe::SubscriptionScheduleService::UpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SubscriptionSchedule)
1330
+ }
1331
+ def update(schedule, params = {}, opts = {}); end
1332
+ end
1333
+ end