stripe 15.3.0 → 15.4.0.pre.beta.1

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 (589) hide show
  1. checksums.yaml +4 -4
  2. data/API_VERSION +1 -1
  3. data/CHANGELOG.md +1594 -667
  4. data/README.md +1 -1
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_requestor.rb +28 -0
  7. data/lib/stripe/api_version.rb +1 -2
  8. data/lib/stripe/errors.rb +54 -0
  9. data/lib/stripe/event_types.rb +98 -0
  10. data/lib/stripe/events/v2_core_account_closed_event.rb +21 -0
  11. data/lib/stripe/events/v2_core_account_created_event.rb +21 -0
  12. data/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +23 -0
  13. data/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +21 -0
  14. data/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +23 -0
  15. data/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +21 -0
  16. data/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +23 -0
  17. data/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +21 -0
  18. data/lib/stripe/events/v2_core_account_including_defaults_updated_event.rb +21 -0
  19. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +21 -0
  20. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +21 -0
  21. data/lib/stripe/events/v2_core_account_link_completed_event.rb +13 -0
  22. data/lib/stripe/events/v2_core_account_person_created_event.rb +23 -0
  23. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +23 -0
  24. data/lib/stripe/events/v2_core_account_person_updated_event.rb +23 -0
  25. data/lib/stripe/events/v2_core_account_updated_event.rb +21 -0
  26. data/lib/stripe/events/v2_money_management_adjustment_created_event.rb +21 -0
  27. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +21 -0
  28. data/lib/stripe/events/v2_money_management_financial_account_updated_event.rb +21 -0
  29. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +21 -0
  30. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +21 -0
  31. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +23 -0
  32. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +21 -0
  33. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +21 -0
  34. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +21 -0
  35. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +21 -0
  36. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +21 -0
  37. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +21 -0
  38. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +21 -0
  39. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +21 -0
  40. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +21 -0
  41. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +21 -0
  42. data/lib/stripe/events/v2_money_management_outbound_payment_updated_event.rb +21 -0
  43. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +21 -0
  44. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +21 -0
  45. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +21 -0
  46. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +21 -0
  47. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +21 -0
  48. data/lib/stripe/events/v2_money_management_outbound_transfer_updated_event.rb +21 -0
  49. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +23 -0
  50. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +21 -0
  51. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +21 -0
  52. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +21 -0
  53. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +21 -0
  54. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +21 -0
  55. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +21 -0
  56. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +21 -0
  57. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +21 -0
  58. data/lib/stripe/events/v2_money_management_transaction_created_event.rb +21 -0
  59. data/lib/stripe/events/v2_money_management_transaction_updated_event.rb +21 -0
  60. data/lib/stripe/events/v2_off_session_payment_requires_capture_event.rb +21 -0
  61. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_failed_event.rb +21 -0
  62. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_started_event.rb +21 -0
  63. data/lib/stripe/events/v2_payments_off_session_payment_canceled_event.rb +21 -0
  64. data/lib/stripe/events/v2_payments_off_session_payment_created_event.rb +21 -0
  65. data/lib/stripe/events/v2_payments_off_session_payment_failed_event.rb +21 -0
  66. data/lib/stripe/events/v2_payments_off_session_payment_succeeded_event.rb +21 -0
  67. data/lib/stripe/object_types.rb +50 -0
  68. data/lib/stripe/resources/account.rb +653 -1
  69. data/lib/stripe/resources/account_notice.rb +123 -0
  70. data/lib/stripe/resources/account_session.rb +256 -1
  71. data/lib/stripe/resources/balance_settings.rb +105 -0
  72. data/lib/stripe/resources/billing/credit_balance_summary.rb +2 -0
  73. data/lib/stripe/resources/billing/credit_balance_transaction.rb +4 -0
  74. data/lib/stripe/resources/billing/credit_grant.rb +10 -0
  75. data/lib/stripe/resources/billing_portal/session.rb +6 -0
  76. data/lib/stripe/resources/capital/financing_offer.rb +179 -0
  77. data/lib/stripe/resources/capital/financing_summary.rb +55 -0
  78. data/lib/stripe/resources/capital/financing_transaction.rb +114 -0
  79. data/lib/stripe/resources/card.rb +2 -0
  80. data/lib/stripe/resources/cash_balance.rb +2 -0
  81. data/lib/stripe/resources/charge.rb +1538 -0
  82. data/lib/stripe/resources/checkout/session.rb +326 -2
  83. data/lib/stripe/resources/confirmation_token.rb +170 -0
  84. data/lib/stripe/resources/coupon.rb +30 -1
  85. data/lib/stripe/resources/credit_note.rb +6 -0
  86. data/lib/stripe/resources/credit_note_line_item.rb +9 -0
  87. data/lib/stripe/resources/customer.rb +2 -0
  88. data/lib/stripe/resources/customer_balance_transaction.rb +2 -0
  89. data/lib/stripe/resources/customer_cash_balance_transaction.rb +2 -0
  90. data/lib/stripe/resources/customer_session.rb +6 -1
  91. data/lib/stripe/resources/discount.rb +2 -0
  92. data/lib/stripe/resources/dispute.rb +2 -0
  93. data/lib/stripe/resources/event.rb +31 -0
  94. data/lib/stripe/resources/financial_connections/account.rb +22 -1
  95. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +27 -0
  96. data/lib/stripe/resources/financial_connections/institution.rb +92 -0
  97. data/lib/stripe/resources/financial_connections/session.rb +62 -2
  98. data/lib/stripe/resources/fx_quote.rb +184 -0
  99. data/lib/stripe/resources/identity/verification_session.rb +10 -0
  100. data/lib/stripe/resources/invoice.rb +1063 -16
  101. data/lib/stripe/resources/invoice_item.rb +78 -2
  102. data/lib/stripe/resources/invoice_line_item.rb +55 -1
  103. data/lib/stripe/resources/invoice_payment.rb +2 -53
  104. data/lib/stripe/resources/issuing/cardholder.rb +2 -1
  105. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +602 -0
  106. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +82 -0
  107. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +86 -0
  108. data/lib/stripe/resources/issuing/settlement.rb +53 -0
  109. data/lib/stripe/resources/issuing/transaction.rb +6 -0
  110. data/lib/stripe/resources/line_item.rb +37 -0
  111. data/lib/stripe/resources/mandate.rb +24 -0
  112. data/lib/stripe/resources/margin.rb +115 -0
  113. data/lib/stripe/resources/order.rb +2958 -0
  114. data/lib/stripe/resources/payment_attempt_record.rb +1099 -0
  115. data/lib/stripe/resources/payment_intent.rb +8540 -3584
  116. data/lib/stripe/resources/payment_intent_amount_details_line_item.rb +72 -0
  117. data/lib/stripe/resources/payment_method.rb +192 -1
  118. data/lib/stripe/resources/payment_method_configuration.rb +295 -0
  119. data/lib/stripe/resources/payment_record.rb +1628 -0
  120. data/lib/stripe/resources/payout.rb +6 -0
  121. data/lib/stripe/resources/price.rb +30 -0
  122. data/lib/stripe/resources/privacy/redaction_job.rb +298 -0
  123. data/lib/stripe/resources/privacy/redaction_job_validation_error.rb +33 -0
  124. data/lib/stripe/resources/promotion_code.rb +10 -0
  125. data/lib/stripe/resources/quote.rb +2038 -7
  126. data/lib/stripe/resources/quote_line.rb +274 -0
  127. data/lib/stripe/resources/quote_preview_invoice.rb +663 -0
  128. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +371 -0
  129. data/lib/stripe/resources/refund.rb +9 -0
  130. data/lib/stripe/resources/setup_attempt.rb +21 -0
  131. data/lib/stripe/resources/setup_intent.rb +578 -9
  132. data/lib/stripe/resources/source.rb +29 -0
  133. data/lib/stripe/resources/subscription.rb +288 -9
  134. data/lib/stripe/resources/subscription_item.rb +84 -3
  135. data/lib/stripe/resources/subscription_schedule.rb +1007 -10
  136. data/lib/stripe/resources/tax/association.rb +66 -0
  137. data/lib/stripe/resources/tax/form.rb +211 -0
  138. data/lib/stripe/resources/tax_id.rb +12 -2
  139. data/lib/stripe/resources/terminal/reader.rb +8 -0
  140. data/lib/stripe/resources/terminal/reader_collected_data.rb +31 -0
  141. data/lib/stripe/resources/transfer.rb +6 -0
  142. data/lib/stripe/resources/treasury/financial_account.rb +22 -3
  143. data/lib/stripe/resources/treasury/financial_account_features.rb +2 -0
  144. data/lib/stripe/resources/treasury/outbound_transfer.rb +37 -0
  145. data/lib/stripe/resources/treasury/received_credit.rb +38 -1
  146. data/lib/stripe/resources/treasury/received_debit.rb +40 -1
  147. data/lib/stripe/resources/v2/core/account.rb +1755 -0
  148. data/lib/stripe/resources/v2/core/account_link.rb +56 -0
  149. data/lib/stripe/resources/v2/core/person.rb +276 -0
  150. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +74 -0
  151. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +39 -0
  152. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +20 -0
  153. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +22 -0
  154. data/lib/stripe/resources/v2/money_management/adjustment.rb +51 -0
  155. data/lib/stripe/resources/v2/money_management/financial_account.rb +58 -0
  156. data/lib/stripe/resources/v2/money_management/financial_address.rb +68 -0
  157. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +94 -0
  158. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +129 -0
  159. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +82 -0
  160. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +45 -0
  161. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +117 -0
  162. data/lib/stripe/resources/v2/money_management/payout_method.rb +75 -0
  163. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +49 -0
  164. data/lib/stripe/resources/v2/money_management/received_credit.rb +122 -0
  165. data/lib/stripe/resources/v2/money_management/received_debit.rb +84 -0
  166. data/lib/stripe/resources/v2/money_management/transaction.rb +78 -0
  167. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +68 -0
  168. data/lib/stripe/resources/v2/payments/off_session_payment.rb +72 -0
  169. data/lib/stripe/resources.rb +104 -0
  170. data/lib/stripe/services/account_notice_service.rb +101 -0
  171. data/lib/stripe/services/account_service.rb +562 -1
  172. data/lib/stripe/services/account_session_service.rb +226 -1
  173. data/lib/stripe/services/balance_settings_service.rb +96 -0
  174. data/lib/stripe/services/billing/credit_balance_summary_service.rb +4 -1
  175. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +4 -0
  176. data/lib/stripe/services/billing/credit_grant_service.rb +8 -0
  177. data/lib/stripe/services/billing_portal/session_service.rb +4 -0
  178. data/lib/stripe/services/capital/financing_offer_service.rb +112 -0
  179. data/lib/stripe/services/capital/financing_summary_service.rb +28 -0
  180. data/lib/stripe/services/capital/financing_transaction_service.rb +79 -0
  181. data/lib/stripe/services/capital_service.rb +15 -0
  182. data/lib/stripe/services/charge_service.rb +1418 -0
  183. data/lib/stripe/services/checkout/session_service.rb +243 -2
  184. data/lib/stripe/services/coupon_service.rb +17 -1
  185. data/lib/stripe/services/credit_note_service.rb +4 -0
  186. data/lib/stripe/services/customer_session_service.rb +4 -1
  187. data/{rbi/stripe/services/account_external_account_service.rbi → lib/stripe/services/external_account_service.rb} +135 -122
  188. data/{rbi/stripe/services/tax/transaction_line_item_service.rbi → lib/stripe/services/financial_connections/account_inferred_balance_service.rb} +21 -17
  189. data/lib/stripe/services/financial_connections/account_service.rb +7 -2
  190. data/{rbi/stripe/services/climate/supplier_service.rbi → lib/stripe/services/financial_connections/institution_service.rb} +36 -25
  191. data/lib/stripe/services/financial_connections/session_service.rb +34 -2
  192. data/lib/stripe/services/financial_connections_service.rb +2 -1
  193. data/lib/stripe/services/fx_quote_service.rb +123 -0
  194. data/lib/stripe/services/identity/verification_session_service.rb +8 -0
  195. data/lib/stripe/services/invoice_item_service.rb +74 -2
  196. data/lib/stripe/services/invoice_line_item_service.rb +33 -1
  197. data/lib/stripe/services/invoice_service.rb +1014 -16
  198. data/lib/stripe/services/issuing/cardholder_service.rb +2 -1
  199. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +504 -0
  200. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +66 -0
  201. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +83 -0
  202. data/lib/stripe/services/issuing/transaction_service.rb +4 -0
  203. data/lib/stripe/services/issuing_service.rb +5 -1
  204. data/lib/stripe/services/margin_service.rb +119 -0
  205. data/{rbi/stripe/services/source_transaction_service.rbi → lib/stripe/services/order_line_item_service.rb} +20 -16
  206. data/lib/stripe/services/order_service.rb +2388 -0
  207. data/lib/stripe/services/payment_attempt_record_service.rb +49 -0
  208. data/{rbi/stripe/services/quote_line_item_service.rbi → lib/stripe/services/payment_intent_amount_details_line_item_service.rb} +20 -16
  209. data/lib/stripe/services/payment_intent_service.rb +4879 -391
  210. data/lib/stripe/services/payment_method_configuration_service.rb +210 -0
  211. data/lib/stripe/services/payment_method_service.rb +120 -1
  212. data/lib/stripe/services/payment_record_service.rb +542 -0
  213. data/lib/stripe/services/payout_service.rb +4 -0
  214. data/lib/stripe/services/price_service.rb +19 -0
  215. data/lib/stripe/services/privacy/redaction_job_service.rb +240 -0
  216. data/{rbi/stripe/services/tax/calculation_line_item_service.rbi → lib/stripe/services/privacy/redaction_job_validation_error_service.rb} +21 -17
  217. data/lib/stripe/services/privacy_service.rb +13 -0
  218. data/lib/stripe/services/promotion_code_service.rb +8 -0
  219. data/{rbi/stripe/services/credit_note_line_item_service.rbi → lib/stripe/services/quote_line_service.rb} +20 -16
  220. data/{rbi/stripe/services/payment_link_line_item_service.rbi → lib/stripe/services/quote_preview_invoice_service.rb} +20 -16
  221. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +35 -0
  222. data/lib/stripe/services/quote_service.rb +1723 -8
  223. data/lib/stripe/services/setup_intent_service.rb +538 -9
  224. data/lib/stripe/services/subscription_item_service.rb +75 -3
  225. data/lib/stripe/services/subscription_schedule_service.rb +911 -10
  226. data/lib/stripe/services/subscription_service.rb +249 -9
  227. data/lib/stripe/services/tax/association_service.rb +31 -0
  228. data/lib/stripe/services/tax/form_service.rb +100 -0
  229. data/lib/stripe/services/tax_id_service.rb +8 -2
  230. data/lib/stripe/services/tax_service.rb +3 -1
  231. data/lib/stripe/services/terminal/reader_collected_data_service.rb +28 -0
  232. data/lib/stripe/services/terminal_service.rb +2 -1
  233. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +97 -0
  234. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +25 -1
  235. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +25 -1
  236. data/lib/stripe/services/transfer_service.rb +4 -0
  237. data/lib/stripe/services/treasury/financial_account_features_service.rb +4 -1
  238. data/lib/stripe/services/treasury/financial_account_service.rb +16 -2
  239. data/lib/stripe/services/treasury/outbound_transfer_service.rb +24 -0
  240. data/lib/stripe/services/v1_services.rb +11 -2
  241. data/lib/stripe/services/v2/core/account_link_service.rb +76 -0
  242. data/lib/stripe/services/v2/core/account_service.rb +4170 -0
  243. data/lib/stripe/services/v2/core/accounts/person_service.rb +1045 -0
  244. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +130 -0
  245. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +107 -0
  246. data/lib/stripe/services/v2/core/vault_service.rb +18 -0
  247. data/lib/stripe/services/v2/core_service.rb +4 -1
  248. data/lib/stripe/services/v2/money_management/adjustment_service.rb +74 -0
  249. data/lib/stripe/services/v2/money_management/financial_account_service.rb +43 -0
  250. data/lib/stripe/services/v2/money_management/financial_address_service.rb +82 -0
  251. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +125 -0
  252. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +95 -0
  253. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +199 -0
  254. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +235 -0
  255. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +172 -0
  256. data/lib/stripe/services/v2/money_management/payout_method_service.rb +90 -0
  257. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +32 -0
  258. data/lib/stripe/services/v2/money_management/received_credit_service.rb +70 -0
  259. data/lib/stripe/services/v2/money_management/received_debit_service.rb +43 -0
  260. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +69 -0
  261. data/lib/stripe/services/v2/money_management/transaction_service.rb +73 -0
  262. data/lib/stripe/services/v2/money_management_service.rb +31 -0
  263. data/lib/stripe/services/v2/payment_service.rb +15 -0
  264. data/lib/stripe/services/v2/payments/off_session_payment_service.rb +137 -0
  265. data/lib/stripe/services/v2/test_helper_service.rb +15 -0
  266. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +49 -0
  267. data/lib/stripe/services/v2_services.rb +4 -1
  268. data/lib/stripe/services.rb +53 -1
  269. data/lib/stripe/stripe_configuration.rb +3 -1
  270. data/lib/stripe/stripe_object.rb +1 -1
  271. data/lib/stripe/util.rb +7 -1
  272. data/lib/stripe/version.rb +1 -1
  273. data/lib/stripe.rb +53 -0
  274. data/rbi/stripe.rbi +193855 -0
  275. data/stripe.gemspec +4 -1
  276. metadata +161 -324
  277. data/lib/stripe/services/invoice_payment_service.rb +0 -83
  278. data/rbi/stripe/resources/account.rbi +0 -4995
  279. data/rbi/stripe/resources/account_link.rbi +0 -74
  280. data/rbi/stripe/resources/account_session.rbi +0 -1013
  281. data/rbi/stripe/resources/apple_pay_domain.rbi +0 -88
  282. data/rbi/stripe/resources/application.rbi +0 -20
  283. data/rbi/stripe/resources/application_fee.rbi +0 -118
  284. data/rbi/stripe/resources/application_fee_refund.rbi +0 -37
  285. data/rbi/stripe/resources/apps/secret.rbi +0 -195
  286. data/rbi/stripe/resources/balance.rbi +0 -235
  287. data/rbi/stripe/resources/balance_transaction.rbi +0 -147
  288. data/rbi/stripe/resources/bank_account.rbi +0 -127
  289. data/rbi/stripe/resources/billing/alert.rbi +0 -201
  290. data/rbi/stripe/resources/billing/alert_triggered.rbi +0 -28
  291. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +0 -63
  292. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +0 -147
  293. data/rbi/stripe/resources/billing/credit_grant.rbi +0 -291
  294. data/rbi/stripe/resources/billing/meter.rbi +0 -226
  295. data/rbi/stripe/resources/billing/meter_event.rbi +0 -64
  296. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +0 -64
  297. data/rbi/stripe/resources/billing/meter_event_summary.rbi +0 -35
  298. data/rbi/stripe/resources/billing_portal/configuration.rbi +0 -645
  299. data/rbi/stripe/resources/billing_portal/session.rbi +0 -345
  300. data/rbi/stripe/resources/capability.rbi +0 -125
  301. data/rbi/stripe/resources/card.rbi +0 -125
  302. data/rbi/stripe/resources/cash_balance.rbi +0 -32
  303. data/rbi/stripe/resources/charge.rbi +0 -2086
  304. data/rbi/stripe/resources/checkout/session.rbi +0 -4060
  305. data/rbi/stripe/resources/climate/order.rbi +0 -245
  306. data/rbi/stripe/resources/climate/product.rbi +0 -75
  307. data/rbi/stripe/resources/climate/supplier.rbi +0 -72
  308. data/rbi/stripe/resources/confirmation_token.rbi +0 -1818
  309. data/rbi/stripe/resources/connect_collection_transfer.rbi +0 -26
  310. data/rbi/stripe/resources/country_spec.rbi +0 -85
  311. data/rbi/stripe/resources/coupon.rbi +0 -250
  312. data/rbi/stripe/resources/credit_note.rbi +0 -752
  313. data/rbi/stripe/resources/credit_note_line_item.rbi +0 -101
  314. data/rbi/stripe/resources/customer.rbi +0 -1005
  315. data/rbi/stripe/resources/customer_balance_transaction.rbi +0 -56
  316. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +0 -151
  317. data/rbi/stripe/resources/customer_session.rbi +0 -200
  318. data/rbi/stripe/resources/discount.rbi +0 -53
  319. data/rbi/stripe/resources/dispute.rbi +0 -761
  320. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +0 -58
  321. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +0 -23
  322. data/rbi/stripe/resources/entitlements/feature.rbi +0 -117
  323. data/rbi/stripe/resources/ephemeral_key.rbi +0 -44
  324. data/rbi/stripe/resources/event.rbi +0 -149
  325. data/rbi/stripe/resources/exchange_rate.rbi +0 -66
  326. data/rbi/stripe/resources/file.rbi +0 -143
  327. data/rbi/stripe/resources/file_link.rbi +0 -141
  328. data/rbi/stripe/resources/financial_connections/account.rbi +0 -339
  329. data/rbi/stripe/resources/financial_connections/account_owner.rbi +0 -35
  330. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +0 -23
  331. data/rbi/stripe/resources/financial_connections/session.rbi +0 -123
  332. data/rbi/stripe/resources/financial_connections/transaction.rbi +0 -124
  333. data/rbi/stripe/resources/forwarding/request.rbi +0 -216
  334. data/rbi/stripe/resources/funding_instructions.rbi +0 -437
  335. data/rbi/stripe/resources/identity/verification_report.rbi +0 -360
  336. data/rbi/stripe/resources/identity/verification_session.rbi +0 -564
  337. data/rbi/stripe/resources/invoice.rbi +0 -3842
  338. data/rbi/stripe/resources/invoice_item.rbi +0 -470
  339. data/rbi/stripe/resources/invoice_line_item.rbi +0 -432
  340. data/rbi/stripe/resources/invoice_payment.rbi +0 -121
  341. data/rbi/stripe/resources/invoice_rendering_template.rbi +0 -104
  342. data/rbi/stripe/resources/issuing/authorization.rbi +0 -1283
  343. data/rbi/stripe/resources/issuing/card.rbi +0 -741
  344. data/rbi/stripe/resources/issuing/cardholder.rbi +0 -744
  345. data/rbi/stripe/resources/issuing/dispute.rbi +0 -913
  346. data/rbi/stripe/resources/issuing/personalization_design.rbi +0 -338
  347. data/rbi/stripe/resources/issuing/physical_bundle.rbi +0 -79
  348. data/rbi/stripe/resources/issuing/token.rbi +0 -226
  349. data/rbi/stripe/resources/issuing/transaction.rbi +0 -1061
  350. data/rbi/stripe/resources/line_item.rbi +0 -72
  351. data/rbi/stripe/resources/login_link.rbi +0 -19
  352. data/rbi/stripe/resources/mandate.rbi +0 -191
  353. data/rbi/stripe/resources/payment_intent.rbi +0 -9987
  354. data/rbi/stripe/resources/payment_link.rbi +0 -1801
  355. data/rbi/stripe/resources/payment_method.rbi +0 -1770
  356. data/rbi/stripe/resources/payment_method_configuration.rbi +0 -3550
  357. data/rbi/stripe/resources/payment_method_domain.rbi +0 -228
  358. data/rbi/stripe/resources/payout.rbi +0 -300
  359. data/rbi/stripe/resources/person.rbi +0 -401
  360. data/rbi/stripe/resources/plan.rbi +0 -371
  361. data/rbi/stripe/resources/price.rbi +0 -694
  362. data/rbi/stripe/resources/product.rbi +0 -555
  363. data/rbi/stripe/resources/product_feature.rbi +0 -26
  364. data/rbi/stripe/resources/promotion_code.rbi +0 -261
  365. data/rbi/stripe/resources/quote.rbi +0 -1145
  366. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +0 -98
  367. data/rbi/stripe/resources/radar/value_list.rbi +0 -168
  368. data/rbi/stripe/resources/radar/value_list_item.rbi +0 -129
  369. data/rbi/stripe/resources/refund.rbi +0 -523
  370. data/rbi/stripe/resources/reporting/report_run.rbi +0 -191
  371. data/rbi/stripe/resources/reporting/report_type.rbi +0 -57
  372. data/rbi/stripe/resources/reserve_transaction.rbi +0 -23
  373. data/rbi/stripe/resources/reversal.rbi +0 -51
  374. data/rbi/stripe/resources/review.rbi +0 -154
  375. data/rbi/stripe/resources/setup_attempt.rbi +0 -477
  376. data/rbi/stripe/resources/setup_intent.rbi +0 -3978
  377. data/rbi/stripe/resources/shipping_rate.rbi +0 -305
  378. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +0 -75
  379. data/rbi/stripe/resources/source.rbi +0 -1496
  380. data/rbi/stripe/resources/source_mandate_notification.rbi +0 -77
  381. data/rbi/stripe/resources/source_transaction.rbi +0 -127
  382. data/rbi/stripe/resources/subscription.rbi +0 -2080
  383. data/rbi/stripe/resources/subscription_item.rbi +0 -404
  384. data/rbi/stripe/resources/subscription_schedule.rbi +0 -1645
  385. data/rbi/stripe/resources/tax/calculation.rbi +0 -478
  386. data/rbi/stripe/resources/tax/calculation_line_item.rbi +0 -91
  387. data/rbi/stripe/resources/tax/registration.rbi +0 -2732
  388. data/rbi/stripe/resources/tax/settings.rbi +0 -141
  389. data/rbi/stripe/resources/tax/transaction.rbi +0 -351
  390. data/rbi/stripe/resources/tax/transaction_line_item.rbi +0 -54
  391. data/rbi/stripe/resources/tax_code.rbi +0 -44
  392. data/rbi/stripe/resources/tax_deducted_at_source.rbi +0 -23
  393. data/rbi/stripe/resources/tax_id.rbi +0 -165
  394. data/rbi/stripe/resources/tax_rate.rbi +0 -239
  395. data/rbi/stripe/resources/terminal/configuration.rbi +0 -1387
  396. data/rbi/stripe/resources/terminal/connection_token.rbi +0 -37
  397. data/rbi/stripe/resources/terminal/location.rbi +0 -222
  398. data/rbi/stripe/resources/terminal/reader.rbi +0 -994
  399. data/rbi/stripe/resources/test_helpers/test_clock.rbi +0 -132
  400. data/rbi/stripe/resources/token.rbi +0 -1283
  401. data/rbi/stripe/resources/topup.rbi +0 -222
  402. data/rbi/stripe/resources/transfer.rbi +0 -199
  403. data/rbi/stripe/resources/treasury/credit_reversal.rbi +0 -119
  404. data/rbi/stripe/resources/treasury/debit_reversal.rbi +0 -131
  405. data/rbi/stripe/resources/treasury/financial_account.rbi +0 -869
  406. data/rbi/stripe/resources/treasury/financial_account_features.rbi +0 -260
  407. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +0 -295
  408. data/rbi/stripe/resources/treasury/outbound_payment.rbi +0 -592
  409. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +0 -431
  410. data/rbi/stripe/resources/treasury/received_credit.rbi +0 -302
  411. data/rbi/stripe/resources/treasury/received_debit.rbi +0 -256
  412. data/rbi/stripe/resources/treasury/transaction.rbi +0 -215
  413. data/rbi/stripe/resources/treasury/transaction_entry.rbi +0 -192
  414. data/rbi/stripe/resources/v2/amount.rbi +0 -14
  415. data/rbi/stripe/resources/v2/billing/meter_event.rbi +0 -37
  416. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +0 -41
  417. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +0 -31
  418. data/rbi/stripe/resources/v2/event.rbi +0 -48
  419. data/rbi/stripe/resources/v2/event_destination.rbi +0 -91
  420. data/rbi/stripe/resources/webhook_endpoint.rbi +0 -168
  421. data/rbi/stripe/services/account_capability_service.rbi +0 -51
  422. data/rbi/stripe/services/account_link_service.rbi +0 -58
  423. data/rbi/stripe/services/account_login_link_service.rbi +0 -22
  424. data/rbi/stripe/services/account_person_service.rbi +0 -1011
  425. data/rbi/stripe/services/account_service.rbi +0 -4281
  426. data/rbi/stripe/services/account_session_service.rbi +0 -646
  427. data/rbi/stripe/services/apple_pay_domain_service.rbi +0 -76
  428. data/rbi/stripe/services/application_fee_refund_service.rbi +0 -93
  429. data/rbi/stripe/services/application_fee_service.rbi +0 -78
  430. data/rbi/stripe/services/apps/secret_service.rbi +0 -151
  431. data/rbi/stripe/services/apps_service.rbi +0 -9
  432. data/rbi/stripe/services/balance_service.rbi +0 -21
  433. data/rbi/stripe/services/balance_transaction_service.rbi +0 -93
  434. data/rbi/stripe/services/billing/alert_service.rbi +0 -152
  435. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +0 -68
  436. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +0 -59
  437. data/rbi/stripe/services/billing/credit_grant_service.rbi +0 -211
  438. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +0 -42
  439. data/rbi/stripe/services/billing/meter_event_service.rbi +0 -42
  440. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +0 -54
  441. data/rbi/stripe/services/billing/meter_service.rbi +0 -163
  442. data/rbi/stripe/services/billing_portal/configuration_service.rbi +0 -511
  443. data/rbi/stripe/services/billing_portal/session_service.rbi +0 -204
  444. data/rbi/stripe/services/billing_portal_service.rbi +0 -10
  445. data/rbi/stripe/services/billing_service.rbi +0 -15
  446. data/rbi/stripe/services/charge_service.rbi +0 -448
  447. data/rbi/stripe/services/checkout/session_line_item_service.rbi +0 -33
  448. data/rbi/stripe/services/checkout/session_service.rbi +0 -2670
  449. data/rbi/stripe/services/checkout_service.rbi +0 -9
  450. data/rbi/stripe/services/climate/order_service.rbi +0 -142
  451. data/rbi/stripe/services/climate/product_service.rbi +0 -46
  452. data/rbi/stripe/services/climate_service.rbi +0 -11
  453. data/rbi/stripe/services/confirmation_token_service.rbi +0 -20
  454. data/rbi/stripe/services/country_spec_service.rbi +0 -44
  455. data/rbi/stripe/services/coupon_service.rbi +0 -194
  456. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +0 -167
  457. data/rbi/stripe/services/credit_note_service.rbi +0 -415
  458. data/rbi/stripe/services/customer_balance_transaction_service.rbi +0 -92
  459. data/rbi/stripe/services/customer_cash_balance_service.rbi +0 -45
  460. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +0 -44
  461. data/rbi/stripe/services/customer_funding_instructions_service.rbi +0 -59
  462. data/rbi/stripe/services/customer_payment_method_service.rbi +0 -57
  463. data/rbi/stripe/services/customer_payment_source_service.rbi +0 -232
  464. data/rbi/stripe/services/customer_service.rbi +0 -647
  465. data/rbi/stripe/services/customer_session_service.rbi +0 -116
  466. data/rbi/stripe/services/customer_tax_id_service.rbi +0 -70
  467. data/rbi/stripe/services/dispute_service.rbi +0 -424
  468. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +0 -55
  469. data/rbi/stripe/services/entitlements/feature_service.rbi +0 -107
  470. data/rbi/stripe/services/entitlements_service.rbi +0 -10
  471. data/rbi/stripe/services/ephemeral_key_service.rbi +0 -53
  472. data/rbi/stripe/services/event_service.rbi +0 -83
  473. data/rbi/stripe/services/exchange_rate_service.rbi +0 -44
  474. data/rbi/stripe/services/file_link_service.rbi +0 -124
  475. data/rbi/stripe/services/file_service.rbi +0 -116
  476. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +0 -42
  477. data/rbi/stripe/services/financial_connections/account_service.rbi +0 -133
  478. data/rbi/stripe/services/financial_connections/session_service.rbi +0 -88
  479. data/rbi/stripe/services/financial_connections/transaction_service.rbi +0 -92
  480. data/rbi/stripe/services/financial_connections_service.rbi +0 -11
  481. data/rbi/stripe/services/forwarding/request_service.rbi +0 -134
  482. data/rbi/stripe/services/forwarding_service.rbi +0 -9
  483. data/rbi/stripe/services/identity/verification_report_service.rbi +0 -87
  484. data/rbi/stripe/services/identity/verification_session_service.rbi +0 -339
  485. data/rbi/stripe/services/identity_service.rbi +0 -10
  486. data/rbi/stripe/services/invoice_item_service.rbi +0 -366
  487. data/rbi/stripe/services/invoice_line_item_service.rbi +0 -259
  488. data/rbi/stripe/services/invoice_payment_service.rbi +0 -71
  489. data/rbi/stripe/services/invoice_rendering_template_service.rbi +0 -82
  490. data/rbi/stripe/services/invoice_service.rbi +0 -3011
  491. data/rbi/stripe/services/issuing/authorization_service.rbi +0 -146
  492. data/rbi/stripe/services/issuing/card_service.rbi +0 -495
  493. data/rbi/stripe/services/issuing/cardholder_service.rbi +0 -587
  494. data/rbi/stripe/services/issuing/dispute_service.rbi +0 -707
  495. data/rbi/stripe/services/issuing/personalization_design_service.rbi +0 -243
  496. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +0 -59
  497. data/rbi/stripe/services/issuing/token_service.rbi +0 -99
  498. data/rbi/stripe/services/issuing/transaction_service.rbi +0 -105
  499. data/rbi/stripe/services/issuing_service.rbi +0 -16
  500. data/rbi/stripe/services/mandate_service.rbi +0 -20
  501. data/rbi/stripe/services/payment_intent_service.rbi +0 -7989
  502. data/rbi/stripe/services/payment_link_service.rbi +0 -1352
  503. data/rbi/stripe/services/payment_method_configuration_service.rbi +0 -2487
  504. data/rbi/stripe/services/payment_method_domain_service.rbi +0 -112
  505. data/rbi/stripe/services/payment_method_service.rbi +0 -781
  506. data/rbi/stripe/services/payout_service.rbi +0 -205
  507. data/rbi/stripe/services/plan_service.rbi +0 -282
  508. data/rbi/stripe/services/price_service.rbi +0 -546
  509. data/rbi/stripe/services/product_feature_service.rbi +0 -67
  510. data/rbi/stripe/services/product_service.rbi +0 -477
  511. data/rbi/stripe/services/promotion_code_service.rbi +0 -214
  512. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +0 -31
  513. data/rbi/stripe/services/quote_service.rbi +0 -699
  514. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +0 -85
  515. data/rbi/stripe/services/radar/value_list_item_service.rbi +0 -109
  516. data/rbi/stripe/services/radar/value_list_service.rbi +0 -141
  517. data/rbi/stripe/services/radar_service.rbi +0 -11
  518. data/rbi/stripe/services/refund_service.rbi +0 -185
  519. data/rbi/stripe/services/reporting/report_run_service.rbi +0 -135
  520. data/rbi/stripe/services/reporting/report_type_service.rbi +0 -35
  521. data/rbi/stripe/services/reporting_service.rbi +0 -10
  522. data/rbi/stripe/services/review_service.rbi +0 -84
  523. data/rbi/stripe/services/setup_attempt_service.rbi +0 -65
  524. data/rbi/stripe/services/setup_intent_service.rbi +0 -3709
  525. data/rbi/stripe/services/shipping_rate_service.rbi +0 -241
  526. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +0 -46
  527. data/rbi/stripe/services/sigma_service.rbi +0 -9
  528. data/rbi/stripe/services/source_service.rbi +0 -663
  529. data/rbi/stripe/services/subscription_item_service.rbi +0 -350
  530. data/rbi/stripe/services/subscription_schedule_service.rbi +0 -1301
  531. data/rbi/stripe/services/subscription_service.rbi +0 -1684
  532. data/rbi/stripe/services/tax/calculation_service.rbi +0 -234
  533. data/rbi/stripe/services/tax/registration_service.rbi +0 -1858
  534. data/rbi/stripe/services/tax/settings_service.rbi +0 -93
  535. data/rbi/stripe/services/tax/transaction_service.rbi +0 -146
  536. data/rbi/stripe/services/tax_code_service.rbi +0 -44
  537. data/rbi/stripe/services/tax_id_service.rbi +0 -110
  538. data/rbi/stripe/services/tax_rate_service.rbi +0 -185
  539. data/rbi/stripe/services/tax_service.rbi +0 -12
  540. data/rbi/stripe/services/terminal/configuration_service.rbi +0 -1118
  541. data/rbi/stripe/services/terminal/connection_token_service.rbi +0 -25
  542. data/rbi/stripe/services/terminal/location_service.rbi +0 -182
  543. data/rbi/stripe/services/terminal/reader_service.rbi +0 -540
  544. data/rbi/stripe/services/terminal_service.rbi +0 -12
  545. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +0 -746
  546. data/rbi/stripe/services/test_helpers/customer_service.rbi +0 -33
  547. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +0 -848
  548. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +0 -76
  549. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +0 -69
  550. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +0 -711
  551. data/rbi/stripe/services/test_helpers/issuing_service.rbi +0 -14
  552. data/rbi/stripe/services/test_helpers/refund_service.rbi +0 -22
  553. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +0 -93
  554. data/rbi/stripe/services/test_helpers/terminal_service.rbi +0 -11
  555. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +0 -90
  556. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +0 -64
  557. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +0 -125
  558. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +0 -125
  559. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +0 -87
  560. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +0 -87
  561. data/rbi/stripe/services/test_helpers/treasury_service.rbi +0 -15
  562. data/rbi/stripe/services/test_helpers_service.rbi +0 -15
  563. data/rbi/stripe/services/token_service.rbi +0 -1257
  564. data/rbi/stripe/services/topup_service.rbi +0 -176
  565. data/rbi/stripe/services/transfer_reversal_service.rbi +0 -101
  566. data/rbi/stripe/services/transfer_service.rbi +0 -152
  567. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +0 -84
  568. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +0 -88
  569. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +0 -198
  570. data/rbi/stripe/services/treasury/financial_account_service.rbi +0 -566
  571. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +0 -117
  572. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +0 -304
  573. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +0 -157
  574. data/rbi/stripe/services/treasury/received_credit_service.rbi +0 -72
  575. data/rbi/stripe/services/treasury/received_debit_service.rbi +0 -59
  576. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +0 -111
  577. data/rbi/stripe/services/treasury/transaction_service.rbi +0 -122
  578. data/rbi/stripe/services/treasury_service.rbi +0 -18
  579. data/rbi/stripe/services/v1_services.rbi +0 -77
  580. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +0 -39
  581. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +0 -42
  582. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +0 -18
  583. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +0 -55
  584. data/rbi/stripe/services/v2/billing_service.rbi +0 -14
  585. data/rbi/stripe/services/v2/core/event_destination_service.rbi +0 -192
  586. data/rbi/stripe/services/v2/core/event_service.rbi +0 -36
  587. data/rbi/stripe/services/v2/core_service.rbi +0 -12
  588. data/rbi/stripe/services/v2_services.rbi +0 -10
  589. data/rbi/stripe/services/webhook_endpoint_service.rbi +0 -129
