stripe 14.0.0 → 14.1.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 (567) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1513 -670
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_requestor.rb +28 -0
  6. data/lib/stripe/api_version.rb +1 -1
  7. data/lib/stripe/errors.rb +54 -0
  8. data/lib/stripe/event_types.rb +75 -0
  9. data/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +23 -0
  10. data/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +21 -0
  11. data/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +23 -0
  12. data/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +21 -0
  13. data/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +23 -0
  14. data/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +21 -0
  15. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +21 -0
  16. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +21 -0
  17. data/lib/stripe/events/v2_core_account_link_completed_event.rb +13 -0
  18. data/lib/stripe/events/v2_core_account_person_created_event.rb +23 -0
  19. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +23 -0
  20. data/lib/stripe/events/v2_core_account_person_updated_event.rb +23 -0
  21. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +21 -0
  22. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +21 -0
  23. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +21 -0
  24. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +23 -0
  25. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +21 -0
  26. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +21 -0
  27. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +21 -0
  28. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +21 -0
  29. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +21 -0
  30. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +21 -0
  31. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +21 -0
  32. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +21 -0
  33. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +21 -0
  34. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +21 -0
  35. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +21 -0
  36. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +21 -0
  37. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +21 -0
  38. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +21 -0
  39. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +21 -0
  40. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +23 -0
  41. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +21 -0
  42. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +21 -0
  43. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +21 -0
  44. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +21 -0
  45. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +21 -0
  46. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +21 -0
  47. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +21 -0
  48. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +21 -0
  49. data/lib/stripe/object_types.rb +48 -0
  50. data/lib/stripe/request_signing_authenticator.rb +79 -0
  51. data/lib/stripe/resources/account.rb +653 -1
  52. data/lib/stripe/resources/account_notice.rb +123 -0
  53. data/lib/stripe/resources/account_session.rb +247 -1
  54. data/lib/stripe/resources/balance_settings.rb +101 -0
  55. data/lib/stripe/resources/billing/credit_balance_summary.rb +2 -0
  56. data/lib/stripe/resources/billing/credit_balance_transaction.rb +4 -0
  57. data/lib/stripe/resources/billing/credit_grant.rb +10 -0
  58. data/lib/stripe/resources/billing/meter_error_report.rb +59 -0
  59. data/lib/stripe/resources/billing_portal/session.rb +6 -0
  60. data/lib/stripe/resources/capital/financing_offer.rb +179 -0
  61. data/lib/stripe/resources/capital/financing_summary.rb +55 -0
  62. data/lib/stripe/resources/capital/financing_transaction.rb +114 -0
  63. data/lib/stripe/resources/card.rb +2 -0
  64. data/lib/stripe/resources/cash_balance.rb +2 -0
  65. data/lib/stripe/resources/charge.rb +1454 -0
  66. data/lib/stripe/resources/checkout/session.rb +260 -4
  67. data/lib/stripe/resources/confirmation_token.rb +234 -0
  68. data/lib/stripe/resources/coupon.rb +1 -1
  69. data/lib/stripe/resources/credit_note.rb +10 -0
  70. data/lib/stripe/resources/credit_note_line_item.rb +9 -0
  71. data/lib/stripe/resources/customer.rb +2 -0
  72. data/lib/stripe/resources/customer_balance_transaction.rb +2 -0
  73. data/lib/stripe/resources/customer_cash_balance_transaction.rb +2 -0
  74. data/lib/stripe/resources/customer_session.rb +6 -1
  75. data/lib/stripe/resources/discount.rb +2 -0
  76. data/lib/stripe/resources/event.rb +33 -0
  77. data/lib/stripe/resources/financial_connections/account.rb +20 -1
  78. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +27 -0
  79. data/lib/stripe/resources/financial_connections/institution.rb +90 -0
  80. data/lib/stripe/resources/financial_connections/session.rb +62 -2
  81. data/lib/stripe/resources/gift_cards/card.rb +208 -0
  82. data/lib/stripe/resources/gift_cards/transaction.rb +272 -0
  83. data/lib/stripe/resources/identity/verification_session.rb +10 -0
  84. data/lib/stripe/resources/invoice.rb +1176 -16
  85. data/lib/stripe/resources/invoice_item.rb +78 -2
  86. data/lib/stripe/resources/invoice_line_item.rb +55 -1
  87. data/lib/stripe/resources/invoice_payment.rb +2 -53
  88. data/lib/stripe/resources/issuing/cardholder.rb +2 -1
  89. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +602 -0
  90. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +82 -0
  91. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +86 -0
  92. data/lib/stripe/resources/issuing/settlement.rb +53 -0
  93. data/lib/stripe/resources/issuing/transaction.rb +6 -0
  94. data/lib/stripe/resources/line_item.rb +37 -0
  95. data/lib/stripe/resources/mandate.rb +24 -0
  96. data/lib/stripe/resources/margin.rb +115 -0
  97. data/lib/stripe/resources/order.rb +2859 -0
  98. data/lib/stripe/resources/payment_attempt_record.rb +1078 -0
  99. data/lib/stripe/resources/payment_intent.rb +5233 -431
  100. data/lib/stripe/resources/payment_method.rb +196 -1
  101. data/lib/stripe/resources/payment_method_configuration.rb +295 -0
  102. data/lib/stripe/resources/payment_record.rb +1607 -0
  103. data/lib/stripe/resources/payout.rb +6 -0
  104. data/lib/stripe/resources/price.rb +30 -0
  105. data/lib/stripe/resources/product.rb +59 -0
  106. data/lib/stripe/resources/promotion_code.rb +10 -0
  107. data/lib/stripe/resources/quote.rb +2042 -6
  108. data/lib/stripe/resources/quote_line.rb +274 -0
  109. data/lib/stripe/resources/quote_preview_invoice.rb +663 -0
  110. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +337 -0
  111. data/lib/stripe/resources/refund.rb +9 -0
  112. data/lib/stripe/resources/setup_attempt.rb +21 -0
  113. data/lib/stripe/resources/setup_intent.rb +596 -9
  114. data/lib/stripe/resources/source.rb +29 -0
  115. data/lib/stripe/resources/subscription.rb +292 -9
  116. data/lib/stripe/resources/subscription_item.rb +84 -3
  117. data/lib/stripe/resources/subscription_schedule.rb +1007 -10
  118. data/lib/stripe/resources/tax/association.rb +89 -0
  119. data/lib/stripe/resources/tax/form.rb +211 -0
  120. data/lib/stripe/resources/tax_id.rb +12 -2
  121. data/lib/stripe/resources/terminal/reader.rb +406 -0
  122. data/lib/stripe/resources/terminal/reader_collected_data.rb +31 -0
  123. data/lib/stripe/resources/treasury/financial_account.rb +22 -3
  124. data/lib/stripe/resources/treasury/financial_account_features.rb +2 -0
  125. data/lib/stripe/resources/treasury/outbound_transfer.rb +37 -0
  126. data/lib/stripe/resources/treasury/received_credit.rb +38 -1
  127. data/lib/stripe/resources/treasury/received_debit.rb +40 -1
  128. data/lib/stripe/resources/v2/core/account.rb +1715 -0
  129. data/lib/stripe/resources/v2/core/account_link.rb +54 -0
  130. data/lib/stripe/resources/v2/core/person.rb +272 -0
  131. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +72 -0
  132. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +37 -0
  133. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +18 -0
  134. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +20 -0
  135. data/lib/stripe/resources/v2/money_management/adjustment.rb +49 -0
  136. data/lib/stripe/resources/v2/money_management/financial_account.rb +56 -0
  137. data/lib/stripe/resources/v2/money_management/financial_address.rb +66 -0
  138. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +92 -0
  139. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +127 -0
  140. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +74 -0
  141. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +43 -0
  142. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +115 -0
  143. data/lib/stripe/resources/v2/money_management/payout_method.rb +73 -0
  144. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +47 -0
  145. data/lib/stripe/resources/v2/money_management/received_credit.rb +134 -0
  146. data/lib/stripe/resources/v2/money_management/received_debit.rb +106 -0
  147. data/lib/stripe/resources/v2/money_management/transaction.rb +76 -0
  148. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +66 -0
  149. data/lib/stripe/resources.rb +85 -0
  150. data/lib/stripe/services/account_notice_service.rb +101 -0
  151. data/lib/stripe/services/account_service.rb +562 -1
  152. data/lib/stripe/services/account_session_service.rb +217 -1
  153. data/lib/stripe/services/balance_settings_service.rb +96 -0
  154. data/lib/stripe/services/billing/credit_balance_summary_service.rb +4 -1
  155. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +4 -0
  156. data/lib/stripe/services/billing/credit_grant_service.rb +8 -0
  157. data/lib/stripe/services/billing_portal/session_service.rb +4 -0
  158. data/lib/stripe/services/capital/financing_offer_service.rb +112 -0
  159. data/lib/stripe/services/capital/financing_summary_service.rb +28 -0
  160. data/lib/stripe/services/capital/financing_transaction_service.rb +79 -0
  161. data/lib/stripe/services/capital_service.rb +15 -0
  162. data/lib/stripe/services/charge_service.rb +1334 -0
  163. data/lib/stripe/services/checkout/session_service.rb +172 -2
  164. data/lib/stripe/services/credit_note_service.rb +4 -0
  165. data/lib/stripe/services/customer_session_service.rb +4 -1
  166. data/lib/stripe/services/external_account_service.rb +206 -0
  167. data/{rbi/stripe/services/tax/transaction_line_item_service.rbi → lib/stripe/services/financial_connections/account_inferred_balance_service.rb} +21 -17
  168. data/lib/stripe/services/financial_connections/account_service.rb +7 -2
  169. data/{rbi/stripe/services/climate/supplier_service.rbi → lib/stripe/services/financial_connections/institution_service.rb} +36 -25
  170. data/lib/stripe/services/financial_connections/session_service.rb +34 -2
  171. data/lib/stripe/services/financial_connections_service.rb +2 -1
  172. data/lib/stripe/services/gift_cards/card_service.rb +170 -0
  173. data/lib/stripe/services/gift_cards/transaction_service.rb +209 -0
  174. data/lib/stripe/services/gift_cards_service.rb +14 -0
  175. data/lib/stripe/services/identity/verification_session_service.rb +8 -0
  176. data/lib/stripe/services/invoice_item_service.rb +74 -2
  177. data/lib/stripe/services/invoice_line_item_service.rb +33 -1
  178. data/lib/stripe/services/invoice_payment_service.rb +5 -33
  179. data/lib/stripe/services/invoice_service.rb +1088 -17
  180. data/lib/stripe/services/issuing/cardholder_service.rb +2 -1
  181. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +504 -0
  182. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +66 -0
  183. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +83 -0
  184. data/lib/stripe/services/issuing/transaction_service.rb +4 -0
  185. data/lib/stripe/services/issuing_service.rb +5 -1
  186. data/lib/stripe/services/margin_service.rb +119 -0
  187. data/{rbi/stripe/services/source_transaction_service.rbi → lib/stripe/services/order_line_item_service.rb} +20 -16
  188. data/lib/stripe/services/order_service.rb +2268 -0
  189. data/lib/stripe/services/payment_attempt_record_service.rb +49 -0
  190. data/lib/stripe/services/payment_intent_service.rb +4625 -252
  191. data/lib/stripe/services/payment_method_configuration_service.rb +210 -0
  192. data/lib/stripe/services/payment_method_service.rb +126 -1
  193. data/lib/stripe/services/payment_record_service.rb +542 -0
  194. data/lib/stripe/services/payout_service.rb +4 -0
  195. data/lib/stripe/services/price_service.rb +19 -0
  196. data/lib/stripe/services/product_service.rb +38 -0
  197. data/lib/stripe/services/promotion_code_service.rb +8 -0
  198. data/{rbi/stripe/services/quote_line_item_service.rbi → lib/stripe/services/quote_line_service.rb} +20 -16
  199. data/{rbi/stripe/services/credit_note_line_item_service.rbi → lib/stripe/services/quote_preview_invoice_service.rb} +20 -16
  200. data/{rbi/stripe/services/payment_link_line_item_service.rbi → lib/stripe/services/quote_preview_subscription_schedule_service.rb} +20 -16
  201. data/lib/stripe/services/quote_service.rb +1726 -7
  202. data/lib/stripe/services/setup_intent_service.rb +556 -9
  203. data/lib/stripe/services/subscription_item_service.rb +75 -3
  204. data/lib/stripe/services/subscription_schedule_service.rb +911 -10
  205. data/lib/stripe/services/subscription_service.rb +253 -9
  206. data/lib/stripe/services/tax/association_service.rb +31 -0
  207. data/lib/stripe/services/tax/form_service.rb +100 -0
  208. data/lib/stripe/services/tax_id_service.rb +8 -2
  209. data/lib/stripe/services/tax_service.rb +3 -1
  210. data/lib/stripe/services/terminal/reader_collected_data_service.rb +28 -0
  211. data/lib/stripe/services/terminal/reader_service.rb +180 -0
  212. data/lib/stripe/services/terminal_service.rb +2 -1
  213. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +148 -0
  214. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +43 -0
  215. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +25 -1
  216. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +25 -1
  217. data/lib/stripe/services/treasury/financial_account_features_service.rb +4 -1
  218. data/lib/stripe/services/treasury/financial_account_service.rb +16 -2
  219. data/lib/stripe/services/treasury/outbound_transfer_service.rb +24 -0
  220. data/lib/stripe/services/v1_services.rb +10 -2
  221. data/lib/stripe/services/v2/core/account_link_service.rb +76 -0
  222. data/lib/stripe/services/v2/core/account_service.rb +4130 -0
  223. data/lib/stripe/services/v2/core/accounts/person_service.rb +1040 -0
  224. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +135 -0
  225. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +109 -0
  226. data/lib/stripe/services/v2/core/vault_service.rb +18 -0
  227. data/lib/stripe/services/v2/core_service.rb +4 -1
  228. data/lib/stripe/services/v2/money_management/adjustment_service.rb +75 -0
  229. data/lib/stripe/services/v2/money_management/financial_account_service.rb +44 -0
  230. data/lib/stripe/services/v2/money_management/financial_address_service.rb +81 -0
  231. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +126 -0
  232. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +80 -0
  233. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +202 -0
  234. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +237 -0
  235. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +174 -0
  236. data/lib/stripe/services/v2/money_management/payout_method_service.rb +95 -0
  237. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +32 -0
  238. data/lib/stripe/services/v2/money_management/received_credit_service.rb +71 -0
  239. data/lib/stripe/services/v2/money_management/received_debit_service.rb +44 -0
  240. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +70 -0
  241. data/lib/stripe/services/v2/money_management/transaction_service.rb +74 -0
  242. data/lib/stripe/services/v2/money_management_service.rb +31 -0
  243. data/lib/stripe/services/v2/test_helper_service.rb +15 -0
  244. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +50 -0
  245. data/lib/stripe/services/v2_services.rb +4 -2
  246. data/lib/stripe/services.rb +49 -0
  247. data/lib/stripe/stripe_configuration.rb +3 -1
  248. data/lib/stripe/util.rb +7 -1
  249. data/lib/stripe/version.rb +1 -1
  250. data/lib/stripe.rb +55 -0
  251. data/rbi/stripe.rbi +189274 -0
  252. data/stripe.gemspec +4 -1
  253. metadata +140 -324
  254. data/rbi/stripe/resources/account.rbi +0 -4840
  255. data/rbi/stripe/resources/account_link.rbi +0 -74
  256. data/rbi/stripe/resources/account_session.rbi +0 -894
  257. data/rbi/stripe/resources/apple_pay_domain.rbi +0 -90
  258. data/rbi/stripe/resources/application.rbi +0 -20
  259. data/rbi/stripe/resources/application_fee.rbi +0 -118
  260. data/rbi/stripe/resources/application_fee_refund.rbi +0 -37
  261. data/rbi/stripe/resources/apps/secret.rbi +0 -195
  262. data/rbi/stripe/resources/balance.rbi +0 -180
  263. data/rbi/stripe/resources/balance_transaction.rbi +0 -144
  264. data/rbi/stripe/resources/bank_account.rbi +0 -127
  265. data/rbi/stripe/resources/billing/alert.rbi +0 -201
  266. data/rbi/stripe/resources/billing/alert_triggered.rbi +0 -28
  267. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +0 -63
  268. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +0 -147
  269. data/rbi/stripe/resources/billing/credit_grant.rbi +0 -291
  270. data/rbi/stripe/resources/billing/meter.rbi +0 -226
  271. data/rbi/stripe/resources/billing/meter_event.rbi +0 -64
  272. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +0 -64
  273. data/rbi/stripe/resources/billing/meter_event_summary.rbi +0 -35
  274. data/rbi/stripe/resources/billing_portal/configuration.rbi +0 -645
  275. data/rbi/stripe/resources/billing_portal/session.rbi +0 -345
  276. data/rbi/stripe/resources/capability.rbi +0 -125
  277. data/rbi/stripe/resources/card.rbi +0 -125
  278. data/rbi/stripe/resources/cash_balance.rbi +0 -32
  279. data/rbi/stripe/resources/charge.rbi +0 -2054
  280. data/rbi/stripe/resources/checkout/session.rbi +0 -3951
  281. data/rbi/stripe/resources/climate/order.rbi +0 -245
  282. data/rbi/stripe/resources/climate/product.rbi +0 -75
  283. data/rbi/stripe/resources/climate/supplier.rbi +0 -72
  284. data/rbi/stripe/resources/confirmation_token.rbi +0 -1793
  285. data/rbi/stripe/resources/connect_collection_transfer.rbi +0 -26
  286. data/rbi/stripe/resources/country_spec.rbi +0 -85
  287. data/rbi/stripe/resources/coupon.rbi +0 -252
  288. data/rbi/stripe/resources/credit_note.rbi +0 -747
  289. data/rbi/stripe/resources/credit_note_line_item.rbi +0 -101
  290. data/rbi/stripe/resources/customer.rbi +0 -1009
  291. data/rbi/stripe/resources/customer_balance_transaction.rbi +0 -56
  292. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +0 -151
  293. data/rbi/stripe/resources/customer_session.rbi +0 -200
  294. data/rbi/stripe/resources/discount.rbi +0 -53
  295. data/rbi/stripe/resources/dispute.rbi +0 -761
  296. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +0 -58
  297. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +0 -23
  298. data/rbi/stripe/resources/entitlements/feature.rbi +0 -117
  299. data/rbi/stripe/resources/ephemeral_key.rbi +0 -44
  300. data/rbi/stripe/resources/event.rbi +0 -146
  301. data/rbi/stripe/resources/exchange_rate.rbi +0 -66
  302. data/rbi/stripe/resources/file.rbi +0 -143
  303. data/rbi/stripe/resources/file_link.rbi +0 -141
  304. data/rbi/stripe/resources/financial_connections/account.rbi +0 -339
  305. data/rbi/stripe/resources/financial_connections/account_owner.rbi +0 -35
  306. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +0 -23
  307. data/rbi/stripe/resources/financial_connections/session.rbi +0 -123
  308. data/rbi/stripe/resources/financial_connections/transaction.rbi +0 -124
  309. data/rbi/stripe/resources/forwarding/request.rbi +0 -216
  310. data/rbi/stripe/resources/funding_instructions.rbi +0 -437
  311. data/rbi/stripe/resources/identity/verification_report.rbi +0 -351
  312. data/rbi/stripe/resources/identity/verification_session.rbi +0 -517
  313. data/rbi/stripe/resources/invoice.rbi +0 -3733
  314. data/rbi/stripe/resources/invoice_item.rbi +0 -475
  315. data/rbi/stripe/resources/invoice_line_item.rbi +0 -432
  316. data/rbi/stripe/resources/invoice_payment.rbi +0 -114
  317. data/rbi/stripe/resources/invoice_rendering_template.rbi +0 -104
  318. data/rbi/stripe/resources/issuing/authorization.rbi +0 -1283
  319. data/rbi/stripe/resources/issuing/card.rbi +0 -741
  320. data/rbi/stripe/resources/issuing/cardholder.rbi +0 -744
  321. data/rbi/stripe/resources/issuing/dispute.rbi +0 -913
  322. data/rbi/stripe/resources/issuing/personalization_design.rbi +0 -338
  323. data/rbi/stripe/resources/issuing/physical_bundle.rbi +0 -79
  324. data/rbi/stripe/resources/issuing/token.rbi +0 -226
  325. data/rbi/stripe/resources/issuing/transaction.rbi +0 -1061
  326. data/rbi/stripe/resources/line_item.rbi +0 -72
  327. data/rbi/stripe/resources/login_link.rbi +0 -18
  328. data/rbi/stripe/resources/mandate.rbi +0 -187
  329. data/rbi/stripe/resources/payment_intent.rbi +0 -9731
  330. data/rbi/stripe/resources/payment_link.rbi +0 -1801
  331. data/rbi/stripe/resources/payment_method.rbi +0 -1822
  332. data/rbi/stripe/resources/payment_method_configuration.rbi +0 -3154
  333. data/rbi/stripe/resources/payment_method_domain.rbi +0 -212
  334. data/rbi/stripe/resources/payout.rbi +0 -300
  335. data/rbi/stripe/resources/person.rbi +0 -371
  336. data/rbi/stripe/resources/plan.rbi +0 -373
  337. data/rbi/stripe/resources/price.rbi +0 -694
  338. data/rbi/stripe/resources/product.rbi +0 -557
  339. data/rbi/stripe/resources/product_feature.rbi +0 -26
  340. data/rbi/stripe/resources/promotion_code.rbi +0 -261
  341. data/rbi/stripe/resources/quote.rbi +0 -1123
  342. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +0 -98
  343. data/rbi/stripe/resources/radar/value_list.rbi +0 -170
  344. data/rbi/stripe/resources/radar/value_list_item.rbi +0 -131
  345. data/rbi/stripe/resources/refund.rbi +0 -516
  346. data/rbi/stripe/resources/reporting/report_run.rbi +0 -191
  347. data/rbi/stripe/resources/reporting/report_type.rbi +0 -57
  348. data/rbi/stripe/resources/reserve_transaction.rbi +0 -23
  349. data/rbi/stripe/resources/reversal.rbi +0 -51
  350. data/rbi/stripe/resources/review.rbi +0 -154
  351. data/rbi/stripe/resources/setup_attempt.rbi +0 -477
  352. data/rbi/stripe/resources/setup_intent.rbi +0 -3860
  353. data/rbi/stripe/resources/shipping_rate.rbi +0 -305
  354. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +0 -75
  355. data/rbi/stripe/resources/source.rbi +0 -1496
  356. data/rbi/stripe/resources/source_mandate_notification.rbi +0 -77
  357. data/rbi/stripe/resources/source_transaction.rbi +0 -127
  358. data/rbi/stripe/resources/subscription.rbi +0 -1964
  359. data/rbi/stripe/resources/subscription_item.rbi +0 -370
  360. data/rbi/stripe/resources/subscription_schedule.rbi +0 -1495
  361. data/rbi/stripe/resources/tax/calculation.rbi +0 -474
  362. data/rbi/stripe/resources/tax/calculation_line_item.rbi +0 -88
  363. data/rbi/stripe/resources/tax/registration.rbi +0 -2485
  364. data/rbi/stripe/resources/tax/settings.rbi +0 -141
  365. data/rbi/stripe/resources/tax/transaction.rbi +0 -351
  366. data/rbi/stripe/resources/tax/transaction_line_item.rbi +0 -54
  367. data/rbi/stripe/resources/tax_code.rbi +0 -44
  368. data/rbi/stripe/resources/tax_deducted_at_source.rbi +0 -23
  369. data/rbi/stripe/resources/tax_id.rbi +0 -167
  370. data/rbi/stripe/resources/tax_rate.rbi +0 -239
  371. data/rbi/stripe/resources/terminal/configuration.rbi +0 -1388
  372. data/rbi/stripe/resources/terminal/connection_token.rbi +0 -37
  373. data/rbi/stripe/resources/terminal/location.rbi +0 -224
  374. data/rbi/stripe/resources/terminal/reader.rbi +0 -587
  375. data/rbi/stripe/resources/test_helpers/test_clock.rbi +0 -134
  376. data/rbi/stripe/resources/token.rbi +0 -1217
  377. data/rbi/stripe/resources/topup.rbi +0 -222
  378. data/rbi/stripe/resources/transfer.rbi +0 -199
  379. data/rbi/stripe/resources/treasury/credit_reversal.rbi +0 -119
  380. data/rbi/stripe/resources/treasury/debit_reversal.rbi +0 -131
  381. data/rbi/stripe/resources/treasury/financial_account.rbi +0 -865
  382. data/rbi/stripe/resources/treasury/financial_account_features.rbi +0 -260
  383. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +0 -295
  384. data/rbi/stripe/resources/treasury/outbound_payment.rbi +0 -592
  385. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +0 -431
  386. data/rbi/stripe/resources/treasury/received_credit.rbi +0 -302
  387. data/rbi/stripe/resources/treasury/received_debit.rbi +0 -256
  388. data/rbi/stripe/resources/treasury/transaction.rbi +0 -215
  389. data/rbi/stripe/resources/treasury/transaction_entry.rbi +0 -192
  390. data/rbi/stripe/resources/v2/amount.rbi +0 -14
  391. data/rbi/stripe/resources/v2/billing/meter_event.rbi +0 -37
  392. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +0 -41
  393. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +0 -31
  394. data/rbi/stripe/resources/v2/event.rbi +0 -48
  395. data/rbi/stripe/resources/v2/event_destination.rbi +0 -91
  396. data/rbi/stripe/resources/webhook_endpoint.rbi +0 -170
  397. data/rbi/stripe/services/account_capability_service.rbi +0 -51
  398. data/rbi/stripe/services/account_external_account_service.rbi +0 -306
  399. data/rbi/stripe/services/account_link_service.rbi +0 -58
  400. data/rbi/stripe/services/account_login_link_service.rbi +0 -22
  401. data/rbi/stripe/services/account_person_service.rbi +0 -923
  402. data/rbi/stripe/services/account_service.rbi +0 -4143
  403. data/rbi/stripe/services/account_session_service.rbi +0 -572
  404. data/rbi/stripe/services/apple_pay_domain_service.rbi +0 -78
  405. data/rbi/stripe/services/application_fee_refund_service.rbi +0 -93
  406. data/rbi/stripe/services/application_fee_service.rbi +0 -78
  407. data/rbi/stripe/services/apps/secret_service.rbi +0 -151
  408. data/rbi/stripe/services/apps_service.rbi +0 -9
  409. data/rbi/stripe/services/balance_service.rbi +0 -21
  410. data/rbi/stripe/services/balance_transaction_service.rbi +0 -93
  411. data/rbi/stripe/services/billing/alert_service.rbi +0 -152
  412. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +0 -68
  413. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +0 -59
  414. data/rbi/stripe/services/billing/credit_grant_service.rbi +0 -211
  415. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +0 -42
  416. data/rbi/stripe/services/billing/meter_event_service.rbi +0 -42
  417. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +0 -54
  418. data/rbi/stripe/services/billing/meter_service.rbi +0 -163
  419. data/rbi/stripe/services/billing_portal/configuration_service.rbi +0 -511
  420. data/rbi/stripe/services/billing_portal/session_service.rbi +0 -204
  421. data/rbi/stripe/services/billing_portal_service.rbi +0 -10
  422. data/rbi/stripe/services/billing_service.rbi +0 -15
  423. data/rbi/stripe/services/charge_service.rbi +0 -448
  424. data/rbi/stripe/services/checkout/session_line_item_service.rbi +0 -33
  425. data/rbi/stripe/services/checkout/session_service.rbi +0 -2585
  426. data/rbi/stripe/services/checkout_service.rbi +0 -9
  427. data/rbi/stripe/services/climate/order_service.rbi +0 -142
  428. data/rbi/stripe/services/climate/product_service.rbi +0 -46
  429. data/rbi/stripe/services/climate_service.rbi +0 -11
  430. data/rbi/stripe/services/confirmation_token_service.rbi +0 -20
  431. data/rbi/stripe/services/country_spec_service.rbi +0 -44
  432. data/rbi/stripe/services/coupon_service.rbi +0 -196
  433. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +0 -167
  434. data/rbi/stripe/services/credit_note_service.rbi +0 -416
  435. data/rbi/stripe/services/customer_balance_transaction_service.rbi +0 -92
  436. data/rbi/stripe/services/customer_cash_balance_service.rbi +0 -45
  437. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +0 -44
  438. data/rbi/stripe/services/customer_funding_instructions_service.rbi +0 -59
  439. data/rbi/stripe/services/customer_payment_method_service.rbi +0 -57
  440. data/rbi/stripe/services/customer_payment_source_service.rbi +0 -232
  441. data/rbi/stripe/services/customer_service.rbi +0 -651
  442. data/rbi/stripe/services/customer_session_service.rbi +0 -116
  443. data/rbi/stripe/services/customer_tax_id_service.rbi +0 -72
  444. data/rbi/stripe/services/dispute_service.rbi +0 -424
  445. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +0 -55
  446. data/rbi/stripe/services/entitlements/feature_service.rbi +0 -107
  447. data/rbi/stripe/services/entitlements_service.rbi +0 -10
  448. data/rbi/stripe/services/ephemeral_key_service.rbi +0 -53
  449. data/rbi/stripe/services/event_service.rbi +0 -83
  450. data/rbi/stripe/services/exchange_rate_service.rbi +0 -44
  451. data/rbi/stripe/services/file_link_service.rbi +0 -124
  452. data/rbi/stripe/services/file_service.rbi +0 -116
  453. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +0 -42
  454. data/rbi/stripe/services/financial_connections/account_service.rbi +0 -133
  455. data/rbi/stripe/services/financial_connections/session_service.rbi +0 -88
  456. data/rbi/stripe/services/financial_connections/transaction_service.rbi +0 -92
  457. data/rbi/stripe/services/financial_connections_service.rbi +0 -11
  458. data/rbi/stripe/services/forwarding/request_service.rbi +0 -134
  459. data/rbi/stripe/services/forwarding_service.rbi +0 -9
  460. data/rbi/stripe/services/identity/verification_report_service.rbi +0 -87
  461. data/rbi/stripe/services/identity/verification_session_service.rbi +0 -323
  462. data/rbi/stripe/services/identity_service.rbi +0 -10
  463. data/rbi/stripe/services/invoice_item_service.rbi +0 -368
  464. data/rbi/stripe/services/invoice_line_item_service.rbi +0 -259
  465. data/rbi/stripe/services/invoice_payment_service.rbi +0 -71
  466. data/rbi/stripe/services/invoice_rendering_template_service.rbi +0 -82
  467. data/rbi/stripe/services/invoice_service.rbi +0 -2920
  468. data/rbi/stripe/services/issuing/authorization_service.rbi +0 -146
  469. data/rbi/stripe/services/issuing/card_service.rbi +0 -495
  470. data/rbi/stripe/services/issuing/cardholder_service.rbi +0 -587
  471. data/rbi/stripe/services/issuing/dispute_service.rbi +0 -707
  472. data/rbi/stripe/services/issuing/personalization_design_service.rbi +0 -243
  473. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +0 -59
  474. data/rbi/stripe/services/issuing/token_service.rbi +0 -99
  475. data/rbi/stripe/services/issuing/transaction_service.rbi +0 -105
  476. data/rbi/stripe/services/issuing_service.rbi +0 -16
  477. data/rbi/stripe/services/mandate_service.rbi +0 -20
  478. data/rbi/stripe/services/payment_intent_service.rbi +0 -7759
  479. data/rbi/stripe/services/payment_link_service.rbi +0 -1352
  480. data/rbi/stripe/services/payment_method_configuration_service.rbi +0 -2211
  481. data/rbi/stripe/services/payment_method_domain_service.rbi +0 -112
  482. data/rbi/stripe/services/payment_method_service.rbi +0 -840
  483. data/rbi/stripe/services/payout_service.rbi +0 -205
  484. data/rbi/stripe/services/plan_service.rbi +0 -284
  485. data/rbi/stripe/services/price_service.rbi +0 -546
  486. data/rbi/stripe/services/product_feature_service.rbi +0 -69
  487. data/rbi/stripe/services/product_service.rbi +0 -479
  488. data/rbi/stripe/services/promotion_code_service.rbi +0 -214
  489. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +0 -31
  490. data/rbi/stripe/services/quote_service.rbi +0 -686
  491. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +0 -85
  492. data/rbi/stripe/services/radar/value_list_item_service.rbi +0 -111
  493. data/rbi/stripe/services/radar/value_list_service.rbi +0 -143
  494. data/rbi/stripe/services/radar_service.rbi +0 -11
  495. data/rbi/stripe/services/refund_service.rbi +0 -185
  496. data/rbi/stripe/services/reporting/report_run_service.rbi +0 -135
  497. data/rbi/stripe/services/reporting/report_type_service.rbi +0 -35
  498. data/rbi/stripe/services/reporting_service.rbi +0 -10
  499. data/rbi/stripe/services/review_service.rbi +0 -84
  500. data/rbi/stripe/services/setup_attempt_service.rbi +0 -65
  501. data/rbi/stripe/services/setup_intent_service.rbi +0 -3596
  502. data/rbi/stripe/services/shipping_rate_service.rbi +0 -241
  503. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +0 -46
  504. data/rbi/stripe/services/sigma_service.rbi +0 -9
  505. data/rbi/stripe/services/source_service.rbi +0 -663
  506. data/rbi/stripe/services/subscription_item_service.rbi +0 -324
  507. data/rbi/stripe/services/subscription_schedule_service.rbi +0 -1192
  508. data/rbi/stripe/services/subscription_service.rbi +0 -1596
  509. data/rbi/stripe/services/tax/calculation_line_item_service.rbi +0 -33
  510. data/rbi/stripe/services/tax/calculation_service.rbi +0 -230
  511. data/rbi/stripe/services/tax/registration_service.rbi +0 -1689
  512. data/rbi/stripe/services/tax/settings_service.rbi +0 -93
  513. data/rbi/stripe/services/tax/transaction_service.rbi +0 -146
  514. data/rbi/stripe/services/tax_code_service.rbi +0 -44
  515. data/rbi/stripe/services/tax_id_service.rbi +0 -112
  516. data/rbi/stripe/services/tax_rate_service.rbi +0 -185
  517. data/rbi/stripe/services/tax_service.rbi +0 -12
  518. data/rbi/stripe/services/terminal/configuration_service.rbi +0 -1120
  519. data/rbi/stripe/services/terminal/connection_token_service.rbi +0 -25
  520. data/rbi/stripe/services/terminal/location_service.rbi +0 -184
  521. data/rbi/stripe/services/terminal/reader_service.rbi +0 -344
  522. data/rbi/stripe/services/terminal_service.rbi +0 -12
  523. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +0 -746
  524. data/rbi/stripe/services/test_helpers/customer_service.rbi +0 -33
  525. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +0 -848
  526. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +0 -76
  527. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +0 -69
  528. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +0 -711
  529. data/rbi/stripe/services/test_helpers/issuing_service.rbi +0 -14
  530. data/rbi/stripe/services/test_helpers/refund_service.rbi +0 -22
  531. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +0 -62
  532. data/rbi/stripe/services/test_helpers/terminal_service.rbi +0 -11
  533. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +0 -92
  534. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +0 -64
  535. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +0 -125
  536. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +0 -125
  537. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +0 -87
  538. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +0 -87
  539. data/rbi/stripe/services/test_helpers/treasury_service.rbi +0 -15
  540. data/rbi/stripe/services/test_helpers_service.rbi +0 -15
  541. data/rbi/stripe/services/token_service.rbi +0 -1189
  542. data/rbi/stripe/services/topup_service.rbi +0 -176
  543. data/rbi/stripe/services/transfer_reversal_service.rbi +0 -101
  544. data/rbi/stripe/services/transfer_service.rbi +0 -152
  545. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +0 -84
  546. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +0 -88
  547. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +0 -198
  548. data/rbi/stripe/services/treasury/financial_account_service.rbi +0 -562
  549. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +0 -117
  550. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +0 -304
  551. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +0 -157
  552. data/rbi/stripe/services/treasury/received_credit_service.rbi +0 -72
  553. data/rbi/stripe/services/treasury/received_debit_service.rbi +0 -59
  554. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +0 -111
  555. data/rbi/stripe/services/treasury/transaction_service.rbi +0 -122
  556. data/rbi/stripe/services/treasury_service.rbi +0 -18
  557. data/rbi/stripe/services/v1_services.rbi +0 -77
  558. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +0 -39
  559. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +0 -42
  560. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +0 -20
  561. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +0 -55
  562. data/rbi/stripe/services/v2/billing_service.rbi +0 -14
  563. data/rbi/stripe/services/v2/core/event_destination_service.rbi +0 -200
  564. data/rbi/stripe/services/v2/core/event_service.rbi +0 -36
  565. data/rbi/stripe/services/v2/core_service.rbi +0 -12
  566. data/rbi/stripe/services/v2_services.rbi +0 -10
  567. data/rbi/stripe/services/webhook_endpoint_service.rbi +0 -131
