stripe 10.13.0 → 10.14.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +305 -46
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +11 -0
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_operations/request.rb +2 -1
  7. data/lib/stripe/api_version.rb +1 -0
  8. data/lib/stripe/object_types.rb +23 -0
  9. data/lib/stripe/request_signing_authenticator.rb +79 -0
  10. data/lib/stripe/resources/account_notice.rb +32 -0
  11. data/lib/stripe/resources/billing/meter.rb +83 -0
  12. data/lib/stripe/resources/billing/meter_event.rb +27 -0
  13. data/lib/stripe/resources/billing/meter_event_adjustment.rb +26 -0
  14. data/lib/stripe/resources/billing/meter_event_summary.rb +15 -0
  15. data/lib/stripe/resources/capital/financing_offer.rb +49 -0
  16. data/lib/stripe/resources/capital/financing_summary.rb +15 -0
  17. data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
  18. data/lib/stripe/resources/entitlements/active_entitlement.rb +26 -0
  19. data/lib/stripe/resources/entitlements/feature.rb +38 -0
  20. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  21. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  22. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  23. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  24. data/lib/stripe/resources/invoice.rb +113 -0
  25. data/lib/stripe/resources/invoice_payment.rb +12 -0
  26. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  27. data/lib/stripe/resources/margin.rb +37 -0
  28. data/lib/stripe/resources/order.rb +120 -0
  29. data/lib/stripe/resources/payment_intent.rb +50 -0
  30. data/lib/stripe/resources/product.rb +3 -0
  31. data/lib/stripe/resources/product_feature.rb +13 -0
  32. data/lib/stripe/resources/quote.rb +106 -2
  33. data/lib/stripe/resources/quote_phase.rb +39 -0
  34. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  35. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  36. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  37. data/lib/stripe/resources/tax/form.rb +49 -0
  38. data/lib/stripe/resources/terminal/reader.rb +60 -0
  39. data/lib/stripe/resources.rb +22 -0
  40. data/lib/stripe/stripe_client.rb +62 -28
  41. data/lib/stripe/stripe_configuration.rb +2 -1
  42. data/lib/stripe/util.rb +8 -1
  43. data/lib/stripe/version.rb +1 -1
  44. data/lib/stripe.rb +54 -0
  45. metadata +26 -3
@@ -7,6 +7,7 @@ module Stripe
7
7
  class Quote < APIResource
8
8
  extend Stripe::APIOperations::Create
9
9
  extend Stripe::APIOperations::List
10
+ extend Stripe::APIOperations::NestedResource
10
11
  include Stripe::APIOperations::Save
11
12
 
12
13
  OBJECT_NAME = "quote"
@@ -14,6 +15,9 @@ module Stripe
14
15
  "quote"
15
16
  end
16
17
 
18
+ nested_resource_class_methods :preview_invoice, operations: %i[list]
19
+ nested_resource_class_methods :preview_subscription_schedule, operations: %i[list]
20
+
17
21
  # Accepts the specified quote.
18
22
  def accept(params = {}, opts = {})
19
23
  request_stripe_object(
@@ -124,7 +128,87 @@ module Stripe
124
128
  )
125
129
  end
126
130
 
127
- # Download the PDF for a finalized quote
131
+ # Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
132
+ def list_lines(params = {}, opts = {})
133
+ request_stripe_object(
134
+ method: :get,
135
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
136
+ params: params,
137
+ opts: opts
138
+ )
139
+ end
140
+
141
+ # Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
142
+ def self.list_lines(quote, params = {}, opts = {})
143
+ request_stripe_object(
144
+ method: :get,
145
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
146
+ params: params,
147
+ opts: opts
148
+ )
149
+ end
150
+
151
+ # Preview the invoice line items that would be generated by accepting the quote.
152
+ def list_preview_invoice_lines(preview_invoice, params = {}, opts = {})
153
+ request_stripe_object(
154
+ method: :get,
155
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
156
+ params: params,
157
+ opts: opts
158
+ )
159
+ end
160
+
161
+ # Preview the invoice line items that would be generated by accepting the quote.
162
+ def self.list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
163
+ request_stripe_object(
164
+ method: :get,
165
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
166
+ params: params,
167
+ opts: opts
168
+ )
169
+ end
170
+
171
+ # Converts a stale quote to draft.
172
+ def mark_draft(params = {}, opts = {})
173
+ request_stripe_object(
174
+ method: :post,
175
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
176
+ params: params,
177
+ opts: opts
178
+ )
179
+ end
180
+
181
+ # Converts a stale quote to draft.
182
+ def self.mark_draft(quote, params = {}, opts = {})
183
+ request_stripe_object(
184
+ method: :post,
185
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
186
+ params: params,
187
+ opts: opts
188
+ )
189
+ end
190
+
191
+ # Converts a draft or open quote to stale.
192
+ def mark_stale(params = {}, opts = {})
193
+ request_stripe_object(
194
+ method: :post,
195
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
196
+ params: params,
197
+ opts: opts
198
+ )
199
+ end
200
+
201
+ # Converts a draft or open quote to stale.
202
+ def self.mark_stale(quote, params = {}, opts = {})
203
+ request_stripe_object(
204
+ method: :post,
205
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
206
+ params: params,
207
+ opts: opts
208
+ )
209
+ end
210
+
211
+ # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.corp.stripe.com/quotes/overview#quote_pdf)
128
212
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
129
213
  config = opts[:client]&.config || Stripe.config