@@ -3,10 +3,14 @@
3
3
 
4
4
  module Stripe
5
5
  class QuoteService < StripeService
6
- attr_reader :line_items, :computed_upfront_line_items
6
+ attr_reader :preview_invoices, :preview_subscription_schedules, :lines, :line_items, :computed_upfront_line_items
7
7
 
8
8
  def initialize(requestor)
9
9
  super
10
+ @preview_invoices = Stripe::QuotePreviewInvoiceService.new(@requestor)
11
+ @preview_subscription_schedules = Stripe::QuotePreviewSubscriptionScheduleService
12
+ .new(@requestor)
13
+ @lines = Stripe::QuoteLineService.new(@requestor)
10
14
  @line_items = Stripe::QuoteLineItemService.new(@requestor)
11
15
  @computed_upfront_line_items = Stripe::QuoteComputedUpfrontLineItemsService.new(@requestor)
12
16
  end
@@ -14,10 +18,14 @@ module Stripe
14
18
  class ListParams < Stripe::RequestParams
15
19
  # The ID of the customer whose quotes will be retrieved.
16
20
  attr_accessor :customer
21
+ # The ID of the account whose quotes will be retrieved.
22
+ attr_accessor :customer_account
17
23
  # 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.
18
24
  attr_accessor :ending_before