@@ -48,6 +48,26 @@ module Stripe
48
48
  end
49
49
 
50
50
  nested_resource_class_methods :line, operations: %i[list]
51
+ nested_resource_class_methods :payment, operations: %i[retrieve list]
52
+
53
+ class AmountsDue < Stripe::StripeObject
54
+ # Incremental amount due for this payment in cents (or local equivalent).
55
+ attr_reader :amount
56
+ # The amount in cents (or local equivalent) that was paid for this payment.
57
+ attr_reader :amount_paid
58
+ # The difference between the payment’s amount and amount_paid, in cents (or local equivalent).
59
+ attr_reader :amount_remaining
60
+ # Number of days from when invoice is finalized until the payment is due.
61
+ attr_reader :days_until_due
62
+ # An arbitrary string attached to the object. Often useful for displaying to users.
63
+ attr_reader :description
64
+ # Date on which a payment plan’s payment is due.
65
+ attr_reader :due_date
66
+ # Timestamp when the payment was paid.
67
+ attr_reader :paid_at
68
+ # The status of the payment, one of `open`, `paid`, or `past_due`
69
+ attr_reader :status
70
+ end
51
71
 
52
72
  class AutomaticTax < Stripe::StripeObject
53
73
  class Liability < Stripe::StripeObject
