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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +275 -45
- data/README.md +11 -0
- data/VERSION +1 -1
- data/lib/stripe/api_operations/request.rb +2 -1
- data/lib/stripe/api_version.rb +1 -0
- data/lib/stripe/object_types.rb +23 -0
- data/lib/stripe/request_signing_authenticator.rb +79 -0
- data/lib/stripe/resources/account_notice.rb +29 -0
- data/lib/stripe/resources/capital/financing_offer.rb +46 -0
- data/lib/stripe/resources/capital/financing_summary.rb +12 -0
- data/lib/stripe/resources/capital/financing_transaction.rb +24 -0
- data/lib/stripe/resources/confirmation_token.rb +13 -0
- data/lib/stripe/resources/customer.rb +11 -0
- data/lib/stripe/resources/customer_entitlement.rb +9 -0
- data/lib/stripe/resources/customer_entitlement_summary.rb +9 -0
- data/lib/stripe/resources/entitlements/event.rb +23 -0
- data/lib/stripe/resources/entitlements/feature.rb +35 -0
- data/lib/stripe/resources/financial_connections/account.rb +3 -0
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +11 -0
- data/lib/stripe/resources/gift_cards/card.rb +56 -0
- data/lib/stripe/resources/gift_cards/transaction.rb +90 -0
- data/lib/stripe/resources/invoice.rb +53 -0
- data/lib/stripe/resources/invoice_payment.rb +9 -0
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +85 -0
- data/lib/stripe/resources/issuing/personalization_design.rb +113 -0
- data/lib/stripe/resources/issuing/physical_bundle.rb +23 -0
- data/lib/stripe/resources/margin.rb +34 -0
- data/lib/stripe/resources/order.rb +117 -0
- data/lib/stripe/resources/quote.rb +104 -0
- data/lib/stripe/resources/quote_phase.rb +36 -0
- data/lib/stripe/resources/quote_preview_invoice.rb +40 -0
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +8 -0
- data/lib/stripe/resources/subscription_schedule.rb +20 -0
- data/lib/stripe/resources/tax/form.rb +46 -0
- data/lib/stripe/resources/terminal/reader.rb +60 -0
- data/lib/stripe/resources.rb +22 -0
- data/lib/stripe/stripe_client.rb +62 -28
- data/lib/stripe/stripe_configuration.rb +2 -1
- data/lib/stripe/util.rb +8 -1
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +46 -0
- 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
|
@@ -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(
|