stripe 10.8.0 → 10.9.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +275 -45
  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 +23 -0
  8. data/lib/stripe/request_signing_authenticator.rb +79 -0
  9. data/lib/stripe/resources/account_notice.rb +29 -0
  10. data/lib/stripe/resources/capital/financing_offer.rb +46 -0
  11. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  12. data/lib/stripe/resources/capital/financing_transaction.rb +24 -0
  13. data/lib/stripe/resources/confirmation_token.rb +13 -0
  14. data/lib/stripe/resources/customer.rb +11 -0
  15. data/lib/stripe/resources/customer_entitlement.rb +9 -0
  16. data/lib/stripe/resources/customer_entitlement_summary.rb +9 -0
  17. data/lib/stripe/resources/entitlements/event.rb +23 -0
  18. data/lib/stripe/resources/entitlements/feature.rb +35 -0
  19. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  20. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +11 -0
  21. data/lib/stripe/resources/gift_cards/card.rb +56 -0
  22. data/lib/stripe/resources/gift_cards/transaction.rb +90 -0
  23. data/lib/stripe/resources/invoice.rb +53 -0
  24. data/lib/stripe/resources/invoice_payment.rb +9 -0
  25. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +85 -0
  26. data/lib/stripe/resources/issuing/personalization_design.rb +113 -0
  27. data/lib/stripe/resources/issuing/physical_bundle.rb +23 -0
  28. data/lib/stripe/resources/margin.rb +34 -0
  29. data/lib/stripe/resources/order.rb +117 -0
  30. data/lib/stripe/resources/quote.rb +104 -0
  31. data/lib/stripe/resources/quote_phase.rb +36 -0
  32. data/lib/stripe/resources/quote_preview_invoice.rb +40 -0
  33. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +8 -0
  34. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  35. data/lib/stripe/resources/tax/form.rb +46 -0
  36. data/lib/stripe/resources/terminal/reader.rb +60 -0
  37. data/lib/stripe/resources.rb +22 -0
  38. data/lib/stripe/stripe_client.rb +62 -28
  39. data/lib/stripe/stripe_configuration.rb +2 -1
  40. data/lib/stripe/util.rb +8 -1
  41. data/lib/stripe/version.rb +1 -1
  42. data/lib/stripe.rb +46 -0
  43. metadata +26 -3