@@ -62,6 +82,8 @@ module Stripe
62
82
  attr_reader :enabled
63
83
  # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.
64
84
  attr_reader :liability
85
+ # The tax provider powering automatic tax.
86
+ attr_reader :provider
65
87
  # The status of the most recent automated tax calculation for this invoice.
66
88
  attr_reader :status
67
89
  end
@@ -219,9 +241,17 @@ module Stripe
219
241
  end
220
242
 
221
243
  class SubscriptionDetails < Stripe::StripeObject
244
+ class PauseCollection < Stripe::StripeObject
245
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
246
+ attr_reader :behavior
247
+ # The time after which the subscription will resume collecting payments.
248
+ attr_reader :resumes_at
249
+ end
222
250
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) defined as subscription metadata when an invoice is created. Becomes an immutable snapshot of the subscription metadata at the time of invoice finalization.
223
251
  # *Note: This attribute is populated only for invoices created on or after June 29, 2023.*
224
252
  attr_reader :metadata
253
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
254
+ attr_reader :pause_collection
225
255
  # The subscription that generated this invoice
226
256
  attr_reader :subscription
227
257
  # Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
@@ -281,6 +311,7 @@ module Stripe
281
311
  attr_reader :funding_type
282
312
  end
283
313
 
314
+ class IdBankTransfer < Stripe::StripeObject; end
284
315
  class Konbini < Stripe::StripeObject; end
285
316
  class SepaDebit < Stripe::StripeObject; end
286
317
 
@@ -289,6 +320,8 @@ module Stripe
289
320
  class Filters < Stripe::StripeObject
290
321
  # The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.
291
322
  attr_reader :account_subcategories
323
+ # The institution to use to filter for possible accounts to link.
324
+ attr_reader :institution
292
325
  end
293
326
  # Attribute for field filters
294
327
  attr_reader :filters
@@ -310,6 +343,8 @@ module Stripe
310
343
  attr_reader :card
311
344
  # If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent.
312
345
  attr_reader :customer_balance
346
+ # If paying by `id_bank_transfer`, this sub-hash contains details about the Indonesia bank transfer payment method options to pass to the invoice’s PaymentIntent.
347
+ attr_reader :id_bank_transfer
313
348
  # If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent.
314
349
  attr_reader :konbini
315
350
  # If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice’s PaymentIntent.
@@ -423,6 +458,13 @@ module Stripe
423
458
  attr_reader :discount
424
459
  end
425
460
 
461
+ class TotalMarginAmount < Stripe::StripeObject
462
+ # The amount, in cents (or local equivalent), of the reduction in line item amount.
463
+ attr_reader :amount
464
+ # The margin that was applied to get this margin amount.
465
+ attr_reader :margin
466
+ end
467
+
426
468
  class TotalPretaxCreditAmount < Stripe::StripeObject
427
469
  # The amount, in cents (or local equivalent), of the pretax credit amount.
428
470
  attr_reader :amount
@@ -430,6 +472,8 @@ module Stripe
430
472
  attr_reader :credit_balance_transaction
431
473
  # The discount that was applied to get this pretax credit amount.
