stripe 8.7.0 → 9.0.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +477 -301
  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 -0
  7. data/lib/stripe/api_version.rb +2 -1
  8. data/lib/stripe/object_types.rb +18 -0
  9. data/lib/stripe/request_signing_authenticator.rb +83 -0
  10. data/lib/stripe/resources/account_session.rb +17 -0
  11. data/lib/stripe/resources/capital/financing_offer.rb +32 -0
  12. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  13. data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
  14. data/lib/stripe/resources/customer_session.rb +12 -0
  15. data/lib/stripe/resources/financial_connections/account.rb +39 -0
  16. data/lib/stripe/resources/financial_connections/inferred_balance.rb +13 -0
  17. data/lib/stripe/resources/financial_connections/transaction.rb +13 -0
  18. data/lib/stripe/resources/gift_cards/card.rb +25 -0
  19. data/lib/stripe/resources/gift_cards/transaction.rb +56 -0
  20. data/lib/stripe/resources/issuing/card.rb +18 -0
  21. data/lib/stripe/resources/issuing/card_bundle.rb +13 -0
  22. data/lib/stripe/resources/issuing/card_design.rb +58 -0
  23. data/lib/stripe/resources/order.rb +89 -0
  24. data/lib/stripe/resources/payment_method_configuration.rb +13 -0
  25. data/lib/stripe/resources/quote.rb +131 -0
  26. data/lib/stripe/resources/quote_phase.rb +29 -0
  27. data/lib/stripe/resources/quote_preview_invoice.rb +40 -0
  28. data/lib/stripe/resources/quote_preview_schedule.rb +8 -0
  29. data/lib/stripe/resources/subscription_schedule.rb +18 -0
  30. data/lib/stripe/resources/tax/form.rb +39 -0
  31. data/lib/stripe/resources/tax/registration.rb +19 -0
  32. data/lib/stripe/resources/terminal/reader.rb +54 -0
  33. data/lib/stripe/resources.rb +18 -0
  34. data/lib/stripe/stripe_client.rb +60 -26
  35. data/lib/stripe/stripe_configuration.rb +3 -0
  36. data/lib/stripe/util.rb +8 -1
  37. data/lib/stripe/version.rb +1 -1
  38. data/lib/stripe/webhook.rb +2 -1
  39. data/lib/stripe.rb +47 -0
  40. metadata +23 -4
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # An object detailing payment method configurations.
6
+ class PaymentMethodConfiguration < APIResource
7
+ extend Stripe::APIOperations::Create
8
+ extend Stripe::APIOperations::List
9
+ include Stripe::APIOperations::Save
10
+
11
+ OBJECT_NAME = "payment_method_configuration"
12
+ end
13
+ end
@@ -29,6 +29,15 @@ module Stripe
29
29
  )
30
30
  end
31
31
 
32
+ def draft_quote(params = {}, opts = {})
33
+ request_stripe_object(
34
+ method: :post,
35
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
36
+ params: params,
37
+ opts: opts
38
+ )
39
+ end
40
+
32
41
  def finalize_quote(params = {}, opts = {})
33
42
  request_stripe_object(
34
43
  method: :post,
@@ -56,6 +65,24 @@ module Stripe
56
65
  )
57
66
  end
58
67
 
68
+ def list_lines(params = {}, opts = {})
69
+ request_stripe_object(
70
+ method: :get,
71
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
72
+ params: params,
73
+ opts: opts
74
+ )
75
+ end
76
+
77
+ def mark_stale_quote(params = {}, opts = {})
78
+ request_stripe_object(
79
+ method: :post,
80
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
81
+ params: params,
82
+ opts: opts
83
+ )
84
+ end
85
+
59
86
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
60
87
  config = opts[:client]&.config || Stripe.config
61
88
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -68,6 +95,42 @@ module Stripe
68
95
  )
69
96
  end
70
97
 
