stripe 10.5.0 → 10.6.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +255 -40
  3. data/README.md +11 -0
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_operations/request.rb +2 -1
  6. data/lib/stripe/api_version.rb +1 -0
  7. data/lib/stripe/object_types.rb +20 -0
  8. data/lib/stripe/request_signing_authenticator.rb +79 -0
  9. data/lib/stripe/resources/account_notice.rb +14 -0
  10. data/lib/stripe/resources/capital/financing_offer.rb +36 -0
  11. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  12. data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
  13. data/lib/stripe/resources/confirmation_token.rb +13 -0
  14. data/lib/stripe/resources/customer_session.rb +12 -0
  15. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  16. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +13 -0
  17. data/lib/stripe/resources/gift_cards/card.rb +26 -0
  18. data/lib/stripe/resources/gift_cards/transaction.rb +60 -0
  19. data/lib/stripe/resources/invoice.rb +39 -0
  20. data/lib/stripe/resources/invoice_payment.rb +11 -0
  21. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +75 -0
  22. data/lib/stripe/resources/issuing/personalization_design.rb +83 -0
  23. data/lib/stripe/resources/issuing/physical_bundle.rb +13 -0
  24. data/lib/stripe/resources/margin.rb +14 -0
  25. data/lib/stripe/resources/order.rb +97 -0
  26. data/lib/stripe/resources/quote.rb +104 -0
  27. data/lib/stripe/resources/quote_phase.rb +31 -0
  28. data/lib/stripe/resources/quote_preview_invoice.rb +42 -0
  29. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +10 -0
  30. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  31. data/lib/stripe/resources/tax/form.rb +41 -0
  32. data/lib/stripe/resources/terminal/reader.rb +60 -0
  33. data/lib/stripe/resources.rb +19 -0
  34. data/lib/stripe/stripe_client.rb +62 -28
  35. data/lib/stripe/stripe_configuration.rb +2 -1
  36. data/lib/stripe/util.rb +8 -1
  37. data/lib/stripe/version.rb +1 -1
  38. data/lib/stripe.rb +46 -0
  39. metadata +23 -3
@@ -8,9 +8,13 @@ module Stripe
8
8
  extend Stripe::APIOperations::Create
9
9
  extend Stripe::APIOperations::List
10
10
  include Stripe::APIOperations::Save
11
+ extend Stripe::APIOperations::NestedResource
11
12
 
12
13
  OBJECT_NAME = "quote"
13
14
 
15
+ nested_resource_class_methods :preview_invoice, operations: %i[list]
16
+ nested_resource_class_methods :preview_subscription_schedule, operations: %i[list]
17
+
14
18
  # Accepts the specified quote.
15
19
  def accept(params = {}, opts = {})
16
20
  request_stripe_object(
@@ -61,6 +65,46 @@ module Stripe
61
65
  )
62
66
  end
63
67
 
68
+ # 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.
69
+ def list_lines(params = {}, opts = {})
70
+ request_stripe_object(
71
+ method: :get,
72
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
73
+ params: params,
74
+ opts: opts
75
+ )
76
+ end
77
+
78
+ # Preview the invoice line items that would be generated by accepting the quote.
79
+ def list_preview_invoice_lines(preview_invoice, params = {}, opts = {})
80
+ request_stripe_object(
81
+ method: :get,
82
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
83
+ params: params,
84
+ opts: opts
85
+ )
86
+ end
87
+
88
+ # Converts a stale quote to draft.
89
+ def mark_draft(params = {}, opts = {})
90
+ request_stripe_object(
91
+ method: :post,
92
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
93
+ params: params,
94
+ opts: opts
95
+ )
96
+ end
97
+
98
+ # Converts a draft or open quote to stale.
99
+ def mark_stale(params = {}, opts = {})
100
+ request_stripe_object(
101
+ method: :post,
102
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
103
+ params: params,
104
+ opts: opts
105
+ )
106
+ end
107
+
64
108
  # Download the PDF for a finalized quote
65
109
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
66
110
  config = opts[:client]&.config || Stripe.config
@@ -74,6 +118,16 @@ module Stripe
74
118
  )
75
119
  end
76
120
 
121
+ # Recompute the upcoming invoice estimate for the quote.
122
+ def reestimate(params = {}, opts = {})
123
+ request_stripe_object(
124
+ method: :post,
125
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
126
+ params: params,
127
+ opts: opts
128
+ )
129
+ end
130
+
77
131
  # Accepts the specified quote.
78
132
  def self.accept(quote, params = {}, opts = {})
79
133
  request_stripe_object(
@@ -124,6 +178,46 @@ module Stripe
124
178
  )
125
179
  end
126
180
 