432
474
  attr_reader :discount
475
+ # The margin that was applied to get this pretax credit amount.
476
+ attr_reader :margin
433
477
  # Type of the pretax credit amount referenced.
434
478
  attr_reader :type
435
479
  end
@@ -457,6 +501,24 @@ module Stripe
457
501
  end
458
502
 
459
503
  class UpdateParams < Stripe::RequestParams
504
+ class AmountsDue < Stripe::RequestParams
505
+ # The amount in cents (or local equivalent).
506
+ attr_accessor :amount
507
+ # Number of days from when invoice is finalized until the payment is due.
508
+ attr_accessor :days_until_due
509
+ # An arbitrary string attached to the object. Often useful for displaying to users.
510
+ attr_accessor :description
511
+ # Date on which a payment plan’s payment is due.
512
+ attr_accessor :due_date
513
+
514
+ def initialize(amount: nil, days_until_due: nil, description: nil, due_date: nil)
515
+ @amount = amount
516
+ @days_until_due = days_until_due
517
+ @description = description
518
+ @due_date = due_date
519
+ end
520
+ end
521
+
460
522
  class AutomaticTax < Stripe::RequestParams
461
523
  class Liability < Stripe::RequestParams
462
524
  # The connected account being referenced when `type` is `account`.
@@ -493,16 +555,44 @@ module Stripe
493
555
  end
494
556
 
495
557
  class Discount < Stripe::RequestParams
558
+ class DiscountEnd < Stripe::RequestParams
559
+ class Duration < Stripe::RequestParams
560
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
561
+ attr_accessor :interval
562
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
563
+ attr_accessor :interval_count
564
+
565
+ def initialize(interval: nil, interval_count: nil)
566
+ @interval = interval
567
+ @interval_count = interval_count
568
+ end
569
+ end
570
+ # Time span for the redeemed discount.
571
+ attr_accessor :duration
572
+ # A precise Unix timestamp for the discount to end. Must be in the future.
573
+ attr_accessor :timestamp
574
+ # The type of calculation made to determine when the discount ends.
575
+ attr_accessor :type
576
+
577
+ def initialize(duration: nil, timestamp: nil, type: nil)
578
+ @duration = duration
579
+ @timestamp = timestamp
580
+ @type = type
581
+ end
582
+ end
496
583
  # ID of the coupon to create a new discount for.
497
584
  attr_accessor :coupon
498
585
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
499
586
  attr_accessor :discount
587
+ # Details to determine how long the discount should be applied for.
588
+ attr_accessor :discount_end
500
589
  # ID of the promotion code to create a new discount for.
501
590
  attr_accessor :promotion_code
502
591
 
503
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
592
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
504
593
  @coupon = coupon
505
594
  @discount = discount
595
+ @discount_end = discount_end
506
596
  @promotion_code = promotion_code
507
597
  end
508
598
  end
@@ -622,6 +712,9 @@ module Stripe
622
712
  end
623
713
  end
624
714
 
715
+ class IdBankTransfer < Stripe::RequestParams
716
+ end
717
+
625
718
  class Konbini < Stripe::RequestParams
626
719
  end
627
720
 
@@ -633,9 +726,12 @@ module Stripe
633
726
  class Filters < Stripe::RequestParams
634
727
  # The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
635
728
  attr_accessor :account_subcategories
729
+ # ID of the institution to use to filter for selectable accounts.
730
+ attr_accessor :institution
636
731
 
637
- def initialize(account_subcategories: nil)
732
+ def initialize(account_subcategories: nil, institution: nil)
638
733
  @account_subcategories = account_subcategories
734
+ @institution = institution
639
735
  end
640
736
  end
641
737
  # Provide filters for the linked accounts that the customer can select for the payment method.
@@ -669,6 +765,8 @@ module Stripe
669
765
  attr_accessor :card
670
766
  # If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent.
671
767
  attr_accessor :customer_balance
768
+ # If paying by `id_bank_transfer`, this sub-hash contains details about the Indonesia bank transfer payment method options to pass to the invoice’s PaymentIntent.
769
+ attr_accessor :id_bank_transfer
672
770
  # If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent.
673
771
  attr_accessor :konbini
674
772
  # If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice’s PaymentIntent.
@@ -681,6 +779,7 @@ module Stripe
681
779
  bancontact: nil,
682
780
  card: nil,
683
781
  customer_balance: nil,
782
+ id_bank_transfer: nil,
684
783
  konbini: nil,
685
784
  sepa_debit: nil,
686
785
  us_bank_account: nil
@@ -689,6 +788,7 @@ module Stripe
689
788
  @bancontact = bancontact
690
789
  @card = card
691
790
  @customer_balance = customer_balance
791
+ @id_bank_transfer = id_bank_transfer
692
792
  @konbini = konbini
693
793
  @sepa_debit = sepa_debit
694
794
  @us_bank_account = us_bank_account
@@ -900,6 +1000,8 @@ module Stripe
900
1000
  end
901
1001
  # The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
902
1002
  attr_accessor :account_tax_ids
1003
+ # List of expected payments and corresponding due dates. Valid only for invoices where `collection_method=send_invoice`.
1004
+ attr_accessor :amounts_due
903
1005
  # A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees).
904
1006
  attr_accessor :application_fee_amount
905
1007
  # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice.
@@ -914,6 +1016,8 @@ module Stripe
914
1016
  attr_accessor :custom_fields
915
1017
  # The number of days from which the invoice is created until it is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices.
916
1018
  attr_accessor :days_until_due
1019
+ # The ids of the margins to apply to the invoice. Can be overridden by line item `margins`.
1020
+ attr_accessor :default_margins
917
1021
  # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
918
1022
  attr_accessor :default_payment_method
919
1023
  # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
@@ -955,6 +1059,7 @@ module Stripe
955
1059
 
956
1060
  def initialize(
957
1061
  account_tax_ids: nil,
1062
+ amounts_due: nil,
958
1063
  application_fee_amount: nil,
959
1064
  auto_advance: nil,
960
1065
  automatic_tax: nil,
@@ -962,6 +1067,7 @@ module Stripe
962
1067
  collection_method: nil,
963
1068
  custom_fields: nil,
964
1069
  days_until_due: nil,
1070
+ default_margins: nil,
965
1071
  default_payment_method: nil,
966
1072
  default_source: nil,
967
1073
  default_tax_rates: nil,
@@ -983,6 +1089,7 @@ module Stripe
983
1089
  transfer_data: nil
984
1090
  )
985
1091
  @account_tax_ids = account_tax_ids
1092
+ @amounts_due = amounts_due
986
1093
  @application_fee_amount = application_fee_amount
987
1094
  @auto_advance = auto_advance
988
1095
  @automatic_tax = automatic_tax
@@ -990,6 +1097,7 @@ module Stripe
990
1097
  @collection_method = collection_method
991
1098
  @custom_fields = custom_fields
992
1099
  @days_until_due = days_until_due
1100
+ @default_margins = default_margins
993
1101
  @default_payment_method = default_payment_method
994
1102
  @default_source = default_source
995
1103
  @default_tax_rates = default_tax_rates
@@ -1054,6 +1162,8 @@ module Stripe
1054
1162
  attr_accessor :created
1055
1163
  # Only return invoices for the customer specified by this customer ID.
1056
1164
  attr_accessor :customer
1165
+ # Attribute for param field customer_account
1166
+ attr_accessor :customer_account
1057
1167
  # Attribute for param field due_date
1058
1168
  attr_accessor :due_date
1059
1169
  # 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.
@@ -1073,6 +1183,7 @@ module Stripe
1073
1183
  collection_method: nil,
1074
1184
  created: nil,
1075
1185
  customer: nil,
1186
+ customer_account: nil,
1076
1187
  due_date: nil,
1077
1188
  ending_before: nil,
1078
1189
  expand: nil,
@@ -1084,6 +1195,7 @@ module Stripe
1084
1195
  @collection_method = collection_method
1085
1196
  @created = created
1086
1197
  @customer = customer
1198
+ @customer_account = customer_account
1087
1199
  @due_date = due_date
1088
1200
  @ending_before = ending_before
1089
1201
  @expand = expand
@@ -1095,6 +1207,24 @@ module Stripe
1095
1207
  end
1096
1208
 
1097
1209
  class CreateParams < Stripe::RequestParams
1210
+ class AmountsDue < Stripe::RequestParams
1211
+ # The amount in cents (or local equivalent).
1212
+ attr_accessor :amount
1213
+ # Number of days from when invoice is finalized until the payment is due.
1214
+ attr_accessor :days_until_due
1215
+ # An arbitrary string attached to the object. Often useful for displaying to users.
1216
+ attr_accessor :description
1217
+ # Date on which a payment plan’s payment is due.
1218
+ attr_accessor :due_date
1219
+
1220
+ def initialize(amount: nil, days_until_due: nil, description: nil, due_date: nil)
1221
+ @amount = amount
1222
+ @days_until_due = days_until_due
1223
+ @description = description
1224
+ @due_date = due_date
1225
+ end
1226
+ end
1227
+
1098
1228
  class AutomaticTax < Stripe::RequestParams
1099
1229
  class Liability < Stripe::RequestParams
1100
1230
  # The connected account being referenced when `type` is `account`.
@@ -1131,16 +1261,44 @@ module Stripe
1131
1261
  end
1132
1262
 
1133
1263
  class Discount < Stripe::RequestParams
1264
+ class DiscountEnd < Stripe::RequestParams
1265
+ class Duration < Stripe::RequestParams
1266
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1267
+ attr_accessor :interval
1268
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1269
+ attr_accessor :interval_count
1270
+
1271
+ def initialize(interval: nil, interval_count: nil)
1272
+ @interval = interval
1273
+ @interval_count = interval_count
1274
+ end
1275
+ end
1276
+ # Time span for the redeemed discount.
1277
+ attr_accessor :duration
1278
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1279
+ attr_accessor :timestamp
1280
+ # The type of calculation made to determine when the discount ends.
1281
+ attr_accessor :type
1282
+
1283
+ def initialize(duration: nil, timestamp: nil, type: nil)
1284
+ @duration = duration
1285
+ @timestamp = timestamp
1286
+ @type = type
1287
+ end
1288
+ end
1134
1289
  # ID of the coupon to create a new discount for.
1135
1290
  attr_accessor :coupon
1136
1291
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
1137
1292
  attr_accessor :discount
1293
+ # Details to determine how long the discount should be applied for.
1294
+ attr_accessor :discount_end
1138
1295
  # ID of the promotion code to create a new discount for.
1139
1296
  attr_accessor :promotion_code
1140
1297
 
1141
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1298
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1142
1299
  @coupon = coupon
1143
1300
  @discount = discount
1301
+ @discount_end = discount_end
1144
1302
  @promotion_code = promotion_code
1145
1303
  end
1146
1304
  end
@@ -1272,6 +1430,9 @@ module Stripe
1272
1430
  end
1273
1431
  end
1274
1432
 
1433
+ class IdBankTransfer < Stripe::RequestParams
1434
+ end
1435
+
1275
1436
  class Konbini < Stripe::RequestParams
1276
1437
  end
1277
1438
 
@@ -1283,9 +1444,12 @@ module Stripe
1283
1444
  class Filters < Stripe::RequestParams
1284
1445
  # The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
1285
1446
  attr_accessor :account_subcategories
1447
+ # ID of the institution to use to filter for selectable accounts.
1448
+ attr_accessor :institution
1286
1449
 
1287
- def initialize(account_subcategories: nil)
1450
+ def initialize(account_subcategories: nil, institution: nil)
1288
1451
  @account_subcategories = account_subcategories
1452
+ @institution = institution
1289
1453
  end
1290
1454
  end
1291
1455
  # Provide filters for the linked accounts that the customer can select for the payment method.
@@ -1319,6 +1483,8 @@ module Stripe
1319
1483
  attr_accessor :card
1320
1484
  # If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent.
1321
1485
  attr_accessor :customer_balance
1486
+ # If paying by `id_bank_transfer`, this sub-hash contains details about the Indonesia bank transfer payment method options to pass to the invoice’s PaymentIntent.
1487
+ attr_accessor :id_bank_transfer
1322
1488
  # If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent.
1323
1489
  attr_accessor :konbini
1324
1490
  # If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice’s PaymentIntent.
@@ -1331,6 +1497,7 @@ module Stripe
1331
1497
  bancontact: nil,
1332
1498
  card: nil,
1333
1499
  customer_balance: nil,
1500
+ id_bank_transfer: nil,
1334
1501
  konbini: nil,
1335
1502
  sepa_debit: nil,
1336
1503
  us_bank_account: nil
@@ -1339,6 +1506,7 @@ module Stripe
1339
1506
  @bancontact = bancontact
1340
1507
  @card = card
1341
1508
  @customer_balance = customer_balance
1509
+ @id_bank_transfer = id_bank_transfer
1342
1510
  @konbini = konbini
1343
1511
  @sepa_debit = sepa_debit
1344
1512
  @us_bank_account = us_bank_account
@@ -1550,6 +1718,8 @@ module Stripe
1550
1718
  end
1551
1719
  # The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
1552
1720
  attr_accessor :account_tax_ids
1721
+ # List of expected payments and corresponding due dates. Valid only for invoices where `collection_method=send_invoice`.
1722
+ attr_accessor :amounts_due
1553
1723
  # A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees).
1554
1724
  attr_accessor :application_fee_amount
1555
1725
  # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.
@@ -1566,8 +1736,12 @@ module Stripe
1566
1736
  attr_accessor :custom_fields
1567
1737
  # The ID of the customer who will be billed.
1568
1738
  attr_accessor :customer
1739
+ # The ID of the account who will be billed.
1740
+ attr_accessor :customer_account
1569
1741
  # The number of days from when the invoice is created until it is due. Valid only for invoices where `collection_method=send_invoice`.
1570
1742
  attr_accessor :days_until_due