98
+ def preview_invoice_lines(preview_invoice, params = {}, opts = {})
99
+ request_stripe_object(
100
+ method: :get,
101
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
102
+ params: params,
103
+ opts: opts
104
+ )
105
+ end
106
+
107
+ def preview_invoices(params = {}, opts = {})
108
+ request_stripe_object(
109
+ method: :get,
110
+ path: format("/v1/quotes/%<quote>s/preview_invoices", { quote: CGI.escape(self["id"]) }),
111
+ params: params,
112
+ opts: opts
113
+ )
114
+ end
115
+
116
+ def preview_subscription_schedules(params = {}, opts = {})
117
+ request_stripe_object(
118
+ method: :get,
119
+ path: format("/v1/quotes/%<quote>s/preview_subscription_schedules", { quote: CGI.escape(self["id"]) }),
120
+ params: params,
121
+ opts: opts
122
+ )
123
+ end
124
+
125
+ def reestimate(params = {}, opts = {})
126
+ request_stripe_object(
127
+ method: :post,
128
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
129
+ params: params,
130
+ opts: opts
131
+ )
132
+ end
133
+
71
134
  def self.accept(quote, params = {}, opts = {})
72
135
  request_stripe_object(
73
136
  method: :post,
@@ -86,6 +149,15 @@ module Stripe
86
149
  )
87
150
  end
88
151
 
152
+ def self.draft_quote(quote, params = {}, opts = {})
153
+ request_stripe_object(
154
+ method: :post,
155
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
156
+ params: params,
157
+ opts: opts
158
+ )
159
+ end
160
+
89
161
  def self.finalize_quote(quote, params = {}, opts = {})
90
162
  request_stripe_object(
91
163
  method: :post,
@@ -113,6 +185,24 @@ module Stripe
113
185
  )
114
186
  end
115
187
 
188
+ def self.list_lines(quote, params = {}, opts = {})
189
+ request_stripe_object(
190
+ method: :get,
191
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
192
+ params: params,
193
+ opts: opts
194
+ )
195
+ end
196
+
197
+ def self.mark_stale_quote(quote, params = {}, opts = {})
198
+ request_stripe_object(
199
+ method: :post,
200
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
201
+ params: params,
202
+ opts: opts
203
+ )
204
+ end
205
+
116
206
  def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
117
207
  config = opts[:client]&.config || Stripe.config
118
208
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -124,5 +214,46 @@ module Stripe
124
214
  &read_body_chunk_block
125
215
  )
126
216
  end
217
+
218
+ def self.preview_invoice_lines(
219
+ quote,
220
+ preview_invoice,
221
+ params = {},
222
+ opts = {}
223
+ )
224
+ request_stripe_object(
225
+ method: :get,
226
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
227
+ params: params,
228
+ opts: opts
229
+ )
230
+ end
231
+
232
+ def self.preview_invoices(quote, params = {}, opts = {})
233
+ request_stripe_object(
234
+ method: :get,
235
+ path: format("/v1/quotes/%<quote>s/preview_invoices", { quote: CGI.escape(quote) }),
236
+ params: params,
237
+ opts: opts
238
+ )
239
+ end
240
+
241
+ def self.preview_subscription_schedules(quote, params = {}, opts = {})
242
+ request_stripe_object(
243
+ method: :get,
244
+ path: format("/v1/quotes/%<quote>s/preview_subscription_schedules", { quote: CGI.escape(quote) }),
245
+ params: params,
246
+ opts: opts
247
+ )
248
+ end
249
+
250
+ def self.reestimate(quote, params = {}, opts = {})
251
+ request_stripe_object(
252
+ method: :post,
253
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
254
+ params: params,
255
+ opts: opts
256
+ )
257
+ end
127
258
  end
128
259
  end
