stripe 9.3.0 → 9.4.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +207 -40
  3. data/README.md +11 -0
  4. data/VERSION +1 -1
  5. data/lib/stripe/api_operations/request.rb +2 -0
  6. data/lib/stripe/api_version.rb +1 -0
  7. data/lib/stripe/object_types.rb +17 -0
  8. data/lib/stripe/request_signing_authenticator.rb +83 -0
  9. data/lib/stripe/resources/capital/financing_offer.rb +32 -0
  10. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  11. data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
  12. data/lib/stripe/resources/confirmation_token.rb +11 -0
  13. data/lib/stripe/resources/customer_session.rb +12 -0
  14. data/lib/stripe/resources/financial_connections/account.rb +39 -0
  15. data/lib/stripe/resources/financial_connections/inferred_balance.rb +13 -0
  16. data/lib/stripe/resources/financial_connections/transaction.rb +13 -0
  17. data/lib/stripe/resources/gift_cards/card.rb +25 -0
  18. data/lib/stripe/resources/gift_cards/transaction.rb +56 -0
  19. data/lib/stripe/resources/issuing/card_bundle.rb +13 -0
  20. data/lib/stripe/resources/issuing/card_design.rb +77 -0
  21. data/lib/stripe/resources/order.rb +89 -0
  22. data/lib/stripe/resources/quote.rb +94 -0
  23. data/lib/stripe/resources/quote_phase.rb +29 -0
  24. data/lib/stripe/resources/quote_preview_invoice.rb +42 -0
  25. data/lib/stripe/resources/quote_preview_schedule.rb +10 -0
  26. data/lib/stripe/resources/subscription_schedule.rb +18 -0
  27. data/lib/stripe/resources/tax/form.rb +39 -0
  28. data/lib/stripe/resources/tax/registration.rb +19 -0
  29. data/lib/stripe/resources/terminal/reader.rb +54 -0
  30. data/lib/stripe/resources.rb +17 -0
  31. data/lib/stripe/stripe_client.rb +60 -26
  32. data/lib/stripe/stripe_configuration.rb +2 -0
  33. data/lib/stripe/util.rb +8 -1
  34. data/lib/stripe/version.rb +1 -1
  35. data/lib/stripe.rb +46 -0
  36. metadata +21 -3
@@ -6,9 +6,12 @@ module Stripe
6
6
  # A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
7
7
  class Account < APIResource
8
8
  extend Stripe::APIOperations::List
9
+ extend Stripe::APIOperations::NestedResource
9
10
 
10
11
  OBJECT_NAME = "financial_connections.account"
11
12
 
13
+ nested_resource_class_methods :inferred_balance, operations: %i[list]
14
+
12
15
  def disconnect(params = {}, opts = {})
13
16
  request_stripe_object(
14
17
  method: :post,
@@ -36,6 +39,24 @@ module Stripe
36
39
  )
37
40
  end
38
41
 