19
25
  # Specifies which fields in the response should be expanded.
20
26
  attr_accessor :expand
27
+ # The subscription which the quote updates.
28
+ attr_accessor :from_subscription
21
29
  # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
22
30
  attr_accessor :limit
23
31
  # 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.
@@ -29,16 +37,20 @@ module Stripe
29
37
 
30
38
  def initialize(
31
39
  customer: nil,
40
+ customer_account: nil,
32
41
  ending_before: nil,
33
42
  expand: nil,
43
+ from_subscription: nil,
34
44
  limit: nil,
35
45
  starting_after: nil,
36
46
  status: nil,
37
47
  test_clock: nil
38
48
  )
39
49
  @customer = customer
50
+ @customer_account = customer_account
40
51
  @ending_before = ending_before
41
52
  @expand = expand
53
+ @from_subscription = from_subscription
42
54
  @limit = limit
43
55
  @starting_after = starting_after
44
56
  @status = status
@@ -71,16 +83,44 @@ module Stripe
71
83
  end
72
84
 
73
85
  class Discount < Stripe::RequestParams
86
+ class DiscountEnd < Stripe::RequestParams
87
+ class Duration < Stripe::RequestParams
88
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
89
+ attr_accessor :interval
90
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
91
+ attr_accessor :interval_count
92
+
93
+ def initialize(interval: nil, interval_count: nil)
94
+ @interval = interval
95
+ @interval_count = interval_count
96
+ end
97
+ end
98
+ # Time span for the redeemed discount.
99
+ attr_accessor :duration
100
+ # A precise Unix timestamp for the discount to end. Must be in the future.
101
+ attr_accessor :timestamp
102
+ # The type of calculation made to determine when the discount ends.
103
+ attr_accessor :type
104
+
105
+ def initialize(duration: nil, timestamp: nil, type: nil)
106
+ @duration = duration
107
+ @timestamp = timestamp
108
+ @type = type
109
+ end
110
+ end
74
111
  # ID of the coupon to create a new discount for.
75
112
  attr_accessor :coupon
76
113
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
77
114
  attr_accessor :discount
115
+ # Details to determine how long the discount should be applied for.
116
+ attr_accessor :discount_end
78
117
  # ID of the promotion code to create a new discount for.
79
118
  attr_accessor :promotion_code
80
119
 
81
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
120
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
82
121
  @coupon = coupon
83
122
  @discount = discount
123
+ @discount_end = discount_end
84
124
  @promotion_code = promotion_code
85
125
  end
86
126
  end
@@ -120,18 +160,522 @@ module Stripe
120
160
  end
121
161
  end
122
162
 