@@ -0,0 +1,29 @@
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
+
11
+ def list_line_items(params = {}, opts = {})
12
+ request_stripe_object(
13
+ method: :get,
14
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(self["id"]) }),
15
+ params: params,
16
+ opts: opts
17
+ )
18
+ end
19
+
20
+ def self.list_line_items(quote_phase, params = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :get,
23
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(quote_phase) }),
24
+ params: params,
25
+ opts: opts
26
+ )
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,40 @@
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
+ end
40
+ end
@@ -0,0 +1,8 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuotePreviewSchedule < APIResource
6
+ OBJECT_NAME = "quote_preview_schedule"
7
+ end
8
+ end
@@ -12,6 +12,15 @@ module Stripe
12
12
 
13
13
  OBJECT_NAME = "subscription_schedule"
14
14
 
15
+ def amend(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
15
24
  def cancel(params = {}, opts = {})
16
25
  request_stripe_object(
17
26
  method: :post,
@@ -30,6 +39,15 @@ module Stripe
30
39
  )
31
40
  end
32
41
 
42
+ def self.amend(schedule, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+
33
51
  def self.cancel(schedule, params = {}, opts = {})
34
52
  request_stripe_object(
35
53
  method: :post,
@@ -0,0 +1,39 @@
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
+
14
+ def pdf(params = {}, opts = {}, &read_body_chunk_block)
15
+ config = opts[:client]&.config || Stripe.config
16
+ opts = { api_base: config.uploads_base }.merge(opts)
17
+ request_stream(
18
+ method: :get,
19
+ path: format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts,
22
+ &read_body_chunk_block
23
+ )
24
+ end
25
+
26
+ def self.pdf(id, params = {}, opts = {}, &read_body_chunk_block)
27
+ config = opts[:client]&.config || Stripe.config
28
+ opts = { api_base: config.uploads_base }.merge(opts)
29
+ execute_resource_request_stream(
30
+ :get,
31
+ format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(id) }),
32
+ params,
33
+ opts,
34
+ &read_body_chunk_block
35
+ )
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax).
7
+ #
8
+ # Stripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering).
9
+ #
10
+ # Related guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api)
11
+ class Registration < APIResource
12
+ extend Stripe::APIOperations::Create
13
+ extend Stripe::APIOperations::List
14
+ include Stripe::APIOperations::Save
15
+
16
+ OBJECT_NAME = "tax.registration"
17
+ end
18
+ end
19
+ end
@@ -23,6 +23,33 @@ module Stripe
23
23
  )
24
24
  end
25
25
 
26
+ def collect_inputs(params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(self["id"]) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ def collect_payment_method(params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(self["id"]) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def confirm_payment_intent(params = {}, opts = {})
45
+ request_stripe_object(
46
+ method: :post,
47
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(self["id"]) }),
48
+ params: params,
49
+ opts: opts
50
+ )
51
+ end
52
+
26
53
  def process_payment_intent(params = {}, opts = {})
27
54
  request_stripe_object(
28
55
  method: :post,
@@ -68,6 +95,33 @@ module Stripe
68
95
  )
69
96
  end
70
97
 
98
+ def self.collect_inputs(reader, params = {}, opts = {})
99
+ request_stripe_object(
100
+ method: :post,
101
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
102
+ params: params,
103
+ opts: opts
104
+ )
105
+ end
106
+
107
+ def self.collect_payment_method(reader, params = {}, opts = {})
108
+ request_stripe_object(
109
+ method: :post,
110
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
111
+ params: params,
112
+ opts: opts
113
+ )
114
+ end
115
+
116
+ def self.confirm_payment_intent(reader, params = {}, opts = {})
117
+ request_stripe_object(
118
+ method: :post,
119
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
120
+ params: params,
121
+ opts: opts
122
+ )
123
+ end
124
+
71
125
  def self.process_payment_intent(reader, params = {}, opts = {})
