stripe 13.1.1 → 13.2.0.pre.beta.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1385 -645
- data/OPENAPI_VERSION +1 -1
- data/VERSION +1 -1
- data/lib/stripe/object_types.rb +22 -0
- data/lib/stripe/request_signing_authenticator.rb +79 -0
- data/lib/stripe/resources/account_notice.rb +32 -0
- data/lib/stripe/resources/billing/credit_grant.rb +5 -6
- data/lib/stripe/resources/capital/financing_offer.rb +49 -0
- data/lib/stripe/resources/capital/financing_summary.rb +15 -0
- data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
- data/lib/stripe/resources/financial_connections/account.rb +3 -0
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
- data/lib/stripe/resources/financial_connections/institution.rb +26 -0
- data/lib/stripe/resources/gift_cards/card.rb +59 -0
- data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
- data/lib/stripe/resources/invoice.rb +81 -0
- data/lib/stripe/resources/invoice_payment.rb +12 -0
- data/lib/stripe/resources/issuing/card.rb +1 -1
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
- data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
- data/lib/stripe/resources/issuing/fraud_liability_debit.rb +26 -0
- data/lib/stripe/resources/margin.rb +37 -0
- data/lib/stripe/resources/order.rb +120 -0
- data/lib/stripe/resources/payment_attempt_record.rb +27 -0
- data/lib/stripe/resources/payment_intent.rb +70 -0
- data/lib/stripe/resources/payment_record.rb +115 -0
- data/lib/stripe/resources/quote.rb +104 -0
- data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
- data/lib/stripe/resources/subscription_schedule.rb +20 -0
- data/lib/stripe/resources/tax/association.rb +24 -0
- data/lib/stripe/resources/tax/form.rb +49 -0
- data/lib/stripe/resources/terminal/reader.rb +60 -0
- data/lib/stripe/resources/terminal/reader_collected_data.rb +14 -0
- data/lib/stripe/resources.rb +21 -0
- data/lib/stripe/services/account_notice_service.rb +39 -0
- data/lib/stripe/services/billing/credit_grant_service.rb +3 -3
- data/lib/stripe/services/capital/financing_offer_service.rb +42 -0
- data/lib/stripe/services/capital/financing_summary_service.rb +19 -0
- data/lib/stripe/services/capital/financing_transaction_service.rb +31 -0
- data/lib/stripe/services/capital_service.rb +15 -0
- data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +19 -0
- data/lib/stripe/services/financial_connections/account_service.rb +3 -1
- data/lib/stripe/services/financial_connections/institution_service.rb +30 -0
- data/lib/stripe/services/financial_connections_service.rb +2 -1
- data/lib/stripe/services/gift_cards/card_service.rb +63 -0
- data/lib/stripe/services/gift_cards/transaction_service.rb +74 -0
- data/lib/stripe/services/gift_cards_service.rb +14 -0
- data/lib/stripe/services/invoice_payment_service.rb +28 -0
- data/lib/stripe/services/invoice_service.rb +44 -1
- data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +74 -0
- data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +30 -0
- data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +30 -0
- data/lib/stripe/services/issuing_service.rb +5 -1
- data/lib/stripe/services/margin_service.rb +50 -0
- data/lib/stripe/services/order_line_item_service.rb +17 -0
- data/lib/stripe/services/order_service.rb +78 -0
- data/lib/stripe/services/payment_attempt_record_service.rb +28 -0
- data/lib/stripe/services/payment_intent_service.rb +37 -0
- data/lib/stripe/services/payment_record_service.rb +78 -0
- data/lib/stripe/services/quote_line_service.rb +17 -0
- data/lib/stripe/services/quote_preview_invoice_service.rb +17 -0
- data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +17 -0
- data/lib/stripe/services/quote_service.rb +49 -1
- data/lib/stripe/services/subscription_schedule_service.rb +11 -0
- data/lib/stripe/services/tax/association_service.rb +19 -0
- data/lib/stripe/services/tax/form_service.rb +37 -0
- data/lib/stripe/services/tax_service.rb +3 -1
- data/lib/stripe/services/terminal/reader_collected_data_service.rb +19 -0
- data/lib/stripe/services/terminal/reader_service.rb +33 -0
- data/lib/stripe/services/terminal_service.rb +2 -1
- data/lib/stripe/services/v1_services.rb +8 -1
- data/lib/stripe/services.rb +25 -0
- data/lib/stripe/stripe_configuration.rb +3 -1
- data/lib/stripe/util.rb +7 -1
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe.rb +45 -0
- metadata +51 -4
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
module Stripe
|
5
5
|
module Issuing
|
6
|
-
# You can [create physical or virtual cards](https://stripe.com/docs/issuing
|
6
|
+
# You can [create physical or virtual cards](https://stripe.com/docs/issuing) that are issued to cardholders.
|
7
7
|
class Card < APIResource
|
8
8
|
extend Stripe::APIOperations::Create
|
9
9
|
extend Stripe::APIOperations::List
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Issuing
|
6
|
+
# Every time an applicant submits an application for a Charge Card product your platform offers, or every time your platform takes a proactive credit decision on an existing account, you must record the decision by creating a new `CreditUnderwritingRecord` object on a connected account.
|
7
|
+
#
|
8
|
+
# [Follow the guide](https://stripe.com/docs/issuing/credit/report-credit-decisions-and-manage-aans) to learn about your requirements as a platform.
|
9
|
+
class CreditUnderwritingRecord < APIResource
|
10
|
+
extend Stripe::APIOperations::List
|
11
|
+
|
12
|
+
OBJECT_NAME = "issuing.credit_underwriting_record"
|
13
|
+
def self.object_name
|
14
|
+
"issuing.credit_underwriting_record"
|
15
|
+
end
|
16
|
+
|
17
|
+
# Update a CreditUnderwritingRecord object to correct mistakes.
|
18
|
+
def correct(params = {}, opts = {})
|
19
|
+
request_stripe_object(
|
20
|
+
method: :post,
|
21
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(self["id"]) }),
|
22
|
+
params: params,
|
23
|
+
opts: opts
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Update a CreditUnderwritingRecord object to correct mistakes.
|
28
|
+
def self.correct(credit_underwriting_record, params = {}, opts = {})
|
29
|
+
request_stripe_object(
|
30
|
+
method: :post,
|
31
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
|
32
|
+
params: params,
|
33
|
+
opts: opts
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Creates a CreditUnderwritingRecord object with information about a credit application submission.
|
38
|
+
def self.create_from_application(params = {}, opts = {})
|
39
|
+
request_stripe_object(
|
40
|
+
method: :post,
|
41
|
+
path: "/v1/issuing/credit_underwriting_records/create_from_application",
|
42
|
+
params: params,
|
43
|
+
opts: opts
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Creates a CreditUnderwritingRecord object from an underwriting decision coming from a proactive review of an existing accountholder.
|
48
|
+
def self.create_from_proactive_review(params = {}, opts = {})
|
49
|
+
request_stripe_object(
|
50
|
+
method: :post,
|
51
|
+
path: "/v1/issuing/credit_underwriting_records/create_from_proactive_review",
|
52
|
+
params: params,
|
53
|
+
opts: opts
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retrieves a list of CreditUnderwritingRecord objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
|
58
|
+
def self.list(filters = {}, opts = {})
|
59
|
+
request_stripe_object(
|
60
|
+
method: :get,
|
61
|
+
path: "/v1/issuing/credit_underwriting_records",
|
62
|
+
params: filters,
|
63
|
+
opts: opts
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
# Update a CreditUnderwritingRecord object from a decision made on a credit application.
|
68
|
+
def report_decision(params = {}, opts = {})
|
69
|
+
request_stripe_object(
|
70
|
+
method: :post,
|
71
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(self["id"]) }),
|
72
|
+
params: params,
|
73
|
+
opts: opts
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Update a CreditUnderwritingRecord object from a decision made on a credit application.
|
78
|
+
def self.report_decision(credit_underwriting_record, params = {}, opts = {})
|
79
|
+
request_stripe_object(
|
80
|
+
method: :post,
|
81
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
|
82
|
+
params: params,
|
83
|
+
opts: opts
|
84
|
+
)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Issuing
|
6
|
+
# Represents a record from the card network of a money movement or change in state for an Issuing dispute. These records are included in the settlement reports that we receive from networks and expose to users as Settlement objects.
|
7
|
+
class DisputeSettlementDetail < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "issuing.dispute_settlement_detail"
|
11
|
+
def self.object_name
|
12
|
+
"issuing.dispute_settlement_detail"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a list of Issuing DisputeSettlementDetail objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
|
16
|
+
def self.list(filters = {}, opts = {})
|
17
|
+
request_stripe_object(
|
18
|
+
method: :get,
|
19
|
+
path: "/v1/issuing/dispute_settlement_details",
|
20
|
+
params: filters,
|
21
|
+
opts: opts
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Issuing
|
6
|
+
# A fraud liability debit occurs when Stripe debits a platform's account for fraud losses on Issuing transactions.
|
7
|
+
class FraudLiabilityDebit < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "issuing.fraud_liability_debit"
|
11
|
+
def self.object_name
|
12
|
+
"issuing.fraud_liability_debit"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a list of Issuing FraudLiabilityDebit objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
|
16
|
+
def self.list(filters = {}, opts = {})
|
17
|
+
request_stripe_object(
|
18
|
+
method: :get,
|
19
|
+
path: "/v1/issuing/fraud_liability_debits",
|
20
|
+
params: filters,
|
21
|
+
opts: opts
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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
|
+
def self.object_name
|
14
|
+
"margin"
|
15
|
+
end
|
16
|
+
|
17
|
+
# 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.
|
18
|
+
def self.create(params = {}, opts = {})
|
19
|
+
request_stripe_object(method: :post, path: "/v1/billing/margins", params: params, opts: opts)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Retrieve a list of your margins.
|
23
|
+
def self.list(filters = {}, opts = {})
|
24
|
+
request_stripe_object(method: :get, path: "/v1/billing/margins", params: filters, opts: opts)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Update the specified margin object. Certain fields of the margin object are not editable.
|
28
|
+
def self.update(id, params = {}, opts = {})
|
29
|
+
request_stripe_object(
|
30
|
+
method: :post,
|
31
|
+
path: format("/v1/billing/margins/%<id>s", { id: CGI.escape(id) }),
|
32
|
+
params: params,
|
33
|
+
opts: opts
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,120 @@
|
|
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
|
+
def self.object_name
|
17
|
+
"order"
|
18
|
+
end
|
19
|
+
|
20
|
+
# Cancels the order as well as the payment intent if one is attached.
|
21
|
+
def cancel(params = {}, opts = {})
|
22
|
+
request_stripe_object(
|
23
|
+
method: :post,
|
24
|
+
path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
|
25
|
+
params: params,
|
26
|
+
opts: opts
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Cancels the order as well as the payment intent if one is attached.
|
31
|
+
def self.cancel(id, params = {}, opts = {})
|
32
|
+
request_stripe_object(
|
33
|
+
method: :post,
|
34
|
+
path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
|
35
|
+
params: params,
|
36
|
+
opts: opts
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Creates a new open order object.
|
41
|
+
def self.create(params = {}, opts = {})
|
42
|
+
request_stripe_object(method: :post, path: "/v1/orders", params: params, opts: opts)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns a list of your orders. The orders are returned sorted by creation date, with the most recently created orders appearing first.
|
46
|
+
def self.list(filters = {}, opts = {})
|
47
|
+
request_stripe_object(method: :get, path: "/v1/orders", params: filters, opts: opts)
|
48
|
+
end
|
49
|
+
|
50
|
+
# 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.
|
51
|
+
def list_line_items(params = {}, opts = {})
|
52
|
+
request_stripe_object(
|
53
|
+
method: :get,
|
54
|
+
path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(self["id"]) }),
|
55
|
+
params: params,
|
56
|
+
opts: opts
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
# 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.
|
61
|
+
def self.list_line_items(id, params = {}, opts = {})
|
62
|
+
request_stripe_object(
|
63
|
+
method: :get,
|
64
|
+
path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
|
65
|
+
params: params,
|
66
|
+
opts: opts
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Reopens a submitted order.
|
71
|
+
def reopen(params = {}, opts = {})
|
72
|
+
request_stripe_object(
|
73
|
+
method: :post,
|
74
|
+
path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(self["id"]) }),
|
75
|
+
params: params,
|
76
|
+
opts: opts
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
# Reopens a submitted order.
|
81
|
+
def self.reopen(id, params = {}, opts = {})
|
82
|
+
request_stripe_object(
|
83
|
+
method: :post,
|
84
|
+
path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
|
85
|
+
params: params,
|
86
|
+
opts: opts
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
90
|
+
# 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.
|
91
|
+
def submit(params = {}, opts = {})
|
92
|
+
request_stripe_object(
|
93
|
+
method: :post,
|
94
|
+
path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
|
95
|
+
params: params,
|
96
|
+
opts: opts
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
100
|
+
# 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.
|
101
|
+
def self.submit(id, params = {}, opts = {})
|
102
|
+
request_stripe_object(
|
103
|
+
method: :post,
|
104
|
+
path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
|
105
|
+
params: params,
|
106
|
+
opts: opts
|
107
|
+
)
|
108
|
+
end
|
109
|
+
|
110
|
+
# Updates the specific order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
|
111
|
+
def self.update(id, params = {}, opts = {})
|
112
|
+
request_stripe_object(
|
113
|
+
method: :post,
|
114
|
+
path: format("/v1/orders/%<id>s", { id: CGI.escape(id) }),
|
115
|
+
params: params,
|
116
|
+
opts: opts
|
117
|
+
)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# A Payment Attempt Record represents an individual attempt at making a payment, on or off Stripe.
|
6
|
+
# Each payment attempt tries to collect a fixed amount of money from a fixed customer and payment
|
7
|
+
# method. Payment Attempt Records are attached to Payment Records. Only one attempt per Payment Record
|
8
|
+
# can have guaranteed funds.
|
9
|
+
class PaymentAttemptRecord < APIResource
|
10
|
+
extend Stripe::APIOperations::List
|
11
|
+
|
12
|
+
OBJECT_NAME = "payment_attempt_record"
|
13
|
+
def self.object_name
|
14
|
+
"payment_attempt_record"
|
15
|
+
end
|
16
|
+
|
17
|
+
# List all the Payment Attempt Records attached to the specified Payment Record.
|
18
|
+
def self.list(filters = {}, opts = {})
|
19
|
+
request_stripe_object(
|
20
|
+
method: :get,
|
21
|
+
path: "/v1/payment_attempt_records",
|
22
|
+
params: filters,
|
23
|
+
opts: opts
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -182,6 +182,56 @@ module Stripe
|
|
182
182
|
request_stripe_object(method: :post, path: "/v1/payment_intents", params: params, opts: opts)
|
183
183
|
end
|
184
184
|
|
185
|
+
# Perform a decremental authorization on an eligible
|
186
|
+
# [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
|
187
|
+
# PaymentIntent's status must be requires_capture and
|
188
|
+
# [decremental_authorization.status](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization)
|
189
|
+
# must be available.
|
190
|
+
#
|
191
|
+
# Decremental authorizations decrease the authorized amount on your customer's card
|
192
|
+
# to the new, lower amount provided. A single PaymentIntent can call this endpoint multiple times to further decrease the authorized amount.
|
193
|
+
#
|
194
|
+
# After decrement, the PaymentIntent object
|
195
|
+
# returns with the updated
|
196
|
+
# [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
|
197
|
+
# The PaymentIntent will now be capturable up to the new authorized amount.
|
198
|
+
#
|
199
|
+
# Each PaymentIntent can have a maximum of 10 decremental or incremental authorization attempts, including declines.
|
200
|
+
# After it's fully captured, a PaymentIntent can no longer be decremented.
|
201
|
+
def decrement_authorization(params = {}, opts = {})
|
202
|
+
request_stripe_object(
|
203
|
+
method: :post,
|
204
|
+
path: format("/v1/payment_intents/%<intent>s/decrement_authorization", { intent: CGI.escape(self["id"]) }),
|
205
|
+
params: params,
|
206
|
+
opts: opts
|
207
|
+
)
|
208
|
+
end
|
209
|
+
|
210
|
+
# Perform a decremental authorization on an eligible
|
211
|
+
# [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
|
212
|
+
# PaymentIntent's status must be requires_capture and
|
213
|
+
# [decremental_authorization.status](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization)
|
214
|
+
# must be available.
|
215
|
+
#
|
216
|
+
# Decremental authorizations decrease the authorized amount on your customer's card
|
217
|
+
# to the new, lower amount provided. A single PaymentIntent can call this endpoint multiple times to further decrease the authorized amount.
|
218
|
+
#
|
219
|
+
# After decrement, the PaymentIntent object
|
220
|
+
# returns with the updated
|
221
|
+
# [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
|
222
|
+
# The PaymentIntent will now be capturable up to the new authorized amount.
|
223
|
+
#
|
224
|
+
# Each PaymentIntent can have a maximum of 10 decremental or incremental authorization attempts, including declines.
|
225
|
+
# After it's fully captured, a PaymentIntent can no longer be decremented.
|
226
|
+
def self.decrement_authorization(intent, params = {}, opts = {})
|
227
|
+
request_stripe_object(
|
228
|
+
method: :post,
|
229
|
+
path: format("/v1/payment_intents/%<intent>s/decrement_authorization", { intent: CGI.escape(intent) }),
|
230
|
+
params: params,
|
231
|
+
opts: opts
|
232
|
+
)
|
233
|
+
end
|
234
|
+
|
185
235
|
# Perform an incremental authorization on an eligible
|
186
236
|
# [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
|
187
237
|
# PaymentIntent's status must be requires_capture and
|
@@ -266,6 +316,26 @@ module Stripe
|
|
266
316
|
search(params, opts).auto_paging_each(&blk)
|
267
317
|
end
|
268
318
|
|
319
|
+
# Trigger an external action on a PaymentIntent.
|
320
|
+
def trigger_action(params = {}, opts = {})
|
321
|
+
request_stripe_object(
|
322
|
+
method: :post,
|
323
|
+
path: format("/v1/test/payment_intents/%<intent>s/trigger_action", { intent: CGI.escape(self["id"]) }),
|
324
|
+
params: params,
|
325
|
+
opts: opts
|
326
|
+
)
|
327
|
+
end
|
328
|
+
|
329
|
+
# Trigger an external action on a PaymentIntent.
|
330
|
+
def self.trigger_action(intent, params = {}, opts = {})
|
331
|
+
request_stripe_object(
|
332
|
+
method: :post,
|
333
|
+
path: format("/v1/test/payment_intents/%<intent>s/trigger_action", { intent: CGI.escape(intent) }),
|
334
|
+
params: params,
|
335
|
+
opts: opts
|
336
|
+
)
|
337
|
+
end
|
338
|
+
|
269
339
|
# Updates properties on a PaymentIntent object without confirming.
|
270
340
|
#
|
271
341
|
# Depending on which properties you update, you might need to confirm the
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# A Payment Record is a resource that allows you to represent payments that occur on- or off-Stripe.
|
6
|
+
# For example, you can create a Payment Record to model a payment made on a different payment processor,
|
7
|
+
# in order to mark an Invoice as paid and a Subscription as active. Payment Records consist of one or
|
8
|
+
# more Payment Attempt Records, which represent individual attempts made on a payment network.
|
9
|
+
class PaymentRecord < APIResource
|
10
|
+
OBJECT_NAME = "payment_record"
|
11
|
+
def self.object_name
|
12
|
+
"payment_record"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Report a new Payment Record. You may report a Payment Record as it is
|
16
|
+
# initialized and later report updates through the other report_* methods, or report Payment
|
17
|
+
# Records in a terminal state directly, through this method.
|
18
|
+
def self.report_payment(params = {}, opts = {})
|
19
|
+
request_stripe_object(
|
20
|
+
method: :post,
|
21
|
+
path: "/v1/payment_records/report_payment",
|
22
|
+
params: params,
|
23
|
+
opts: opts
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Report a new payment attempt on the specified Payment Record. A new payment
|
28
|
+
# attempt can only be specified if all other payment attempts are canceled or failed.
|
29
|
+
def report_payment_attempt(params = {}, opts = {})
|
30
|
+
request_stripe_object(
|
31
|
+
method: :post,
|
32
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt", { id: CGI.escape(self["id"]) }),
|
33
|
+
params: params,
|
34
|
+
opts: opts
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Report a new payment attempt on the specified Payment Record. A new payment
|
39
|
+
# attempt can only be specified if all other payment attempts are canceled or failed.
|
40
|
+
def self.report_payment_attempt(id, params = {}, opts = {})
|
41
|
+
request_stripe_object(
|
42
|
+
method: :post,
|
43
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt", { id: CGI.escape(id) }),
|
44
|
+
params: params,
|
45
|
+
opts: opts
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
50
|
+
# was canceled.
|
51
|
+
def report_payment_attempt_canceled(params = {}, opts = {})
|
52
|
+
request_stripe_object(
|
53
|
+
method: :post,
|
54
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_canceled", { id: CGI.escape(self["id"]) }),
|
55
|
+
params: params,
|
56
|
+
opts: opts
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
61
|
+
# was canceled.
|
62
|
+
def self.report_payment_attempt_canceled(id, params = {}, opts = {})
|
63
|
+
request_stripe_object(
|
64
|
+
method: :post,
|
65
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_canceled", { id: CGI.escape(id) }),
|
66
|
+
params: params,
|
67
|
+
opts: opts
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
72
|
+
# failed or errored.
|
73
|
+
def report_payment_attempt_failed(params = {}, opts = {})
|
74
|
+
request_stripe_object(
|
75
|
+
method: :post,
|
76
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_failed", { id: CGI.escape(self["id"]) }),
|
77
|
+
params: params,
|
78
|
+
opts: opts
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
83
|
+
# failed or errored.
|
84
|
+
def self.report_payment_attempt_failed(id, params = {}, opts = {})
|
85
|
+
request_stripe_object(
|
86
|
+
method: :post,
|
87
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_failed", { id: CGI.escape(id) }),
|
88
|
+
params: params,
|
89
|
+
opts: opts
|
90
|
+
)
|
91
|
+
end
|
92
|
+
|
93
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
94
|
+
# was guaranteed.
|
95
|
+
def report_payment_attempt_guaranteed(params = {}, opts = {})
|
96
|
+
request_stripe_object(
|
97
|
+
method: :post,
|
98
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_guaranteed", { id: CGI.escape(self["id"]) }),
|
99
|
+
params: params,
|
100
|
+
opts: opts
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
# Report that the most recent payment attempt on the specified Payment Record
|
105
|
+
# was guaranteed.
|
106
|
+
def self.report_payment_attempt_guaranteed(id, params = {}, opts = {})
|
107
|
+
request_stripe_object(
|
108
|
+
method: :post,
|
109
|
+
path: format("/v1/payment_records/%<id>s/report_payment_attempt_guaranteed", { id: CGI.escape(id) }),
|
110
|
+
params: params,
|
111
|
+
opts: opts
|
112
|
+
)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -7,6 +7,7 @@ module Stripe
|
|
7
7
|
class Quote < APIResource
|
8
8
|
extend Stripe::APIOperations::Create
|
9
9
|
extend Stripe::APIOperations::List
|
10
|
+
extend Stripe::APIOperations::NestedResource
|
10
11
|
include Stripe::APIOperations::Save
|
11
12
|
|
12
13
|
OBJECT_NAME = "quote"
|
@@ -14,6 +15,9 @@ module Stripe
|
|
14
15
|
"quote"
|
15
16
|
end
|
16
17
|
|
18
|
+
nested_resource_class_methods :preview_invoice, operations: %i[list]
|
19
|
+
nested_resource_class_methods :preview_subscription_schedule, operations: %i[list]
|
20
|
+
|
17
21
|
# Accepts the specified quote.
|
18
22
|
def accept(params = {}, opts = {})
|
19
23
|
request_stripe_object(
|
@@ -124,6 +128,86 @@ module Stripe
|
|
124
128
|
)
|
125
129
|
end
|
126
130
|
|
131
|
+
# 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.
|
132
|
+
def list_lines(params = {}, opts = {})
|
133
|
+
request_stripe_object(
|
134
|
+
method: :get,
|
135
|
+
path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
|
136
|
+
params: params,
|
137
|
+
opts: opts
|
138
|
+
)
|
139
|
+
end
|
140
|
+
|
141
|
+
# 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.
|
142
|
+
def self.list_lines(quote, params = {}, opts = {})
|
143
|
+
request_stripe_object(
|
144
|
+
method: :get,
|
145
|
+
path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
|
146
|
+
params: params,
|
147
|
+
opts: opts
|
148
|
+
)
|
149
|
+
end
|
150
|
+
|
151
|
+
# Preview the invoice line items that would be generated by accepting the quote.
|
152
|
+
def list_preview_invoice_lines(preview_invoice, params = {}, opts = {})
|
153
|
+
request_stripe_object(
|
154
|
+
method: :get,
|
155
|
+
path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
|
156
|
+
params: params,
|
157
|
+
opts: opts
|
158
|
+
)
|
159
|
+
end
|
160
|
+
|
161
|
+
# Preview the invoice line items that would be generated by accepting the quote.
|
162
|
+
def self.list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
|
163
|
+
request_stripe_object(
|
164
|
+
method: :get,
|
165
|
+
path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
|
166
|
+
params: params,
|
167
|
+
opts: opts
|
168
|
+
)
|
169
|
+
end
|
170
|
+
|
171
|
+
# Converts a stale quote to draft.
|
172
|
+
def mark_draft(params = {}, opts = {})
|
173
|
+
request_stripe_object(
|
174
|
+
method: :post,
|
175
|
+
path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
|
176
|
+
params: params,
|
177
|
+
opts: opts
|
178
|
+
)
|
179
|
+
end
|
180
|
+
|
181
|
+
# Converts a stale quote to draft.
|
182
|
+
def self.mark_draft(quote, params = {}, opts = {})
|
183
|
+
request_stripe_object(
|
184
|
+
method: :post,
|
185
|
+
path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
|
186
|
+
params: params,
|
187
|
+
opts: opts
|
188
|
+
)
|
189
|
+
end
|
190
|
+
|
191
|
+
# Converts a draft or open quote to stale.
|
192
|
+
def mark_stale(params = {}, opts = {})
|
193
|
+
request_stripe_object(
|
194
|
+
method: :post,
|
195
|
+
path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
|
196
|
+
params: params,
|
197
|
+
opts: opts
|
198
|
+
)
|
199
|
+
end
|
200
|
+
|
201
|
+
# Converts a draft or open quote to stale.
|
202
|
+
def self.mark_stale(quote, params = {}, opts = {})
|
203
|
+
request_stripe_object(
|
204
|
+
method: :post,
|
205
|
+
path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
|
206
|
+
params: params,
|
207
|
+
opts: opts
|
208
|
+
)
|
209
|
+
end
|
210
|
+
|
127
211
|
# Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf)
|
128
212
|
def pdf(params = {}, opts = {}, &read_body_chunk_block)
|
129
213
|
opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
|
@@ -150,6 +234,26 @@ module Stripe
|
|
150
234
|
)
|
151
235
|
end
|
152
236
|
|
237
|
+
# Recompute the upcoming invoice estimate for the quote.
|
238
|
+
def reestimate(params = {}, opts = {})
|
239
|
+
request_stripe_object(
|
240
|
+
method: :post,
|
241
|
+
path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
|
242
|
+
params: params,
|
243
|
+
opts: opts
|
244
|
+
)
|
245
|
+
end
|
246
|
+
|
247
|
+
# Recompute the upcoming invoice estimate for the quote.
|
248
|
+
def self.reestimate(quote, params = {}, opts = {})
|
249
|
+
request_stripe_object(
|
250
|
+
method: :post,
|
251
|
+
path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
|
252
|
+
params: params,
|
253
|
+
opts: opts
|
254
|
+
)
|
255
|
+
end
|
256
|
+
|
153
257
|
# A quote models prices and services for a customer.
|
154
258
|
def self.update(id, params = {}, opts = {})
|
155
259
|
request_stripe_object(
|