163
+ class Line < Stripe::RequestParams
164
+ class Action < Stripe::RequestParams
165
+ class AddDiscount < Stripe::RequestParams
166
+ class DiscountEnd < Stripe::RequestParams
167
+ # The type of calculation made to determine when the discount ends.
168
+ attr_accessor :type
169
+
170
+ def initialize(type: nil)
171
+ @type = type
172
+ end
173
+ end
174
+ # The coupon code to redeem.
175
+ attr_accessor :coupon
176
+ # An ID of an existing discount for a coupon that was already redeemed.
177
+ attr_accessor :discount
178
+ # Details to determine how long the discount should be applied for.
179
+ attr_accessor :discount_end
180
+ # The index, starting at 0, at which to position the new discount. When not supplied, Stripe defaults to appending the discount to the end of the `discounts` array.
181
+ attr_accessor :index
182
+ # The promotion code to redeem.
183
+ attr_accessor :promotion_code
184
+
185
+ def initialize(
186
+ coupon: nil,
187
+ discount: nil,
188
+ discount_end: nil,
189
+ index: nil,
190
+ promotion_code: nil
191
+ )
192
+ @coupon = coupon
193
+ @discount = discount
194
+ @discount_end = discount_end
195
+ @index = index
196
+ @promotion_code = promotion_code
197
+ end
198
+ end
199
+
200
+ class AddItem < Stripe::RequestParams
201
+ class Discount < Stripe::RequestParams
202
+ class DiscountEnd < Stripe::RequestParams
203
+ class Duration < Stripe::RequestParams
204
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
205
+ attr_accessor :interval
206
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
207
+ attr_accessor :interval_count
208
+
209
+ def initialize(interval: nil, interval_count: nil)
210
+ @interval = interval
211
+ @interval_count = interval_count
212
+ end
213
+ end
214
+ # Time span for the redeemed discount.
215
+ attr_accessor :duration
216
+ # A precise Unix timestamp for the discount to end. Must be in the future.
217
+ attr_accessor :timestamp
218
+ # The type of calculation made to determine when the discount ends.
219
+ attr_accessor :type
220
+
221
+ def initialize(duration: nil, timestamp: nil, type: nil)
222
+ @duration = duration
223
+ @timestamp = timestamp
224
+ @type = type
225
+ end
226
+ end
227
+ # ID of the coupon to create a new discount for.
228
+ attr_accessor :coupon
229
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
230
+ attr_accessor :discount
231
+ # Details to determine how long the discount should be applied for.
232
+ attr_accessor :discount_end
233
+ # ID of the promotion code to create a new discount for.
234
+ attr_accessor :promotion_code
235
+
236
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
237
+ @coupon = coupon
238
+ @discount = discount
239
+ @discount_end = discount_end
240
+ @promotion_code = promotion_code
241
+ end
242
+ end
243
+
244
+ class Trial < Stripe::RequestParams
245
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
246
+ attr_accessor :converts_to
247
+ # Determines the type of trial for this item.
248
+ attr_accessor :type
249
+
250
+ def initialize(converts_to: nil, type: nil)
251
+ @converts_to = converts_to
252
+ @type = type
253
+ end
254
+ end
255
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
256
+ attr_accessor :discounts
257
+ # 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`.
258
+ attr_accessor :metadata
259
+ # The ID of the price object.
260
+ attr_accessor :price
261
+ # Quantity for this item.
262
+ attr_accessor :quantity
263
+ # The tax rates that apply to this subscription item. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
264
+ attr_accessor :tax_rates
265
+ # Options that configure the trial on the subscription item.
266
+ attr_accessor :trial
267
+
268
+ def initialize(
269
+ discounts: nil,
270
+ metadata: nil,
271
+ price: nil,
272
+ quantity: nil,
273
+ tax_rates: nil,
274
+ trial: nil
275
+ )
276
+ @discounts = discounts
277
+ @metadata = metadata
278
+ @price = price
279
+ @quantity = quantity
280
+ @tax_rates = tax_rates
281
+ @trial = trial
282
+ end
283
+ end
284
+
285
+ class RemoveDiscount < Stripe::RequestParams
286
+ # The coupon code to remove from the `discounts` array.
287
+ attr_accessor :coupon
288
+ # The ID of a discount to remove from the `discounts` array.
289
+ attr_accessor :discount
290
+ # The ID of a promotion code to remove from the `discounts` array.
291
+ attr_accessor :promotion_code
292
+
293
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
294
+ @coupon = coupon
295
+ @discount = discount
296
+ @promotion_code = promotion_code
297
+ end
298
+ end
299
+
300
+ class RemoveItem < Stripe::RequestParams
301
+ # ID of a price to remove.
302
+ attr_accessor :price
303
+
304
+ def initialize(price: nil)
305
+ @price = price
306
+ end
307
+ end
308
+
309
+ class SetDiscount < Stripe::RequestParams
310
+ # The coupon code to replace the `discounts` array with.
311
+ attr_accessor :coupon
312
+ # An ID of an existing discount to replace the `discounts` array with.
313
+ attr_accessor :discount
314
+ # An ID of an existing promotion code to replace the `discounts` array with.
315
+ attr_accessor :promotion_code
316
+
317
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
318
+ @coupon = coupon
319
+ @discount = discount
320
+ @promotion_code = promotion_code
321
+ end
322
+ end
323
+
324
+ class SetItem < Stripe::RequestParams
325
+ class Discount < Stripe::RequestParams
326
+ class DiscountEnd < Stripe::RequestParams
327
+ class Duration < Stripe::RequestParams
328
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
329
+ attr_accessor :interval
330
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
331
+ attr_accessor :interval_count
332
+
333
+ def initialize(interval: nil, interval_count: nil)
334
+ @interval = interval
335
+ @interval_count = interval_count
336
+ end
337
+ end
338
+ # Time span for the redeemed discount.
339
+ attr_accessor :duration
340
+ # A precise Unix timestamp for the discount to end. Must be in the future.
341
+ attr_accessor :timestamp
342
+ # The type of calculation made to determine when the discount ends.
343
+ attr_accessor :type
344
+
345
+ def initialize(duration: nil, timestamp: nil, type: nil)
346
+ @duration = duration
347
+ @timestamp = timestamp
348
+ @type = type
349
+ end
350
+ end
351
+ # ID of the coupon to create a new discount for.
352
+ attr_accessor :coupon
353
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
354
+ attr_accessor :discount
355
+ # Details to determine how long the discount should be applied for.
356
+ attr_accessor :discount_end
357
+ # ID of the promotion code to create a new discount for.
358
+ attr_accessor :promotion_code
359
+
360
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
361
+ @coupon = coupon
362
+ @discount = discount
363
+ @discount_end = discount_end
364
+ @promotion_code = promotion_code
365
+ end
366
+ end
367
+
368
+ class Trial < Stripe::RequestParams
369
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
370
+ attr_accessor :converts_to
371
+ # Determines the type of trial for this item.
372
+ attr_accessor :type
373
+
374
+ def initialize(converts_to: nil, type: nil)
375
+ @converts_to = converts_to
376
+ @type = type
377
+ end
378
+ end
379
+ # If an item with the `price` already exists, passing this will override the `discounts` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `discounts`.
380
+ attr_accessor :discounts
381
+ # If an item with the `price` already exists, passing this will override the `metadata` on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `metadata`.
382
+ attr_accessor :metadata
383
+ # The ID of the price object.
384
+ attr_accessor :price
385
+ # If an item with the `price` already exists, passing this will override the quantity on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `quantity`.
386
+ attr_accessor :quantity
387
+ # If an item with the `price` already exists, passing this will override the `tax_rates` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `tax_rates`.
388
+ attr_accessor :tax_rates
389
+ # If an item with the `price` already exists, passing this will override the `trial` configuration on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `trial`.
390
+ attr_accessor :trial
391
+
392
+ def initialize(
393
+ discounts: nil,
394
+ metadata: nil,
395
+ price: nil,
396
+ quantity: nil,
397
+ tax_rates: nil,
398
+ trial: nil
399
+ )
400
+ @discounts = discounts
401
+ @metadata = metadata
402
+ @price = price
403
+ @quantity = quantity
404
+ @tax_rates = tax_rates
405
+ @trial = trial
406
+ end
407
+ end
408
+ # Details for the `add_discount` type.
409
+ attr_accessor :add_discount
410
+ # Details for the `add_item` type.
411
+ attr_accessor :add_item
412
+ # Details for the `add_metadata` type: specify a hash of key-value pairs.
413
+ attr_accessor :add_metadata
414
+ # Details for the `remove_discount` type.
415
+ attr_accessor :remove_discount
416
+ # Details for the `remove_item` type.
417
+ attr_accessor :remove_item
418
+ # Details for the `remove_metadata` type: specify an array of metadata keys.
419
+ attr_accessor :remove_metadata
420
+ # Details for the `set_discounts` type.
421
+ attr_accessor :set_discounts
422
+ # Details for the `set_items` type.
423
+ attr_accessor :set_items
424
+ # Details for the `set_metadata` type: specify an array of key-value pairs.
425
+ attr_accessor :set_metadata
426
+ # The type of action the quote line performs.
427
+ attr_accessor :type
428
+
429
+ def initialize(
430
+ add_discount: nil,
431
+ add_item: nil,
432
+ add_metadata: nil,
433
+ remove_discount: nil,
434
+ remove_item: nil,
435
+ remove_metadata: nil,
436
+ set_discounts: nil,
437
+ set_items: nil,
438
+ set_metadata: nil,
439
+ type: nil
440
+ )
441
+ @add_discount = add_discount
442
+ @add_item = add_item
443
+ @add_metadata = add_metadata
444
+ @remove_discount = remove_discount
445
+ @remove_item = remove_item
446
+ @remove_metadata = remove_metadata
447
+ @set_discounts = set_discounts
448
+ @set_items = set_items
449
+ @set_metadata = set_metadata
450
+ @type = type
451
+ end
452
+ end
453
+
454
+ class AppliesTo < Stripe::RequestParams
455
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
456
+ attr_accessor :new_reference
457
+ # The ID of the schedule the line applies to.
458
+ attr_accessor :subscription_schedule
459
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
460
+ attr_accessor :type
461
+
462
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
463
+ @new_reference = new_reference
464
+ @subscription_schedule = subscription_schedule
465
+ @type = type
466
+ end
467
+ end
468
+
469
+ class CancelSubscriptionSchedule < Stripe::RequestParams
470
+ # Timestamp helper to cancel the underlying schedule on the accompanying line's start date. Must be set to `line_starts_at`.
471
+ attr_accessor :cancel_at
472
+ # 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. Boolean that defaults to `true`.
473
+ attr_accessor :invoice_now
474
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Boolean that defaults to `true`.
475
+ attr_accessor :prorate
476
+
477
+ def initialize(cancel_at: nil, invoice_now: nil, prorate: nil)
478
+ @cancel_at = cancel_at
479
+ @invoice_now = invoice_now
480
+ @prorate = prorate
481
+ end
482
+ end
483
+
484
+ class EndsAt < Stripe::RequestParams
485
+ class DiscountEnd < Stripe::RequestParams
486
+ # The ID of a specific discount.
487
+ attr_accessor :discount
488
+
489
+ def initialize(discount: nil)
490
+ @discount = discount
491
+ end
492
+ end
493
+
494
+ class Duration < Stripe::RequestParams
495
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
496
+ attr_accessor :interval
497
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
498
+ attr_accessor :interval_count
499
+
500
+ def initialize(interval: nil, interval_count: nil)
501
+ @interval = interval
502
+ @interval_count = interval_count
503
+ end
504
+ end
505
+ # Use the `end` time of a given discount.
506
+ attr_accessor :discount_end
507
+ # Time span for the quote line starting from the `starts_at` date.
508
+ attr_accessor :duration
509
+ # A precise Unix timestamp.
510
+ attr_accessor :timestamp
511
+ # Select a way to pass in `ends_at`.
512
+ attr_accessor :type
513
+
514
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
515
+ @discount_end = discount_end
516
+ @duration = duration
517
+ @timestamp = timestamp
518
+ @type = type
519
+ end
520
+ end
521
+
522
+ class SetPauseCollection < Stripe::RequestParams
523
+ class Set < Stripe::RequestParams
524
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
525
+ attr_accessor :behavior
526
+
527
+ def initialize(behavior: nil)
528
+ @behavior = behavior
529
+ end
530
+ end
531
+ # Details of the pause_collection behavior to apply to the amendment.
532
+ attr_accessor :set
533
+ # Determines the type of the pause_collection amendment.
534
+ attr_accessor :type
535
+
536
+ def initialize(set: nil, type: nil)
537
+ @set = set
538
+ @type = type
539
+ end
540
+ end
541
+
542
+ class StartsAt < Stripe::RequestParams
543
+ class DiscountEnd < Stripe::RequestParams
544
+ # The ID of a specific discount.
545
+ attr_accessor :discount
546
+
547
+ def initialize(discount: nil)
548
+ @discount = discount
549
+ end
550
+ end
551
+
552
+ class LineEndsAt < Stripe::RequestParams
553
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
554
+ attr_accessor :index
555
+
556
+ def initialize(index: nil)
557
+ @index = index
558
+ end
559
+ end
560
+ # Use the `end` time of a given discount.
561
+ attr_accessor :discount_end
562
+ # The timestamp the given line ends at.
563
+ attr_accessor :line_ends_at
564
+ # A precise Unix timestamp.
565
+ attr_accessor :timestamp
566
+ # Select a way to pass in `starts_at`.
567
+ attr_accessor :type
568
+
569
+ def initialize(discount_end: nil, line_ends_at: nil, timestamp: nil, type: nil)
570
+ @discount_end = discount_end
571
+ @line_ends_at = line_ends_at
572
+ @timestamp = timestamp
573
+ @type = type
574
+ end
575
+ end
576
+
577
+ class TrialSettings < Stripe::RequestParams
578
+ class EndBehavior < Stripe::RequestParams
579
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
580
+ attr_accessor :prorate_up_front
581
+
582
+ def initialize(prorate_up_front: nil)
583
+ @prorate_up_front = prorate_up_front
584
+ end
585
+ end
586
+ # Defines how the subscription should behave when a trial ends.
587
+ attr_accessor :end_behavior
588
+
589
+ def initialize(end_behavior: nil)
590
+ @end_behavior = end_behavior
591
+ end
592
+ end
593
+ # An array of operations the quote line performs.
594
+ attr_accessor :actions
595
+ # Details to identify the subscription schedule the quote line applies to.
596
+ attr_accessor :applies_to
597
+ # For point-in-time quote lines (having no `ends_at` timestamp), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the Quote Line `starts_at` timestamp.For time-span based quote lines (having both `starts_at` and `ends_at`), the only valid value is `automatic`, which removes any previously configured billing cycle anchor resets during the window of time spanning the quote line.
598
+ attr_accessor :billing_cycle_anchor
599
+ # A point-in-time operation that cancels an existing subscription schedule at the line's starts_at timestamp. Currently only compatible with `quote_acceptance_date` for `starts_at`. When using cancel_subscription_schedule, the subscription schedule on the quote remains unalterable, except for modifications to the metadata, collection_method or invoice_settings.
600
+ attr_accessor :cancel_subscription_schedule
601
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the quote line is considered a point-in-time operation that only affects the exact timestamp at `starts_at`, and a restricted set of attributes is supported on the quote line.
602
+ attr_accessor :ends_at
603
+ # Changes to how Stripe handles prorations during the quote line's time span. Affects if and how prorations are created when a future phase starts.
604
+ attr_accessor :proration_behavior
605
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
606
+ attr_accessor :set_pause_collection
607
+ # Timestamp helper to end the underlying schedule early, based on the acompanying line's start or end date.
608
+ attr_accessor :set_schedule_end
609
+ # Details to identify the earliest timestamp where the proposed change should take effect.
610
+ attr_accessor :starts_at
611
+ # Settings related to subscription trials.
612
+ attr_accessor :trial_settings
613
+
614
+ def initialize(
615
+ actions: nil,
616
+ applies_to: nil,
617
+ billing_cycle_anchor: nil,
618
+ cancel_subscription_schedule: nil,
619
+ ends_at: nil,
620
+ proration_behavior: nil,
621
+ set_pause_collection: nil,
622
+ set_schedule_end: nil,
623
+ starts_at: nil,
624
+ trial_settings: nil
625
+ )
626
+ @actions = actions
627
+ @applies_to = applies_to
628
+ @billing_cycle_anchor = billing_cycle_anchor
629
+ @cancel_subscription_schedule = cancel_subscription_schedule
630
+ @ends_at = ends_at
631
+ @proration_behavior = proration_behavior
632
+ @set_pause_collection = set_pause_collection
633
+ @set_schedule_end = set_schedule_end
634
+ @starts_at = starts_at
635
+ @trial_settings = trial_settings
636
+ end
637
+ end
638
+
123
639
  class LineItem < Stripe::RequestParams