1743
+ # The ids of the margins to apply to the invoice. Can be overridden by line item `margins`.
1744
+ attr_accessor :default_margins
1571
1745
  # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
1572
1746
  attr_accessor :default_payment_method
1573
1747
  # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
@@ -1615,6 +1789,7 @@ module Stripe
1615
1789
 
1616
1790
  def initialize(
1617
1791
  account_tax_ids: nil,
1792
+ amounts_due: nil,
1618
1793
  application_fee_amount: nil,
1619
1794
  auto_advance: nil,
1620
1795
  automatic_tax: nil,
@@ -1623,7 +1798,9 @@ module Stripe
1623
1798
  currency: nil,
1624
1799
  custom_fields: nil,
1625
1800
  customer: nil,
1801
+ customer_account: nil,
1626
1802
  days_until_due: nil,
1803
+ default_margins: nil,
1627
1804
  default_payment_method: nil,
1628
1805
  default_source: nil,
1629
1806
  default_tax_rates: nil,
@@ -1648,6 +1825,7 @@ module Stripe
1648
1825
  transfer_data: nil
1649
1826
  )
1650
1827
  @account_tax_ids = account_tax_ids
1828
+ @amounts_due = amounts_due
1651
1829
  @application_fee_amount = application_fee_amount
1652
1830
  @auto_advance = auto_advance
1653
1831
  @automatic_tax = automatic_tax
@@ -1656,7 +1834,9 @@ module Stripe
1656
1834
  @currency = currency
1657
1835
  @custom_fields = custom_fields
1658
1836
  @customer = customer
1837
+ @customer_account = customer_account
1659
1838
  @days_until_due = days_until_due
1839
+ @default_margins = default_margins
1660
1840
  @default_payment_method = default_payment_method
1661
1841
  @default_source = default_source
1662
1842
  @default_tax_rates = default_tax_rates
@@ -1703,16 +1883,44 @@ module Stripe
1703
1883
  class AddLinesParams < Stripe::RequestParams
1704
1884
  class Line < Stripe::RequestParams
1705
1885
  class Discount < Stripe::RequestParams
1886
+ class DiscountEnd < Stripe::RequestParams
1887
+ class Duration < Stripe::RequestParams
1888
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
1889
+ attr_accessor :interval
1890
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
1891
+ attr_accessor :interval_count
1892
+
1893
+ def initialize(interval: nil, interval_count: nil)
1894
+ @interval = interval
1895
+ @interval_count = interval_count
1896
+ end
1897
+ end
1898
+ # Time span for the redeemed discount.
1899
+ attr_accessor :duration
1900
+ # A precise Unix timestamp for the discount to end. Must be in the future.
1901
+ attr_accessor :timestamp
1902
+ # The type of calculation made to determine when the discount ends.
1903
+ attr_accessor :type
1904
+
1905
+ def initialize(duration: nil, timestamp: nil, type: nil)
1906
+ @duration = duration
1907
+ @timestamp = timestamp
1908
+ @type = type
1909
+ end
1910
+ end
1706
1911
  # ID of the coupon to create a new discount for.
1707
1912
  attr_accessor :coupon
1708
1913
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
1709
1914
  attr_accessor :discount
1915
+ # Details to determine how long the discount should be applied for.
1916
+ attr_accessor :discount_end
1710
1917
  # ID of the promotion code to create a new discount for.
1711
1918
  attr_accessor :promotion_code
1712
1919
 
1713
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
1920
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
1714
1921
  @coupon = coupon
1715
1922
  @discount = discount
1923
+ @discount_end = discount_end
1716
1924
  @promotion_code = promotion_code
1717
1925
  end
1718
1926
  end
@@ -1865,6 +2073,8 @@ module Stripe
1865
2073
  attr_accessor :discounts
1866
2074
  # ID of an unassigned invoice item to assign to this invoice. If not provided, a new item will be created.
1867
2075
  attr_accessor :invoice_item
2076
+ # The IDs of the margins to apply to the line item. When set, the `default_margins` on the invoice do not apply to this line item.
2077
+ attr_accessor :margins
1868
2078
  # 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`.
1869
2079
  attr_accessor :metadata
1870
2080
  # The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details.
@@ -1886,6 +2096,7 @@ module Stripe
1886
2096
  discountable: nil,
1887
2097
  discounts: nil,
1888
2098
  invoice_item: nil,
2099
+ margins: nil,
1889
2100
  metadata: nil,
1890
2101
  period: nil,
1891
2102
  price_data: nil,
@@ -1899,6 +2110,7 @@ module Stripe
1899
2110
  @discountable = discountable
1900
2111
  @discounts = discounts
1901
2112
  @invoice_item = invoice_item
2113
+ @margins = margins
1902
2114
  @metadata = metadata
1903
2115
  @period = period
1904
2116
  @price_data = price_data
@@ -1922,6 +2134,78 @@ module Stripe
1922
2134
  end
1923
2135
  end
1924
2136
 
2137
+ class AttachPaymentParams < Stripe::RequestParams
2138
+ class PaymentRecordData < Stripe::RequestParams
2139
+ # The amount that was paid out of band.
2140
+ attr_accessor :amount
2141
+ # The currency that was paid out of band.
2142
+ attr_accessor :currency
2143
+ # 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`.
2144
+ attr_accessor :metadata
2145
+ # The type of money movement for this out of band payment record.
2146
+ attr_accessor :money_movement_type
2147
+ # The timestamp when this out of band payment was paid.
2148
+ attr_accessor :paid_at
2149
+ # The reference for this out of band payment record.
2150
+ attr_accessor :payment_reference
2151
+
2152
+ def initialize(
2153
+ amount: nil,
2154
+ currency: nil,
2155
+ metadata: nil,
2156
+ money_movement_type: nil,
2157
+ paid_at: nil,
2158
+ payment_reference: nil
2159
+ )
2160
+ @amount = amount
2161
+ @currency = currency
2162
+ @metadata = metadata
2163
+ @money_movement_type = money_movement_type
2164
+ @paid_at = paid_at
2165
+ @payment_reference = payment_reference
2166
+ end
2167
+ end
2168
+ # The portion of the `amount` on the PaymentIntent or out of band payment to apply to this invoice. It defaults to the entire amount.
2169
+ attr_accessor :amount_requested
2170
+ # Specifies which fields in the response should be expanded.
2171
+ attr_accessor :expand
2172
+ # The ID of the PaymentIntent to attach to the invoice.
2173
+ attr_accessor :payment_intent
2174
+ # The ID of the PaymentRecord to attach to the invoice.
2175
+ attr_accessor :payment_record
2176
+ # The PaymentRecord data for attaching an out of band payment to the invoice.
2177
+ attr_accessor :payment_record_data
2178
+
2179
+ def initialize(
2180
+ amount_requested: nil,
2181
+ expand: nil,
2182
+ payment_intent: nil,
2183
+ payment_record: nil,
2184
+ payment_record_data: nil
2185
+ )
2186
+ @amount_requested = amount_requested
2187
+ @expand = expand
2188
+ @payment_intent = payment_intent
2189
+ @payment_record = payment_record
2190
+ @payment_record_data = payment_record_data
2191
+ end
2192
+ end
2193
+
2194
+ class AttachPaymentIntentParams < Stripe::RequestParams
2195
+ # The portion of the PaymentIntent’s `amount` that should be applied to thisinvoice. Defaults to the entire amount.
2196
+ attr_accessor :amount_requested
2197
+ # Specifies which fields in the response should be expanded.
2198
+ attr_accessor :expand
2199
+ # The ID of the PaymentIntent to attach to the invoice.
2200
+ attr_accessor :payment_intent
2201
+
2202
+ def initialize(amount_requested: nil, expand: nil, payment_intent: nil)
2203
+ @amount_requested = amount_requested
2204
+ @expand = expand
2205
+ @payment_intent = payment_intent
2206
+ end
2207
+ end
2208
+
1925
2209
  class FinalizeInvoiceParams < Stripe::RequestParams
1926
2210
  # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.
1927
2211
  attr_accessor :auto_advance
@@ -2018,16 +2302,44 @@ module Stripe
2018
2302
  class UpdateLinesParams < Stripe::RequestParams
2019
2303
  class Line < Stripe::RequestParams
2020
2304
  class Discount < Stripe::RequestParams
2305
+ class DiscountEnd < Stripe::RequestParams
2306
+ class Duration < Stripe::RequestParams
2307
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2308
+ attr_accessor :interval
2309
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2310
+ attr_accessor :interval_count
2311
+
2312
+ def initialize(interval: nil, interval_count: nil)
2313
+ @interval = interval
2314
+ @interval_count = interval_count
2315
+ end
2316
+ end
2317
+ # Time span for the redeemed discount.
2318
+ attr_accessor :duration
2319
+ # A precise Unix timestamp for the discount to end. Must be in the future.
2320
+ attr_accessor :timestamp
2321
+ # The type of calculation made to determine when the discount ends.
2322
+ attr_accessor :type
2323
+
2324
+ def initialize(duration: nil, timestamp: nil, type: nil)
2325
+ @duration = duration
2326
+ @timestamp = timestamp
2327
+ @type = type
2328
+ end
2329
+ end
2021
2330
  # ID of the coupon to create a new discount for.
2022
2331
  attr_accessor :coupon
2023
2332
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2024
2333
  attr_accessor :discount
2334
+ # Details to determine how long the discount should be applied for.
2335
+ attr_accessor :discount_end
2025
2336
  # ID of the promotion code to create a new discount for.
2026
2337
  attr_accessor :promotion_code
2027
2338
 
2028
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
2339
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2029
2340
  @coupon = coupon
2030
2341
  @discount = discount
2342
+ @discount_end = discount_end
2031
2343
  @promotion_code = promotion_code
2032
2344
  end
2033
2345
  end
@@ -2180,6 +2492,8 @@ module Stripe
2180
2492
  attr_accessor :discounts
2181
2493
  # ID of an existing line item on the invoice.
2182
2494
  attr_accessor :id
2495
+ # The IDs of the margins to apply to the line item. When set, the `default_margins` on the invoice do not apply to this line item.
2496
+ attr_accessor :margins
2183
2497
  # 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`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data.
2184
2498
  attr_accessor :metadata
2185
2499
  # The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details.
@@ -2201,6 +2515,7 @@ module Stripe
2201
2515
  discountable: nil,
2202
2516
  discounts: nil,
2203
2517
  id: nil,
2518
+ margins: nil,
2204
2519
  metadata: nil,
2205
2520
  period: nil,
2206
2521
  price_data: nil,
@@ -2214,6 +2529,7 @@ module Stripe
2214
2529
  @discountable = discountable
2215
2530
  @discounts = discounts
2216
2531
  @id = id
2532
+ @margins = margins
2217
2533
  @metadata = metadata
2218
2534
  @period = period
2219
2535
  @price_data = price_data
@@ -2388,32 +2704,88 @@ module Stripe
2388
2704
  end
2389
2705
 
2390
2706
  class Discount < Stripe::RequestParams
2707
+ class DiscountEnd < Stripe::RequestParams
2708
+ class Duration < Stripe::RequestParams
2709
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2710
+ attr_accessor :interval
2711
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2712
+ attr_accessor :interval_count
2713
+
2714
+ def initialize(interval: nil, interval_count: nil)
2715
+ @interval = interval
2716
+ @interval_count = interval_count
2717
+ end
2718
+ end
2719
+ # Time span for the redeemed discount.
2720
+ attr_accessor :duration
2721
+ # A precise Unix timestamp for the discount to end. Must be in the future.
2722
+ attr_accessor :timestamp
2723
+ # The type of calculation made to determine when the discount ends.
2724
+ attr_accessor :type
2725
+
2726
+ def initialize(duration: nil, timestamp: nil, type: nil)
2727
+ @duration = duration
2728
+ @timestamp = timestamp
2729
+ @type = type
2730
+ end
2731
+ end
2391
2732
  # ID of the coupon to create a new discount for.
2392
2733
  attr_accessor :coupon
2393
2734
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2394
2735
  attr_accessor :discount
2736
+ # Details to determine how long the discount should be applied for.
2737
+ attr_accessor :discount_end
2395
2738
  # ID of the promotion code to create a new discount for.
2396
2739
  attr_accessor :promotion_code
2397
2740
 
2398
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
2741
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2399
2742
  @coupon = coupon
2400
2743
  @discount = discount
2744
+ @discount_end = discount_end
2401
2745
  @promotion_code = promotion_code
2402
2746
  end
2403
2747
  end
2404
2748
 
2405
2749
  class InvoiceItem < Stripe::RequestParams
2406
2750
  class Discount < Stripe::RequestParams
2751
+ class DiscountEnd < Stripe::RequestParams
2752
+ class Duration < Stripe::RequestParams
2753
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2754
+ attr_accessor :interval
2755
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2756
+ attr_accessor :interval_count
2757
+
2758
+ def initialize(interval: nil, interval_count: nil)
2759
+ @interval = interval
2760
+ @interval_count = interval_count
2761
+ end
2762
+ end
2763
+ # Time span for the redeemed discount.
2764
+ attr_accessor :duration
2765
+ # A precise Unix timestamp for the discount to end. Must be in the future.
2766
+ attr_accessor :timestamp
2767
+ # The type of calculation made to determine when the discount ends.
2768
+ attr_accessor :type
2769
+
2770
+ def initialize(duration: nil, timestamp: nil, type: nil)
2771
+ @duration = duration
2772
+ @timestamp = timestamp
2773
+ @type = type
2774
+ end
2775
+ end
2407
2776
  # ID of the coupon to create a new discount for.
2408
2777
  attr_accessor :coupon
2409
2778
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2410
2779
  attr_accessor :discount
2780
+ # Details to determine how long the discount should be applied for.
2781
+ attr_accessor :discount_end
2411
2782
  # ID of the promotion code to create a new discount for.
2412
2783
  attr_accessor :promotion_code
2413
2784
 
2414
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
2785
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2415
2786
  @coupon = coupon