130
214
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -137,7 +221,7 @@ module Stripe
137
221
  )
138
222
  end
139
223
 
140
- # Download the PDF for a finalized quote
224
+ # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.corp.stripe.com/quotes/overview#quote_pdf)
141
225
  def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
142
226
  config = opts[:client]&.config || Stripe.config
143
227
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -150,6 +234,26 @@ module Stripe
150
234
  )
151
235
  end
152
236
 
237
+ # Recompute the upcoming invoice estimate for the quote.
238
+ def reestimate(params = {}, opts = {})
239
+ request_stripe_object(
240
+ method: :post,
241
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
242
+ params: params,
243
+ opts: opts
244
+ )
245
+ end
246
+
247
+ # Recompute the upcoming invoice estimate for the quote.
248
+ def self.reestimate(quote, params = {}, opts = {})
249
+ request_stripe_object(
250
+ method: :post,
251
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
252
+ params: params,
253
+ opts: opts
254
+ )
255
+ end
256
+
153
257
  # A quote models prices and services for a customer.
154
258
  def self.update(id, params = {}, opts = {})
155
259
  request_stripe_object(
@@ -0,0 +1,39 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A quote phase describes the line items, coupons, and trialing status of a subscription for a predefined time period.
6
+ class QuotePhase < APIResource
7
+ extend Stripe::APIOperations::List
8
+
9
+ OBJECT_NAME = "quote_phase"
10
+ def self.object_name
11
+ "quote_phase"
12
+ end
13
+
14
+ # Returns a list of quote phases.
15
+ def self.list(filters = {}, opts = {})
16
+ request_stripe_object(method: :get, path: "/v1/quote_phases", params: filters, opts: opts)
17
+ end
18
+
19
+ # When retrieving a quote phase, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
20
+ def list_line_items(params = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :get,
23
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(self["id"]) }),
24
+ params: params,
25
+ opts: opts
26
+ )
27
+ end
28
+
29
+ # When retrieving a quote phase, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
30
+ def self.list_line_items(quote_phase, params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :get,
33
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(quote_phase) }),
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,43 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # Invoices are statements of amounts owed by a customer, and are either
6
+ # generated one-off, or generated periodically from a subscription.
7
+ #
8
+ # They contain [invoice items](https://stripe.com/docs/api#invoiceitems), and proration adjustments
9
+ # that may be caused by subscription upgrades/downgrades (if necessary).
10
+ #
11
+ # If your invoice is configured to be billed through automatic charges,
12
+ # Stripe automatically finalizes your invoice and attempts payment. Note
13
+ # that finalizing the invoice,
14
+ # [when automatic](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection), does
15
+ # not happen immediately as the invoice is created. Stripe waits
16
+ # until one hour after the last webhook was successfully sent (or the last
17
+ # webhook timed out after failing). If you (and the platforms you may have
18
+ # connected to) have no webhooks configured, Stripe waits one hour after
19
+ # creation to finalize the invoice.
20
+ #
21
+ # If your invoice is configured to be billed by sending an email, then based on your
22
+ # [email settings](https://dashboard.stripe.com/account/billing/automatic),
23
+ # Stripe will email the invoice to your customer and await payment. These
24
+ # emails can contain a link to a hosted page to pay the invoice.
25
+ #
26
+ # Stripe applies any customer credit on the account before determining the
27
+ # amount due for the invoice (i.e., the amount that will be actually
28
+ # charged). If the amount due for the invoice is less than Stripe's [minimum allowed charge
29
+ # per currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts), the
30
+ # invoice is automatically marked paid, and we add the amount due to the
31
+ # customer's credit balance which is applied to the next invoice.
32
+ #
33
+ # More details on the customer's credit balance are
34
+ # [here](https://stripe.com/docs/billing/customer/balance).
35
+ #
36
+ # Related guide: [Send invoices to customers](https://stripe.com/docs/billing/invoices/sending)
37
+ class QuotePreviewInvoice < APIResource
38
+ OBJECT_NAME = "quote_preview_invoice"
39
+ def self.object_name
40
+ "quote_preview_invoice"
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuotePreviewSubscriptionSchedule < APIResource
6
+ OBJECT_NAME = "quote_preview_subscription_schedule"
7
+ def self.object_name
8
+ "quote_preview_subscription_schedule"
9
+ end
10
+ end
11
+ end
@@ -15,6 +15,26 @@ module Stripe
15
15
  "subscription_schedule"