124
640
  class Discount < Stripe::RequestParams
641
+ class DiscountEnd < Stripe::RequestParams
642
+ class Duration < Stripe::RequestParams
643
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
644
+ attr_accessor :interval
645
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
646
+ attr_accessor :interval_count
647
+
648
+ def initialize(interval: nil, interval_count: nil)
649
+ @interval = interval
650
+ @interval_count = interval_count
651
+ end
652
+ end
653
+ # Time span for the redeemed discount.
654
+ attr_accessor :duration
655
+ # A precise Unix timestamp for the discount to end. Must be in the future.
656
+ attr_accessor :timestamp
657
+ # The type of calculation made to determine when the discount ends.
658
+ attr_accessor :type
659
+
660
+ def initialize(duration: nil, timestamp: nil, type: nil)
661
+ @duration = duration
662
+ @timestamp = timestamp
663
+ @type = type
664
+ end
665
+ end
125
666
  # ID of the coupon to create a new discount for.
126
667
  attr_accessor :coupon
127
668
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
128
669
  attr_accessor :discount
670
+ # Details to determine how long the discount should be applied for.
671
+ attr_accessor :discount_end
129
672
  # ID of the promotion code to create a new discount for.
130
673
  attr_accessor :promotion_code
131
674
 
132
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
675
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
133
676
  @coupon = coupon
134
677
  @discount = discount
678
+ @discount_end = discount_end
135
679
  @promotion_code = promotion_code
136
680
  end
137
681
  end
@@ -198,6 +742,84 @@ module Stripe
198
742
  end
199
743
 
200
744
  class SubscriptionData < Stripe::RequestParams
745
+ class BillOnAcceptance < Stripe::RequestParams
746
+ class BillFrom < Stripe::RequestParams
747
+ class LineStartsAt < Stripe::RequestParams
748
+ # The ID of a quote line.
749
+ attr_accessor :id
750
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
751
+ attr_accessor :index
752
+
753
+ def initialize(id: nil, index: nil)
754
+ @id = id
755
+ @index = index
756
+ end
757
+ end
758
+ # Details of a Quote line to start the bill period from.
759
+ attr_accessor :line_starts_at
760
+ # A precise Unix timestamp.
761
+ attr_accessor :timestamp
762
+ # The type of method to specify the `bill_from` time.
763
+ attr_accessor :type
764
+
765
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
766
+ @line_starts_at = line_starts_at
767
+ @timestamp = timestamp
768
+ @type = type
769
+ end
770
+ end
771
+
772
+ class BillUntil < Stripe::RequestParams
773
+ class Duration < Stripe::RequestParams
774
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
775
+ attr_accessor :interval
776
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
777
+ attr_accessor :interval_count
778
+
779
+ def initialize(interval: nil, interval_count: nil)
780
+ @interval = interval
781
+ @interval_count = interval_count
782
+ end
783
+ end
784
+
785
+ class LineEndsAt < Stripe::RequestParams
786
+ # The ID of a quote line.
787
+ attr_accessor :id
788
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
789
+ attr_accessor :index
790
+
791
+ def initialize(id: nil, index: nil)
792
+ @id = id
793
+ @index = index
794
+ end
795
+ end
796
+ # Details of the duration over which to bill.
797
+ attr_accessor :duration
798
+ # Details of a Quote line item from which to bill until.
799
+ attr_accessor :line_ends_at
800
+ # A precise Unix timestamp.
801
+ attr_accessor :timestamp
802
+ # The type of method to specify the `bill_until` time.
803
+ attr_accessor :type
804
+
805
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
806
+ @duration = duration
807
+ @line_ends_at = line_ends_at
808
+ @timestamp = timestamp
809
+ @type = type
810
+ end
811
+ end
812
+ # The start of the period to bill from when the Quote is accepted.
813
+ attr_accessor :bill_from
814
+ # The end of the period to bill until when the Quote is accepted.
815
+ attr_accessor :bill_until
816
+
817
+ def initialize(bill_from: nil, bill_until: nil)
818
+ @bill_from = bill_from
819
+ @bill_until = bill_until
820
+ end
821
+ end
822
+
201
823
  class BillingMode < Stripe::RequestParams
202
824
  # Attribute for param field type
203
825
  attr_accessor :type
@@ -206,32 +828,208 @@ module Stripe
206
828
  @type = type
207
829
  end
208
830
  end
831
+
832
+ class Prebilling < Stripe::RequestParams
833
+ # This is used to determine the number of billing cycles to prebill.
834
+ attr_accessor :iterations
835
+
836
+ def initialize(iterations: nil)
837
+ @iterations = iterations
838
+ end
839
+ end
840
+ # Describes the period to bill for upon accepting the quote.
841
+ attr_accessor :bill_on_acceptance
842
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
843
+ attr_accessor :billing_behavior
844
+ # When specified as `reset`, the subscription will always start a new billing period when the quote is accepted.
845
+ attr_accessor :billing_cycle_anchor
209
846
  # Controls how prorations and invoices for subscriptions are calculated and orchestrated.
210
847
  attr_accessor :billing_mode
211
848
  # The subscription's 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.
212
849
  attr_accessor :description
213
- # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. The `effective_date` is ignored if it is in the past when the quote is accepted.
850
+ # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. When updating a subscription, the date of which the subscription will be updated using a subscription schedule. The special value `current_period_end` can be provided to update a subscription at the end of its current period. The `effective_date` is ignored if it is in the past when the quote is accepted.
214
851
  attr_accessor :effective_date
852
+ # Behavior of the subscription schedule and underlying subscription when it ends.
853
+ attr_accessor :end_behavior
854
+ # The id of a subscription that the quote will update. By default, the quote will contain the state of the subscription (such as line items, collection method and billing thresholds) unless overridden.
855
+ attr_accessor :from_subscription
215
856
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values.
216
857
  attr_accessor :metadata
858
+ # If specified, the invoicing for the given billing cycle iterations will be processed when the quote is accepted. Cannot be used with `effective_date`.
859
+ attr_accessor :prebilling
860
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
861
+ #
862
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
863
+ #
864
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
865
+ #
866
+ # Prorations can be disabled by passing `none`.
867
+ attr_accessor :proration_behavior
217
868
  # Integer representing the number of trial period days before the customer is charged for the first time.
218
869
  attr_accessor :trial_period_days
219
870
 
220
871
  def initialize(
872
+ bill_on_acceptance: nil,
873
+ billing_behavior: nil,
874
+ billing_cycle_anchor: nil,
221
875
  billing_mode: nil,
222
876
  description: nil,
223
877
  effective_date: nil,
878
+ end_behavior: nil,
879
+ from_subscription: nil,
224
880
  metadata: nil,
881
+ prebilling: nil,
882
+ proration_behavior: nil,
225
883
  trial_period_days: nil
226
884
  )
885
+ @bill_on_acceptance = bill_on_acceptance
886
+ @billing_behavior = billing_behavior
887
+ @billing_cycle_anchor = billing_cycle_anchor
227
888
  @billing_mode = billing_mode
228
889
  @description = description
229
890
  @effective_date = effective_date
891
+ @end_behavior = end_behavior
892
+ @from_subscription = from_subscription
230
893
  @metadata = metadata
894
+ @prebilling = prebilling
895
+ @proration_behavior = proration_behavior
231
896
  @trial_period_days = trial_period_days
232
897
  end
233
898
  end
234
899
 
900
+ class SubscriptionDataOverride < Stripe::RequestParams
901
+ class AppliesTo < Stripe::RequestParams
902
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
903
+ attr_accessor :new_reference
904
+ # The ID of the schedule the line applies to.
905
+ attr_accessor :subscription_schedule
906
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
907
+ attr_accessor :type
908
+
909
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
910
+ @new_reference = new_reference
911
+ @subscription_schedule = subscription_schedule
912
+ @type = type
913
+ end
914
+ end
915
+
916
+ class BillOnAcceptance < Stripe::RequestParams
917
+ class BillFrom < Stripe::RequestParams
918
+ class LineStartsAt < Stripe::RequestParams
919
+ # The ID of a quote line.
920
+ attr_accessor :id
921
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
922
+ attr_accessor :index
923
+
924
+ def initialize(id: nil, index: nil)
925
+ @id = id
926
+ @index = index
927
+ end
928
+ end
929
+ # Details of a Quote line to start the bill period from.
930
+ attr_accessor :line_starts_at
931
+ # A precise Unix timestamp.
932
+ attr_accessor :timestamp
933
+ # The type of method to specify the `bill_from` time.
934
+ attr_accessor :type
935
+
936
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
937
+ @line_starts_at = line_starts_at
938
+ @timestamp = timestamp
939
+ @type = type
940
+ end
941
+ end
942
+
943
+ class BillUntil < Stripe::RequestParams
944
+ class Duration < Stripe::RequestParams
945
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
946
+ attr_accessor :interval
947
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
948
+ attr_accessor :interval_count
949
+
950
+ def initialize(interval: nil, interval_count: nil)
951
+ @interval = interval
952
+ @interval_count = interval_count
953
+ end
954
+ end
955
+
956
+ class LineEndsAt < Stripe::RequestParams
957
+ # The ID of a quote line.
958
+ attr_accessor :id
959
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
960
+ attr_accessor :index
961
+
962
+ def initialize(id: nil, index: nil)
963
+ @id = id
964
+ @index = index
965
+ end
966
+ end
967
+ # Details of the duration over which to bill.
968
+ attr_accessor :duration
969
+ # Details of a Quote line item from which to bill until.
970
+ attr_accessor :line_ends_at
971
+ # A precise Unix timestamp.
972
+ attr_accessor :timestamp
973
+ # The type of method to specify the `bill_until` time.
974
+ attr_accessor :type
975
+
976
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
977
+ @duration = duration
978
+ @line_ends_at = line_ends_at
979
+ @timestamp = timestamp
980
+ @type = type
981
+ end
982
+ end
983
+ # The start of the period to bill from when the Quote is accepted.
984
+ attr_accessor :bill_from
985
+ # The end of the period to bill until when the Quote is accepted.
986
+ attr_accessor :bill_until
987
+
988
+ def initialize(bill_from: nil, bill_until: nil)
989
+ @bill_from = bill_from
990
+ @bill_until = bill_until
991
+ end
992
+ end
993
+ # Whether the override applies to an existing Subscription Schedule or a new Subscription Schedule.
994
+ attr_accessor :applies_to
995
+ # Describes the period to bill for upon accepting the quote.
996
+ attr_accessor :bill_on_acceptance
997
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
998
+ attr_accessor :billing_behavior
999
+ # The customer the Subscription Data override applies to. This is only relevant when `applies_to.type=new_reference`.
1000
+ attr_accessor :customer
1001
+ # The subscription's 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.
1002
+ attr_accessor :description
1003
+ # Behavior of the subscription schedule and underlying subscription when it ends.
1004
+ attr_accessor :end_behavior
1005
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
1006
+ #
1007
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
1008
+ #
1009
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
1010
+ #
1011
+ # Prorations can be disabled by passing `none`.
1012
+ attr_accessor :proration_behavior
1013
+
1014
+ def initialize(
1015
+ applies_to: nil,
1016
+ bill_on_acceptance: nil,
1017
+ billing_behavior: nil,
1018
+ customer: nil,
1019
+ description: nil,
1020
+ end_behavior: nil,
1021
+ proration_behavior: nil
1022
+ )
1023
+ @applies_to = applies_to
1024
+ @bill_on_acceptance = bill_on_acceptance
1025
+ @billing_behavior = billing_behavior
1026
+ @customer = customer
1027
+ @description = description
1028
+ @end_behavior = end_behavior
1029
+ @proration_behavior = proration_behavior
1030
+ end
1031
+ end
1032
+
235
1033
  class TransferData < Stripe::RequestParams
236
1034
  # The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field.
237
1035
  attr_accessor :amount
@@ -246,6 +1044,8 @@ module Stripe
246
1044
  @destination = destination
247
1045
  end
248
1046
  end
1047
+ # Set to true to allow quote lines to have `starts_at` in the past if collection is paused between `starts_at` and now.
1048
+ attr_accessor :allow_backdated_lines
249
1049
  # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field.
250
1050
  attr_accessor :application_fee_amount
251
1051
  # 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. There must be at least 1 line item with a recurring price to use this field.
@@ -256,6 +1056,8 @@ module Stripe
256
1056
  attr_accessor :collection_method
257
1057
  # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.
258
1058
  attr_accessor :customer
1059
+ # The account for which this quote belongs to. A customer or account is required before finalizing the quote. Once specified, it cannot be changed.
1060
+ attr_accessor :customer_account
259
1061
  # The tax rates that will apply to any line item that does not have `tax_rates` set.