2416
2787
  @discount = discount
2788
+ @discount_end = discount_end
2417
2789
  @promotion_code = promotion_code
2418
2790
  end
2419
2791
  end
@@ -2539,19 +2911,499 @@ module Stripe
2539
2911
  end
2540
2912
 
2541
2913
  class ScheduleDetails < Stripe::RequestParams
2914
+ class Amendment < Stripe::RequestParams
2915
+ class AmendmentEnd < Stripe::RequestParams
2916
+ class DiscountEnd < Stripe::RequestParams
2917
+ # The ID of a specific discount.
2918
+ attr_accessor :discount
2919
+
2920
+ def initialize(discount: nil)
2921
+ @discount = discount
2922
+ end
2923
+ end
2924
+
2925
+ class Duration < Stripe::RequestParams
2926
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
2927
+ attr_accessor :interval
2928
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
2929
+ attr_accessor :interval_count
2930
+
2931
+ def initialize(interval: nil, interval_count: nil)
2932
+ @interval = interval
2933
+ @interval_count = interval_count
2934
+ end
2935
+ end
2936
+ # Use the `end` time of a given discount.
2937
+ attr_accessor :discount_end
2938
+ # Time span for the amendment starting from the `amendment_start`.
2939
+ attr_accessor :duration
2940
+ # A precise Unix timestamp for the amendment to end. Must be after the `amendment_start`.
2941
+ attr_accessor :timestamp
2942
+ # Select one of three ways to pass the `amendment_end`.
2943
+ attr_accessor :type
2944
+
2945
+ def initialize(discount_end: nil, duration: nil, timestamp: nil, type: nil)
2946
+ @discount_end = discount_end
2947
+ @duration = duration
2948
+ @timestamp = timestamp
2949
+ @type = type
2950
+ end
2951
+ end
2952
+
2953
+ class AmendmentStart < Stripe::RequestParams
2954
+ class AmendmentEnd < Stripe::RequestParams
2955
+ # The position of the previous amendment in the `amendments` array after which this amendment should begin. Indexes start from 0 and must be less than the index of the current amendment in the array.
2956
+ attr_accessor :index
2957
+
2958
+ def initialize(index: nil)
2959
+ @index = index
2960
+ end
2961
+ end
2962
+
2963
+ class DiscountEnd < Stripe::RequestParams
2964
+ # The ID of a specific discount.
2965
+ attr_accessor :discount
2966
+
2967
+ def initialize(discount: nil)
2968
+ @discount = discount
2969
+ end
2970
+ end
2971
+ # Details of another amendment in the same array, immediately after which this amendment should begin.
2972
+ attr_accessor :amendment_end
2973
+ # Use the `end` time of a given discount.
2974
+ attr_accessor :discount_end
2975
+ # A precise Unix timestamp for the amendment to start.
2976
+ attr_accessor :timestamp
2977
+ # Select one of three ways to pass the `amendment_start`.
2978
+ attr_accessor :type
2979
+
2980
+ def initialize(amendment_end: nil, discount_end: nil, timestamp: nil, type: nil)
2981
+ @amendment_end = amendment_end
2982
+ @discount_end = discount_end
2983
+ @timestamp = timestamp
2984
+ @type = type
2985
+ end
2986
+ end
2987
+
2988
+ class DiscountAction < Stripe::RequestParams
2989
+ class Add < Stripe::RequestParams
2990
+ class DiscountEnd < Stripe::RequestParams
2991
+ # The type of calculation made to determine when the discount ends.
2992
+ attr_accessor :type
2993
+
2994
+ def initialize(type: nil)
2995
+ @type = type
2996
+ end
2997
+ end
2998
+ # The coupon code to redeem.
2999
+ attr_accessor :coupon
3000
+ # An ID of an existing discount for a coupon that was already redeemed.
3001
+ attr_accessor :discount
3002
+ # Details to determine how long the discount should be applied for.
3003
+ attr_accessor :discount_end
3004
+ # 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.
3005
+ attr_accessor :index
3006
+ # The promotion code to redeem.
3007
+ attr_accessor :promotion_code
3008
+
3009
+ def initialize(
3010
+ coupon: nil,
3011
+ discount: nil,
3012
+ discount_end: nil,
3013
+ index: nil,
3014
+ promotion_code: nil
3015
+ )
3016
+ @coupon = coupon
3017
+ @discount = discount
3018
+ @discount_end = discount_end
3019
+ @index = index
3020
+ @promotion_code = promotion_code
3021
+ end
3022
+ end
3023
+
3024
+ class Remove < Stripe::RequestParams
3025
+ # The coupon code to remove from the `discounts` array.
3026
+ attr_accessor :coupon
3027
+ # The ID of a discount to remove from the `discounts` array.
3028
+ attr_accessor :discount
3029
+ # The ID of a promotion code to remove from the `discounts` array.
3030
+ attr_accessor :promotion_code
3031
+
3032
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
3033
+ @coupon = coupon
3034
+ @discount = discount
3035
+ @promotion_code = promotion_code
3036
+ end
3037
+ end
3038
+
3039
+ class Set < Stripe::RequestParams
3040
+ # The coupon code to replace the `discounts` array with.
3041
+ attr_accessor :coupon
3042
+ # An ID of an existing discount to replace the `discounts` array with.
3043
+ attr_accessor :discount
3044
+ # An ID of an existing promotion code to replace the `discounts` array with.
3045
+ attr_accessor :promotion_code
3046
+
3047
+ def initialize(coupon: nil, discount: nil, promotion_code: nil)
3048
+ @coupon = coupon
3049
+ @discount = discount
3050
+ @promotion_code = promotion_code
3051
+ end
3052
+ end
3053
+ # Details of the discount to add.
3054
+ attr_accessor :add
3055
+ # Details of the discount to remove.
3056
+ attr_accessor :remove
3057
+ # Details of the discount to replace the existing discounts with.
3058
+ attr_accessor :set
3059
+ # Determines the type of discount action.
3060
+ attr_accessor :type
3061
+
3062
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
3063
+ @add = add
3064
+ @remove = remove
3065
+ @set = set
3066
+ @type = type
3067
+ end
3068
+ end
3069
+
3070
+ class ItemAction < Stripe::RequestParams
3071
+ class Add < Stripe::RequestParams
3072
+ class Discount < Stripe::RequestParams
3073
+ class DiscountEnd < Stripe::RequestParams
3074
+ class Duration < Stripe::RequestParams
3075
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3076
+ attr_accessor :interval
3077
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3078
+ attr_accessor :interval_count
3079
+
3080
+ def initialize(interval: nil, interval_count: nil)
3081
+ @interval = interval
3082
+ @interval_count = interval_count
3083
+ end
3084
+ end
3085
+ # Time span for the redeemed discount.
3086
+ attr_accessor :duration
3087
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3088
+ attr_accessor :timestamp
3089
+ # The type of calculation made to determine when the discount ends.
3090
+ attr_accessor :type
3091
+
3092
+ def initialize(duration: nil, timestamp: nil, type: nil)
3093
+ @duration = duration
3094
+ @timestamp = timestamp
3095
+ @type = type
3096
+ end
3097
+ end
3098
+ # ID of the coupon to create a new discount for.
3099
+ attr_accessor :coupon
3100
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
3101
+ attr_accessor :discount
3102
+ # Details to determine how long the discount should be applied for.
3103
+ attr_accessor :discount_end
3104
+ # ID of the promotion code to create a new discount for.
3105
+ attr_accessor :promotion_code
3106
+
3107
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
3108
+ @coupon = coupon
3109
+ @discount = discount
3110
+ @discount_end = discount_end
3111
+ @promotion_code = promotion_code
3112
+ end
3113
+ end
3114
+
3115
+ class Trial < Stripe::RequestParams
3116
+ # 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.
3117
+ attr_accessor :converts_to
3118
+ # Determines the type of trial for this item.
3119
+ attr_accessor :type
3120
+
3121
+ def initialize(converts_to: nil, type: nil)
3122
+ @converts_to = converts_to
3123
+ @type = type
3124
+ end
3125
+ end
3126
+ # The discounts applied to the item. Subscription item discounts are applied before subscription discounts.
3127
+ attr_accessor :discounts
3128
+ # 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`.
3129
+ attr_accessor :metadata
3130
+ # The ID of the price object.
3131
+ attr_accessor :price
3132
+ # Quantity for this item.
3133
+ attr_accessor :quantity
3134
+ # 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`.
3135
+ attr_accessor :tax_rates
3136
+ # Options that configure the trial on the subscription item.
3137
+ attr_accessor :trial
3138
+
3139
+ def initialize(
3140
+ discounts: nil,
3141
+ metadata: nil,
3142
+ price: nil,
3143
+ quantity: nil,
3144
+ tax_rates: nil,
3145
+ trial: nil
3146
+ )
3147
+ @discounts = discounts
3148
+ @metadata = metadata
3149
+ @price = price
3150
+ @quantity = quantity
3151
+ @tax_rates = tax_rates
3152
+ @trial = trial
3153
+ end
3154
+ end
3155
+
3156
+ class Remove < Stripe::RequestParams
3157
+ # ID of a price to remove.
3158
+ attr_accessor :price
3159
+
3160
+ def initialize(price: nil)
3161
+ @price = price
3162
+ end
3163
+ end
3164
+
3165
+ class Set < Stripe::RequestParams
3166
+ class Discount < Stripe::RequestParams
3167
+ class DiscountEnd < Stripe::RequestParams
3168
+ class Duration < Stripe::RequestParams
3169
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3170
+ attr_accessor :interval
3171
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3172
+ attr_accessor :interval_count
3173
+
3174
+ def initialize(interval: nil, interval_count: nil)
3175
+ @interval = interval
3176
+ @interval_count = interval_count
3177
+ end
3178
+ end
3179
+ # Time span for the redeemed discount.
3180
+ attr_accessor :duration
3181
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3182
+ attr_accessor :timestamp
3183
+ # The type of calculation made to determine when the discount ends.
3184
+ attr_accessor :type
3185
+
3186
+ def initialize(duration: nil, timestamp: nil, type: nil)
3187
+ @duration = duration
3188
+ @timestamp = timestamp
3189
+ @type = type
3190
+ end
3191
+ end
3192
+ # ID of the coupon to create a new discount for.
3193
+ attr_accessor :coupon
3194
+ # ID of an existing discount on the object (or one of its ancestors) to reuse.
3195
+ attr_accessor :discount
3196
+ # Details to determine how long the discount should be applied for.
3197
+ attr_accessor :discount_end
3198
+ # ID of the promotion code to create a new discount for.
3199
+ attr_accessor :promotion_code
3200
+
3201
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
3202
+ @coupon = coupon
3203
+ @discount = discount
3204
+ @discount_end = discount_end
3205
+ @promotion_code = promotion_code
3206
+ end
3207
+ end
3208
+
3209
+ class Trial < Stripe::RequestParams
3210
+ # 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.
3211
+ attr_accessor :converts_to
3212
+ # Determines the type of trial for this item.
3213
+ attr_accessor :type
3214
+
3215
+ def initialize(converts_to: nil, type: nil)
3216
+ @converts_to = converts_to
3217
+ @type = type
3218
+ end
3219
+ end
3220
+ # 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`.
3221
+ attr_accessor :discounts
3222
+ # 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`.
3223
+ attr_accessor :metadata
3224
+ # The ID of the price object.
3225
+ attr_accessor :price
3226
+ # 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`.
3227
+ attr_accessor :quantity
3228
+ # 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`.
3229
+ attr_accessor :tax_rates
3230
+ # 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`.
3231
+ attr_accessor :trial
3232
+
3233
+ def initialize(
3234
+ discounts: nil,
3235
+ metadata: nil,
3236
+ price: nil,
3237
+ quantity: nil,
3238
+ tax_rates: nil,
3239
+ trial: nil
3240
+ )
3241
+ @discounts = discounts
3242
+ @metadata = metadata
3243
+ @price = price
3244
+ @quantity = quantity
3245
+ @tax_rates = tax_rates
3246
+ @trial = trial
3247
+ end
3248
+ end
3249
+ # Details of the subscription item to add. If an item with the same `price` exists, it will be replaced by this new item. Otherwise, it adds the new item.
3250
+ attr_accessor :add
3251
+ # Details of the subscription item to remove.
3252
+ attr_accessor :remove
3253
+ # Details of the subscription item to replace the existing items with. If an item with the `set[price]` already exists, the `items` array is not cleared. Instead, all of the other `set` properties that are passed in this request will replace the existing values for the configuration item.
3254
+ attr_accessor :set
3255
+ # Determines the type of item action.
3256
+ attr_accessor :type
3257
+
3258
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
3259
+ @add = add
3260
+ @remove = remove
3261
+ @set = set
3262
+ @type = type
3263
+ end
3264
+ end
3265
+
3266
+ class MetadataAction < Stripe::RequestParams
3267
+ # Key-value pairs to add to schedule phase metadata. These values will merge with existing schedule phase metadata.
3268
+ attr_accessor :add
3269
+ # Keys to remove from schedule phase metadata.
3270
+ attr_accessor :remove
3271
+ # Key-value pairs to set as schedule phase metadata. Existing schedule phase metadata will be overwritten.
3272
+ attr_accessor :set
3273
+ # Select one of three ways to update phase-level `metadata` on subscription schedules.
3274
+ attr_accessor :type
3275
+
3276
+ def initialize(add: nil, remove: nil, set: nil, type: nil)
3277
+ @add = add
3278
+ @remove = remove
3279
+ @set = set
3280
+ @type = type
3281
+ end
3282
+ end
3283
+
3284
+ class SetPauseCollection < Stripe::RequestParams
3285
+ class Set < Stripe::RequestParams
3286
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
3287
+ attr_accessor :behavior
3288
+
3289
+ def initialize(behavior: nil)
3290
+ @behavior = behavior
3291
+ end
3292
+ end
3293
+ # Details of the pause_collection behavior to apply to the amendment.
3294
+ attr_accessor :set
3295
+ # Determines the type of the pause_collection amendment.
3296
+ attr_accessor :type
3297
+
3298
+ def initialize(set: nil, type: nil)
3299
+ @set = set
3300
+ @type = type
3301
+ end
3302
+ end
3303
+
3304
+ class TrialSettings < Stripe::RequestParams
3305
+ class EndBehavior < Stripe::RequestParams
3306
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
3307
+ attr_accessor :prorate_up_front
3308
+
3309
+ def initialize(prorate_up_front: nil)
3310
+ @prorate_up_front = prorate_up_front
3311
+ end
3312
+ end
3313
+ # Defines how the subscription should behave when a trial ends.
3314
+ attr_accessor :end_behavior
3315
+
3316
+ def initialize(end_behavior: nil)
3317
+ @end_behavior = end_behavior
3318
+ end
3319
+ end
3320
+ # Details to identify the end of the time range modified by the proposed change. If not supplied, the amendment is considered a point-in-time operation that only affects the exact timestamp at `amendment_start`, and a restricted set of attributes is supported on the amendment.
3321
+ attr_accessor :amendment_end
3322
+ # Details to identify the earliest timestamp where the proposed change should take effect.
3323
+ attr_accessor :amendment_start
3324
+ # For point-in-time amendments (having no `amendment_end`), this attribute lets you set or remove whether the subscription's billing cycle anchor is reset at the `amendment_start` timestamp.For time-span based amendments (having both `amendment_start` and `amendment_end`), the only value valid is `automatic`, which removes any previously configured billing cycle anchor resets scheduled to occur during the window of time spanned by the amendment.
3325
+ attr_accessor :billing_cycle_anchor
3326
+ # Changes to the coupons being redeemed or discounts being applied during the amendment time span.
3327
+ attr_accessor :discount_actions
3328
+ # Changes to the subscription items during the amendment time span.
3329
+ attr_accessor :item_actions
3330
+ # Instructions for how to modify phase metadata
3331
+ attr_accessor :metadata_actions
3332
+ # Changes to how Stripe handles prorations during the amendment time span. Affects if and how prorations are created when a future phase starts. In cases where the amendment changes the currently active phase, it is used to determine whether or how to prorate now, at the time of the request. Also supported as a point-in-time operation when `amendment_end` is `null`.
3333
+ attr_accessor :proration_behavior
3334
+ # Defines how to pause collection for the underlying subscription throughout the duration of the amendment.
3335
+ attr_accessor :set_pause_collection
3336
+ # Ends the subscription schedule early as dictated by either the accompanying amendment's start or end.
3337
+ attr_accessor :set_schedule_end
3338
+ # Settings related to subscription trials.
3339
+ attr_accessor :trial_settings
3340
+
3341
+ def initialize(
3342
+ amendment_end: nil,
3343
+ amendment_start: nil,
3344
+ billing_cycle_anchor: nil,
3345
+ discount_actions: nil,
3346
+ item_actions: nil,
3347
+ metadata_actions: nil,
3348
+ proration_behavior: nil,
3349
+ set_pause_collection: nil,
3350
+ set_schedule_end: nil,
3351
+ trial_settings: nil
3352
+ )
3353
+ @amendment_end = amendment_end
3354
+ @amendment_start = amendment_start
3355
+ @billing_cycle_anchor = billing_cycle_anchor
3356
+ @discount_actions = discount_actions
3357
+ @item_actions = item_actions
3358
+ @metadata_actions = metadata_actions
3359
+ @proration_behavior = proration_behavior
3360
+ @set_pause_collection = set_pause_collection
3361
+ @set_schedule_end = set_schedule_end
3362
+ @trial_settings = trial_settings
3363
+ end
3364
+ end
3365
+
2542
3366
  class Phase < Stripe::RequestParams