42
+ def subscribe(params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/financial_connections/accounts/%<account>s/subscribe", { account: CGI.escape(self["id"]) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+
51
+ def unsubscribe(params = {}, opts = {})
52
+ request_stripe_object(
53
+ method: :post,
54
+ path: format("/v1/financial_connections/accounts/%<account>s/unsubscribe", { account: CGI.escape(self["id"]) }),
55
+ params: params,
56
+ opts: opts
57
+ )
58
+ end
59
+
39
60
  def self.disconnect(account, params = {}, opts = {})
40
61
  request_stripe_object(
41
62
  method: :post,
@@ -62,6 +83,24 @@ module Stripe
62
83
  opts: opts
63
84
  )
64
85
  end
86
+
87
+ def self.subscribe(account, params = {}, opts = {})
88
+ request_stripe_object(
89
+ method: :post,
90
+ path: format("/v1/financial_connections/accounts/%<account>s/subscribe", { account: CGI.escape(account) }),
91
+ params: params,
92
+ opts: opts
93
+ )
94
+ end
95
+
96
+ def self.unsubscribe(account, params = {}, opts = {})
97
+ request_stripe_object(
98
+ method: :post,
99
+ path: format("/v1/financial_connections/accounts/%<account>s/unsubscribe", { account: CGI.escape(account) }),
100
+ params: params,
101
+ opts: opts
102
+ )
103
+ end
65
104
  end
66
105
  end
67
106
  end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module FinancialConnections
6
+ # A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
7
+ class InferredBalance < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "financial_connections.account_inferred_balance"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module FinancialConnections
6
+ # A Transaction represents a real transaction that affects a Financial Connections Account balance.
7
+ class Transaction < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "financial_connections.transaction"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module GiftCards
6
+ # A gift card represents a single gift card owned by a customer, including the
7
+ # remaining balance, gift card code, and whether or not it is active.
8
+ class Card < APIResource
9
+ extend Stripe::APIOperations::Create
10
+ extend Stripe::APIOperations::List
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "gift_cards.card"
14
+
15
+ def self.validate(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: "/v1/gift_cards/cards/validate",
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module GiftCards
6
+ # A gift card transaction represents a single transaction on a referenced gift card.
7
+ # A transaction is in one of three states, `confirmed`, `held` or `canceled`. A `confirmed`
8
+ # transaction is one that has added/deducted funds. A `held` transaction has created a
9
+ # temporary hold on funds, which can then be cancelled or confirmed. A `held` transaction
10
+ # can be confirmed into a `confirmed` transaction, or canceled into a `canceled` transaction.
11
+ # A `canceled` transaction has no effect on a gift card's balance.
12
+ class Transaction < APIResource
13
+ extend Stripe::APIOperations::Create
14
+ extend Stripe::APIOperations::List
15
+ include Stripe::APIOperations::Save
16
+
17
+ OBJECT_NAME = "gift_cards.transaction"
18
+
19
+ def cancel(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+
28
+ def confirm(params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :post,
31
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ def self.cancel(id, params = {}, opts = {})
38
+ request_stripe_object(
39
+ method: :post,
40
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
41
+ params: params,
42
+ opts: opts
43
+ )
44
+ end
45
+
46
+ def self.confirm(id, params = {}, opts = {})
47
+ request_stripe_object(
48
+ method: :post,
49
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
50
+ params: params,
51
+ opts: opts
52
+ )
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Card 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 CardBundle < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "issuing.card_bundle"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,77 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # A Card Design is a logical grouping of a Card Bundle, card logo, and carrier text that represents a product line.
7
+ class CardDesign < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "issuing.card_design"
13
+
14
+ def test_helpers
15
+ TestHelpers.new(self)
16
+ end
17
+
18
+ class TestHelpers < APIResourceTestHelpers
19
+ RESOURCE_CLASS = CardDesign
20
+
21
+ def self.activate_testmode(card_design, params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(card_design) }),
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ def self.deactivate_testmode(card_design, params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(card_design) }),
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ def self.reject_testmode(card_design, params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :post,
42
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/reject", { card_design: CGI.escape(card_design) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+
48
+ def activate_testmode(params = {}, opts = {})
49
+ @resource.request_stripe_object(
50
+ method: :post,
51
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(@resource["id"]) }),
52
+ params: params,
53
+ opts: opts
54
+ )
55
+ end
56
+
57
+ def deactivate_testmode(params = {}, opts = {})
58
+ @resource.request_stripe_object(
59
+ method: :post,
60
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(@resource["id"]) }),
61
+ params: params,
62
+ opts: opts
63
+ )
64
+ end
65
+
66
+ def reject_testmode(params = {}, opts = {})
67
+ @resource.request_stripe_object(
68
+ method: :post,
69
+ path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/reject", { card_design: CGI.escape(@resource["id"]) }),
70
+ params: params,
71
+ opts: opts
72
+ )
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,89 @@
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
+ def cancel(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :post,
20
+ path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def list_line_items(params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :get,
29
+ path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(self["id"]) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ def reopen(params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(self["id"]) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def submit(params = {}, opts = {})
45
+ request_stripe_object(
46
+ method: :post,
47
+ path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
48
+ params: params,
49
+ opts: opts
50
+ )
51
+ end
52
+
53
+ def self.cancel(id, params = {}, opts = {})
54
+ request_stripe_object(
55
+ method: :post,
56
+ path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
57
+ params: params,
58
+ opts: opts
59
+ )
60
+ end
61
+
62
+ def self.list_line_items(id, params = {}, opts = {})
63
+ request_stripe_object(
64
+ method: :get,
65
+ path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
70
+
71
+ def self.reopen(id, params = {}, opts = {})
72
+ request_stripe_object(
73
+ method: :post,
74
+ path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
75
+ params: params,
76
+ opts: opts
77
+ )
78
+ end
79
+
80
+ def self.submit(id, params = {}, opts = {})
81
+ request_stripe_object(
82
+ method: :post,
83
+ path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
84
+ params: params,
85
+ opts: opts
86
+ )
87
+ end
88
+ end
89
+ 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
  def accept(params = {}, opts = {})
15
19
  request_stripe_object(
16
20
  method: :post,
@@ -29,6 +33,15 @@ module Stripe
29
33
  )
30
34
  end
31
35
 
36
+ def draft_quote(params = {}, opts = {})
37
+ request_stripe_object(
38
+ method: :post,
39
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
40
+ params: params,
41
+ opts: opts
42
+ )
43
+ end
44
+
32
45
  def finalize_quote(params = {}, opts = {})
33
46
  request_stripe_object(
34
47
  method: :post,
@@ -56,6 +69,24 @@ module Stripe
56
69
  )
57
70
  end
58
71
 
72
+ def list_lines(params = {}, opts = {})
73
+ request_stripe_object(
74
+ method: :get,
75
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
76
+ params: params,
77
+ opts: opts
78
+ )
79
+ end
80
+
81
+ def mark_stale_quote(params = {}, opts = {})
82
+ request_stripe_object(
83
+ method: :post,
84
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
85
+ params: params,
86
+ opts: opts
87
+ )
88
+ end
89
+
59
90
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
60
91
  config = opts[:client]&.config || Stripe.config
61
92
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -68,6 +99,24 @@ module Stripe
68
99
  )
69
100
  end
70
101
 
102
+ def preview_invoice_lines(preview_invoice, params = {}, opts = {})
103
+ request_stripe_object(
104
+ method: :get,
105
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
106
+ params: params,
107
+ opts: opts
108
+ )
109
+ end
110
+
111
+ def reestimate(params = {}, opts = {})
112
+ request_stripe_object(
113
+ method: :post,
114
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
115
+ params: params,
116
+ opts: opts
117
+ )
118
+ end
119
+
71
120
  def self.accept(quote, params = {}, opts = {})
72
121
  request_stripe_object(
73
122
  method: :post,
@@ -86,6 +135,15 @@ module Stripe
86
135
  )
87
136
  end
88
137
 
138
+ def self.draft_quote(quote, params = {}, opts = {})
139
+ request_stripe_object(
140
+ method: :post,
141
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
142
+ params: params,
143
+ opts: opts
144
+ )
145
+ end
146
+
89
147
  def self.finalize_quote(quote, params = {}, opts = {})
90
148
  request_stripe_object(
91
149
  method: :post,
@@ -113,6 +171,24 @@ module Stripe
113
171
  )
114
172
  end
115
173
 
174
+ def self.list_lines(quote, params = {}, opts = {})
175
+ request_stripe_object(
176
+ method: :get,
177
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
178
+ params: params,
179
+ opts: opts
180
+ )
181
+ end
182
+
183
+ def self.mark_stale_quote(quote, params = {}, opts = {})
184
+ request_stripe_object(
185
+ method: :post,
186
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
187
+ params: params,
188
+ opts: opts
189
+ )
190
+ end
191
+
116
192
  def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
117
193
  config = opts[:client]&.config || Stripe.config
118
194
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -124,5 +200,23 @@ module Stripe
124
200
  &read_body_chunk_block
125
201
  )
126
202
  end
203
+
204
+ def self.preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
205
+ request_stripe_object(
206
+ method: :get,
207
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
208
+ params: params,
209
+ opts: opts
210
+ )
211
+ end
212
+
213
+ def self.reestimate(quote, params = {}, opts = {})
214
+ request_stripe_object(
215
+ method: :post,
216
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
217
+ params: params,
218
+ opts: opts
219
+ )
220
+ end
127
221
  end
128
222
  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,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 QuotePreviewSchedule < APIResource
6
+ extend Stripe::APIOperations::List
7
+
8
+ OBJECT_NAME = "quote_preview_schedule"
9
+ end
10
+ 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