260
1062
  attr_accessor :default_tax_rates
261
1063
  # A description that will be displayed on the quote PDF. If no value is passed, the default description configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used.
@@ -276,23 +1078,29 @@ module Stripe
276
1078
  attr_accessor :invoice_settings
277
1079
  # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.
278
1080
  attr_accessor :line_items
1081
+ # A list of [quote lines](https://docs.stripe.com/api/quote_lines) on the quote. These lines describe changes, in the order provided, that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
1082
+ attr_accessor :lines
279
1083
  # 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`.
280
1084
  attr_accessor :metadata
281
1085
  # The account on behalf of which to charge.
282
1086
  attr_accessor :on_behalf_of
283
1087
  # When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.
284
1088
  attr_accessor :subscription_data
1089
+ # List representing overrides for `subscription_data` configurations for specific subscription schedules.
1090
+ attr_accessor :subscription_data_overrides
285
1091
  # ID of the test clock to attach to the quote.
286
1092
  attr_accessor :test_clock
287
1093
  # The data with which to automatically create a Transfer for each of the invoices.
288
1094
  attr_accessor :transfer_data
289
1095
 
290
1096
  def initialize(
1097
+ allow_backdated_lines: nil,
291
1098
  application_fee_amount: nil,
292
1099
  application_fee_percent: nil,
293
1100
  automatic_tax: nil,
294
1101
  collection_method: nil,
295
1102
  customer: nil,
1103
+ customer_account: nil,
296
1104
  default_tax_rates: nil,
297
1105
  description: nil,
298
1106
  discounts: nil,
@@ -303,17 +1111,21 @@ module Stripe
303
1111
  header: nil,
304
1112
  invoice_settings: nil,
305
1113
  line_items: nil,
1114
+ lines: nil,
306
1115
  metadata: nil,
307
1116
  on_behalf_of: nil,
308
1117
  subscription_data: nil,
1118
+ subscription_data_overrides: nil,
309
1119
  test_clock: nil,
310
1120
  transfer_data: nil
311
1121
  )
1122
+ @allow_backdated_lines = allow_backdated_lines
312
1123
  @application_fee_amount = application_fee_amount
313
1124
  @application_fee_percent = application_fee_percent
314
1125
  @automatic_tax = automatic_tax
315
1126
  @collection_method = collection_method
316
1127
  @customer = customer
1128
+ @customer_account = customer_account
317
1129
  @default_tax_rates = default_tax_rates
318
1130
  @description = description
319
1131
  @discounts = discounts
@@ -324,9 +1136,11 @@ module Stripe
324
1136
  @header = header
325
1137
  @invoice_settings = invoice_settings
326
1138
  @line_items = line_items
1139
+ @lines = lines
327
1140
  @metadata = metadata
328
1141
  @on_behalf_of = on_behalf_of
329
1142
  @subscription_data = subscription_data
1143
+ @subscription_data_overrides = subscription_data_overrides
330
1144
  @test_clock = test_clock
331
1145
  @transfer_data = transfer_data
332
1146
  end
@@ -366,16 +1180,44 @@ module Stripe
366
1180
  end
367
1181
 
368
1182
  class Discount < Stripe::RequestParams
1183
+ class DiscountEnd < Stripe::RequestParams
1184
+ class Duration < Stripe::RequestParams
1185
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1186
+ attr_accessor :interval
1187
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1188
+ attr_accessor :interval_count
1189
+
1190
+ def initialize(interval: nil, interval_count: nil)
1191
+ @interval = interval
1192
+ @interval_count = interval_count
1193
+ end
1194
+ end
1195
+ # Time span for the redeemed discount.
1196
+ attr_accessor :duration
1197
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1198
+ attr_accessor :timestamp
1199
+ # The type of calculation made to determine when the discount ends.
1200
+ attr_accessor :type
1201
+
1202
+ def initialize(duration: nil, timestamp: nil, type: nil)
1203
+ @duration = duration
1204
+ @timestamp = timestamp
1205
+ @type = type
1206
+ end
1207
+ end
369
1208
  # ID of the coupon to create a new discount for.
370
1209
  attr_accessor :coupon
371
1210
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
372
1211
  attr_accessor :discount
1212
+ # Details to determine how long the discount should be applied for.
1213
+ attr_accessor :discount_end
373
1214
  # ID of the promotion code to create a new discount for.
374
1215
  attr_accessor :promotion_code
375
1216
 
376
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1217
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
377
1218
  @coupon = coupon
378
1219
  @discount = discount
1220
+ @discount_end = discount_end
379
1221
  @promotion_code = promotion_code
380
1222
  end
381
1223
  end
@@ -403,18 +1245,529 @@ module Stripe
403
1245
  end
404
1246
  end
405
1247
 
1248
+ class Line < Stripe::RequestParams
1249
+ class Action < Stripe::RequestParams
1250
+ class AddDiscount < Stripe::RequestParams
1251
+ class DiscountEnd < Stripe::RequestParams
1252
+ # The type of calculation made to determine when the discount ends.
1253
+ attr_accessor :type
1254
+
1255
+ def initialize(type: nil)
1256
+ @type = type
1257
+ end
1258
+ end
1259
+ # The coupon code to redeem.
1260
+ attr_accessor :coupon
1261
+ # An ID of an existing discount for a coupon that was already redeemed.
1262
+ attr_accessor :discount
1263
+ # Details to determine how long the discount should be applied for.
1264
+ attr_accessor :discount_end
1265
+ # The index, starting at 0, at which to position the new discount. When not supplied, Stripe defaults to appending the discount to the end of the `discounts` array.
1266
+ attr_accessor :index
1267
+ # The promotion code to redeem.
1268
+ attr_accessor :promotion_code
1269
+
1270
+ def initialize(
1271
+ coupon: nil,
1272
+ discount: nil,
1273
+ discount_end: nil,
1274
+ index: nil,
1275
+ promotion_code: nil
1276
+ )
1277
+ @coupon = coupon
1278
+ @discount = discount
1279
+ @discount_end = discount_end
1280
+ @index = index
1281
+ @promotion_code = promotion_code
1282
+ end
1283
+ end
1284
+
1285
+ class AddItem < Stripe::RequestParams
1286
+ class Discount < Stripe::RequestParams
1287
+ class DiscountEnd < Stripe::RequestParams
1288
+ class Duration < Stripe::RequestParams
1289
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1290
+ attr_accessor :interval
1291
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1292
+ attr_accessor :interval_count
1293
+
1294
+ def initialize(interval: nil, interval_count: nil)
1295
+ @interval = interval
1296
+ @interval_count = interval_count
1297
+ end
1298
+ end
1299
+ # Time span for the redeemed discount.
1300
+ attr_accessor :duration
1301
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1302
+ attr_accessor :timestamp
1303
+ # The type of calculation made to determine when the discount ends.
1304
+ attr_accessor :type
1305
+
1306
+ def initialize(duration: nil, timestamp: nil, type: nil)
1307
+ @duration = duration
1308
+ @timestamp = timestamp
1309
+ @type = type
1310
+ end
1311
+ end
1312
+ # ID of the coupon to create a new discount for.
1313
+ attr_accessor :coupon
1314
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1315
+ attr_accessor :discount
1316
+ # Details to determine how long the discount should be applied for.
1317
+ attr_accessor :discount_end
1318
+ # ID of the promotion code to create a new discount for.
1319
+ attr_accessor :promotion_code
1320
+
1321
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1322
+ @coupon = coupon
1323
+ @discount = discount
1324
+ @discount_end = discount_end
1325
+ @promotion_code = promotion_code
1326
+ end
1327
+ end
1328
+
1329
+ class Trial < Stripe::RequestParams
1330
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1331
+ attr_accessor :converts_to
1332
+ # Determines the type of trial for this item.
1333
+ attr_accessor :type
1334
+
1335
+ def initialize(converts_to: nil, type: nil)
1336
+ @converts_to = converts_to
1337
+ @type = type
1338
+ end
1339
+ end
1340
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
1341
+ attr_accessor :discounts
1342
+ # 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`.
1343
+ attr_accessor :metadata
1344
+ # The ID of the price object.
1345
+ attr_accessor :price
1346
+ # Quantity for this item.
1347
+ attr_accessor :quantity
1348
+ # The tax rates that apply to this subscription item. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.
1349
+ attr_accessor :tax_rates
1350
+ # Options that configure the trial on the subscription item.
1351
+ attr_accessor :trial
1352
+
1353
+ def initialize(
1354
+ discounts: nil,
1355
+ metadata: nil,
1356
+ price: nil,
1357
+ quantity: nil,
1358
+ tax_rates: nil,
1359
+ trial: nil
1360
+ )
1361
+ @discounts = discounts
1362
+ @metadata = metadata
1363
+ @price = price
1364
+ @quantity = quantity
1365
+ @tax_rates = tax_rates
1366
+ @trial = trial
1367
+ end
1368
+ end
1369
+
1370
+ class RemoveDiscount < Stripe::RequestParams
1371
+ # The coupon code to remove from the `discounts` array.
1372
+ attr_accessor :coupon
1373
+ # The ID of a discount to remove from the `discounts` array.
1374
+ attr_accessor :discount
1375
+ # The ID of a promotion code to remove from the `discounts` array.
1376
+ attr_accessor :promotion_code
1377
+
1378
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1379
+ @coupon = coupon
1380
+ @discount = discount
1381
+ @promotion_code = promotion_code
1382
+ end
1383
+ end
1384
+
1385
+ class RemoveItem < Stripe::RequestParams
1386
+ # ID of a price to remove.
1387
+ attr_accessor :price
1388
+
1389
+ def initialize(price: nil)
1390
+ @price = price
1391
+ end
1392
+ end
1393
+
1394
+ class SetDiscount < Stripe::RequestParams
1395
+ # The coupon code to replace the `discounts` array with.
1396
+ attr_accessor :coupon
1397
+ # An ID of an existing discount to replace the `discounts` array with.
1398
+ attr_accessor :discount
1399
+ # An ID of an existing promotion code to replace the `discounts` array with.
1400
+ attr_accessor :promotion_code
1401
+
1402
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
1403
+ @coupon = coupon
1404
+ @discount = discount
1405
+ @promotion_code = promotion_code
1406
+ end
1407
+ end
1408
+
1409
+ class SetItem < Stripe::RequestParams
1410
+ class Discount < Stripe::RequestParams
1411
+ class DiscountEnd < Stripe::RequestParams
1412
+ class Duration < Stripe::RequestParams
1413
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1414
+ attr_accessor :interval
1415
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1416
+ attr_accessor :interval_count
1417
+
1418
+ def initialize(interval: nil, interval_count: nil)
1419
+ @interval = interval
1420
+ @interval_count = interval_count
1421
+ end
1422
+ end
1423
+ # Time span for the redeemed discount.
1424
+ attr_accessor :duration
1425
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1426
+ attr_accessor :timestamp
1427
+ # The type of calculation made to determine when the discount ends.
1428
+ attr_accessor :type
1429
+
1430
+ def initialize(duration: nil, timestamp: nil, type: nil)
1431
+ @duration = duration
1432
+ @timestamp = timestamp
1433
+ @type = type
1434
+ end
1435
+ end
1436
+ # ID of the coupon to create a new discount for.
1437
+ attr_accessor :coupon
1438
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
1439
+ attr_accessor :discount
1440
+ # Details to determine how long the discount should be applied for.
1441
+ attr_accessor :discount_end
1442
+ # ID of the promotion code to create a new discount for.
1443
+ attr_accessor :promotion_code
1444
+
1445
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1446
+ @coupon = coupon
1447
+ @discount = discount
1448
+ @discount_end = discount_end
1449
+ @promotion_code = promotion_code
1450
+ end
1451
+ end
1452
+
1453
+ class Trial < Stripe::RequestParams
1454
+ # List of price IDs which, if present on the subscription following a paid trial, constitute opting-in to the paid trial. Currently only supports at most 1 price ID.
1455
+ attr_accessor :converts_to
1456
+ # Determines the type of trial for this item.
1457
+ attr_accessor :type
1458
+
1459
+ def initialize(converts_to: nil, type: nil)
1460
+ @converts_to = converts_to
1461
+ @type = type
1462
+ end
1463
+ end
1464
+ # If an item with the `price` already exists, passing this will override the `discounts` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `discounts`.
1465
+ attr_accessor :discounts
1466
+ # If an item with the `price` already exists, passing this will override the `metadata` on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `metadata`.
1467
+ attr_accessor :metadata
1468
+ # The ID of the price object.
1469
+ attr_accessor :price
1470
+ # If an item with the `price` already exists, passing this will override the quantity on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `quantity`.
1471
+ attr_accessor :quantity
1472
+ # If an item with the `price` already exists, passing this will override the `tax_rates` array on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `tax_rates`.
1473
+ attr_accessor :tax_rates
1474
+ # If an item with the `price` already exists, passing this will override the `trial` configuration on the subscription item that matches that price. Otherwise, the `items` array is cleared and a single new item is added with the supplied `trial`.
1475
+ attr_accessor :trial
1476
+
1477
+ def initialize(
1478
+ discounts: nil,
1479
+ metadata: nil,
1480
+ price: nil,
1481
+ quantity: nil,
1482
+ tax_rates: nil,
1483
+ trial: nil
1484
+ )
1485
+ @discounts = discounts
1486
+ @metadata = metadata
1487
+ @price = price
1488
+ @quantity = quantity
1489
+ @tax_rates = tax_rates
1490
+ @trial = trial
1491
+ end
1492
+ end
1493
+ # Details for the `add_discount` type.
1494
+ attr_accessor :add_discount
1495
+ # Details for the `add_item` type.
1496
+ attr_accessor :add_item
1497
+ # Details for the `add_metadata` type: specify a hash of key-value pairs.
1498
+ attr_accessor :add_metadata
1499
+ # Details for the `remove_discount` type.
1500
+ attr_accessor :remove_discount
1501
+ # Details for the `remove_item` type.
1502
+ attr_accessor :remove_item
1503
+ # Details for the `remove_metadata` type: specify an array of metadata keys.
1504
+ attr_accessor :remove_metadata
1505
+ # Details for the `set_discounts` type.
1506
+ attr_accessor :set_discounts
1507
+ # Details for the `set_items` type.
1508
+ attr_accessor :set_items
1509
+ # Details for the `set_metadata` type: specify an array of key-value pairs.
1510
+ attr_accessor :set_metadata
1511
+ # The type of action the quote line performs.
1512
+ attr_accessor :type
1513
+
1514
+ def initialize(
1515
+ add_discount: nil,
1516
+ add_item: nil,
1517
+ add_metadata: nil,
1518
+ remove_discount: nil,
1519
+ remove_item: nil,
1520
+ remove_metadata: nil,
1521
+ set_discounts: nil,
1522
+ set_items: nil,
1523
+ set_metadata: nil,
1524
+ type: nil
1525
+ )
1526
+ @add_discount = add_discount
1527
+ @add_item = add_item
1528
+ @add_metadata = add_metadata
1529
+ @remove_discount = remove_discount
1530
+ @remove_item = remove_item
1531
+ @remove_metadata = remove_metadata
1532
+ @set_discounts = set_discounts
1533
+ @set_items = set_items
1534
+ @set_metadata = set_metadata
1535
+ @type = type
1536
+ end
1537
+ end
1538
+
1539
+ class AppliesTo < Stripe::RequestParams
1540
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
1541
+ attr_accessor :new_reference
1542
+ # The ID of the schedule the line applies to.
1543
+ attr_accessor :subscription_schedule
1544
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
1545
+ attr_accessor :type
1546
+
1547
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
1548
+ @new_reference = new_reference
1549
+ @subscription_schedule = subscription_schedule
1550
+ @type = type
1551
+ end
1552
+ end
1553
+
1554
+ class CancelSubscriptionSchedule < Stripe::RequestParams
1555
+ # Timestamp helper to cancel the underlying schedule on the accompanying line's start date. Must be set to `line_starts_at`.
1556
+ attr_accessor :cancel_at
1557
+ # 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. Boolean that defaults to `true`.
1558
+ attr_accessor :invoice_now
1559
+ # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Boolean that defaults to `true`.
1560
+ attr_accessor :prorate
1561
+
1562
+ def initialize(cancel_at: nil, invoice_now: nil, prorate: nil)
1563
+ @cancel_at = cancel_at
1564
+ @invoice_now = invoice_now
1565
+ @prorate = prorate
1566
+ end
1567
+ end
1568
+
1569
+ class EndsAt < Stripe::RequestParams
1570
+ class DiscountEnd < Stripe::RequestParams
1571
+ # The ID of a specific discount.
1572
+ attr_accessor :discount
1573
+
1574
+ def initialize(discount: nil)
1575
+ @discount = discount
1576
+ end
1577
+ end
1578
+
1579
+ class Duration < Stripe::RequestParams
1580
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1581
+ attr_accessor :interval
1582
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1583
+ attr_accessor :interval_count
1584
+
1585
+ def initialize(interval: nil, interval_count: nil)
1586
+ @interval = interval
1587
+ @interval_count = interval_count
1588
+ end
1589
+ end
1590
+ # Use the `end` time of a given discount.
1591
+ attr_accessor :discount_end
1592
+ # Time span for the quote line starting from the `starts_at` date.
1593
+ attr_accessor :duration
1594
+ # A precise Unix timestamp.
1595
+ attr_accessor :timestamp
1596
+ # Select a way to pass in `ends_at`.
1597
+ attr_accessor :type
1598
+
1599
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
1600
+ @discount_end = discount_end
1601
+ @duration = duration
1602
+ @timestamp = timestamp
1603
+ @type = type
1604
+ end
1605
+ end
1606
+
1607
+ class SetPauseCollection < Stripe::RequestParams
1608
+ class Set < Stripe::RequestParams
1609
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
1610
+ attr_accessor :behavior
1611
+
1612
+ def initialize(behavior: nil)
1613
+ @behavior = behavior
1614
+ end
1615
+ end
1616
+ # Details of the pause_collection behavior to apply to the amendment.
1617
+ attr_accessor :set
1618
+ # Determines the type of the pause_collection amendment.
1619
+ attr_accessor :type
1620
+
1621
+ def initialize(set: nil, type: nil)
1622
+ @set = set
1623
+ @type = type
1624
+ end
1625
+ end
1626
+
1627
+ class StartsAt < Stripe::RequestParams
1628
+ class DiscountEnd < Stripe::RequestParams
1629
+ # The ID of a specific discount.
1630
+ attr_accessor :discount
1631
+
1632
+ def initialize(discount: nil)
1633
+ @discount = discount
1634
+ end
1635
+ end
1636
+
1637
+ class LineEndsAt < Stripe::RequestParams
1638
+ # The ID of a quote line.
1639
+ attr_accessor :id
1640
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1641
+ attr_accessor :index
1642
+
1643
+ def initialize(id: nil, index: nil)
1644
+ @id = id
1645
+ @index = index
1646
+ end
1647
+ end
1648
+ # Use the `end` time of a given discount.
1649
+ attr_accessor :discount_end
1650
+ # The timestamp the given line ends at.
1651
+ attr_accessor :line_ends_at
1652
+ # A precise Unix timestamp.
1653
+ attr_accessor :timestamp
1654
+ # Select a way to pass in `starts_at`.
1655
+ attr_accessor :type
1656
+
1657
+ def initialize(discount_end: nil, line_ends_at: nil, timestamp: nil, type: nil)
1658
+ @discount_end = discount_end
1659
+ @line_ends_at = line_ends_at
1660
+ @timestamp = timestamp
1661
+ @type = type
1662
+ end
1663
+ end
1664
+
1665
+ class TrialSettings < Stripe::RequestParams
1666
+ class EndBehavior < Stripe::RequestParams
1667
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
1668
+ attr_accessor :prorate_up_front
1669
+
1670
+ def initialize(prorate_up_front: nil)
1671
+ @prorate_up_front = prorate_up_front
1672
+ end
1673
+ end
1674
+ # Defines how the subscription should behave when a trial ends.
1675
+ attr_accessor :end_behavior
1676
+
1677
+ def initialize(end_behavior: nil)
1678
+ @end_behavior = end_behavior
1679
+ end
1680
+ end
1681
+ # An array of operations the quote line performs.
1682
+ attr_accessor :actions
1683
+ # Details to identify the subscription schedule the quote line applies to.
1684
+ attr_accessor :applies_to
1685
+ # For point-in-time quote lines (having no `ends_at` timestamp), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the Quote Line `starts_at` timestamp.For time-span based quote lines (having both `starts_at` and `ends_at`), the only valid value is `automatic`, which removes any previously configured billing cycle anchor resets during the window of time spanning the quote line.
1686
+ attr_accessor :billing_cycle_anchor
1687
+ # A point-in-time operation that cancels an existing subscription schedule at the line's starts_at timestamp. Currently only compatible with `quote_acceptance_date` for `starts_at`. When using cancel_subscription_schedule, the subscription schedule on the quote remains unalterable, except for modifications to the metadata, collection_method or invoice_settings.
1688
+ attr_accessor :cancel_subscription_schedule
1689
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the quote line is considered a point-in-time operation that only affects the exact timestamp at `starts_at`, and a restricted set of attributes is supported on the quote line.
1690
+ attr_accessor :ends_at
1691
+ # The ID of an existing line on the quote.
1692
+ attr_accessor :id
1693
+ # Changes to how Stripe handles prorations during the quote line's time span. Affects if and how prorations are created when a future phase starts.
1694
+ attr_accessor :proration_behavior
1695
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
1696
+ attr_accessor :set_pause_collection
1697
+ # Timestamp helper to end the underlying schedule early, based on the acompanying line's start or end date.
1698
+ attr_accessor :set_schedule_end
1699
+ # Details to identify the earliest timestamp where the proposed change should take effect.
1700
+ attr_accessor :starts_at
1701
+ # Settings related to subscription trials.
1702
+ attr_accessor :trial_settings
1703
+
1704
+ def initialize(
1705
+ actions: nil,
1706
+ applies_to: nil,
1707
+ billing_cycle_anchor: nil,
1708
+ cancel_subscription_schedule: nil,
1709
+ ends_at: nil,
1710
+ id: nil,
1711
+ proration_behavior: nil,
1712
+ set_pause_collection: nil,
1713
+ set_schedule_end: nil,
1714
+ starts_at: nil,
1715
+ trial_settings: nil
1716
+ )
1717
+ @actions = actions
1718
+ @applies_to = applies_to
1719
+ @billing_cycle_anchor = billing_cycle_anchor
1720
+ @cancel_subscription_schedule = cancel_subscription_schedule
1721
+ @ends_at = ends_at
1722
+ @id = id
1723
+ @proration_behavior = proration_behavior
1724
+ @set_pause_collection = set_pause_collection
1725
+ @set_schedule_end = set_schedule_end
1726
+ @starts_at = starts_at
1727
+ @trial_settings = trial_settings
1728
+ end
1729
+ end
1730
+
406
1731
  class LineItem < Stripe::RequestParams