16
16
  end
17
17
 
18
+ # Amends an existing subscription schedule.
19
+ def amend(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+
28
+ # Amends an existing subscription schedule.
29
+ def self.amend(schedule, params = {}, opts = {})
30
+ request_stripe_object(
31
+ method: :post,
32
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
33
+ params: params,
34
+ opts: opts
35
+ )
36
+ end
37
+
18
38
  # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
19
39
  def cancel(params = {}, opts = {})
20
40
  request_stripe_object(
@@ -0,0 +1,49 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # Tax forms are legal documents which are delivered to one or more tax authorities for information reporting purposes.
7
+ #
8
+ # Related guide: [US tax reporting for Connect platforms](https://stripe.com/docs/connect/tax-reporting)
9
+ class Form < APIResource
10
+ extend Stripe::APIOperations::List
11
+
12
+ OBJECT_NAME = "tax.form"
13
+ def self.object_name
14
+ "tax.form"
15
+ end
16
+
17
+ # Returns a list of tax forms which were previously created. The tax forms are returned in sorted order, with the oldest tax forms appearing first.
18
+ def self.list(filters = {}, opts = {})
19
+ request_stripe_object(method: :get, path: "/v1/tax/forms", params: filters, opts: opts)
20
+ end
21
+
22
+ # Download the PDF for a tax form.
23
+ def pdf(params = {}, opts = {}, &read_body_chunk_block)
24
+ config = opts[:client]&.config || Stripe.config
25
+ opts = { api_base: config.uploads_base }.merge(opts)
26
+ request_stream(
27
+ method: :get,
28
+ path: format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(self["id"]) }),
29
+ params: params,
30
+ opts: opts,
31
+ &read_body_chunk_block
32
+ )
33
+ end
34
+
35
+ # Download the PDF for a tax form.
36
+ def self.pdf(id, params = {}, opts = {}, &read_body_chunk_block)
37
+ config = opts[:client]&.config || Stripe.config
38
+ opts = { api_base: config.uploads_base }.merge(opts)
39
+ execute_resource_request_stream(
40
+ :get,
41
+ format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(id) }),
42
+ params,
43
+ opts,
44
+ &read_body_chunk_block
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
@@ -37,6 +37,66 @@ module Stripe
37
37
  )
38
38
  end
39
39
 
40
+ # Initiates an input collection flow on a Reader.
41
+ def collect_inputs(params = {}, opts = {})
42
+ request_stripe_object(
43
+ method: :post,
44
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(self["id"]) }),
45
+ params: params,
46
+ opts: opts
47
+ )
48
+ end
49
+
50
+ # Initiates an input collection flow on a Reader.
51
+ def self.collect_inputs(reader, params = {}, opts = {})
52
+ request_stripe_object(
53
+ method: :post,
54
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
55
+ params: params,
56
+ opts: opts
57
+ )
58
+ end
59
+
60
+ # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
61
+ def collect_payment_method(params = {}, opts = {})
62
+ request_stripe_object(
63
+ method: :post,
64
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(self["id"]) }),
65
+ params: params,
66
+ opts: opts
67
+ )
68
+ end
69
+
70
+ # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
71
+ def self.collect_payment_method(reader, params = {}, opts = {})
72
+ request_stripe_object(
73
+ method: :post,
74
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
75
+ params: params,
76
+ opts: opts
77
+ )
78
+ end
79
+
80
+ # Finalizes a payment on a Reader.
81
+ def confirm_payment_intent(params = {}, opts = {})
82
+ request_stripe_object(
83
+ method: :post,
84
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(self["id"]) }),
85
+ params: params,
86
+ opts: opts
87
+ )
88
+ end
89
+
90
+ # Finalizes a payment on a Reader.
91
+ def self.confirm_payment_intent(reader, params = {}, opts = {})
92
+ request_stripe_object(
93
+ method: :post,
94
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
95
+ params: params,
96
+ opts: opts
97
+ )
98
+ end
99
+
40
100
  # Creates a new Reader object.
41
101
  def self.create(params = {}, opts = {})