2543
3367
  class AddInvoiceItem < Stripe::RequestParams
2544
3368
  class Discount < Stripe::RequestParams
3369
+ class DiscountEnd < Stripe::RequestParams
3370
+ class Duration < Stripe::RequestParams
3371
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3372
+ attr_accessor :interval
3373
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3374
+ attr_accessor :interval_count
3375
+
3376
+ def initialize(interval: nil, interval_count: nil)
3377
+ @interval = interval
3378
+ @interval_count = interval_count
3379
+ end
3380
+ end
3381
+ # Time span for the redeemed discount.
3382
+ attr_accessor :duration
3383
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3384
+ attr_accessor :timestamp
3385
+ # The type of calculation made to determine when the discount ends.
3386
+ attr_accessor :type
3387
+
3388
+ def initialize(duration: nil, timestamp: nil, type: nil)
3389
+ @duration = duration
3390
+ @timestamp = timestamp
3391
+ @type = type
3392
+ end
3393
+ end
2545
3394
  # ID of the coupon to create a new discount for.
2546
3395
  attr_accessor :coupon
2547
3396
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2548
3397
  attr_accessor :discount
3398
+ # Details to determine how long the discount should be applied for.
3399
+ attr_accessor :discount_end
2549
3400
  # ID of the promotion code to create a new discount for.
2550
3401
  attr_accessor :promotion_code
2551
3402
 
2552
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
3403
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2553
3404
  @coupon = coupon
2554
3405
  @discount = discount
3406
+ @discount_end = discount_end
2555
3407
  @promotion_code = promotion_code
2556
3408
  end
2557
3409
  end
@@ -2632,16 +3484,44 @@ module Stripe
2632
3484
  end
2633
3485
 
2634
3486
  class Discount < Stripe::RequestParams
3487
+ class DiscountEnd < Stripe::RequestParams
3488
+ class Duration < Stripe::RequestParams
3489
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3490
+ attr_accessor :interval
3491
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3492
+ attr_accessor :interval_count
3493
+
3494
+ def initialize(interval: nil, interval_count: nil)
3495
+ @interval = interval
3496
+ @interval_count = interval_count
3497
+ end
3498
+ end
3499
+ # Time span for the redeemed discount.
3500
+ attr_accessor :duration
3501
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3502
+ attr_accessor :timestamp
3503
+ # The type of calculation made to determine when the discount ends.
3504
+ attr_accessor :type
3505
+
3506
+ def initialize(duration: nil, timestamp: nil, type: nil)
3507
+ @duration = duration
3508
+ @timestamp = timestamp
3509
+ @type = type
3510
+ end
3511
+ end
2635
3512
  # ID of the coupon to create a new discount for.
2636
3513
  attr_accessor :coupon
2637
3514
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2638
3515
  attr_accessor :discount
3516
+ # Details to determine how long the discount should be applied for.
3517
+ attr_accessor :discount_end
2639
3518
  # ID of the promotion code to create a new discount for.
2640
3519
  attr_accessor :promotion_code
2641
3520
 
2642
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
3521
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2643
3522
  @coupon = coupon
2644
3523
  @discount = discount
3524
+ @discount_end = discount_end
2645
3525
  @promotion_code = promotion_code
2646
3526
  end
2647
3527
  end
@@ -2674,16 +3554,44 @@ module Stripe
2674
3554
 
2675
3555
  class Item < Stripe::RequestParams
2676
3556
  class Discount < Stripe::RequestParams
3557
+ class DiscountEnd < Stripe::RequestParams
3558
+ class Duration < Stripe::RequestParams
3559
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3560
+ attr_accessor :interval
3561
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3562
+ attr_accessor :interval_count
3563
+
3564
+ def initialize(interval: nil, interval_count: nil)
3565
+ @interval = interval
3566
+ @interval_count = interval_count
3567
+ end
3568
+ end
3569
+ # Time span for the redeemed discount.
3570
+ attr_accessor :duration
3571
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3572
+ attr_accessor :timestamp
3573
+ # The type of calculation made to determine when the discount ends.
3574
+ attr_accessor :type
3575
+
3576
+ def initialize(duration: nil, timestamp: nil, type: nil)
3577
+ @duration = duration
3578
+ @timestamp = timestamp
3579
+ @type = type
3580
+ end
3581
+ end
2677
3582
  # ID of the coupon to create a new discount for.
2678
3583
  attr_accessor :coupon
2679
3584
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2680
3585
  attr_accessor :discount
3586
+ # Details to determine how long the discount should be applied for.
3587
+ attr_accessor :discount_end
2681
3588
  # ID of the promotion code to create a new discount for.
2682
3589
  attr_accessor :promotion_code
2683
3590
 
2684
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
3591
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2685
3592
  @coupon = coupon
2686
3593
  @discount = discount
3594
+ @discount_end = discount_end
2687
3595
  @promotion_code = promotion_code
2688
3596
  end
2689
3597
  end
@@ -2729,6 +3637,18 @@ module Stripe
2729
3637
  @unit_amount_decimal = unit_amount_decimal
2730
3638
  end
2731
3639
  end
3640
+
3641
+ class Trial < Stripe::RequestParams
3642
+ # 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.
3643
+ attr_accessor :converts_to
3644
+ # Determines the type of trial for this item.
3645
+ attr_accessor :type
3646
+
3647
+ def initialize(converts_to: nil, type: nil)
3648
+ @converts_to = converts_to
3649
+ @type = type
3650
+ end
3651
+ end
2732
3652
  # The coupons to redeem into discounts for the subscription item.
2733
3653
  attr_accessor :discounts
2734
3654
  # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a configuration item. Metadata on a configuration item will update the underlying subscription item's `metadata` when the phase is entered, adding new keys and replacing existing keys. Individual keys in the subscription item's `metadata` can be unset by posting an empty value to them in the configuration item's `metadata`. To unset all keys in the subscription item's `metadata`, update the subscription item directly or unset every key individually from the configuration item's `metadata`.
@@ -2743,6 +3663,8 @@ module Stripe
2743
3663
  attr_accessor :quantity
2744
3664
  # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates.
2745
3665
  attr_accessor :tax_rates
3666
+ # Options that configure the trial on the subscription item.
3667
+ attr_accessor :trial
2746
3668
 
2747
3669
  def initialize(
2748
3670
  discounts: nil,
@@ -2751,7 +3673,8 @@ module Stripe
2751
3673
  price: nil,
2752
3674
  price_data: nil,
2753
3675
  quantity: nil,
2754
- tax_rates: nil
3676
+ tax_rates: nil,
3677
+ trial: nil
2755
3678
  )
2756
3679
  @discounts = discounts
2757
3680
  @metadata = metadata
@@ -2760,6 +3683,16 @@ module Stripe
2760
3683
  @price_data = price_data
2761
3684
  @quantity = quantity
2762
3685
  @tax_rates = tax_rates
3686
+ @trial = trial
3687
+ end
3688
+ end
3689
+
3690
+ class PauseCollection < Stripe::RequestParams
3691
+ # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
3692
+ attr_accessor :behavior
3693
+
3694
+ def initialize(behavior: nil)
3695
+ @behavior = behavior
2763
3696
  end
2764
3697
  end
2765
3698
 
@@ -2774,6 +3707,23 @@ module Stripe
2774
3707
  @destination = destination
2775
3708
  end
2776
3709
  end
3710
+
3711
+ class TrialSettings < Stripe::RequestParams
3712
+ class EndBehavior < Stripe::RequestParams
3713
+ # Configure how an opt-in following a paid trial is billed when using `billing_behavior: prorate_up_front`.
3714
+ attr_accessor :prorate_up_front
3715
+
3716
+ def initialize(prorate_up_front: nil)
3717
+ @prorate_up_front = prorate_up_front
3718
+ end
3719
+ end
3720
+ # Defines how the subscription should behave when a trial ends.
3721
+ attr_accessor :end_behavior
3722
+
3723
+ def initialize(end_behavior: nil)
3724
+ @end_behavior = end_behavior
3725
+ end
3726
+ end
2777
3727
  # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase. You may pass up to 20 items.
2778
3728
  attr_accessor :add_invoice_items
2779
3729
  # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions).
@@ -2806,6 +3756,8 @@ module Stripe
2806
3756
  attr_accessor :metadata
2807
3757
  # The account on behalf of which to charge, for each of the associated subscription's invoices.
2808
3758
  attr_accessor :on_behalf_of
3759
+ # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](https://stripe.com/docs/billing/subscriptions/pause-payment).
3760
+ attr_accessor :pause_collection
2809
3761
  # Whether the subscription schedule will create [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when transitioning to this phase. The default value is `create_prorations`. This setting controls prorations when a phase is started asynchronously and it is persisted as a field on the phase. It's different from the request-level [proration_behavior](https://stripe.com/docs/api/subscription_schedules/update#update_subscription_schedule-proration_behavior) parameter which controls what happens if the update request affects the billing configuration of the current phase.
2810
3762
  attr_accessor :proration_behavior
2811
3763
  # The date at which this phase of the subscription schedule starts or `now`. Must be set on the first phase.
@@ -2814,8 +3766,12 @@ module Stripe
2814
3766
  attr_accessor :transfer_data
2815
3767
  # If set to true the entire phase is counted as a trial and the customer will not be charged for any fees.
2816
3768
  attr_accessor :trial
3769
+ # Specify trial behavior when crossing phase boundaries
3770
+ attr_accessor :trial_continuation
2817
3771
  # Sets the phase to trialing from the start date to this date. Must be before the phase end date, can not be combined with `trial`
2818
3772
  attr_accessor :trial_end
3773
+ # Settings related to subscription trials.
3774
+ attr_accessor :trial_settings
2819
3775
 
2820
3776
  def initialize(
2821
3777
  add_invoice_items: nil,
@@ -2834,11 +3790,14 @@ module Stripe
2834
3790
  iterations: nil,
2835
3791
  metadata: nil,
2836
3792
  on_behalf_of: nil,
3793
+ pause_collection: nil,
2837
3794
  proration_behavior: nil,
2838
3795
  start_date: nil,
2839
3796
  transfer_data: nil,
2840
3797
  trial: nil,
2841
- trial_end: nil
3798
+ trial_continuation: nil,
3799
+ trial_end: nil,
3800
+ trial_settings: nil
2842
3801
  )