407
1732
  class Discount < Stripe::RequestParams
1733
+ class DiscountEnd < Stripe::RequestParams
1734
+ class Duration < Stripe::RequestParams
1735
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1736
+ attr_accessor :interval
1737
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1738
+ attr_accessor :interval_count
1739
+
1740
+ def initialize(interval: nil, interval_count: nil)
1741
+ @interval = interval
1742
+ @interval_count = interval_count
1743
+ end
1744
+ end
1745
+ # Time span for the redeemed discount.
1746
+ attr_accessor :duration
1747
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1748
+ attr_accessor :timestamp
1749
+ # The type of calculation made to determine when the discount ends.
1750
+ attr_accessor :type
1751
+
1752
+ def initialize(duration: nil, timestamp: nil, type: nil)
1753
+ @duration = duration
1754
+ @timestamp = timestamp
1755
+ @type = type
1756
+ end
1757
+ end
408
1758
  # ID of the coupon to create a new discount for.
409
1759
  attr_accessor :coupon
410
1760
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
411
1761
  attr_accessor :discount
1762
+ # Details to determine how long the discount should be applied for.
1763
+ attr_accessor :discount_end
412
1764
  # ID of the promotion code to create a new discount for.
413
1765
  attr_accessor :promotion_code
414
1766
 
415
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1767
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
416
1768
  @coupon = coupon
417
1769
  @discount = discount
1770
+ @discount_end = discount_end
418
1771
  @promotion_code = promotion_code
419
1772
  end
420
1773
  end
@@ -491,23 +1844,277 @@ module Stripe
491
1844
  end
492
1845
 
493
1846
  class SubscriptionData < Stripe::RequestParams
1847
+ class BillOnAcceptance < Stripe::RequestParams
1848
+ class BillFrom < Stripe::RequestParams
1849
+ class LineStartsAt < Stripe::RequestParams
1850
+ # The ID of a quote line.
1851
+ attr_accessor :id
1852
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1853
+ attr_accessor :index
1854
+
1855
+ def initialize(id: nil, index: nil)
1856
+ @id = id
1857
+ @index = index
1858
+ end
1859
+ end
1860
+ # Details of a Quote line to start the bill period from.
1861
+ attr_accessor :line_starts_at
1862
+ # A precise Unix timestamp.
1863
+ attr_accessor :timestamp
1864
+ # The type of method to specify the `bill_from` time.
1865
+ attr_accessor :type
1866
+
1867
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
1868
+ @line_starts_at = line_starts_at
1869
+ @timestamp = timestamp
1870
+ @type = type
1871
+ end
1872
+ end
1873
+
1874
+ class BillUntil < Stripe::RequestParams
1875
+ class Duration < Stripe::RequestParams
1876
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1877
+ attr_accessor :interval
1878
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1879
+ attr_accessor :interval_count
1880
+
1881
+ def initialize(interval: nil, interval_count: nil)
1882
+ @interval = interval
1883
+ @interval_count = interval_count
1884
+ end
1885
+ end
1886
+
1887
+ class LineEndsAt < Stripe::RequestParams
1888
+ # The ID of a quote line.
1889
+ attr_accessor :id
1890
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
1891
+ attr_accessor :index
1892
+
1893
+ def initialize(id: nil, index: nil)
1894
+ @id = id
1895
+ @index = index
1896
+ end
1897
+ end
1898
+ # Details of the duration over which to bill.
1899
+ attr_accessor :duration
1900
+ # Details of a Quote line item from which to bill until.
1901
+ attr_accessor :line_ends_at
1902
+ # A precise Unix timestamp.
1903
+ attr_accessor :timestamp
1904
+ # The type of method to specify the `bill_until` time.
1905
+ attr_accessor :type
1906
+
1907
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
1908
+ @duration = duration
1909
+ @line_ends_at = line_ends_at
1910
+ @timestamp = timestamp
1911
+ @type = type
1912
+ end
1913
+ end
1914
+ # The start of the period to bill from when the Quote is accepted.
1915
+ attr_accessor :bill_from
1916
+ # The end of the period to bill until when the Quote is accepted.
1917
+ attr_accessor :bill_until
1918
+
1919
+ def initialize(bill_from: nil, bill_until: nil)
1920
+ @bill_from = bill_from
1921
+ @bill_until = bill_until
1922
+ end
1923
+ end
1924
+
1925
+ class Prebilling < Stripe::RequestParams
1926
+ # This is used to determine the number of billing cycles to prebill.
1927
+ attr_accessor :iterations
1928
+
1929
+ def initialize(iterations: nil)
1930
+ @iterations = iterations
1931
+ end
1932
+ end
1933
+ # Describes the period to bill for upon accepting the quote.
1934
+ attr_accessor :bill_on_acceptance
1935
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
1936
+ attr_accessor :billing_behavior
1937
+ # When specified as `reset`, the subscription will always start a new billing period when the quote is accepted.
1938
+ attr_accessor :billing_cycle_anchor
494
1939
  # The subscription's 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.
495
1940
  attr_accessor :description
496
- # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. The `effective_date` is ignored if it is in the past when the quote is accepted.
1941
+ # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. When updating a subscription, the date of which the subscription will be updated using a subscription schedule. The special value `current_period_end` can be provided to update a subscription at the end of its current period. The `effective_date` is ignored if it is in the past when the quote is accepted.
497
1942
  attr_accessor :effective_date
1943
+ # Behavior of the subscription schedule and underlying subscription when it ends.
1944
+ attr_accessor :end_behavior
498
1945
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values.
499
1946
  attr_accessor :metadata
1947
+ # If specified, the invoicing for the given billing cycle iterations will be processed when the quote is accepted. Cannot be used with `effective_date`.
1948
+ attr_accessor :prebilling
1949
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
1950
+ #
1951
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
1952
+ #
1953
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
1954
+ #
1955
+ # Prorations can be disabled by passing `none`.
1956
+ attr_accessor :proration_behavior
500
1957
  # Integer representing the number of trial period days before the customer is charged for the first time.
501
1958
  attr_accessor :trial_period_days
502
1959
 