181
+ # 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.
182
+ def self.list_lines(quote, params = {}, opts = {})
183
+ request_stripe_object(
184
+ method: :get,
185
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
186
+ params: params,
187
+ opts: opts
188
+ )
189
+ end
190
+
191
+ # Preview the invoice line items that would be generated by accepting the quote.
192
+ def self.list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
193
+ request_stripe_object(
194
+ method: :get,
195
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
196
+ params: params,
197
+ opts: opts
198
+ )
199
+ end
200
+
201
+ # Converts a stale quote to draft.
202
+ def self.mark_draft(quote, params = {}, opts = {})
203
+ request_stripe_object(
204
+ method: :post,
205
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
206
+ params: params,
207
+ opts: opts
208
+ )
209
+ end
210
+
211
+ # Converts a draft or open quote to stale.
212
+ def self.mark_stale(quote, params = {}, opts = {})
213
+ request_stripe_object(
214
+ method: :post,
215
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
216
+ params: params,
217
+ opts: opts
218
+ )
219
+ end
220
+
127
221
  # Download the PDF for a finalized quote
128
222
  def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
129
223
  config = opts[:client]&.config || Stripe.config
@@ -136,5 +230,15 @@ module Stripe
136
230
  &read_body_chunk_block
137
231
  )
138
232
  end
233
+
234
+ # Recompute the upcoming invoice estimate for the quote.
235
+ def self.reestimate(quote, params = {}, opts = {})
236
+ request_stripe_object(
237
+ method: :post,
238
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
239
+ params: params,
240
+ opts: opts
241
+ )
242
+ end
139
243
  end
140
244
  end
@@ -0,0 +1,31 @@
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
+ # 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.
12
+ def list_line_items(params = {}, opts = {})
13
+ request_stripe_object(
14
+ method: :get,
15
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(self["id"]) }),
16
+ params: params,
17
+ opts: opts
18
+ )
19
+ end
20
+
21
+ # 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.
22
+ def self.list_line_items(quote_phase, params = {}, opts = {})
23
+ request_stripe_object(
24
+ method: :get,
25
+ path: format("/v1/quote_phases/%<quote_phase>s/line_items", { quote_phase: CGI.escape(quote_phase) }),
26
+ params: params,
27
+ opts: opts
28
+ )
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,42 @@
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
+ extend Stripe::APIOperations::List
39
+
40
+ OBJECT_NAME = "quote_preview_invoice"
41
+ end
42
+ end
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuotePreviewSubscriptionSchedule < APIResource
6
+ extend Stripe::APIOperations::List
7
+
8
+ OBJECT_NAME = "quote_preview_subscription_schedule"
9
+ end
10
+ end
@@ -12,6 +12,16 @@ module Stripe
12
12
 
13
13
  OBJECT_NAME = "subscription_schedule"
14
14
 
15
+ # Amends an existing subscription schedule.
16
+ def amend(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
15
25
  # 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.
16
26
  def cancel(params = {}, opts = {})
17
27
  request_stripe_object(
@@ -32,6 +42,16 @@ module Stripe
32
42
  )
33
43
  end
34
44
 
45
+ # Amends an existing subscription schedule.
46
+ def self.amend(schedule, params = {}, opts = {})
47
+ request_stripe_object(
48
+ method: :post,
49
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
50
+ params: params,
51
+ opts: opts
52
+ )
53
+ end
54
+
35
55
  # 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.
36
56
  def self.cancel(schedule, params = {}, opts = {})
37
57
  request_stripe_object(
@@ -0,0 +1,41 @@
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
+ # Download the PDF for a tax form.
15
+ def pdf(params = {}, opts = {}, &read_body_chunk_block)
16
+ config = opts[:client]&.config || Stripe.config
17
+ opts = { api_base: config.uploads_base }.merge(opts)
18
+ request_stream(
19
+ method: :get,
20
+ path: format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts,
23
+ &read_body_chunk_block
24
+ )
25
+ end
26
+
27
+ # Download the PDF for a tax form.
28
+ def self.pdf(id, params = {}, opts = {}, &read_body_chunk_block)
29
+ config = opts[:client]&.config || Stripe.config
30
+ opts = { api_base: config.uploads_base }.merge(opts)
31
+ execute_resource_request_stream(
32
+ :get,
33
+ format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(id) }),
34
+ params,
35
+ opts,
36
+ &read_body_chunk_block
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -24,6 +24,36 @@ module Stripe
24
24
  )
25
25
  end
26
26
 
27
+ # Initiates an input collection flow on a Reader.
28
+ def collect_inputs(params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :post,
31
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(self["id"]) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
38
+ def collect_payment_method(params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(self["id"]) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ # Finalizes a payment on a Reader.
48
+ def confirm_payment_intent(params = {}, opts = {})
49
+ request_stripe_object(
50
+ method: :post,
51
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(self["id"]) }),
52
+ params: params,
53
+ opts: opts
54
+ )
55
+ end
56
+
27
57
  # Initiates a payment flow on a Reader.
28
58
  def process_payment_intent(params = {}, opts = {})
29
59
  request_stripe_object(
@@ -74,6 +104,36 @@ module Stripe
74
104
  )
75
105
  end
76
106
 