2843
3802
  @add_invoice_items = add_invoice_items
2844
3803
  @application_fee_percent = application_fee_percent
@@ -2856,23 +3815,91 @@ module Stripe
2856
3815
  @iterations = iterations
2857
3816
  @metadata = metadata
2858
3817
  @on_behalf_of = on_behalf_of
3818
+ @pause_collection = pause_collection
2859
3819
  @proration_behavior = proration_behavior
2860
3820
  @start_date = start_date
2861
3821
  @transfer_data = transfer_data
2862
3822
  @trial = trial
3823
+ @trial_continuation = trial_continuation
2863
3824
  @trial_end = trial_end
3825
+ @trial_settings = trial_settings
3826
+ end
3827
+ end
3828
+
3829
+ class Prebilling < Stripe::RequestParams
3830
+ class BillUntil < Stripe::RequestParams
3831
+ class AmendmentEnd < Stripe::RequestParams
3832
+ # The position of the amendment in the `amendments` array at which prebilling should end. Indexes start from 0 and must be less than the total number of supplied amendments.
3833
+ attr_accessor :index
3834
+
3835
+ def initialize(index: nil)
3836
+ @index = index
3837
+ end
3838
+ end
3839
+
3840
+ class Duration < Stripe::RequestParams
3841
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3842
+ attr_accessor :interval
3843
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3844
+ attr_accessor :interval_count
3845
+
3846
+ def initialize(interval: nil, interval_count: nil)
3847
+ @interval = interval
3848
+ @interval_count = interval_count
3849
+ end
3850
+ end
3851
+ # End the prebilled period when a specified amendment ends.
3852
+ attr_accessor :amendment_end
3853
+ # Time span for prebilling, starting from `bill_from`.
3854
+ attr_accessor :duration
3855
+ # End the prebilled period at a precise integer timestamp, starting from the Unix epoch.
3856
+ attr_accessor :timestamp
3857
+ # Select one of several ways to pass the `bill_until` value.
3858
+ attr_accessor :type
3859
+
3860
+ def initialize(amendment_end: nil, duration: nil, timestamp: nil, type: nil)
3861
+ @amendment_end = amendment_end
3862
+ @duration = duration
3863
+ @timestamp = timestamp
3864
+ @type = type
3865
+ end
3866
+ end
3867
+ # The end of the prebilled time period.
3868
+ attr_accessor :bill_until
3869
+ # This is used to determine the number of billing cycles to prebill.
3870
+ attr_accessor :iterations
3871
+
3872
+ def initialize(bill_until: nil, iterations: nil)
3873
+ @bill_until = bill_until
3874
+ @iterations = iterations
2864
3875
  end
2865
3876
  end
3877
+ # Changes to apply to the phases of the subscription schedule, in the order provided.
3878
+ attr_accessor :amendments
3879
+ # 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.
3880
+ attr_accessor :billing_behavior
2866
3881
  # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.
2867
3882
  attr_accessor :end_behavior
2868
3883
  # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.
2869
3884
  attr_accessor :phases
3885
+ # Provide any time periods to bill in advance.
3886
+ attr_accessor :prebilling
2870
3887
  # In cases where the `schedule_details` params update the currently active phase, specifies if and how to prorate at the time of the request.
2871
3888
  attr_accessor :proration_behavior
2872
3889
 
2873
- def initialize(end_behavior: nil, phases: nil, proration_behavior: nil)
3890
+ def initialize(
3891
+ amendments: nil,
3892
+ billing_behavior: nil,
3893
+ end_behavior: nil,
3894
+ phases: nil,
3895
+ prebilling: nil,
3896
+ proration_behavior: nil
3897
+ )
3898
+ @amendments = amendments
3899
+ @billing_behavior = billing_behavior
2874
3900
  @end_behavior = end_behavior
2875
3901
  @phases = phases
3902
+ @prebilling = prebilling
2876
3903
  @proration_behavior = proration_behavior
2877
3904
  end
2878
3905
  end
@@ -2880,16 +3907,44 @@ module Stripe
2880
3907
  class SubscriptionDetails < Stripe::RequestParams
2881
3908
  class Item < Stripe::RequestParams
2882
3909
  class Discount < Stripe::RequestParams
3910
+ class DiscountEnd < Stripe::RequestParams
3911
+ class Duration < Stripe::RequestParams
3912
+ # Specifies a type of interval unit. Either `day`, `week`, `month` or `year`.
3913
+ attr_accessor :interval
3914
+ # The number of intervals, as an whole number greater than 0. Stripe multiplies this by the interval type to get the overall duration.
3915
+ attr_accessor :interval_count
3916
+
3917
+ def initialize(interval: nil, interval_count: nil)
3918
+ @interval = interval
3919
+ @interval_count = interval_count
3920
+ end
3921
+ end
3922
+ # Time span for the redeemed discount.
3923
+ attr_accessor :duration
3924
+ # A precise Unix timestamp for the discount to end. Must be in the future.
3925
+ attr_accessor :timestamp
3926
+ # The type of calculation made to determine when the discount ends.
3927
+ attr_accessor :type
3928
+
3929
+ def initialize(duration: nil, timestamp: nil, type: nil)
3930
+ @duration = duration
3931
+ @timestamp = timestamp
3932
+ @type = type
3933
+ end
3934
+ end
2883
3935
  # ID of the coupon to create a new discount for.
2884
3936
  attr_accessor :coupon
2885
3937
  # ID of an existing discount on the object (or one of its ancestors) to reuse.
2886
3938
  attr_accessor :discount
3939
+ # Details to determine how long the discount should be applied for.
3940
+ attr_accessor :discount_end
2887
3941
  # ID of the promotion code to create a new discount for.
2888
3942
  attr_accessor :promotion_code
2889
3943
 
2890
- def initialize(coupon: nil, discount: nil, promotion_code: nil)
3944
+ def initialize(coupon: nil, discount: nil, discount_end: nil, promotion_code: nil)
2891
3945
  @coupon = coupon
2892
3946
  @discount = discount
3947
+ @discount_end = discount_end
2893
3948
  @promotion_code = promotion_code
2894
3949
  end
2895
3950
  end
@@ -2980,6 +4035,15 @@ module Stripe
2980
4035
  @tax_rates = tax_rates
2981
4036
  end
2982
4037
  end
4038
+
4039
+ class Prebilling < Stripe::RequestParams
4040
+ # This is used to determine the number of billing cycles to prebill.
4041
+ attr_accessor :iterations
4042
+
4043
+ def initialize(iterations: nil)
4044
+ @iterations = iterations
4045
+ end
4046
+ end
2983
4047
  # For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`.
2984
4048
  attr_accessor :billing_cycle_anchor
2985
4049
  # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period.
@@ -2992,6 +4056,8 @@ module Stripe
2992
4056
  attr_accessor :default_tax_rates
2993
4057
  # A list of up to 20 subscription items, each with an attached price.
2994
4058
  attr_accessor :items
4059
+ # The pre-billing to apply to the subscription as a preview.
4060
+ attr_accessor :prebilling
2995
4061
  # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.
2996
4062
  attr_accessor :proration_behavior
2997
4063
  # If previewing an update to a subscription, and doing proration, `subscription_details.proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_details.items`, or `subscription_details.trial_end` are required. Also, `subscription_details.proration_behavior` cannot be set to 'none'.
@@ -3010,6 +4076,7 @@ module Stripe
3010
4076
  cancel_now: nil,
3011
4077
  default_tax_rates: nil,
3012
4078
  items: nil,
4079
+ prebilling: nil,
3013
4080
  proration_behavior: nil,
3014
4081
  proration_date: nil,
3015
4082
  resume_at: nil,
@@ -3022,6 +4089,7 @@ module Stripe
3022
4089
  @cancel_now = cancel_now
3023
4090
  @default_tax_rates = default_tax_rates
3024
4091
  @items = items
4092
+ @prebilling = prebilling
3025
4093
  @proration_behavior = proration_behavior
3026
4094
  @proration_date = proration_date
3027
4095
  @resume_at = resume_at
@@ -3035,6 +4103,8 @@ module Stripe
3035
4103
  attr_accessor :currency
3036
4104
  # The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.
3037
4105
  attr_accessor :customer
4106
+ # The identifier of the account whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_account`, `customer_details`, `subscription`, or `schedule` must be set.
4107
+ attr_accessor :customer_account
3038
4108
  # Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.
3039
4109
  attr_accessor :customer_details
3040
4110
  # The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts.
@@ -3062,6 +4132,7 @@ module Stripe
3062
4132
  automatic_tax: nil,
3063
4133
  currency: nil,
3064
4134
  customer: nil,
4135
+ customer_account: nil,
3065
4136
  customer_details: nil,
3066
4137
  discounts: nil,
3067
4138
  expand: nil,
@@ -3077,6 +4148,7 @@ module Stripe
3077
4148
  @automatic_tax = automatic_tax
3078
4149
  @currency = currency
3079
4150
  @customer = customer
4151
+ @customer_account = customer_account
3080
4152
  @customer_details = customer_details
3081
4153
  @discounts = discounts
3082
4154
  @expand = expand
@@ -3106,6 +4178,8 @@ module Stripe
3106
4178
  attr_reader :amount_remaining
3107
4179
  # This is the sum of all the shipping amounts.
3108
4180
  attr_reader :amount_shipping
4181
+ # List of expected payments and corresponding due dates. This value will be null for invoices where collection_method=charge_automatically.
4182
+ attr_reader :amounts_due
3109
4183
  # ID of the Connect Application that created the invoice.
3110
4184
  attr_reader :application
3111
4185
  # Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. If a failure is returned with a non-retryable return code, the invoice can no longer be retried unless a new payment method is obtained. Retries will continue to be scheduled, and attempt_count will continue to increment, but retries will only be executed if a new payment method is obtained.
@@ -3140,6 +4214,8 @@ module Stripe
3140
4214
  attr_reader :custom_fields
3141
4215
  # The ID of the customer who will be billed.
3142
4216
  attr_reader :customer
4217
+ # The ID of the account who will be billed.
4218
+ attr_reader :customer_account
3143
4219
  # The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated.
3144
4220
  attr_reader :customer_address
3145
4221
  # The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.
@@ -3154,6 +4230,8 @@ module Stripe
3154
4230
  attr_reader :customer_tax_exempt
3155
4231
  # The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as `customer.tax_ids`. Once the invoice is finalized, this field will no longer be updated.
3156
4232
  attr_reader :customer_tax_ids
4233
+ # The margins applied to the invoice. Can be overridden by line item `margins`. Use `expand[]=default_margins` to expand each margin.
4234
+ attr_reader :default_margins
3157
4235
  # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
3158
4236
  attr_reader :default_payment_method
3159
4237
  # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
@@ -3244,6 +4322,8 @@ module Stripe
3244
4322
  attr_reader :total_discount_amounts
3245
4323
  # The integer amount in cents (or local equivalent) representing the total amount of the invoice including all discounts but excluding all tax.
3246
4324
  attr_reader :total_excluding_tax
4325
+ # The aggregate amounts calculated per margin across all line items.
4326
+ attr_reader :total_margin_amounts
3247
4327
  # Contains pretax credit amounts (ex: discount, credit grants, etc) that apply to this invoice. This is a combined list of total_pretax_credit_amounts across all invoice line items.
3248
4328
  attr_reader :total_pretax_credit_amounts
3249
4329
  # The aggregate tax information of all line items.
@@ -3273,12 +4353,92 @@ module Stripe
3273
4353
  )
3274
4354
  end
3275
4355
 
4356
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
4357
+ #
4358
+ # For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
4359
+ # of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
4360
+ #
4361
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
4362
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
4363
+ # invoice's status becomes paid.
4364
+ #
4365
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
4366
+ # credited to the invoice immediately.
4367
+ #
4368
+ # See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
4369
+ def attach_payment(params = {}, opts = {})
4370
+ request_stripe_object(
4371
+ method: :post,
4372
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(self["id"]) }),
4373
+ params: params,
4374
+ opts: opts
4375
+ )
4376
+ end
4377
+
4378
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
4379
+ #
4380
+ # For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
4381
+ # of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
4382
+ #
4383
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
4384
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
4385
+ # invoice's status becomes paid.
4386
+ #
4387
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
4388
+ # credited to the invoice immediately.
4389
+ #
4390
+ # See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
4391
+ def self.attach_payment(invoice, params = {}, opts = {})
4392
+ request_stripe_object(
4393
+ method: :post,
4394
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(invoice) }),
4395
+ params: params,
4396
+ opts: opts
4397
+ )
4398
+ end
4399
+
4400
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
4401
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
4402
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
4403
+ # invoice's status becomes paid.
4404
+ #
4405
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
4406
+ # credited to the invoice immediately.
4407
+ #
4408
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
4409
+ def attach_payment_intent(params = {}, opts = {})
4410
+ request_stripe_object(
4411
+ method: :post,
4412
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(self["id"]) }),
4413
+ params: params,
4414
+ opts: opts
4415
+ )
4416
+ end
4417
+
4418
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
4419
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
4420
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
4421
+ # invoice's status becomes paid.
4422
+ #
4423
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
4424
+ # credited to the invoice immediately.
4425
+ #
4426
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
4427
+ def self.attach_payment_intent(invoice, params = {}, opts = {})
4428
+ request_stripe_object(
4429
+ method: :post,
4430
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
4431
+ params: params,
4432
+ opts: opts
4433
+ )
4434
+ end
4435
+
3276
4436
  # This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers.
3277
4437
  def self.create(params = {}, opts = {})
3278
4438
  request_stripe_object(method: :post, path: "/v1/invoices", params: params, opts: opts)
3279
4439
  end
3280
4440
 
3281
- # At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.
4441
+ # At any time, you can preview the upcoming invoice for a subscription or subscription schedule. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.
3282
4442
  #
3283
4443
  # Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer's discount.
3284
4444
  #