503
- def initialize(description: nil, effective_date: nil, metadata: nil, trial_period_days: nil)
1960
+ def initialize(
1961
+ bill_on_acceptance: nil,
1962
+ billing_behavior: nil,
1963
+ billing_cycle_anchor: nil,
1964
+ description: nil,
1965
+ effective_date: nil,
1966
+ end_behavior: nil,
1967
+ metadata: nil,
1968
+ prebilling: nil,
1969
+ proration_behavior: nil,
1970
+ trial_period_days: nil
1971
+ )
1972
+ @bill_on_acceptance = bill_on_acceptance
1973
+ @billing_behavior = billing_behavior
1974
+ @billing_cycle_anchor = billing_cycle_anchor
504
1975
  @description = description
505
1976
  @effective_date = effective_date
1977
+ @end_behavior = end_behavior
506
1978
  @metadata = metadata
1979
+ @prebilling = prebilling
1980
+ @proration_behavior = proration_behavior
507
1981
  @trial_period_days = trial_period_days
508
1982
  end
509
1983
  end
510
1984
 
1985
+ class SubscriptionDataOverride < Stripe::RequestParams
1986
+ class AppliesTo < Stripe::RequestParams
1987
+ # A custom string that identifies a new subscription schedule being created upon quote acceptance. All quote lines with the same `new_reference` field will be applied to the creation of a new subscription schedule.
1988
+ attr_accessor :new_reference
1989
+ # The ID of the schedule the line applies to.
1990
+ attr_accessor :subscription_schedule
1991
+ # Describes whether the quote line is affecting a new schedule or an existing schedule.
1992
+ attr_accessor :type
1993
+
1994
+ def initialize(new_reference: nil, subscription_schedule: nil, type: nil)
1995
+ @new_reference = new_reference
1996
+ @subscription_schedule = subscription_schedule
1997
+ @type = type
1998
+ end
1999
+ end
2000
+
2001
+ class BillOnAcceptance < Stripe::RequestParams
2002
+ class BillFrom < Stripe::RequestParams
2003
+ class LineStartsAt < Stripe::RequestParams
2004
+ # The ID of a quote line.
2005
+ attr_accessor :id
2006
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
2007
+ attr_accessor :index
2008
+
2009
+ def initialize(id: nil, index: nil)
2010
+ @id = id
2011
+ @index = index
2012
+ end
2013
+ end
2014
+ # Details of a Quote line to start the bill period from.
2015
+ attr_accessor :line_starts_at
2016
+ # A precise Unix timestamp.
2017
+ attr_accessor :timestamp
2018
+ # The type of method to specify the `bill_from` time.
2019
+ attr_accessor :type
2020
+
2021
+ def initialize(line_starts_at: nil, timestamp: nil, type: nil)
2022
+ @line_starts_at = line_starts_at
2023
+ @timestamp = timestamp
2024
+ @type = type
2025
+ end
2026
+ end
2027
+
2028
+ class BillUntil < Stripe::RequestParams
2029
+ class Duration < Stripe::RequestParams
2030
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2031
+ attr_accessor :interval
2032
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2033
+ attr_accessor :interval_count
2034
+
2035
+ def initialize(interval: nil, interval_count: nil)
2036
+ @interval = interval
2037
+ @interval_count = interval_count
2038
+ end
2039
+ end
2040
+
2041
+ class LineEndsAt < Stripe::RequestParams
2042
+ # The ID of a quote line.
2043
+ attr_accessor :id
2044
+ # The position of the previous quote line in the `lines` array after which this line should begin. Indexes start from 0 and must be less than the index of the current line in the array.
2045
+ attr_accessor :index
2046
+
2047
+ def initialize(id: nil, index: nil)
2048
+ @id = id
2049
+ @index = index
2050
+ end
2051
+ end
2052
+ # Details of the duration over which to bill.
2053
+ attr_accessor :duration
2054
+ # Details of a Quote line item from which to bill until.
2055
+ attr_accessor :line_ends_at
2056
+ # A precise Unix timestamp.
2057
+ attr_accessor :timestamp
2058
+ # The type of method to specify the `bill_until` time.
2059
+ attr_accessor :type
2060
+
2061
+ def initialize(duration: nil, line_ends_at: nil, timestamp: nil, type: nil)
2062
+ @duration = duration
2063
+ @line_ends_at = line_ends_at
2064
+ @timestamp = timestamp
2065
+ @type = type
2066
+ end
2067
+ end
2068
+ # The start of the period to bill from when the Quote is accepted.
2069
+ attr_accessor :bill_from
2070
+ # The end of the period to bill until when the Quote is accepted.
2071
+ attr_accessor :bill_until
2072
+
2073
+ def initialize(bill_from: nil, bill_until: nil)
2074
+ @bill_from = bill_from
2075
+ @bill_until = bill_until
2076
+ end
2077
+ end
2078
+ # Whether the override applies to an existing Subscription Schedule or a new Subscription Schedule.
2079
+ attr_accessor :applies_to
2080
+ # Describes the period to bill for upon accepting the quote.
2081
+ attr_accessor :bill_on_acceptance
2082
+ # Configures when the subscription schedule generates prorations for phase transitions. Possible values are `prorate_on_next_phase` or `prorate_up_front` with the default being `prorate_on_next_phase`. `prorate_on_next_phase` will apply phase changes and generate prorations at transition time. `prorate_up_front` will bill for all phases within the current billing cycle up front.
2083
+ attr_accessor :billing_behavior
2084
+ # The customer the Subscription Data override applies to.
2085
+ attr_accessor :customer
2086
+ # The subscription's 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.
2087
+ attr_accessor :description
2088
+ # Behavior of the subscription schedule and underlying subscription when it ends.
2089
+ attr_accessor :end_behavior
2090
+ # Determines how to handle [prorations](https://stripe.com/docs/subscriptions/billing-cycle#prorations). When creating a subscription, valid values are `create_prorations` or `none`.
2091
+ #
2092
+ # When updating a subscription, valid values are `create_prorations`, `none`, or `always_invoice`.
2093
+ #
2094
+ # Passing `create_prorations` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https://stripe.com/docs/subscriptions/upgrading-downgrading#immediate-payment). In order to always invoice immediately for prorations, pass `always_invoice`.
2095
+ #
2096
+ # Prorations can be disabled by passing `none`.
2097
+ attr_accessor :proration_behavior
2098
+
2099
+ def initialize(
2100
+ applies_to: nil,
2101
+ bill_on_acceptance: nil,
2102
+ billing_behavior: nil,
2103
+ customer: nil,
2104
+ description: nil,
2105
+ end_behavior: nil,
2106
+ proration_behavior: nil
2107
+ )
2108
+ @applies_to = applies_to
2109
+ @bill_on_acceptance = bill_on_acceptance
2110
+ @billing_behavior = billing_behavior
2111
+ @customer = customer
2112
+ @description = description
2113
+ @end_behavior = end_behavior
2114
+ @proration_behavior = proration_behavior
2115
+ end
2116
+ end
2117
+
511
2118
  class TransferData < Stripe::RequestParams
512
2119
  # The amount that will be transferred automatically when the invoice is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field.
513
2120
  attr_accessor :amount
@@ -522,6 +2129,8 @@ module Stripe
522
2129
  @destination = destination
523
2130
  end
524
2131
  end
2132
+ # Set to true to allow quote lines to have `starts_at` in the past if collection is paused between `starts_at` and now.
2133
+ attr_accessor :allow_backdated_lines
525
2134
  # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field.
526
2135
  attr_accessor :application_fee_amount
527
2136
  # 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. There must be at least 1 line item with a recurring price to use this field.
@@ -532,6 +2141,8 @@ module Stripe
532
2141
  attr_accessor :collection_method
533
2142
  # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.
534
2143
  attr_accessor :customer
2144
+ # The account for which this quote belongs to. A customer or account is required before finalizing the quote. Once specified, it cannot be changed.
2145
+ attr_accessor :customer_account
535
2146
  # The tax rates that will apply to any line item that does not have `tax_rates` set.
536
2147
  attr_accessor :default_tax_rates
537
2148
  # A description that will be displayed on the quote PDF.
@@ -550,21 +2161,27 @@ module Stripe
550
2161
  attr_accessor :invoice_settings
551
2162
  # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.
552
2163
  attr_accessor :line_items
2164
+ # A list of [quote lines](https://docs.stripe.com/api/quote_lines) on the quote. These lines describe changes, in the order provided, that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
2165
+ attr_accessor :lines
553
2166
  # 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`.
554
2167
  attr_accessor :metadata
555
2168
  # The account on behalf of which to charge.
556
2169
  attr_accessor :on_behalf_of
557
2170
  # When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.
558
2171
  attr_accessor :subscription_data
2172
+ # List representing overrides for `subscription_data` configurations for specific subscription schedules.
2173
+ attr_accessor :subscription_data_overrides
559
2174
  # The data with which to automatically create a Transfer for each of the invoices.
560
2175
  attr_accessor :transfer_data
561
2176
 
562
2177
  def initialize(
2178
+ allow_backdated_lines: nil,
563
2179
  application_fee_amount: nil,
564
2180
  application_fee_percent: nil,
565
2181
  automatic_tax: nil,
566
2182
  collection_method: nil,
567
2183
  customer: nil,
2184
+ customer_account: nil,
568
2185
  default_tax_rates: nil,
569
2186
  description: nil,
570
2187
  discounts: nil,
@@ -574,16 +2191,20 @@ module Stripe
574
2191
  header: nil,
575
2192
  invoice_settings: nil,
576
2193
  line_items: nil,
2194
+ lines: nil,
577
2195
  metadata: nil,
578
2196
  on_behalf_of: nil,
579
2197
  subscription_data: nil,
2198
+ subscription_data_overrides: nil,
580
2199
  transfer_data: nil
581
2200
  )
2201
+ @allow_backdated_lines = allow_backdated_lines
582
2202
  @application_fee_amount = application_fee_amount
583
2203
  @application_fee_percent = application_fee_percent
584
2204
  @automatic_tax = automatic_tax
585
2205
  @collection_method = collection_method
586
2206
  @customer = customer
2207
+ @customer_account = customer_account
587
2208
  @default_tax_rates = default_tax_rates
588
2209
  @description = description
589
2210
  @discounts = discounts
@@ -593,9 +2214,11 @@ module Stripe
593
2214
  @header = header
594
2215
  @invoice_settings = invoice_settings
595
2216
  @line_items = line_items
2217
+ @lines = lines
596
2218
  @metadata = metadata
597
2219
  @on_behalf_of = on_behalf_of
598
2220
  @subscription_data = subscription_data
2221
+ @subscription_data_overrides = subscription_data_overrides
599
2222
  @transfer_data = transfer_data
600
2223
  end
601
2224
  end
@@ -630,6 +2253,36 @@ module Stripe
630
2253
  end
631
2254
  end
632
2255
 
2256
+ class MarkDraftParams < Stripe::RequestParams
2257
+ # Specifies which fields in the response should be expanded.
2258
+ attr_accessor :expand
2259
+
2260
+ def initialize(expand: nil)
2261
+ @expand = expand
2262
+ end
2263
+ end
2264
+
2265
+ class MarkStaleParams < Stripe::RequestParams
2266
+ # Specifies which fields in the response should be expanded.
2267
+ attr_accessor :expand
2268
+ # Reason the Quote is being marked stale.
2269
+ attr_accessor :reason
2270
+
2271
+ def initialize(expand: nil, reason: nil)
2272
+ @expand = expand
2273
+ @reason = reason
2274
+ end
2275
+ end
2276
+
2277
+ class ReestimateParams < Stripe::RequestParams
2278
+ # Specifies which fields in the response should be expanded.
2279
+ attr_accessor :expand
2280
+
2281
+ def initialize(expand: nil)
2282
+ @expand = expand
2283
+ end
2284
+ end
2285
+
633
2286
  class PdfParams < Stripe::RequestParams
634
2287
  # Specifies which fields in the response should be expanded.
635
2288
  attr_accessor :expand
@@ -639,6 +2292,24 @@ module Stripe
639
2292
  end
640
2293
  end
641
2294
 
2295
+ class ListPreviewInvoiceLinesParams < Stripe::RequestParams
2296
+ # 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.
2297
+ attr_accessor :ending_before
2298
+ # Specifies which fields in the response should be expanded.
2299
+ attr_accessor :expand
2300
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
2301
+ attr_accessor :limit
2302
+ # 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.
2303
+ attr_accessor :starting_after
2304
+
2305
+ def initialize(ending_before: nil, expand: nil, limit: nil, starting_after: nil)
2306
+ @ending_before = ending_before
2307
+ @expand = expand
2308
+ @limit = limit
2309
+ @starting_after = starting_after
2310
+ end
2311
+ end
2312
+
642
2313
  # Accepts the specified quote.
643
2314
  def accept(quote, params = {}, opts = {})
644
2315
  request(
@@ -682,6 +2353,39 @@ module Stripe
682
2353
  request(method: :get, path: "/v1/quotes", params: params, opts: opts, base_address: :api)
683
2354
  end
684
2355
 
2356
+ # Preview the invoice line items that would be generated by accepting the quote.
2357
+ def list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
2358
+ request(
2359
+ method: :get,
2360
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
2361
+ params: params,
2362
+ opts: opts,
2363
+ base_address: :api
2364
+ )
2365
+ end
2366
+
2367
+ # Converts a stale quote to draft.
2368
+ def mark_draft(quote, params = {}, opts = {})
2369
+ request(
2370
+ method: :post,
2371
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
2372
+ params: params,
2373
+ opts: opts,
2374
+ base_address: :api
2375
+ )
2376
+ end
2377
+
2378
+ # Converts a draft or open quote to stale.
2379
+ def mark_stale(quote, params = {}, opts = {})
2380
+ request(
2381
+ method: :post,
2382
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
2383
+ params: params,
2384
+ opts: opts,
2385
+ base_address: :api
2386
+ )
2387
+ end
2388
+
685
2389
  # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf)
686
2390
  def pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
687
2391
  opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
@@ -695,6 +2399,17 @@ module Stripe
695
2399
  )
696
2400
  end
697
2401
 
2402
+ # Recompute the upcoming invoice estimate for the quote.
2403
+ def reestimate(quote, params = {}, opts = {})
2404
+ request(
2405
+ method: :post,
2406
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
2407
+ params: params,
2408
+ opts: opts,
2409
+ base_address: :api
2410
+ )
2411
+ end
2412
+
698
2413
  # Retrieves the quote with the given ID.
699
2414
  def retrieve(quote, params = {}, opts = {})
700
2415
  request(