107
+ # Initiates an input collection flow on a Reader.
108
+ def self.collect_inputs(reader, params = {}, opts = {})
109
+ request_stripe_object(
110
+ method: :post,
111
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
112
+ params: params,
113
+ opts: opts
114
+ )
115
+ end
116
+
117
+ # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
118
+ def self.collect_payment_method(reader, params = {}, opts = {})
119
+ request_stripe_object(
120
+ method: :post,
121
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
122
+ params: params,
123
+ opts: opts
124
+ )
125
+ end
126
+
127
+ # Finalizes a payment on a Reader.
128
+ def self.confirm_payment_intent(reader, params = {}, opts = {})
129
+ request_stripe_object(
130
+ method: :post,
131
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
132
+ params: params,
133
+ opts: opts
134
+ )
135
+ end
136
+
77
137
  # Initiates a payment flow on a Reader.
78
138
  def self.process_payment_intent(reader, params = {}, opts = {})
79
139
  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"
@@ -14,6 +15,9 @@ require "stripe/resources/bank_account"
14
15
  require "stripe/resources/billing_portal/configuration"
15
16
  require "stripe/resources/billing_portal/session"
16
17
  require "stripe/resources/capability"
18
+ require "stripe/resources/capital/financing_offer"
19
+ require "stripe/resources/capital/financing_summary"
20
+ require "stripe/resources/capital/financing_transaction"
17
21
  require "stripe/resources/card"
18
22
  require "stripe/resources/cash_balance"
19
23
  require "stripe/resources/charge"
@@ -21,6 +25,7 @@ require "stripe/resources/checkout/session"
21
25
  require "stripe/resources/climate/order"
22
26
  require "stripe/resources/climate/product"
23
27
  require "stripe/resources/climate/supplier"
28
+ require "stripe/resources/confirmation_token"
24
29
  require "stripe/resources/country_spec"
25
30
  require "stripe/resources/coupon"
26
31
  require "stripe/resources/credit_note"
@@ -28,6 +33,7 @@ require "stripe/resources/credit_note_line_item"
28
33
  require "stripe/resources/customer"
29
34
  require "stripe/resources/customer_balance_transaction"
30
35
  require "stripe/resources/customer_cash_balance_transaction"
36
+ require "stripe/resources/customer_session"
31
37
  require "stripe/resources/discount"
32
38
  require "stripe/resources/dispute"
33
39
  require "stripe/resources/ephemeral_key"
@@ -36,25 +42,34 @@ require "stripe/resources/exchange_rate"
36
42
  require "stripe/resources/file"
37
43
  require "stripe/resources/file_link"
38
44
  require "stripe/resources/financial_connections/account"
45
+ require "stripe/resources/financial_connections/account_inferred_balance"
39
46
  require "stripe/resources/financial_connections/account_owner"
40
47
  require "stripe/resources/financial_connections/account_ownership"
41
48
  require "stripe/resources/financial_connections/session"
42
49
  require "stripe/resources/financial_connections/transaction"
43
50
  require "stripe/resources/funding_instructions"
51
+ require "stripe/resources/gift_cards/card"
52
+ require "stripe/resources/gift_cards/transaction"
44
53
  require "stripe/resources/identity/verification_report"
45
54
  require "stripe/resources/identity/verification_session"
46
55
  require "stripe/resources/invoice"
47
56
  require "stripe/resources/invoice_item"
48
57
  require "stripe/resources/invoice_line_item"
58
+ require "stripe/resources/invoice_payment"
49
59
  require "stripe/resources/issuing/authorization"
50
60
  require "stripe/resources/issuing/card"
51
61
  require "stripe/resources/issuing/cardholder"
62
+ require "stripe/resources/issuing/credit_underwriting_record"
52
63
  require "stripe/resources/issuing/dispute"
64
+ require "stripe/resources/issuing/personalization_design"
65
+ require "stripe/resources/issuing/physical_bundle"
53
66
  require "stripe/resources/issuing/token"
54
67
  require "stripe/resources/issuing/transaction"
55
68
  require "stripe/resources/line_item"
56
69
  require "stripe/resources/login_link"
57
70
  require "stripe/resources/mandate"
71
+ require "stripe/resources/margin"
72
+ require "stripe/resources/order"
58
73
  require "stripe/resources/payment_intent"
59
74
  require "stripe/resources/payment_link"
60
75
  require "stripe/resources/payment_method"
@@ -67,6 +82,9 @@ require "stripe/resources/price"
67
82
  require "stripe/resources/product"
68
83
  require "stripe/resources/promotion_code"
69
84
  require "stripe/resources/quote"
85
+ require "stripe/resources/quote_phase"
86
+ require "stripe/resources/quote_preview_invoice"
87
+ require "stripe/resources/quote_preview_subscription_schedule"
70
88
  require "stripe/resources/radar/early_fraud_warning"
71
89
  require "stripe/resources/radar/value_list"
72
90
  require "stripe/resources/radar/value_list_item"
@@ -86,6 +104,7 @@ require "stripe/resources/subscription_item"
86
104
  require "stripe/resources/subscription_schedule"
87
105
  require "stripe/resources/tax/calculation"
88
106
  require "stripe/resources/tax/calculation_line_item"
107
+ require "stripe/resources/tax/form"
89
108
  require "stripe/resources/tax/registration"
90
109
  require "stripe/resources/tax/settings"
91
110
  require "stripe/resources/tax/transaction"