stripe 12.5.0 → 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 (688) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +197 -9
  3. data/Gemfile +4 -0
  4. data/Makefile +2 -0
  5. data/OPENAPI_VERSION +1 -1
  6. data/README.md +48 -13
  7. data/Rakefile +0 -5
  8. data/VERSION +1 -1
  9. data/examples/README.md +16 -0
  10. data/examples/example_template.rb +36 -0
  11. data/examples/meter_event_stream.rb +57 -0
  12. data/examples/thinevent_webhook_handler.rb +39 -0
  13. data/justfile +43 -0
  14. data/lib/stripe/api_operations/nested_resource.rb +1 -21
  15. data/lib/stripe/api_operations/request.rb +20 -69
  16. data/lib/stripe/api_operations/save.rb +5 -3
  17. data/lib/stripe/api_operations/singleton_save.rb +6 -2
  18. data/lib/stripe/api_requestor.rb +1136 -0
  19. data/lib/stripe/api_resource.rb +38 -17
  20. data/lib/stripe/api_version.rb +1 -1
  21. data/lib/stripe/connection_manager.rb +1 -1
  22. data/lib/stripe/errors.rb +8 -9
  23. data/lib/stripe/event_types.rb +14 -0
  24. data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
  25. data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
  26. data/lib/stripe/list_object.rb +2 -3
  27. data/lib/stripe/oauth.rb +8 -15
  28. data/lib/stripe/object_types.rb +26 -3
  29. data/lib/stripe/request_options.rb +129 -0
  30. data/lib/stripe/request_params.rb +24 -0
  31. data/lib/stripe/resources/account.rb +4642 -8
  32. data/lib/stripe/resources/account_link.rb +54 -0
  33. data/lib/stripe/resources/account_session.rb +739 -0
  34. data/lib/stripe/resources/apple_pay_domain.rb +58 -9
  35. data/lib/stripe/resources/application.rb +20 -0
  36. data/lib/stripe/resources/application_fee.rb +89 -2
  37. data/lib/stripe/resources/application_fee_refund.rb +17 -0
  38. data/lib/stripe/resources/apps/secret.rb +143 -2
  39. data/lib/stripe/resources/balance.rb +122 -0
  40. data/lib/stripe/resources/balance_transaction.rb +105 -2
  41. data/lib/stripe/resources/bank_account.rb +85 -3
  42. data/lib/stripe/resources/billing/alert.rb +137 -2
  43. data/lib/stripe/resources/billing/alert_triggered.rb +26 -0
  44. data/lib/stripe/resources/billing/credit_balance_summary.rb +54 -0
  45. data/lib/stripe/resources/billing/credit_balance_transaction.rb +133 -0
  46. data/lib/stripe/resources/billing/credit_grant.rb +307 -0
  47. data/lib/stripe/resources/billing/meter.rb +180 -9
  48. data/lib/stripe/resources/billing/meter_event.rb +37 -3
  49. data/lib/stripe/resources/billing/meter_event_adjustment.rb +44 -1
  50. data/lib/stripe/resources/billing/meter_event_summary.rb +17 -0
  51. data/lib/stripe/resources/billing_portal/configuration.rb +557 -4
  52. data/lib/stripe/resources/billing_portal/session.rb +271 -0
  53. data/lib/stripe/resources/capability.rb +84 -0
  54. data/lib/stripe/resources/card.rb +78 -1
  55. data/lib/stripe/resources/cash_balance.rb +17 -0
  56. data/lib/stripe/resources/charge.rb +1616 -4
  57. data/lib/stripe/resources/checkout/session.rb +3534 -10
  58. data/lib/stripe/resources/climate/order.rb +171 -4
  59. data/lib/stripe/resources/climate/product.rb +49 -2
  60. data/lib/stripe/resources/climate/supplier.rb +47 -2
  61. data/lib/stripe/resources/confirmation_token.rb +1448 -0
  62. data/lib/stripe/resources/connect_collection_transfer.rb +24 -0
  63. data/lib/stripe/resources/country_spec.rb +56 -2
  64. data/lib/stripe/resources/coupon.rb +195 -6
  65. data/lib/stripe/resources/credit_note.rb +641 -2
  66. data/lib/stripe/resources/credit_note_line_item.rb +67 -0
  67. data/lib/stripe/resources/customer.rb +832 -9
  68. data/lib/stripe/resources/customer_balance_transaction.rb +29 -0
  69. data/lib/stripe/resources/customer_cash_balance_transaction.rb +109 -0
  70. data/lib/stripe/resources/customer_session.rb +163 -0
  71. data/lib/stripe/resources/discount.rb +29 -0
  72. data/lib/stripe/resources/dispute.rb +614 -4
  73. data/lib/stripe/resources/entitlements/active_entitlement.rb +39 -2
  74. data/lib/stripe/resources/entitlements/active_entitlement_summary.rb +23 -0
  75. data/lib/stripe/resources/entitlements/feature.rb +83 -2
  76. data/lib/stripe/resources/ephemeral_key.rb +23 -2
  77. data/lib/stripe/resources/event.rb +92 -2
  78. data/lib/stripe/resources/exchange_rate.rb +26 -2
  79. data/lib/stripe/resources/file.rb +123 -15
  80. data/lib/stripe/resources/file_link.rb +107 -4
  81. data/lib/stripe/resources/financial_connections/account.rb +239 -2
  82. data/lib/stripe/resources/financial_connections/account_owner.rb +17 -0
  83. data/lib/stripe/resources/financial_connections/account_ownership.rb +9 -0
  84. data/lib/stripe/resources/financial_connections/session.rb +95 -0
  85. data/lib/stripe/resources/financial_connections/transaction.rb +94 -2
  86. data/lib/stripe/resources/forwarding/request.rb +158 -2
  87. data/lib/stripe/resources/funding_instructions.rb +308 -0
  88. data/lib/stripe/resources/identity/verification_report.rb +259 -2
  89. data/lib/stripe/resources/identity/verification_session.rb +356 -4
  90. data/lib/stripe/resources/invoice.rb +3210 -27
  91. data/lib/stripe/resources/invoice_item.rb +406 -6
  92. data/lib/stripe/resources/invoice_line_item.rb +356 -3
  93. data/lib/stripe/resources/invoice_payment.rb +105 -0
  94. data/lib/stripe/resources/invoice_rendering_template.rb +120 -0
  95. data/lib/stripe/resources/issuing/authorization.rb +1132 -6
  96. data/lib/stripe/resources/issuing/card.rb +682 -5
  97. data/lib/stripe/resources/issuing/cardholder.rb +653 -5
  98. data/lib/stripe/resources/issuing/dispute.rb +785 -4
  99. data/lib/stripe/resources/issuing/personalization_design.rb +280 -4
  100. data/lib/stripe/resources/issuing/physical_bundle.rb +56 -2
  101. data/lib/stripe/resources/issuing/token.rb +170 -4
  102. data/lib/stripe/resources/issuing/transaction.rb +916 -4
  103. data/lib/stripe/resources/line_item.rb +47 -0
  104. data/lib/stripe/resources/login_link.rb +7 -0
  105. data/lib/stripe/resources/mandate.rb +142 -0
  106. data/lib/stripe/resources/payment_intent.rb +8660 -4
  107. data/lib/stripe/resources/payment_link.rb +1636 -4
  108. data/lib/stripe/resources/payment_method.rb +1546 -4
  109. data/lib/stripe/resources/payment_method_configuration.rb +2780 -4
  110. data/lib/stripe/resources/payment_method_domain.rb +154 -10
  111. data/lib/stripe/resources/payout.rb +213 -4
  112. data/lib/stripe/resources/person.rb +264 -1
  113. data/lib/stripe/resources/plan.rb +308 -6
  114. data/lib/stripe/resources/price.rb +609 -5
  115. data/lib/stripe/resources/product.rb +474 -2
  116. data/lib/stripe/resources/product_feature.rb +12 -0
  117. data/lib/stripe/resources/promotion_code.rb +216 -4
  118. data/lib/stripe/resources/quote.rb +927 -10
  119. data/lib/stripe/resources/radar/early_fraud_warning.rb +70 -2
  120. data/lib/stripe/resources/radar/value_list.rb +122 -6
  121. data/lib/stripe/resources/radar/value_list_item.rb +90 -4
  122. data/lib/stripe/resources/refund.rb +396 -4
  123. data/lib/stripe/resources/reporting/report_run.rb +143 -2
  124. data/lib/stripe/resources/reporting/report_type.rb +29 -2
  125. data/lib/stripe/resources/reserve_transaction.rb +22 -0
  126. data/lib/stripe/resources/reversal.rb +21 -0
  127. data/lib/stripe/resources/review.rb +101 -2
  128. data/lib/stripe/resources/setup_attempt.rb +370 -2
  129. data/lib/stripe/resources/setup_intent.rb +3477 -4
  130. data/lib/stripe/resources/shipping_rate.rb +254 -4
  131. data/lib/stripe/resources/sigma/scheduled_query_run.rb +47 -2
  132. data/lib/stripe/resources/source.rb +1203 -4
  133. data/lib/stripe/resources/source_mandate_notification.rb +66 -0
  134. data/lib/stripe/resources/source_transaction.rb +85 -0
  135. data/lib/stripe/resources/subscription.rb +1697 -11
  136. data/lib/stripe/resources/subscription_item.rb +319 -11
  137. data/lib/stripe/resources/subscription_schedule.rb +1285 -4
  138. data/lib/stripe/resources/tax/calculation.rb +378 -0
  139. data/lib/stripe/resources/tax/calculation_line_item.rb +56 -0
  140. data/lib/stripe/resources/tax/registration.rb +2375 -2
  141. data/lib/stripe/resources/tax/settings.rb +117 -0
  142. data/lib/stripe/resources/tax/transaction.rb +258 -0
  143. data/lib/stripe/resources/tax/transaction_line_item.rb +31 -0
  144. data/lib/stripe/resources/tax_code.rb +28 -2
  145. data/lib/stripe/resources/tax_deducted_at_source.rb +22 -0
  146. data/lib/stripe/resources/tax_id.rb +114 -2
  147. data/lib/stripe/resources/tax_rate.rb +197 -6
  148. data/lib/stripe/resources/terminal/configuration.rb +1266 -6
  149. data/lib/stripe/resources/terminal/connection_token.rb +18 -0
  150. data/lib/stripe/resources/terminal/location.rb +172 -6
  151. data/lib/stripe/resources/terminal/reader.rb +433 -6
  152. data/lib/stripe/resources/test_helpers/test_clock.rb +81 -4
  153. data/lib/stripe/resources/token.rb +1160 -1
  154. data/lib/stripe/resources/topup.rb +169 -4
  155. data/lib/stripe/resources/transfer.rb +148 -4
  156. data/lib/stripe/resources/treasury/credit_reversal.rb +85 -2
  157. data/lib/stripe/resources/treasury/debit_reversal.rb +96 -2
  158. data/lib/stripe/resources/treasury/financial_account.rb +749 -5
  159. data/lib/stripe/resources/treasury/financial_account_features.rb +189 -0
  160. data/lib/stripe/resources/treasury/inbound_transfer.rb +231 -3
  161. data/lib/stripe/resources/treasury/outbound_payment.rb +491 -3
  162. data/lib/stripe/resources/treasury/outbound_transfer.rb +346 -3
  163. data/lib/stripe/resources/treasury/received_credit.rb +239 -2
  164. data/lib/stripe/resources/treasury/received_debit.rb +198 -2
  165. data/lib/stripe/resources/treasury/transaction.rb +169 -2
  166. data/lib/stripe/resources/treasury/transaction_entry.rb +150 -2
  167. data/lib/stripe/resources/v2/amount.rb +9 -0
  168. data/lib/stripe/resources/v2/billing/meter_event.rb +34 -0
  169. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +36 -0
  170. data/lib/stripe/resources/v2/billing/meter_event_session.rb +29 -0
  171. data/lib/stripe/resources/v2/event.rb +41 -0
  172. data/lib/stripe/resources/v2/event_destination.rb +73 -0
  173. data/lib/stripe/resources/webhook_endpoint.rb +119 -11
  174. data/lib/stripe/resources.rb +19 -2
  175. data/lib/stripe/search_result_object.rb +1 -1
  176. data/lib/stripe/services/account_capability_service.rb +71 -0
  177. data/lib/stripe/services/account_external_account_service.rb +318 -0
  178. data/lib/stripe/services/account_link_service.rb +63 -0
  179. data/lib/stripe/services/account_login_link_service.rb +28 -0
  180. data/lib/stripe/services/account_person_service.rb +936 -0
  181. data/lib/stripe/services/account_service.rb +4100 -0
  182. data/lib/stripe/services/account_session_service.rb +501 -0
  183. data/lib/stripe/services/apple_pay_domain_service.rb +101 -0
  184. data/lib/stripe/services/application_fee_refund_service.rb +114 -0
  185. data/lib/stripe/services/application_fee_service.rb +92 -0
  186. data/lib/stripe/services/apps/secret_service.rb +168 -0
  187. data/lib/stripe/services/apps_service.rb +13 -0
  188. data/lib/stripe/services/balance_service.rb +21 -0
  189. data/lib/stripe/services/balance_transaction_service.rb +101 -0
  190. data/lib/stripe/services/billing/alert_service.rb +187 -0
  191. data/lib/stripe/services/billing/credit_balance_summary_service.rb +67 -0
  192. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +70 -0
  193. data/lib/stripe/services/billing/credit_grant_service.rb +240 -0
  194. data/lib/stripe/services/billing/meter_event_adjustment_service.rb +45 -0
  195. data/lib/stripe/services/billing/meter_event_service.rb +40 -0
  196. data/lib/stripe/services/billing/meter_event_summary_service.rb +58 -0
  197. data/lib/stripe/services/billing/meter_service.rb +211 -0
  198. data/lib/stripe/services/billing_portal/configuration_service.rb +496 -0
  199. data/lib/stripe/services/billing_portal/session_service.rb +192 -0
  200. data/lib/stripe/services/billing_portal_service.rb +14 -0
  201. data/lib/stripe/services/billing_service.rb +20 -0
  202. data/lib/stripe/services/charge_service.rb +471 -0
  203. data/lib/stripe/services/checkout/session_line_item_service.rb +37 -0
  204. data/lib/stripe/services/checkout/session_service.rb +2466 -0
  205. data/lib/stripe/services/checkout_service.rb +13 -0
  206. data/lib/stripe/services/climate/order_service.rb +170 -0
  207. data/lib/stripe/services/climate/product_service.rb +57 -0
  208. data/lib/stripe/services/climate/supplier_service.rb +57 -0
  209. data/lib/stripe/services/climate_service.rb +15 -0
  210. data/lib/stripe/services/confirmation_token_service.rb +26 -0
  211. data/lib/stripe/services/country_spec_service.rb +55 -0
  212. data/lib/stripe/services/coupon_service.rb +203 -0
  213. data/lib/stripe/services/credit_note_line_item_service.rb +35 -0
  214. data/lib/stripe/services/credit_note_preview_lines_service.rb +169 -0
  215. data/lib/stripe/services/credit_note_service.rb +458 -0
  216. data/lib/stripe/services/customer_balance_transaction_service.rb +113 -0
  217. data/lib/stripe/services/customer_cash_balance_service.rb +57 -0
  218. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +55 -0
  219. data/lib/stripe/services/customer_funding_instructions_service.rb +61 -0
  220. data/lib/stripe/services/customer_payment_method_service.rb +68 -0
  221. data/lib/stripe/services/customer_payment_source_service.rb +255 -0
  222. data/lib/stripe/services/customer_service.rb +666 -0
  223. data/lib/stripe/services/customer_session_service.rb +113 -0
  224. data/lib/stripe/services/customer_tax_id_service.rb +95 -0
  225. data/lib/stripe/services/dispute_service.rb +422 -0
  226. data/lib/stripe/services/entitlements/active_entitlement_service.rb +66 -0
  227. data/lib/stripe/services/entitlements/feature_service.rb +128 -0
  228. data/lib/stripe/services/entitlements_service.rb +14 -0
  229. data/lib/stripe/services/ephemeral_key_service.rb +64 -0
  230. data/lib/stripe/services/event_service.rb +87 -0
  231. data/lib/stripe/services/exchange_rate_service.rb +55 -0
  232. data/lib/stripe/services/file_link_service.rb +132 -0
  233. data/lib/stripe/services/file_service.rb +124 -0
  234. data/lib/stripe/services/financial_connections/account_owner_service.rb +46 -0
  235. data/lib/stripe/services/financial_connections/account_service.rb +177 -0
  236. data/lib/stripe/services/financial_connections/session_service.rb +98 -0
  237. data/lib/stripe/services/financial_connections/transaction_service.rb +100 -0
  238. data/lib/stripe/services/financial_connections_service.rb +15 -0
  239. data/lib/stripe/services/forwarding/request_service.rb +147 -0
  240. data/lib/stripe/services/forwarding_service.rb +13 -0
  241. data/lib/stripe/services/identity/verification_report_service.rb +95 -0
  242. data/lib/stripe/services/identity/verification_session_service.rb +337 -0
  243. data/lib/stripe/services/identity_service.rb +14 -0
  244. data/lib/stripe/services/invoice_item_service.rb +395 -0
  245. data/lib/stripe/services/invoice_line_item_service.rb +252 -0
  246. data/lib/stripe/services/invoice_payment_service.rb +83 -0
  247. data/lib/stripe/services/invoice_rendering_template_service.rb +101 -0
  248. data/lib/stripe/services/invoice_service.rb +2831 -0
  249. data/lib/stripe/services/issuing/authorization_service.rb +169 -0
  250. data/lib/stripe/services/issuing/card_service.rb +507 -0
  251. data/lib/stripe/services/issuing/cardholder_service.rb +577 -0
  252. data/lib/stripe/services/issuing/dispute_service.rb +696 -0
  253. data/lib/stripe/services/issuing/personalization_design_service.rb +245 -0
  254. data/lib/stripe/services/issuing/physical_bundle_service.rb +70 -0
  255. data/lib/stripe/services/issuing/token_service.rb +114 -0
  256. data/lib/stripe/services/issuing/transaction_service.rb +118 -0
  257. data/lib/stripe/services/issuing_service.rb +20 -0
  258. data/lib/stripe/services/mandate_service.rb +26 -0
  259. data/lib/stripe/services/oauth_service.rb +63 -0
  260. data/lib/stripe/services/payment_intent_service.rb +7258 -0
  261. data/lib/stripe/services/payment_link_line_item_service.rb +35 -0
  262. data/lib/stripe/services/payment_link_service.rb +1333 -0
  263. data/lib/stripe/services/payment_method_configuration_service.rb +2054 -0
  264. data/lib/stripe/services/payment_method_domain_service.rb +142 -0
  265. data/lib/stripe/services/payment_method_service.rb +894 -0
  266. data/lib/stripe/services/payout_service.rb +225 -0
  267. data/lib/stripe/services/plan_service.rb +298 -0
  268. data/lib/stripe/services/price_service.rb +545 -0
  269. data/lib/stripe/services/product_feature_service.rb +92 -0
  270. data/lib/stripe/services/product_service.rb +495 -0
  271. data/lib/stripe/services/promotion_code_service.rb +228 -0
  272. data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +35 -0
  273. data/lib/stripe/services/quote_line_item_service.rb +35 -0
  274. data/lib/stripe/services/quote_service.rb +703 -0
  275. data/lib/stripe/services/radar/early_fraud_warning_service.rb +93 -0
  276. data/lib/stripe/services/radar/value_list_item_service.rb +131 -0
  277. data/lib/stripe/services/radar/value_list_service.rb +166 -0
  278. data/lib/stripe/services/radar_service.rb +15 -0
  279. data/lib/stripe/services/refund_service.rb +200 -0
  280. data/lib/stripe/services/reporting/report_run_service.rb +147 -0
  281. data/lib/stripe/services/reporting/report_type_service.rb +48 -0
  282. data/lib/stripe/services/reporting_service.rb +14 -0
  283. data/lib/stripe/services/review_service.rb +89 -0
  284. data/lib/stripe/services/setup_attempt_service.rb +68 -0
  285. data/lib/stripe/services/setup_intent_service.rb +3268 -0
  286. data/lib/stripe/services/shipping_rate_service.rb +250 -0
  287. data/lib/stripe/services/sigma/scheduled_query_run_service.rb +57 -0
  288. data/lib/stripe/services/sigma_service.rb +13 -0
  289. data/lib/stripe/services/source_service.rb +665 -0
  290. data/lib/stripe/services/source_transaction_service.rb +35 -0
  291. data/lib/stripe/services/subscription_item_service.rb +346 -0
  292. data/lib/stripe/services/subscription_schedule_service.rb +1134 -0
  293. data/lib/stripe/services/subscription_service.rb +1539 -0
  294. data/lib/stripe/services/tax/calculation_line_item_service.rb +37 -0
  295. data/lib/stripe/services/tax/calculation_service.rb +242 -0
  296. data/lib/stripe/services/tax/registration_service.rb +1618 -0
  297. data/lib/stripe/services/tax/settings_service.rb +104 -0
  298. data/lib/stripe/services/tax/transaction_line_item_service.rb +37 -0
  299. data/lib/stripe/services/tax/transaction_service.rb +159 -0
  300. data/lib/stripe/services/tax_code_service.rb +49 -0
  301. data/lib/stripe/services/tax_id_service.rb +117 -0
  302. data/lib/stripe/services/tax_rate_service.rb +193 -0
  303. data/lib/stripe/services/tax_service.rb +16 -0
  304. data/lib/stripe/services/terminal/configuration_service.rb +1060 -0
  305. data/lib/stripe/services/terminal/connection_token_service.rb +31 -0
  306. data/lib/stripe/services/terminal/location_service.rb +208 -0
  307. data/lib/stripe/services/terminal/reader_service.rb +384 -0
  308. data/lib/stripe/services/terminal_service.rb +16 -0
  309. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +661 -0
  310. data/lib/stripe/services/test_helpers/customer_service.rb +37 -0
  311. data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +832 -0
  312. data/lib/stripe/services/test_helpers/issuing/card_service.rb +110 -0
  313. data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +84 -0
  314. data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +675 -0
  315. data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
  316. data/lib/stripe/services/test_helpers/refund_service.rb +28 -0
  317. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +65 -0
  318. data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
  319. data/lib/stripe/services/test_helpers/test_clock_service.rb +120 -0
  320. data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +81 -0
  321. data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +141 -0
  322. data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +141 -0
  323. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +81 -0
  324. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +81 -0
  325. data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
  326. data/lib/stripe/services/test_helpers_service.rb +19 -0
  327. data/lib/stripe/services/token_service.rb +1163 -0
  328. data/lib/stripe/services/topup_service.rb +191 -0
  329. data/lib/stripe/services/transfer_reversal_service.rb +122 -0
  330. data/lib/stripe/services/transfer_service.rb +166 -0
  331. data/lib/stripe/services/treasury/credit_reversal_service.rb +100 -0
  332. data/lib/stripe/services/treasury/debit_reversal_service.rb +104 -0
  333. data/lib/stripe/services/treasury/financial_account_features_service.rb +196 -0
  334. data/lib/stripe/services/treasury/financial_account_service.rb +554 -0
  335. data/lib/stripe/services/treasury/inbound_transfer_service.rb +140 -0
  336. data/lib/stripe/services/treasury/outbound_payment_service.rb +310 -0
  337. data/lib/stripe/services/treasury/outbound_transfer_service.rb +176 -0
  338. data/lib/stripe/services/treasury/received_credit_service.rb +82 -0
  339. data/lib/stripe/services/treasury/received_debit_service.rb +70 -0
  340. data/lib/stripe/services/treasury/transaction_entry_service.rb +117 -0
  341. data/lib/stripe/services/treasury/transaction_service.rb +125 -0
  342. data/lib/stripe/services/treasury_service.rb +22 -0
  343. data/lib/stripe/services/v1_services.rb +90 -0
  344. data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +44 -0
  345. data/lib/stripe/services/v2/billing/meter_event_service.rb +46 -0
  346. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +24 -0
  347. data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +56 -0
  348. data/lib/stripe/services/v2/billing_service.rb +18 -0
  349. data/lib/stripe/services/v2/core/event_destination_service.rb +241 -0
  350. data/lib/stripe/services/v2/core/event_service.rb +49 -0
  351. data/lib/stripe/services/v2/core_service.rb +16 -0
  352. data/lib/stripe/services/v2_services.rb +14 -0
  353. data/lib/stripe/services/webhook_endpoint_service.rb +157 -0
  354. data/lib/stripe/services.rb +180 -0
  355. data/lib/stripe/singleton_api_resource.rb +1 -18
  356. data/lib/stripe/stripe_client.rb +53 -1031
  357. data/lib/stripe/stripe_configuration.rb +52 -19
  358. data/lib/stripe/stripe_object.rb +54 -20
  359. data/lib/stripe/stripe_service.rb +32 -0
  360. data/lib/stripe/thin_event.rb +37 -0
  361. data/lib/stripe/util.rb +78 -37
  362. data/lib/stripe/v2_list_object.rb +84 -0
  363. data/lib/stripe/version.rb +1 -1
  364. data/lib/stripe/webhook.rb +1 -1
  365. data/lib/stripe.rb +38 -25
  366. data/rbi/stripe/resources/account.rbi +4840 -0
  367. data/rbi/stripe/resources/account_link.rbi +74 -0
  368. data/rbi/stripe/resources/account_session.rbi +894 -0
  369. data/rbi/stripe/resources/apple_pay_domain.rbi +90 -0
  370. data/rbi/stripe/resources/application.rbi +20 -0
  371. data/rbi/stripe/resources/application_fee.rbi +118 -0
  372. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  373. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  374. data/rbi/stripe/resources/balance.rbi +180 -0
  375. data/rbi/stripe/resources/balance_transaction.rbi +144 -0
  376. data/rbi/stripe/resources/bank_account.rbi +127 -0
  377. data/rbi/stripe/resources/billing/alert.rbi +201 -0
  378. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  379. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +63 -0
  380. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +147 -0
  381. data/rbi/stripe/resources/billing/credit_grant.rbi +291 -0
  382. data/rbi/stripe/resources/billing/meter.rbi +226 -0
  383. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  384. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  385. data/rbi/stripe/resources/billing/meter_event_summary.rbi +35 -0
  386. data/rbi/stripe/resources/billing_portal/configuration.rbi +645 -0
  387. data/rbi/stripe/resources/billing_portal/session.rbi +345 -0
  388. data/rbi/stripe/resources/capability.rbi +125 -0
  389. data/rbi/stripe/resources/card.rbi +125 -0
  390. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  391. data/rbi/stripe/resources/charge.rbi +2054 -0
  392. data/rbi/stripe/resources/checkout/session.rbi +3951 -0
  393. data/rbi/stripe/resources/climate/order.rbi +245 -0
  394. data/rbi/stripe/resources/climate/product.rbi +75 -0
  395. data/rbi/stripe/resources/climate/supplier.rbi +72 -0
  396. data/rbi/stripe/resources/confirmation_token.rbi +1793 -0
  397. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  398. data/rbi/stripe/resources/country_spec.rbi +85 -0
  399. data/rbi/stripe/resources/coupon.rbi +252 -0
  400. data/rbi/stripe/resources/credit_note.rbi +747 -0
  401. data/rbi/stripe/resources/credit_note_line_item.rbi +101 -0
  402. data/rbi/stripe/resources/customer.rbi +1009 -0
  403. data/rbi/stripe/resources/customer_balance_transaction.rbi +56 -0
  404. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  405. data/rbi/stripe/resources/customer_session.rbi +200 -0
  406. data/rbi/stripe/resources/discount.rbi +53 -0
  407. data/rbi/stripe/resources/dispute.rbi +761 -0
  408. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +58 -0
  409. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  410. data/rbi/stripe/resources/entitlements/feature.rbi +117 -0
  411. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  412. data/rbi/stripe/resources/event.rbi +146 -0
  413. data/rbi/stripe/resources/exchange_rate.rbi +66 -0
  414. data/rbi/stripe/resources/file.rbi +143 -0
  415. data/rbi/stripe/resources/file_link.rbi +141 -0
  416. data/rbi/stripe/resources/financial_connections/account.rbi +339 -0
  417. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  418. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  419. data/rbi/stripe/resources/financial_connections/session.rbi +123 -0
  420. data/rbi/stripe/resources/financial_connections/transaction.rbi +124 -0
  421. data/rbi/stripe/resources/forwarding/request.rbi +216 -0
  422. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  423. data/rbi/stripe/resources/identity/verification_report.rbi +351 -0
  424. data/rbi/stripe/resources/identity/verification_session.rbi +517 -0
  425. data/rbi/stripe/resources/invoice.rbi +3733 -0
  426. data/rbi/stripe/resources/invoice_item.rbi +475 -0
  427. data/rbi/stripe/resources/invoice_line_item.rbi +432 -0
  428. data/rbi/stripe/resources/invoice_payment.rbi +114 -0
  429. data/rbi/stripe/resources/invoice_rendering_template.rbi +104 -0
  430. data/rbi/stripe/resources/issuing/authorization.rbi +1283 -0
  431. data/rbi/stripe/resources/issuing/card.rbi +741 -0
  432. data/rbi/stripe/resources/issuing/cardholder.rbi +744 -0
  433. data/rbi/stripe/resources/issuing/dispute.rbi +913 -0
  434. data/rbi/stripe/resources/issuing/personalization_design.rbi +338 -0
  435. data/rbi/stripe/resources/issuing/physical_bundle.rbi +79 -0
  436. data/rbi/stripe/resources/issuing/token.rbi +226 -0
  437. data/rbi/stripe/resources/issuing/transaction.rbi +1061 -0
  438. data/rbi/stripe/resources/line_item.rbi +72 -0
  439. data/rbi/stripe/resources/login_link.rbi +18 -0
  440. data/rbi/stripe/resources/mandate.rbi +187 -0
  441. data/rbi/stripe/resources/payment_intent.rbi +9731 -0
  442. data/rbi/stripe/resources/payment_link.rbi +1801 -0
  443. data/rbi/stripe/resources/payment_method.rbi +1822 -0
  444. data/rbi/stripe/resources/payment_method_configuration.rbi +3154 -0
  445. data/rbi/stripe/resources/payment_method_domain.rbi +212 -0
  446. data/rbi/stripe/resources/payout.rbi +300 -0
  447. data/rbi/stripe/resources/person.rbi +371 -0
  448. data/rbi/stripe/resources/plan.rbi +373 -0
  449. data/rbi/stripe/resources/price.rbi +694 -0
  450. data/rbi/stripe/resources/product.rbi +557 -0
  451. data/rbi/stripe/resources/product_feature.rbi +26 -0
  452. data/rbi/stripe/resources/promotion_code.rbi +261 -0
  453. data/rbi/stripe/resources/quote.rbi +1123 -0
  454. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +98 -0
  455. data/rbi/stripe/resources/radar/value_list.rbi +170 -0
  456. data/rbi/stripe/resources/radar/value_list_item.rbi +131 -0
  457. data/rbi/stripe/resources/refund.rbi +516 -0
  458. data/rbi/stripe/resources/reporting/report_run.rbi +191 -0
  459. data/rbi/stripe/resources/reporting/report_type.rbi +57 -0
  460. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  461. data/rbi/stripe/resources/reversal.rbi +51 -0
  462. data/rbi/stripe/resources/review.rbi +154 -0
  463. data/rbi/stripe/resources/setup_attempt.rbi +477 -0
  464. data/rbi/stripe/resources/setup_intent.rbi +3860 -0
  465. data/rbi/stripe/resources/shipping_rate.rbi +305 -0
  466. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +75 -0
  467. data/rbi/stripe/resources/source.rbi +1496 -0
  468. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  469. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  470. data/rbi/stripe/resources/subscription.rbi +1964 -0
  471. data/rbi/stripe/resources/subscription_item.rbi +370 -0
  472. data/rbi/stripe/resources/subscription_schedule.rbi +1495 -0
  473. data/rbi/stripe/resources/tax/calculation.rbi +474 -0
  474. data/rbi/stripe/resources/tax/calculation_line_item.rbi +88 -0
  475. data/rbi/stripe/resources/tax/registration.rbi +2485 -0
  476. data/rbi/stripe/resources/tax/settings.rbi +141 -0
  477. data/rbi/stripe/resources/tax/transaction.rbi +351 -0
  478. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  479. data/rbi/stripe/resources/tax_code.rbi +44 -0
  480. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  481. data/rbi/stripe/resources/tax_id.rbi +167 -0
  482. data/rbi/stripe/resources/tax_rate.rbi +239 -0
  483. data/rbi/stripe/resources/terminal/configuration.rbi +1388 -0
  484. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  485. data/rbi/stripe/resources/terminal/location.rbi +224 -0
  486. data/rbi/stripe/resources/terminal/reader.rbi +587 -0
  487. data/rbi/stripe/resources/test_helpers/test_clock.rbi +134 -0
  488. data/rbi/stripe/resources/token.rbi +1217 -0
  489. data/rbi/stripe/resources/topup.rbi +222 -0
  490. data/rbi/stripe/resources/transfer.rbi +199 -0
  491. data/rbi/stripe/resources/treasury/credit_reversal.rbi +119 -0
  492. data/rbi/stripe/resources/treasury/debit_reversal.rbi +131 -0
  493. data/rbi/stripe/resources/treasury/financial_account.rbi +865 -0
  494. data/rbi/stripe/resources/treasury/financial_account_features.rbi +260 -0
  495. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +295 -0
  496. data/rbi/stripe/resources/treasury/outbound_payment.rbi +592 -0
  497. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +431 -0
  498. data/rbi/stripe/resources/treasury/received_credit.rbi +302 -0
  499. data/rbi/stripe/resources/treasury/received_debit.rbi +256 -0
  500. data/rbi/stripe/resources/treasury/transaction.rbi +215 -0
  501. data/rbi/stripe/resources/treasury/transaction_entry.rbi +192 -0
  502. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  503. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  504. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  505. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  506. data/rbi/stripe/resources/v2/event.rbi +48 -0
  507. data/rbi/stripe/resources/v2/event_destination.rbi +91 -0
  508. data/rbi/stripe/resources/webhook_endpoint.rbi +170 -0
  509. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  510. data/rbi/stripe/services/account_external_account_service.rbi +306 -0
  511. data/rbi/stripe/services/account_link_service.rbi +58 -0
  512. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  513. data/rbi/stripe/services/account_person_service.rbi +923 -0
  514. data/rbi/stripe/services/account_service.rbi +4143 -0
  515. data/rbi/stripe/services/account_session_service.rbi +572 -0
  516. data/rbi/stripe/services/apple_pay_domain_service.rbi +78 -0
  517. data/rbi/stripe/services/application_fee_refund_service.rbi +93 -0
  518. data/rbi/stripe/services/application_fee_service.rbi +78 -0
  519. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  520. data/rbi/stripe/services/apps_service.rbi +9 -0
  521. data/rbi/stripe/services/balance_service.rbi +21 -0
  522. data/rbi/stripe/services/balance_transaction_service.rbi +93 -0
  523. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  524. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +68 -0
  525. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  526. data/rbi/stripe/services/billing/credit_grant_service.rbi +211 -0
  527. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +42 -0
  528. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  529. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  530. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  531. data/rbi/stripe/services/billing_portal/configuration_service.rbi +511 -0
  532. data/rbi/stripe/services/billing_portal/session_service.rbi +204 -0
  533. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  534. data/rbi/stripe/services/billing_service.rbi +15 -0
  535. data/rbi/stripe/services/charge_service.rbi +448 -0
  536. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  537. data/rbi/stripe/services/checkout/session_service.rbi +2585 -0
  538. data/rbi/stripe/services/checkout_service.rbi +9 -0
  539. data/rbi/stripe/services/climate/order_service.rbi +142 -0
  540. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  541. data/rbi/stripe/services/climate/supplier_service.rbi +46 -0
  542. data/rbi/stripe/services/climate_service.rbi +11 -0
  543. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  544. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  545. data/rbi/stripe/services/coupon_service.rbi +196 -0
  546. data/rbi/stripe/services/credit_note_line_item_service.rbi +31 -0
  547. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  548. data/rbi/stripe/services/credit_note_service.rbi +416 -0
  549. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  550. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  551. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  552. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  553. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  554. data/rbi/stripe/services/customer_payment_source_service.rbi +232 -0
  555. data/rbi/stripe/services/customer_service.rbi +651 -0
  556. data/rbi/stripe/services/customer_session_service.rbi +116 -0
  557. data/rbi/stripe/services/customer_tax_id_service.rbi +72 -0
  558. data/rbi/stripe/services/dispute_service.rbi +424 -0
  559. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  560. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  561. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  562. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  563. data/rbi/stripe/services/event_service.rbi +83 -0
  564. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  565. data/rbi/stripe/services/file_link_service.rbi +124 -0
  566. data/rbi/stripe/services/file_service.rbi +116 -0
  567. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  568. data/rbi/stripe/services/financial_connections/account_service.rbi +133 -0
  569. data/rbi/stripe/services/financial_connections/session_service.rbi +88 -0
  570. data/rbi/stripe/services/financial_connections/transaction_service.rbi +92 -0
  571. data/rbi/stripe/services/financial_connections_service.rbi +11 -0
  572. data/rbi/stripe/services/forwarding/request_service.rbi +134 -0
  573. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  574. data/rbi/stripe/services/identity/verification_report_service.rbi +87 -0
  575. data/rbi/stripe/services/identity/verification_session_service.rbi +323 -0
  576. data/rbi/stripe/services/identity_service.rbi +10 -0
  577. data/rbi/stripe/services/invoice_item_service.rbi +368 -0
  578. data/rbi/stripe/services/invoice_line_item_service.rbi +259 -0
  579. data/rbi/stripe/services/invoice_payment_service.rbi +71 -0
  580. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  581. data/rbi/stripe/services/invoice_service.rbi +2920 -0
  582. data/rbi/stripe/services/issuing/authorization_service.rbi +146 -0
  583. data/rbi/stripe/services/issuing/card_service.rbi +495 -0
  584. data/rbi/stripe/services/issuing/cardholder_service.rbi +587 -0
  585. data/rbi/stripe/services/issuing/dispute_service.rbi +707 -0
  586. data/rbi/stripe/services/issuing/personalization_design_service.rbi +243 -0
  587. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  588. data/rbi/stripe/services/issuing/token_service.rbi +99 -0
  589. data/rbi/stripe/services/issuing/transaction_service.rbi +105 -0
  590. data/rbi/stripe/services/issuing_service.rbi +16 -0
  591. data/rbi/stripe/services/mandate_service.rbi +20 -0
  592. data/rbi/stripe/services/payment_intent_service.rbi +7759 -0
  593. data/rbi/stripe/services/payment_link_line_item_service.rbi +31 -0
  594. data/rbi/stripe/services/payment_link_service.rbi +1352 -0
  595. data/rbi/stripe/services/payment_method_configuration_service.rbi +2211 -0
  596. data/rbi/stripe/services/payment_method_domain_service.rbi +112 -0
  597. data/rbi/stripe/services/payment_method_service.rbi +840 -0
  598. data/rbi/stripe/services/payout_service.rbi +205 -0
  599. data/rbi/stripe/services/plan_service.rbi +284 -0
  600. data/rbi/stripe/services/price_service.rbi +546 -0
  601. data/rbi/stripe/services/product_feature_service.rbi +69 -0
  602. data/rbi/stripe/services/product_service.rbi +479 -0
  603. data/rbi/stripe/services/promotion_code_service.rbi +214 -0
  604. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  605. data/rbi/stripe/services/quote_line_item_service.rbi +31 -0
  606. data/rbi/stripe/services/quote_service.rbi +686 -0
  607. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +85 -0
  608. data/rbi/stripe/services/radar/value_list_item_service.rbi +111 -0
  609. data/rbi/stripe/services/radar/value_list_service.rbi +143 -0
  610. data/rbi/stripe/services/radar_service.rbi +11 -0
  611. data/rbi/stripe/services/refund_service.rbi +185 -0
  612. data/rbi/stripe/services/reporting/report_run_service.rbi +135 -0
  613. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  614. data/rbi/stripe/services/reporting_service.rbi +10 -0
  615. data/rbi/stripe/services/review_service.rbi +84 -0
  616. data/rbi/stripe/services/setup_attempt_service.rbi +65 -0
  617. data/rbi/stripe/services/setup_intent_service.rbi +3596 -0
  618. data/rbi/stripe/services/shipping_rate_service.rbi +241 -0
  619. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  620. data/rbi/stripe/services/sigma_service.rbi +9 -0
  621. data/rbi/stripe/services/source_service.rbi +663 -0
  622. data/rbi/stripe/services/source_transaction_service.rbi +31 -0
  623. data/rbi/stripe/services/subscription_item_service.rbi +324 -0
  624. data/rbi/stripe/services/subscription_schedule_service.rbi +1192 -0
  625. data/rbi/stripe/services/subscription_service.rbi +1596 -0
  626. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +33 -0
  627. data/rbi/stripe/services/tax/calculation_service.rbi +230 -0
  628. data/rbi/stripe/services/tax/registration_service.rbi +1689 -0
  629. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  630. data/rbi/stripe/services/tax/transaction_line_item_service.rbi +33 -0
  631. data/rbi/stripe/services/tax/transaction_service.rbi +146 -0
  632. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  633. data/rbi/stripe/services/tax_id_service.rbi +112 -0
  634. data/rbi/stripe/services/tax_rate_service.rbi +185 -0
  635. data/rbi/stripe/services/tax_service.rbi +12 -0
  636. data/rbi/stripe/services/terminal/configuration_service.rbi +1120 -0
  637. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  638. data/rbi/stripe/services/terminal/location_service.rbi +184 -0
  639. data/rbi/stripe/services/terminal/reader_service.rbi +344 -0
  640. data/rbi/stripe/services/terminal_service.rbi +12 -0
  641. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +746 -0
  642. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  643. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +848 -0
  644. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  645. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +69 -0
  646. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +711 -0
  647. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  648. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  649. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +62 -0
  650. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  651. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +92 -0
  652. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  653. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +125 -0
  654. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +125 -0
  655. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +87 -0
  656. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +87 -0
  657. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  658. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  659. data/rbi/stripe/services/token_service.rbi +1189 -0
  660. data/rbi/stripe/services/topup_service.rbi +176 -0
  661. data/rbi/stripe/services/transfer_reversal_service.rbi +101 -0
  662. data/rbi/stripe/services/transfer_service.rbi +152 -0
  663. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  664. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  665. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +198 -0
  666. data/rbi/stripe/services/treasury/financial_account_service.rbi +562 -0
  667. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  668. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +304 -0
  669. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +157 -0
  670. data/rbi/stripe/services/treasury/received_credit_service.rbi +72 -0
  671. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  672. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +111 -0
  673. data/rbi/stripe/services/treasury/transaction_service.rbi +122 -0
  674. data/rbi/stripe/services/treasury_service.rbi +18 -0
  675. data/rbi/stripe/services/v1_services.rbi +77 -0
  676. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  677. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  678. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +20 -0
  679. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  680. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  681. data/rbi/stripe/services/v2/core/event_destination_service.rbi +200 -0
  682. data/rbi/stripe/services/v2/core/event_service.rbi +38 -0
  683. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  684. data/rbi/stripe/services/v2_services.rbi +10 -0
  685. data/rbi/stripe/services/webhook_endpoint_service.rbi +131 -0
  686. metadata +533 -4
  687. data/lib/stripe/resources/usage_record.rb +0 -17
  688. data/lib/stripe/resources/usage_record_summary.rb +0 -11