72
126
  request_stripe_object(
73
127
  method: :post,
@@ -3,6 +3,7 @@
3
3
 
4
4
  require "stripe/resources/account"
5
5
  require "stripe/resources/account_link"
6
+ require "stripe/resources/account_session"
6
7
  require "stripe/resources/apple_pay_domain"
7
8
  require "stripe/resources/application_fee"
8
9
  require "stripe/resources/application_fee_refund"
@@ -13,6 +14,9 @@ require "stripe/resources/bank_account"
13
14
  require "stripe/resources/billing_portal/configuration"
14
15
  require "stripe/resources/billing_portal/session"
15
16
  require "stripe/resources/capability"
17
+ require "stripe/resources/capital/financing_offer"
18
+ require "stripe/resources/capital/financing_summary"
19
+ require "stripe/resources/capital/financing_transaction"
16
20
  require "stripe/resources/card"
17
21
  require "stripe/resources/cash_balance"
18
22
  require "stripe/resources/charge"
@@ -24,6 +28,7 @@ require "stripe/resources/credit_note_line_item"
24
28
  require "stripe/resources/customer"
25
29
  require "stripe/resources/customer_balance_transaction"
26
30
  require "stripe/resources/customer_cash_balance_transaction"
31
+ require "stripe/resources/customer_session"
27
32
  require "stripe/resources/discount"
28
33
  require "stripe/resources/dispute"
29
34
  require "stripe/resources/ephemeral_key"
@@ -34,8 +39,12 @@ require "stripe/resources/file_link"
34
39
  require "stripe/resources/financial_connections/account"
35
40
  require "stripe/resources/financial_connections/account_owner"
36
41
  require "stripe/resources/financial_connections/account_ownership"
42
+ require "stripe/resources/financial_connections/inferred_balance"
37
43
  require "stripe/resources/financial_connections/session"
44
+ require "stripe/resources/financial_connections/transaction"
38
45
  require "stripe/resources/funding_instructions"
46
+ require "stripe/resources/gift_cards/card"
47
+ require "stripe/resources/gift_cards/transaction"
39
48
  require "stripe/resources/identity/verification_report"
40
49
  require "stripe/resources/identity/verification_session"
41
50
  require "stripe/resources/invoice"
@@ -43,15 +52,19 @@ require "stripe/resources/invoice_item"
43
52
  require "stripe/resources/invoice_line_item"
44
53
  require "stripe/resources/issuing/authorization"
45
54
  require "stripe/resources/issuing/card"
55
+ require "stripe/resources/issuing/card_bundle"
56
+ require "stripe/resources/issuing/card_design"
46
57
  require "stripe/resources/issuing/cardholder"
47
58
  require "stripe/resources/issuing/dispute"
48
59
  require "stripe/resources/issuing/transaction"
49
60
  require "stripe/resources/line_item"
50
61
  require "stripe/resources/login_link"
51
62
  require "stripe/resources/mandate"
63
+ require "stripe/resources/order"
52
64
  require "stripe/resources/payment_intent"
53
65
  require "stripe/resources/payment_link"
54
66
  require "stripe/resources/payment_method"
67
+ require "stripe/resources/payment_method_configuration"
55
68
  require "stripe/resources/payout"
56
69
  require "stripe/resources/person"
57
70
  require "stripe/resources/plan"
@@ -59,6 +72,9 @@ require "stripe/resources/price"
59
72
  require "stripe/resources/product"
60
73
  require "stripe/resources/promotion_code"
61
74
  require "stripe/resources/quote"
75
+ require "stripe/resources/quote_phase"
76
+ require "stripe/resources/quote_preview_invoice"
77
+ require "stripe/resources/quote_preview_schedule"
62
78
  require "stripe/resources/radar/early_fraud_warning"
63
79
  require "stripe/resources/radar/value_list"
64
80
  require "stripe/resources/radar/value_list_item"
@@ -78,6 +94,8 @@ require "stripe/resources/subscription_item"
78
94
  require "stripe/resources/subscription_schedule"
79
95
  require "stripe/resources/tax/calculation"
80
96
  require "stripe/resources/tax/calculation_line_item"
97
+ require "stripe/resources/tax/form"
98
+ require "stripe/resources/tax/registration"
81
99
  require "stripe/resources/tax/settings"
82
100
  require "stripe/resources/tax/transaction"
83
101
  require "stripe/resources/tax/transaction_line_item"