42
102
  request_stripe_object(
@@ -3,6 +3,7 @@
3
3
 
4
4
  require "stripe/resources/account"
5
5
  require "stripe/resources/account_link"
6
+ require "stripe/resources/account_notice"
6
7
  require "stripe/resources/account_session"
7
8
  require "stripe/resources/apple_pay_domain"
8
9
  require "stripe/resources/application_fee"
@@ -11,9 +12,16 @@ require "stripe/resources/apps/secret"
11
12
  require "stripe/resources/balance"
12
13
  require "stripe/resources/balance_transaction"
13
14
  require "stripe/resources/bank_account"
15
+ require "stripe/resources/billing/meter"
16
+ require "stripe/resources/billing/meter_event"
17
+ require "stripe/resources/billing/meter_event_adjustment"
18
+ require "stripe/resources/billing/meter_event_summary"
14
19
  require "stripe/resources/billing_portal/configuration"
15
20
  require "stripe/resources/billing_portal/session"
16
21
  require "stripe/resources/capability"
22
+ require "stripe/resources/capital/financing_offer"
23
+ require "stripe/resources/capital/financing_summary"
24
+ require "stripe/resources/capital/financing_transaction"
17
25
  require "stripe/resources/card"
18
26
  require "stripe/resources/cash_balance"
19
27
  require "stripe/resources/charge"
@@ -32,26 +40,33 @@ require "stripe/resources/customer_cash_balance_transaction"
32
40
  require "stripe/resources/customer_session"
33
41
  require "stripe/resources/discount"
34
42
  require "stripe/resources/dispute"
43
+ require "stripe/resources/entitlements/active_entitlement"
44
+ require "stripe/resources/entitlements/feature"
35
45
  require "stripe/resources/ephemeral_key"
36
46
  require "stripe/resources/event"
37
47
  require "stripe/resources/exchange_rate"
38
48
  require "stripe/resources/file"
39
49
  require "stripe/resources/file_link"
40
50
  require "stripe/resources/financial_connections/account"
51
+ require "stripe/resources/financial_connections/account_inferred_balance"
41
52
  require "stripe/resources/financial_connections/account_owner"
42
53
  require "stripe/resources/financial_connections/account_ownership"
43
54
  require "stripe/resources/financial_connections/session"
44
55
  require "stripe/resources/financial_connections/transaction"
45
56
  require "stripe/resources/forwarding/request"
46
57
  require "stripe/resources/funding_instructions"
58
+ require "stripe/resources/gift_cards/card"
59
+ require "stripe/resources/gift_cards/transaction"
47
60
  require "stripe/resources/identity/verification_report"
48
61
  require "stripe/resources/identity/verification_session"
49
62
  require "stripe/resources/invoice"
50
63
  require "stripe/resources/invoice_item"
51
64
  require "stripe/resources/invoice_line_item"
65
+ require "stripe/resources/invoice_payment"
52
66
  require "stripe/resources/issuing/authorization"
53
67
  require "stripe/resources/issuing/card"
54
68
  require "stripe/resources/issuing/cardholder"
69
+ require "stripe/resources/issuing/credit_underwriting_record"
55
70
  require "stripe/resources/issuing/dispute"
56
71
  require "stripe/resources/issuing/personalization_design"
57
72
  require "stripe/resources/issuing/physical_bundle"
@@ -60,6 +75,8 @@ require "stripe/resources/issuing/transaction"
60
75
  require "stripe/resources/line_item"
61
76
  require "stripe/resources/login_link"
62
77
  require "stripe/resources/mandate"
78
+ require "stripe/resources/margin"
79
+ require "stripe/resources/order"
63
80
  require "stripe/resources/payment_intent"
64
81
  require "stripe/resources/payment_link"
65
82
  require "stripe/resources/payment_method"
@@ -70,8 +87,12 @@ require "stripe/resources/person"
70
87
  require "stripe/resources/plan"
71
88
  require "stripe/resources/price"
72
89
  require "stripe/resources/product"
90
+ require "stripe/resources/product_feature"
73
91
  require "stripe/resources/promotion_code"
74
92
  require "stripe/resources/quote"
93
+ require "stripe/resources/quote_phase"
94
+ require "stripe/resources/quote_preview_invoice"
95
+ require "stripe/resources/quote_preview_subscription_schedule"
75
96
  require "stripe/resources/radar/early_fraud_warning"
76
97
  require "stripe/resources/radar/value_list"
77
98
  require "stripe/resources/radar/value_list_item"
@@ -91,6 +112,7 @@ require "stripe/resources/subscription_item"
91
112
  require "stripe/resources/subscription_schedule"
92
113
  require "stripe/resources/tax/calculation"
93
114
  require "stripe/resources/tax/calculation_line_item"
115
+ require "stripe/resources/tax/form"
94
116
  require "stripe/resources/tax/registration"
95
117
  require "stripe/resources/tax/settings"
96
118
  require "stripe/resources/tax/transaction"