stripe 10.8.0 → 10.9.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 (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(