@@ -0,0 +1,113 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line.
7
+ class PersonalizationDesign < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "issuing.personalization_design"
13
+
14
+ # Creates a personalization design object.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: "/v1/issuing/personalization_designs",
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ # Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
25
+ def self.list(filters = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :get,
28
+ path: "/v1/issuing/personalization_designs",
29
+ params: filters,
30
+ opts: opts
31
+ )
32
+ end
33
+
34
+ # Updates a card personalization object.
35
+ def self.update(id, params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/issuing/personalization_designs/%<id>s", { id: CGI.escape(id) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def test_helpers
45
+ TestHelpers.new(self)
46
+ end
47
+
48
+ class TestHelpers < APIResourceTestHelpers
49
+ RESOURCE_CLASS = PersonalizationDesign
50
+
51
+ # Updates the status of the specified testmode personalization design object to active.
52
+ def self.activate(personalization_design, params = {}, opts = {})
53
+ request_stripe_object(
54
+ method: :post,
55
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(personalization_design) }),
56
+ params: params,
57
+ opts: opts
58
+ )
59
+ end
60
+
61
+ # Updates the status of the specified testmode personalization design object to inactive.
62
+ def self.deactivate(personalization_design, params = {}, opts = {})
63
+ request_stripe_object(
64
+ method: :post,
65
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(personalization_design) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
70
+
71
+ # Updates the status of the specified testmode personalization design object to rejected.
72
+ def self.reject(personalization_design, params = {}, opts = {})
73
+ request_stripe_object(
74
+ method: :post,
75
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(personalization_design) }),
76
+ params: params,
77
+ opts: opts
78
+ )
79
+ end
80
+
81
+ # Updates the status of the specified testmode personalization design object to active.
82
+ def activate(params = {}, opts = {})
83
+ @resource.request_stripe_object(
84
+ method: :post,
85
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(@resource["id"]) }),
86
+ params: params,
87
+ opts: opts
88
+ )
89
+ end
90
+
91
+ # Updates the status of the specified testmode personalization design object to inactive.
92
+ def deactivate(params = {}, opts = {})
93
+ @resource.request_stripe_object(
94
+ method: :post,
95
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(@resource["id"]) }),
96
+ params: params,
97
+ opts: opts
98
+ )
99
+ end
100
+
101
+ # Updates the status of the specified testmode personalization design object to rejected.
102
+ def reject(params = {}, opts = {})
103
+ @resource.request_stripe_object(
104
+ method: :post,
105
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(@resource["id"]) }),
106
+ params: params,
107
+ opts: opts
108
+ )
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Physical Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card.
7
+ class PhysicalBundle < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "issuing.physical_bundle"
11
+
12
+ # Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
13
+ def self.list(filters = {}, opts = {})
14
+ request_stripe_object(
15
+ method: :get,
16
+ path: "/v1/issuing/physical_bundles",
17
+ params: filters,
18
+ opts: opts
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,34 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A (partner) margin represents a specific discount distributed in partner reseller programs to business partners who
6
+ # resell products and services and earn a discount (margin) for doing so.
7
+ class Margin < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "margin"
13
+
14
+ # Create a margin object to be used with invoices, invoice items, and invoice line items for a customer to represent a partner discount.A margin has a percent_off which is the percent that will be taken off the subtotal after all items and other discounts and promotions) of any invoices for a customer. Calculation of prorations do not include any partner margins applied on the original invoice item.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(method: :post, path: "/v1/billing/margins", params: params, opts: opts)
17
+ end
18
+
19
+ # Retrieve a list of your margins.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(method: :get, path: "/v1/billing/margins", params: filters, opts: opts)
22
+ end
23
+
24
+ # Update the specified margin object. Certain fields of the margin object are not editable.
25
+ def self.update(id, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/billing/margins/%<id>s", { id: CGI.escape(id) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,117 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # An Order describes a purchase being made by a customer, including the
6
+ # products & quantities being purchased, the order status, the payment information,
7
+ # and the billing/shipping details.
8
+ #
9
+ # Related guide: [Orders overview](https://stripe.com/docs/orders)
10
+ class Order < APIResource
11
+ extend Stripe::APIOperations::Create
12
+ extend Stripe::APIOperations::List
13
+ include Stripe::APIOperations::Save
14
+
15
+ OBJECT_NAME = "order"
16
+
17
+ # Cancels the order as well as the payment intent if one is attached.
18
+ def cancel(params = {}, opts = {})
19
+ request_stripe_object(
20
+ method: :post,
21
+ path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
22
+ params: params,
23
+ opts: opts
24
+ )
25
+ end
26
+
27
+ # When retrieving an order, 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.
28
+ def list_line_items(params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :get,
31
+ path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(self["id"]) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ # Reopens a submitted order.
38
+ def reopen(params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(self["id"]) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ # Submitting an Order transitions the status to processing and creates a PaymentIntent object so the order can be paid. If the Order has an amount_total of 0, no PaymentIntent object will be created. Once the order is submitted, its contents cannot be changed, unless the [reopen](https://stripe.com/docs/api#reopen_order) method is called.
48
+ def submit(params = {}, opts = {})
49
+ request_stripe_object(
50
+ method: :post,
51
+ path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
52
+ params: params,
53
+ opts: opts
54
+ )
55
+ end
56
+
57
+ # Cancels the order as well as the payment intent if one is attached.
58
+ def self.cancel(id, params = {}, opts = {})
59
+ request_stripe_object(
60
+ method: :post,
61
+ path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
62
+ params: params,
63
+ opts: opts
64
+ )
65
+ end
66
+
67
+ # When retrieving an order, 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.
68
+ def self.list_line_items(id, params = {}, opts = {})
69
+ request_stripe_object(
70
+ method: :get,
71
+ path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
72
+ params: params,
73
+ opts: opts
74
+ )
75
+ end
76
+
77
+ # Reopens a submitted order.
78
+ def self.reopen(id, params = {}, opts = {})
79
+ request_stripe_object(
80
+ method: :post,
81
+ path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
82
+ params: params,
83
+ opts: opts
84
+ )
85
+ end
86
+
87
+ # Submitting an Order transitions the status to processing and creates a PaymentIntent object so the order can be paid. If the Order has an amount_total of 0, no PaymentIntent object will be created. Once the order is submitted, its contents cannot be changed, unless the [reopen](https://stripe.com/docs/api#reopen_order) method is called.
88
+ def self.submit(id, params = {}, opts = {})
89
+ request_stripe_object(
90
+ method: :post,
91
+ path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
92
+ params: params,
93
+ opts: opts
94
+ )
95
+ end
96
+
97
+ # Creates a new open order object.
98
+ def self.create(params = {}, opts = {})
99
+ request_stripe_object(method: :post, path: "/v1/orders", params: params, opts: opts)
100
+ end
101
+
102
+ # Returns a list of your orders. The orders are returned sorted by creation date, with the most recently created orders appearing first.
103
+ def self.list(filters = {}, opts = {})
104
+ request_stripe_object(method: :get, path: "/v1/orders", params: filters, opts: opts)
105
+ end
106
+
107
+ # Updates the specific order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
108
+ def self.update(id, params = {}, opts = {})
109
+ request_stripe_object(
110
+ method: :post,
111
+ path: format("/v1/orders/%<id>s", { id: CGI.escape(id) }),
112
+ params: params,
113
+ opts: opts
114
+ )
115
+ end
116
+ end
117
+ end
@@ -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
@@ -137,6 +231,16 @@ module Stripe
137
231
  )
138
232
  end
139
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
243
+
140
244
  # A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote).
141
245
  def self.create(params = {}, opts = {})
142
246
  request_stripe_object(method: :post, path: "/v1/quotes", params: params, opts: opts)
@@ -0,0 +1,36 @@
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
+
31
+ # Returns a list of quote phases.
32
+ def self.list(filters = {}, opts = {})
33
+ request_stripe_object(method: :get, path: "/v1/quote_phases", params: filters, opts: opts)
34
+ end
35
+ end
36
+ 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 QuotePreviewSubscriptionSchedule < APIResource
6
+ OBJECT_NAME = "quote_preview_subscription_schedule"
7
+ end
8
+ 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,46 @@
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
+
40
+ # 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.
41
+ def self.list(filters = {}, opts = {})
42
+ request_stripe_object(method: :get, path: "/v1/tax/forms", params: filters, opts: opts)
43
+ end
44
+ end
45
+ end
46
+ 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(