@@ -0,0 +1,1134 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class SubscriptionScheduleService < StripeService
6
+ class ListParams < Stripe::RequestParams
7
+ class CanceledAt < Stripe::RequestParams
8
+ # Minimum value to filter by (exclusive)
9
+ attr_accessor :gt
10
+ # Minimum value to filter by (inclusive)
11
+ attr_accessor :gte
12
+ # Maximum value to filter by (exclusive)
13
+ attr_accessor :lt
14
+ # Maximum value to filter by (inclusive)
15
+ attr_accessor :lte
16
+
17
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
18
+ @gt = gt
19
+ @gte = gte
20
+ @lt = lt
21
+ @lte = lte
22
+ end
23
+ end
24
+
25
+ class CompletedAt < Stripe::RequestParams
26
+ # Minimum value to filter by (exclusive)
27
+ attr_accessor :gt
28
+ # Minimum value to filter by (inclusive)
29
+ attr_accessor :gte
30
+ # Maximum value to filter by (exclusive)
31
+ attr_accessor :lt
32
+ # Maximum value to filter by (inclusive)
33
+ attr_accessor :lte
34
+
35
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
36
+ @gt = gt
37
+ @gte = gte
38
+ @lt = lt
39
+ @lte = lte
40
+ end
41
+ end
42
+
43
+ class Created < Stripe::RequestParams
44
+ # Minimum value to filter by (exclusive)
45
+ attr_accessor :gt
46
+ # Minimum value to filter by (inclusive)
47
+ attr_accessor :gte
48
+ # Maximum value to filter by (exclusive)
49
+ attr_accessor :lt
50
+ # Maximum value to filter by (inclusive)
51
+ attr_accessor :lte
52
+
53
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
54
+ @gt = gt
55
+ @gte = gte
56
+ @lt = lt
57
+ @lte = lte
58
+ end
59
+ end
60
+
61
+ class ReleasedAt < Stripe::RequestParams
62
+ # Minimum value to filter by (exclusive)
63
+ attr_accessor :gt
64
+ # Minimum value to filter by (inclusive)
65
+ attr_accessor :gte
66
+ # Maximum value to filter by (exclusive)
67
+ attr_accessor :lt
68
+ # Maximum value to filter by (inclusive)
69
+ attr_accessor :lte
70
+
71
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil)
72
+ @gt = gt
73
+ @gte = gte
74
+ @lt = lt
75
+ @lte = lte
76
+ end
77
+ end
78
+ # Only return subscription schedules that were created canceled the given date interval.
79
+ attr_accessor :canceled_at
80
+ # Only return subscription schedules that completed during the given date interval.
81
+ attr_accessor :completed_at
82
+ # Only return subscription schedules that were created during the given date interval.
83
+ attr_accessor :created
84
+ # Only return subscription schedules for the given customer.
85
+ attr_accessor :customer
86
+ # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
87
+ attr_accessor :ending_before
88
+ # Specifies which fields in the response should be expanded.
89
+ attr_accessor :expand
90
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
91
+ attr_accessor :limit
92
+ # Only return subscription schedules that were released during the given date interval.
93
+ attr_accessor :released_at
94
+ # Only return subscription schedules that have not started yet.
95
+ attr_accessor :scheduled
96
+ # 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.
97
+ attr_accessor :starting_after
98
+
99
+ def initialize(
100
+ canceled_at: nil,
101
+ completed_at: nil,
102
+ created: nil,
103
+ customer: nil,
104
+ ending_before: nil,
105
+ expand: nil,
106
+ limit: nil,
107
+ released_at: nil,
108
+ scheduled: nil,
109
+ starting_after: nil
110
+ )
111
+ @canceled_at = canceled_at
112
+ @completed_at = completed_at
113
+ @created = created
114
+ @customer = customer
115
+ @ending_before = ending_before
116
+ @expand = expand
117
+ @limit = limit
118
+ @released_at = released_at
119
+ @scheduled = scheduled
120
+ @starting_after = starting_after
121
+ end
122
+ end
123
+
124
+ class CreateParams < Stripe::RequestParams
125
+ class DefaultSettings < Stripe::RequestParams
126
+ class AutomaticTax < Stripe::RequestParams
127
+ class Liability < Stripe::RequestParams
128
+ # The connected account being referenced when `type` is `account`.
129
+ attr_accessor :account
130
+ # Type of the account referenced in the request.
131
+ attr_accessor :type
132
+
133
+ def initialize(account: nil, type: nil)
134
+ @account = account
135
+ @type = type
136
+ end
137
+ end
138
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
139
+ attr_accessor :enabled
140
+ # 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.
141
+ attr_accessor :liability
142
+
143
+ def initialize(enabled: nil, liability: nil)
144
+ @enabled = enabled
145
+ @liability = liability
146
+ end
147
+ end
148
+
149
+ class InvoiceSettings < Stripe::RequestParams
150
+ class Issuer < Stripe::RequestParams
151
+ # The connected account being referenced when `type` is `account`.
152
+ attr_accessor :account
153
+ # Type of the account referenced in the request.
154
+ attr_accessor :type
155
+
156
+ def initialize(account: nil, type: nil)
157
+ @account = account
158
+ @type = type
159
+ end
160
+ end
161
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
162
+ attr_accessor :account_tax_ids
163
+ # 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`.
164
+ attr_accessor :days_until_due
165
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
166
+ attr_accessor :issuer
167
+
168
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
169
+ @account_tax_ids = account_tax_ids
170
+ @days_until_due = days_until_due
171
+ @issuer = issuer
172
+ end
173
+ end
174
+
175
+ class TransferData < Stripe::RequestParams
176
+ # 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.
177
+ attr_accessor :amount_percent
178
+ # ID of an existing, connected Stripe account.
179
+ attr_accessor :destination
180
+
181
+ def initialize(amount_percent: nil, destination: nil)
182
+ @amount_percent = amount_percent
183
+ @destination = destination
184
+ end
185
+ end
186
+ # 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).
187
+ attr_accessor :application_fee_percent
188
+ # Default settings for automatic tax computation.
189
+ attr_accessor :automatic_tax
190
+ # 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).
191
+ attr_accessor :billing_cycle_anchor
192
+ # 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.
193
+ attr_accessor :collection_method
194
+ # 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.
195
+ attr_accessor :default_payment_method
196
+ # 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.
197
+ attr_accessor :description
198
+ # All invoices will be billed using the specified settings.
199
+ attr_accessor :invoice_settings
200
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
201
+ attr_accessor :on_behalf_of
202
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
203
+ attr_accessor :transfer_data
204
+
205
+ def initialize(
206
+ application_fee_percent: nil,
207
+ automatic_tax: nil,
208
+ billing_cycle_anchor: nil,
209
+ collection_method: nil,
210
+ default_payment_method: nil,
211
+ description: nil,
212
+ invoice_settings: nil,
213
+ on_behalf_of: nil,
214
+ transfer_data: nil
215
+ )
216
+ @application_fee_percent = application_fee_percent
217
+ @automatic_tax = automatic_tax
218
+ @billing_cycle_anchor = billing_cycle_anchor
219
+ @collection_method = collection_method
220
+ @default_payment_method = default_payment_method
221
+ @description = description
222
+ @invoice_settings = invoice_settings
223
+ @on_behalf_of = on_behalf_of
224
+ @transfer_data = transfer_data
225
+ end
226
+ end
227
+
228
+ class Phase < Stripe::RequestParams
229
+ class AddInvoiceItem < Stripe::RequestParams
230
+ class Discount < Stripe::RequestParams
231
+ # ID of the coupon to create a new discount for.
232
+ attr_accessor :coupon
233
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
234
+ attr_accessor :discount
235
+ # ID of the promotion code to create a new discount for.
236
+ attr_accessor :promotion_code
237
+
238
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
239
+ @coupon = coupon
240
+ @discount = discount
241
+ @promotion_code = promotion_code
242
+ end
243
+ end
244
+
245
+ class PriceData < Stripe::RequestParams
246
+ # 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).
247
+ attr_accessor :currency
248
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
249
+ attr_accessor :product
250
+ # 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.
251
+ attr_accessor :tax_behavior
252
+ # 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.
253
+ attr_accessor :unit_amount
254
+ # 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.
255
+ attr_accessor :unit_amount_decimal
256
+
257
+ def initialize(
258
+ currency: nil,
259
+ product: nil,
260
+ tax_behavior: nil,
261
+ unit_amount: nil,
262
+ unit_amount_decimal: nil
263
+ )
264
+ @currency = currency
265
+ @product = product
266
+ @tax_behavior = tax_behavior
267
+ @unit_amount = unit_amount
268
+ @unit_amount_decimal = unit_amount_decimal
269
+ end
270
+ end
271
+ # The coupons to redeem into discounts for the item.
272
+ attr_accessor :discounts
273
+ # The ID of the price object. One of `price` or `price_data` is required.
274
+ attr_accessor :price
275
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
276
+ attr_accessor :price_data
277
+ # Quantity for this item. Defaults to 1.
278
+ attr_accessor :quantity
279
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
280
+ attr_accessor :tax_rates
281
+
282
+ def initialize(discounts: nil, price: nil, price_data: nil, quantity: nil, tax_rates: nil)
283
+ @discounts = discounts
284
+ @price = price
285
+ @price_data = price_data
286
+ @quantity = quantity
287
+ @tax_rates = tax_rates
288
+ end
289
+ end
290
+
291
+ class AutomaticTax < Stripe::RequestParams
292
+ class Liability < Stripe::RequestParams
293
+ # The connected account being referenced when `type` is `account`.
294
+ attr_accessor :account
295
+ # Type of the account referenced in the request.
296
+ attr_accessor :type
297
+
298
+ def initialize(account: nil, type: nil)
299
+ @account = account
300
+ @type = type
301
+ end
302
+ end
303
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
304
+ attr_accessor :enabled
305
+ # 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.
306
+ attr_accessor :liability
307
+
308
+ def initialize(enabled: nil, liability: nil)
309
+ @enabled = enabled
310
+ @liability = liability
311
+ end
312
+ end
313
+
314
+ class Discount < Stripe::RequestParams
315
+ # ID of the coupon to create a new discount for.
316
+ attr_accessor :coupon
317
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
318
+ attr_accessor :discount
319
+ # ID of the promotion code to create a new discount for.
320
+ attr_accessor :promotion_code
321
+
322
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
323
+ @coupon = coupon
324
+ @discount = discount
325
+ @promotion_code = promotion_code
326
+ end
327
+ end
328
+
329
+ class InvoiceSettings < Stripe::RequestParams
330
+ class Issuer < Stripe::RequestParams
331
+ # The connected account being referenced when `type` is `account`.
332
+ attr_accessor :account
333
+ # Type of the account referenced in the request.
334
+ attr_accessor :type
335
+
336
+ def initialize(account: nil, type: nil)
337
+ @account = account
338
+ @type = type
339
+ end
340
+ end
341
+ # 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.
342
+ attr_accessor :account_tax_ids
343
+ # 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`.
344
+ attr_accessor :days_until_due
345
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
346
+ attr_accessor :issuer
347
+
348
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
349
+ @account_tax_ids = account_tax_ids
350
+ @days_until_due = days_until_due
351
+ @issuer = issuer
352
+ end
353
+ end
354
+
355
+ class Item < Stripe::RequestParams
356
+ class Discount < Stripe::RequestParams
357
+ # ID of the coupon to create a new discount for.
358
+ attr_accessor :coupon
359
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
360
+ attr_accessor :discount
361
+ # ID of the promotion code to create a new discount for.
362
+ attr_accessor :promotion_code
363
+
364
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
365
+ @coupon = coupon
366
+ @discount = discount
367
+ @promotion_code = promotion_code
368
+ end
369
+ end
370
+
371
+ class PriceData < Stripe::RequestParams
372
+ class Recurring < Stripe::RequestParams
373
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
374
+ attr_accessor :interval
375
+ # 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).
376
+ attr_accessor :interval_count
377
+
378
+ def initialize(interval: nil, interval_count: nil)
379
+ @interval = interval
380
+ @interval_count = interval_count
381
+ end
382
+ end
383
+ # 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).
384
+ attr_accessor :currency
385
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
386
+ attr_accessor :product
387
+ # The recurring components of a price such as `interval` and `interval_count`.
388
+ attr_accessor :recurring
389
+ # 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.
390
+ attr_accessor :tax_behavior
391
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
392
+ attr_accessor :unit_amount
393
+ # 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.
394
+ attr_accessor :unit_amount_decimal
395
+
396
+ def initialize(
397
+ currency: nil,
398
+ product: nil,
399
+ recurring: nil,
400
+ tax_behavior: nil,
401
+ unit_amount: nil,
402
+ unit_amount_decimal: nil
403
+ )
404
+ @currency = currency
405
+ @product = product
406
+ @recurring = recurring
407
+ @tax_behavior = tax_behavior
408
+ @unit_amount = unit_amount
409
+ @unit_amount_decimal = unit_amount_decimal
410
+ end
411
+ end
412
+ # The coupons to redeem into discounts for the subscription item.
413
+ attr_accessor :discounts
414
+ # 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`.
415
+ attr_accessor :metadata
416
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
417
+ attr_accessor :plan
418
+ # The ID of the price object.
419
+ attr_accessor :price
420
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
421
+ attr_accessor :price_data
422
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
423
+ attr_accessor :quantity
424
+ # 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.
425
+ attr_accessor :tax_rates
426
+
427
+ def initialize(
428
+ discounts: nil,
429
+ metadata: nil,
430
+ plan: nil,
431
+ price: nil,
432
+ price_data: nil,
433
+ quantity: nil,
434
+ tax_rates: nil
435
+ )
436
+ @discounts = discounts
437
+ @metadata = metadata
438
+ @plan = plan
439
+ @price = price
440
+ @price_data = price_data
441
+ @quantity = quantity
442
+ @tax_rates = tax_rates
443
+ end
444
+ end
445
+
446
+ class TransferData < Stripe::RequestParams
447
+ # 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.
448
+ attr_accessor :amount_percent
449
+ # ID of an existing, connected Stripe account.
450
+ attr_accessor :destination
451
+
452
+ def initialize(amount_percent: nil, destination: nil)
453
+ @amount_percent = amount_percent
454
+ @destination = destination
455
+ end
456
+ end
457
+ # 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.
458
+ attr_accessor :add_invoice_items
459
+ # 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).
460
+ attr_accessor :application_fee_percent
461
+ # Automatic tax settings for this phase.
462
+ attr_accessor :automatic_tax
463
+ # 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).
464
+ attr_accessor :billing_cycle_anchor
465
+ # 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.
466
+ attr_accessor :collection_method
467
+ # 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).
468
+ attr_accessor :currency
469
+ # 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.
470
+ attr_accessor :default_payment_method
471
+ # 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.
472
+ attr_accessor :default_tax_rates
473
+ # 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.
474
+ attr_accessor :description
475
+ # 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.
476
+ attr_accessor :discounts
477
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
478
+ attr_accessor :end_date
479
+ # All invoices will be billed using the specified settings.
480
+ attr_accessor :invoice_settings
481
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
482
+ attr_accessor :items
483
+ # 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.
484
+ attr_accessor :iterations
485
+ # 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`.
486
+ attr_accessor :metadata
487
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
488
+ attr_accessor :on_behalf_of
489
+ # 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.
490
+ attr_accessor :proration_behavior
491
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
492
+ attr_accessor :transfer_data
493
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
494
+ attr_accessor :trial
495
+ # 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`
496
+ attr_accessor :trial_end
497
+
498
+ def initialize(
499
+ add_invoice_items: nil,
500
+ application_fee_percent: nil,
501
+ automatic_tax: nil,
502
+ billing_cycle_anchor: nil,
503
+ collection_method: nil,
504
+ currency: nil,
505
+ default_payment_method: nil,
506
+ default_tax_rates: nil,
507
+ description: nil,
508
+ discounts: nil,
509
+ end_date: nil,
510
+ invoice_settings: nil,
511
+ items: nil,
512
+ iterations: nil,
513
+ metadata: nil,
514
+ on_behalf_of: nil,
515
+ proration_behavior: nil,
516
+ transfer_data: nil,
517
+ trial: nil,
518
+ trial_end: nil
519
+ )
520
+ @add_invoice_items = add_invoice_items
521
+ @application_fee_percent = application_fee_percent
522
+ @automatic_tax = automatic_tax
523
+ @billing_cycle_anchor = billing_cycle_anchor
524
+ @collection_method = collection_method
525
+ @currency = currency
526
+ @default_payment_method = default_payment_method
527
+ @default_tax_rates = default_tax_rates
528
+ @description = description
529
+ @discounts = discounts
530
+ @end_date = end_date
531
+ @invoice_settings = invoice_settings
532
+ @items = items
533
+ @iterations = iterations
534
+ @metadata = metadata
535
+ @on_behalf_of = on_behalf_of
536
+ @proration_behavior = proration_behavior
537
+ @transfer_data = transfer_data
538
+ @trial = trial
539
+ @trial_end = trial_end
540
+ end
541
+ end
542
+ # The identifier of the customer to create the subscription schedule for.
543
+ attr_accessor :customer
544
+ # Object representing the subscription schedule's default settings.
545
+ attr_accessor :default_settings
546
+ # 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.
547
+ attr_accessor :end_behavior
548
+ # Specifies which fields in the response should be expanded.
549
+ attr_accessor :expand
550
+ # 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.
551
+ attr_accessor :from_subscription
552
+ # 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`.
553
+ attr_accessor :metadata
554
+ # 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.
555
+ attr_accessor :phases
556
+ # 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.
557
+ attr_accessor :start_date
558
+
559
+ def initialize(
560
+ customer: nil,
561
+ default_settings: nil,
562
+ end_behavior: nil,
563
+ expand: nil,
564
+ from_subscription: nil,
565
+ metadata: nil,
566
+ phases: nil,
567
+ start_date: nil
568
+ )
569
+ @customer = customer
570
+ @default_settings = default_settings
571
+ @end_behavior = end_behavior
572
+ @expand = expand
573
+ @from_subscription = from_subscription
574
+ @metadata = metadata
575
+ @phases = phases
576
+ @start_date = start_date
577
+ end
578
+ end
579
+
580
+ class RetrieveParams < Stripe::RequestParams
581
+ # Specifies which fields in the response should be expanded.
582
+ attr_accessor :expand
583
+
584
+ def initialize(expand: nil)
585
+ @expand = expand
586
+ end
587
+ end
588
+
589
+ class UpdateParams < Stripe::RequestParams
590
+ class DefaultSettings < Stripe::RequestParams
591
+ class AutomaticTax < Stripe::RequestParams
592
+ class Liability < Stripe::RequestParams
593
+ # The connected account being referenced when `type` is `account`.
594
+ attr_accessor :account
595
+ # Type of the account referenced in the request.
596
+ attr_accessor :type
597
+
598
+ def initialize(account: nil, type: nil)
599
+ @account = account
600
+ @type = type
601
+ end
602
+ end
603
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
604
+ attr_accessor :enabled
605
+ # 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.
606
+ attr_accessor :liability
607
+
608
+ def initialize(enabled: nil, liability: nil)
609
+ @enabled = enabled
610
+ @liability = liability
611
+ end
612
+ end
613
+
614
+ class InvoiceSettings < Stripe::RequestParams
615
+ class Issuer < Stripe::RequestParams
616
+ # The connected account being referenced when `type` is `account`.
617
+ attr_accessor :account
618
+ # Type of the account referenced in the request.
619
+ attr_accessor :type
620
+
621
+ def initialize(account: nil, type: nil)
622
+ @account = account
623
+ @type = type
624
+ end
625
+ end
626
+ # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.
627
+ attr_accessor :account_tax_ids
628
+ # 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`.
629
+ attr_accessor :days_until_due
630
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
631
+ attr_accessor :issuer
632
+
633
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
634
+ @account_tax_ids = account_tax_ids
635
+ @days_until_due = days_until_due
636
+ @issuer = issuer
637
+ end
638
+ end
639
+
640
+ class TransferData < Stripe::RequestParams
641
+ # 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.
642
+ attr_accessor :amount_percent
643
+ # ID of an existing, connected Stripe account.
644
+ attr_accessor :destination
645
+
646
+ def initialize(amount_percent: nil, destination: nil)
647
+ @amount_percent = amount_percent
648
+ @destination = destination
649
+ end
650
+ end
651
+ # 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).
652
+ attr_accessor :application_fee_percent
653
+ # Default settings for automatic tax computation.
654
+ attr_accessor :automatic_tax
655
+ # 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).
656
+ attr_accessor :billing_cycle_anchor
657
+ # 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.
658
+ attr_accessor :collection_method
659
+ # 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.
660
+ attr_accessor :default_payment_method
661
+ # 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.
662
+ attr_accessor :description
663
+ # All invoices will be billed using the specified settings.
664
+ attr_accessor :invoice_settings
665
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
666
+ attr_accessor :on_behalf_of
667
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
668
+ attr_accessor :transfer_data
669
+
670
+ def initialize(
671
+ application_fee_percent: nil,
672
+ automatic_tax: nil,
673
+ billing_cycle_anchor: nil,
674
+ collection_method: nil,
675
+ default_payment_method: nil,
676
+ description: nil,
677
+ invoice_settings: nil,
678
+ on_behalf_of: nil,
679
+ transfer_data: nil
680
+ )
681
+ @application_fee_percent = application_fee_percent
682
+ @automatic_tax = automatic_tax
683
+ @billing_cycle_anchor = billing_cycle_anchor
684
+ @collection_method = collection_method
685
+ @default_payment_method = default_payment_method
686
+ @description = description
687
+ @invoice_settings = invoice_settings
688
+ @on_behalf_of = on_behalf_of
689
+ @transfer_data = transfer_data
690
+ end
691
+ end
692
+
693
+ class Phase < Stripe::RequestParams
694
+ class AddInvoiceItem < Stripe::RequestParams
695
+ class Discount < Stripe::RequestParams
696
+ # ID of the coupon to create a new discount for.
697
+ attr_accessor :coupon
698
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
699
+ attr_accessor :discount
700
+ # ID of the promotion code to create a new discount for.
701
+ attr_accessor :promotion_code
702
+
703
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
704
+ @coupon = coupon
705
+ @discount = discount
706
+ @promotion_code = promotion_code
707
+ end
708
+ end
709
+
710
+ class PriceData < Stripe::RequestParams
711
+ # 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).
712
+ attr_accessor :currency
713
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
714
+ attr_accessor :product
715
+ # 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.
716
+ attr_accessor :tax_behavior
717
+ # 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.
718
+ attr_accessor :unit_amount
719
+ # 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.
720
+ attr_accessor :unit_amount_decimal
721
+
722
+ def initialize(
723
+ currency: nil,
724
+ product: nil,
725
+ tax_behavior: nil,
726
+ unit_amount: nil,
727
+ unit_amount_decimal: nil
728
+ )
729
+ @currency = currency
730
+ @product = product
731
+ @tax_behavior = tax_behavior
732
+ @unit_amount = unit_amount
733
+ @unit_amount_decimal = unit_amount_decimal
734
+ end
735
+ end
736
+ # The coupons to redeem into discounts for the item.
737
+ attr_accessor :discounts
738
+ # The ID of the price object. One of `price` or `price_data` is required.
739
+ attr_accessor :price
740
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.
741
+ attr_accessor :price_data
742
+ # Quantity for this item. Defaults to 1.
743
+ attr_accessor :quantity
744
+ # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.
745
+ attr_accessor :tax_rates
746
+
747
+ def initialize(discounts: nil, price: nil, price_data: nil, quantity: nil, tax_rates: nil)
748
+ @discounts = discounts
749
+ @price = price
750
+ @price_data = price_data
751
+ @quantity = quantity
752
+ @tax_rates = tax_rates
753
+ end
754
+ end
755
+
756
+ class AutomaticTax < Stripe::RequestParams
757
+ class Liability < Stripe::RequestParams
758
+ # The connected account being referenced when `type` is `account`.
759
+ attr_accessor :account
760
+ # Type of the account referenced in the request.
761
+ attr_accessor :type
762
+
763
+ def initialize(account: nil, type: nil)
764
+ @account = account
765
+ @type = type
766
+ end
767
+ end
768
+ # Enabled automatic tax calculation which will automatically compute tax rates on all invoices generated by the subscription.
769
+ attr_accessor :enabled
770
+ # 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.
771
+ attr_accessor :liability
772
+
773
+ def initialize(enabled: nil, liability: nil)
774
+ @enabled = enabled
775
+ @liability = liability
776
+ end
777
+ end
778
+
779
+ class Discount < Stripe::RequestParams
780
+ # ID of the coupon to create a new discount for.
781
+ attr_accessor :coupon
782
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
783
+ attr_accessor :discount
784
+ # ID of the promotion code to create a new discount for.
785
+ attr_accessor :promotion_code
786
+
787
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
788
+ @coupon = coupon
789
+ @discount = discount
790
+ @promotion_code = promotion_code
791
+ end
792
+ end
793
+
794
+ class InvoiceSettings < Stripe::RequestParams
795
+ class Issuer < Stripe::RequestParams
796
+ # The connected account being referenced when `type` is `account`.
797
+ attr_accessor :account
798
+ # Type of the account referenced in the request.
799
+ attr_accessor :type
800
+
801
+ def initialize(account: nil, type: nil)
802
+ @account = account
803
+ @type = type
804
+ end
805
+ end
806
+ # 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.
807
+ attr_accessor :account_tax_ids
808
+ # 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`.
809
+ attr_accessor :days_until_due
810
+ # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.
811
+ attr_accessor :issuer
812
+
813
+ def initialize(account_tax_ids: nil, days_until_due: nil, issuer: nil)
814
+ @account_tax_ids = account_tax_ids
815
+ @days_until_due = days_until_due
816
+ @issuer = issuer
817
+ end
818
+ end
819
+
820
+ class Item < Stripe::RequestParams
821
+ class Discount < Stripe::RequestParams
822
+ # ID of the coupon to create a new discount for.
823
+ attr_accessor :coupon
824
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
825
+ attr_accessor :discount
826
+ # ID of the promotion code to create a new discount for.
827
+ attr_accessor :promotion_code
828
+
829
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
830
+ @coupon = coupon
831
+ @discount = discount
832
+ @promotion_code = promotion_code
833
+ end
834
+ end
835
+
836
+ class PriceData < Stripe::RequestParams
837
+ class Recurring < Stripe::RequestParams
838
+ # Specifies billing frequency. Either `day`, `week`, `month` or `year`.
839
+ attr_accessor :interval
840
+ # 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).
841
+ attr_accessor :interval_count
842
+
843
+ def initialize(interval: nil, interval_count: nil)
844
+ @interval = interval
845
+ @interval_count = interval_count
846
+ end
847
+ end
848
+ # 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).
849
+ attr_accessor :currency
850
+ # The ID of the [Product](https://docs.stripe.com/api/products) that this [Price](https://docs.stripe.com/api/prices) will belong to.
851
+ attr_accessor :product
852
+ # The recurring components of a price such as `interval` and `interval_count`.
853
+ attr_accessor :recurring
854
+ # 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.
855
+ attr_accessor :tax_behavior
856
+ # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge.
857
+ attr_accessor :unit_amount
858
+ # 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.
859
+ attr_accessor :unit_amount_decimal
860
+
861
+ def initialize(
862
+ currency: nil,
863
+ product: nil,
864
+ recurring: nil,
865
+ tax_behavior: nil,
866
+ unit_amount: nil,
867
+ unit_amount_decimal: nil
868
+ )
869
+ @currency = currency
870
+ @product = product
871
+ @recurring = recurring
872
+ @tax_behavior = tax_behavior
873
+ @unit_amount = unit_amount
874
+ @unit_amount_decimal = unit_amount_decimal
875
+ end
876
+ end
877
+ # The coupons to redeem into discounts for the subscription item.
878
+ attr_accessor :discounts
879
+ # 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`.
880
+ attr_accessor :metadata
881
+ # The plan ID to subscribe to. You may specify the same ID in `plan` and `price`.
882
+ attr_accessor :plan
883
+ # The ID of the price object.
884
+ attr_accessor :price
885
+ # Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.
886
+ attr_accessor :price_data
887
+ # Quantity for the given price. Can be set only if the price's `usage_type` is `licensed` and not `metered`.
888
+ attr_accessor :quantity
889
+ # 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.
890
+ attr_accessor :tax_rates
891
+
892
+ def initialize(
893
+ discounts: nil,
894
+ metadata: nil,
895
+ plan: nil,
896
+ price: nil,
897
+ price_data: nil,
898
+ quantity: nil,
899
+ tax_rates: nil
900
+ )
901
+ @discounts = discounts
902
+ @metadata = metadata
903
+ @plan = plan
904
+ @price = price
905
+ @price_data = price_data
906
+ @quantity = quantity
907
+ @tax_rates = tax_rates
908
+ end
909
+ end
910
+
911
+ class TransferData < Stripe::RequestParams
912
+ # 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.
913
+ attr_accessor :amount_percent
914
+ # ID of an existing, connected Stripe account.
915
+ attr_accessor :destination
916
+
917
+ def initialize(amount_percent: nil, destination: nil)
918
+ @amount_percent = amount_percent
919
+ @destination = destination
920
+ end
921
+ end
922
+ # 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.
923
+ attr_accessor :add_invoice_items
924
+ # 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).
925
+ attr_accessor :application_fee_percent
926
+ # Automatic tax settings for this phase.
927
+ attr_accessor :automatic_tax
928
+ # 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).
929
+ attr_accessor :billing_cycle_anchor
930
+ # 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.
931
+ attr_accessor :collection_method
932
+ # 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).
933
+ attr_accessor :currency
934
+ # 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.
935
+ attr_accessor :default_payment_method
936
+ # 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.
937
+ attr_accessor :default_tax_rates
938
+ # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.
939
+ attr_accessor :description
940
+ # 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.
941
+ attr_accessor :discounts
942
+ # The date at which this phase of the subscription schedule ends. If set, `iterations` must not be set.
943
+ attr_accessor :end_date
944
+ # All invoices will be billed using the specified settings.
945
+ attr_accessor :invoice_settings
946
+ # List of configuration items, each with an attached price, to apply during this phase of the subscription schedule.
947
+ attr_accessor :items
948
+ # 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.
949
+ attr_accessor :iterations
950
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered, adding new keys and replacing existing keys in the subscription's `metadata`. Individual keys in the subscription's `metadata` can be unset by posting an empty value to them in the phase's `metadata`. To unset all keys in the subscription's `metadata`, update the subscription directly or unset every key individually from the phase's `metadata`.
951
+ attr_accessor :metadata
952
+ # The account on behalf of which to charge, for each of the associated subscription's invoices.
953
+ attr_accessor :on_behalf_of
954
+ # 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.
955
+ attr_accessor :proration_behavior
956
+ # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
957
+ attr_accessor :start_date
958
+ # The data with which to automatically create a Transfer for each of the associated subscription's invoices.
959
+ attr_accessor :transfer_data
960
+ # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
961
+ attr_accessor :trial
962
+ # 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`
963
+ attr_accessor :trial_end
964
+
965
+ def initialize(
966
+ add_invoice_items: nil,
967
+ application_fee_percent: nil,
968
+ automatic_tax: nil,
969
+ billing_cycle_anchor: nil,
970
+ collection_method: nil,
971
+ currency: nil,
972
+ default_payment_method: nil,
973
+ default_tax_rates: nil,
974
+ description: nil,
975
+ discounts: nil,
976
+ end_date: nil,
977
+ invoice_settings: nil,
978
+ items: nil,
979
+ iterations: nil,
980
+ metadata: nil,
981
+ on_behalf_of: nil,
982
+ proration_behavior: nil,
983
+ start_date: nil,
984
+ transfer_data: nil,
985
+ trial: nil,
986
+ trial_end: nil
987
+ )
988
+ @add_invoice_items = add_invoice_items
989
+ @application_fee_percent = application_fee_percent
990
+ @automatic_tax = automatic_tax
991
+ @billing_cycle_anchor = billing_cycle_anchor
992
+ @collection_method = collection_method
993
+ @currency = currency
994
+ @default_payment_method = default_payment_method
995
+ @default_tax_rates = default_tax_rates
996
+ @description = description
997
+ @discounts = discounts
998
+ @end_date = end_date
999
+ @invoice_settings = invoice_settings
1000
+ @items = items
1001
+ @iterations = iterations
1002
+ @metadata = metadata
1003
+ @on_behalf_of = on_behalf_of
1004
+ @proration_behavior = proration_behavior
1005
+ @start_date = start_date
1006
+ @transfer_data = transfer_data
1007
+ @trial = trial
1008
+ @trial_end = trial_end
1009
+ end
1010
+ end
1011
+ # Object representing the subscription schedule's default settings.
1012
+ attr_accessor :default_settings
1013
+ # 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.
1014
+ attr_accessor :end_behavior
1015
+ # Specifies which fields in the response should be expanded.
1016
+ attr_accessor :expand
1017
+ # 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`.
1018
+ attr_accessor :metadata
1019
+ # 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.
1020
+ attr_accessor :phases
1021
+ # If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations`.
1022
+ attr_accessor :proration_behavior
1023
+
1024
+ def initialize(
1025
+ default_settings: nil,
1026
+ end_behavior: nil,
1027
+ expand: nil,
1028
+ metadata: nil,
1029
+ phases: nil,
1030
+ proration_behavior: nil
1031
+ )
1032
+ @default_settings = default_settings
1033
+ @end_behavior = end_behavior
1034
+ @expand = expand
1035
+ @metadata = metadata
1036
+ @phases = phases
1037
+ @proration_behavior = proration_behavior
1038
+ end
1039
+ end
1040
+
1041
+ class CancelParams < Stripe::RequestParams
1042
+ # Specifies which fields in the response should be expanded.
1043
+ attr_accessor :expand
1044
+ # 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`.
1045
+ attr_accessor :invoice_now
1046
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.
1047
+ attr_accessor :prorate
1048
+
1049
+ def initialize(expand: nil, invoice_now: nil, prorate: nil)
1050
+ @expand = expand
1051
+ @invoice_now = invoice_now
1052
+ @prorate = prorate
1053
+ end
1054
+ end
1055
+
1056
+ class ReleaseParams < Stripe::RequestParams
1057
+ # Specifies which fields in the response should be expanded.
1058
+ attr_accessor :expand
1059
+ # Keep any cancellation on the subscription that the schedule has set
1060
+ attr_accessor :preserve_cancel_date
1061
+
1062
+ def initialize(expand: nil, preserve_cancel_date: nil)
1063
+ @expand = expand
1064
+ @preserve_cancel_date = preserve_cancel_date
1065
+ end
1066
+ end
1067
+
1068
+ # 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.
1069
+ def cancel(schedule, params = {}, opts = {})
1070
+ request(
1071
+ method: :post,
1072
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
1073
+ params: params,
1074
+ opts: opts,
1075
+ base_address: :api
1076
+ )
1077
+ end
1078
+
1079
+ # Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.
1080
+ def create(params = {}, opts = {})
1081
+ request(
1082
+ method: :post,
1083
+ path: "/v1/subscription_schedules",
1084
+ params: params,
1085
+ opts: opts,
1086
+ base_address: :api
1087
+ )
1088
+ end
1089
+
1090
+ # Retrieves the list of your subscription schedules.
1091
+ def list(params = {}, opts = {})
1092
+ request(
1093
+ method: :get,
1094
+ path: "/v1/subscription_schedules",
1095
+ params: params,
1096
+ opts: opts,
1097
+ base_address: :api
1098
+ )
1099
+ end
1100
+
1101
+ # 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.
1102
+ def release(schedule, params = {}, opts = {})
1103
+ request(
1104
+ method: :post,
1105
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
1106
+ params: params,
1107
+ opts: opts,
1108
+ base_address: :api
1109
+ )
1110
+ end
1111
+
1112
+ # Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.
1113
+ def retrieve(schedule, params = {}, opts = {})
1114
+ request(
1115
+ method: :get,
1116
+ path: format("/v1/subscription_schedules/%<schedule>s", { schedule: CGI.escape(schedule) }),
1117
+ params: params,
1118
+ opts: opts,
1119
+ base_address: :api
1120
+ )
1121
+ end
1122
+
1123
+ # Updates an existing subscription schedule.
1124
+ def update(schedule, params = {}, opts = {})
1125
+ request(
1126
+ method: :post,
1127
+ path: format("/v1/subscription_schedules/%<schedule>s", { schedule: CGI.escape(schedule) }),
1128
+ params: params,
1129
+ opts: opts,
1130
+ base_address: :api
1131
+ )
1132
+ end
1133
+ end
1134
+ end