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