stripe 12.6.0 → 12.7.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 +1347 -649
- data/OPENAPI_VERSION +1 -1
- 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 +20 -0
- data/lib/stripe/request_signing_authenticator.rb +79 -0
- data/lib/stripe/resources/account_notice.rb +32 -0
- 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/credit_underwriting_record.rb +88 -0
- data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
- data/lib/stripe/resources/margin.rb +37 -0
- data/lib/stripe/resources/order.rb +120 -0
- data/lib/stripe/resources/payment_intent.rb +50 -0
- data/lib/stripe/resources/quote.rb +104 -0
- data/lib/stripe/resources/quote_phase.rb +32 -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 +19 -0
- data/lib/stripe/stripe_client.rb +60 -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 +29 -0
- metadata +24 -4
data/OPENAPI_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
v1258
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
12.
|
1
|
+
12.7.0-beta.1
|
@@ -48,13 +48,14 @@ module Stripe
|
|
48
48
|
api_key = headers.delete(:api_key)
|
49
49
|
api_base = headers.delete(:api_base)
|
50
50
|
client = headers.delete(:client)
|
51
|
+
api_mode = headers.delete(:api_mode)
|
51
52
|
# Assume all remaining opts must be headers
|
52
53
|
|
53
54
|
resp, opts[:api_key] = client.send(
|
54
55
|
client_request_method_sym,
|
55
56
|
method, url,
|
56
57
|
api_base: api_base, api_key: api_key,
|
57
|
-
headers: headers, params: params, usage: usage,
|
58
|
+
headers: headers, params: params, usage: usage, api_mode: api_mode,
|
58
59
|
&read_body_chunk_block
|
59
60
|
)
|
60
61
|
|
data/lib/stripe/api_version.rb
CHANGED
data/lib/stripe/object_types.rb
CHANGED
@@ -15,6 +15,7 @@ module Stripe
|
|
15
15
|
# object classes: The beginning of the section generated from our OpenAPI spec
|
16
16
|
Account.object_name => Account,
|
17
17
|
AccountLink.object_name => AccountLink,
|
18
|
+
AccountNotice.object_name => AccountNotice,
|
18
19
|
AccountSession.object_name => AccountSession,
|
19
20
|
ApplePayDomain.object_name => ApplePayDomain,
|
20
21
|
ApplicationFee.object_name => ApplicationFee,
|
@@ -31,6 +32,9 @@ module Stripe
|
|
31
32
|
BillingPortal::Configuration.object_name => BillingPortal::Configuration,
|
32
33
|
BillingPortal::Session.object_name => BillingPortal::Session,
|
33
34
|
Capability.object_name => Capability,
|
35
|
+
Capital::FinancingOffer.object_name => Capital::FinancingOffer,
|
36
|
+
Capital::FinancingSummary.object_name => Capital::FinancingSummary,
|
37
|
+
Capital::FinancingTransaction.object_name => Capital::FinancingTransaction,
|
34
38
|
Card.object_name => Card,
|
35
39
|
CashBalance.object_name => CashBalance,
|
36
40
|
Charge.object_name => Charge,
|
@@ -57,22 +61,30 @@ module Stripe
|
|
57
61
|
File.object_name => File,
|
58
62
|
FileLink.object_name => FileLink,
|
59
63
|
FinancialConnections::Account.object_name => FinancialConnections::Account,
|
64
|
+
FinancialConnections::AccountInferredBalance.object_name =>
|
65
|
+
FinancialConnections::AccountInferredBalance,
|
60
66
|
FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
|
61
67
|
FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
|
68
|
+
FinancialConnections::Institution.object_name => FinancialConnections::Institution,
|
62
69
|
FinancialConnections::Session.object_name => FinancialConnections::Session,
|
63
70
|
FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
|
64
71
|
Forwarding::Request.object_name => Forwarding::Request,
|
65
72
|
FundingInstructions.object_name => FundingInstructions,
|
73
|
+
GiftCards::Card.object_name => GiftCards::Card,
|
74
|
+
GiftCards::Transaction.object_name => GiftCards::Transaction,
|
66
75
|
Identity::VerificationReport.object_name => Identity::VerificationReport,
|
67
76
|
Identity::VerificationSession.object_name => Identity::VerificationSession,
|
68
77
|
Invoice.object_name => Invoice,
|
69
78
|
InvoiceItem.object_name => InvoiceItem,
|
70
79
|
InvoiceLineItem.object_name => InvoiceLineItem,
|
80
|
+
InvoicePayment.object_name => InvoicePayment,
|
71
81
|
InvoiceRenderingTemplate.object_name => InvoiceRenderingTemplate,
|
72
82
|
Issuing::Authorization.object_name => Issuing::Authorization,
|
73
83
|
Issuing::Card.object_name => Issuing::Card,
|
74
84
|
Issuing::Cardholder.object_name => Issuing::Cardholder,
|
85
|
+
Issuing::CreditUnderwritingRecord.object_name => Issuing::CreditUnderwritingRecord,
|
75
86
|
Issuing::Dispute.object_name => Issuing::Dispute,
|
87
|
+
Issuing::DisputeSettlementDetail.object_name => Issuing::DisputeSettlementDetail,
|
76
88
|
Issuing::PersonalizationDesign.object_name => Issuing::PersonalizationDesign,
|
77
89
|
Issuing::PhysicalBundle.object_name => Issuing::PhysicalBundle,
|
78
90
|
Issuing::Token.object_name => Issuing::Token,
|
@@ -80,6 +92,8 @@ module Stripe
|
|
80
92
|
LineItem.object_name => LineItem,
|
81
93
|
LoginLink.object_name => LoginLink,
|
82
94
|
Mandate.object_name => Mandate,
|
95
|
+
Margin.object_name => Margin,
|
96
|
+
Order.object_name => Order,
|
83
97
|
PaymentIntent.object_name => PaymentIntent,
|
84
98
|
PaymentLink.object_name => PaymentLink,
|
85
99
|
PaymentMethod.object_name => PaymentMethod,
|
@@ -93,6 +107,9 @@ module Stripe
|
|
93
107
|
ProductFeature.object_name => ProductFeature,
|
94
108
|
PromotionCode.object_name => PromotionCode,
|
95
109
|
Quote.object_name => Quote,
|
110
|
+
QuotePhase.object_name => QuotePhase,
|
111
|
+
QuotePreviewInvoice.object_name => QuotePreviewInvoice,
|
112
|
+
QuotePreviewSubscriptionSchedule.object_name => QuotePreviewSubscriptionSchedule,
|
96
113
|
Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning,
|
97
114
|
Radar::ValueList.object_name => Radar::ValueList,
|
98
115
|
Radar::ValueListItem.object_name => Radar::ValueListItem,
|
@@ -110,8 +127,10 @@ module Stripe
|
|
110
127
|
Subscription.object_name => Subscription,
|
111
128
|
SubscriptionItem.object_name => SubscriptionItem,
|
112
129
|
SubscriptionSchedule.object_name => SubscriptionSchedule,
|
130
|
+
Tax::Association.object_name => Tax::Association,
|
113
131
|
Tax::Calculation.object_name => Tax::Calculation,
|
114
132
|
Tax::CalculationLineItem.object_name => Tax::CalculationLineItem,
|
133
|
+
Tax::Form.object_name => Tax::Form,
|
115
134
|
Tax::Registration.object_name => Tax::Registration,
|
116
135
|
Tax::Settings.object_name => Tax::Settings,
|
117
136
|
Tax::Transaction.object_name => Tax::Transaction,
|
@@ -123,6 +142,7 @@ module Stripe
|
|
123
142
|
Terminal::ConnectionToken.object_name => Terminal::ConnectionToken,
|
124
143
|
Terminal::Location.object_name => Terminal::Location,
|
125
144
|
Terminal::Reader.object_name => Terminal::Reader,
|
145
|
+
Terminal::ReaderCollectedData.object_name => Terminal::ReaderCollectedData,
|
126
146
|
TestHelpers::TestClock.object_name => TestHelpers::TestClock,
|
127
147
|
Token.object_name => Token,
|
128
148
|
Topup.object_name => Topup,
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class RequestSigningAuthenticator
|
5
|
+
AUTHORIZATION_HEADER_NAME = "Authorization"
|
6
|
+
CONTENT_TYPE_HEADER_NAME = "Content-Type"
|
7
|
+
STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
|
8
|
+
STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
|
9
|
+
CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
|
10
|
+
SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
|
11
|
+
SIGNATURE_HEADER_NAME = "Signature"
|
12
|
+
|
13
|
+
attr_reader :auth_token, :sign_lambda
|
14
|
+
|
15
|
+
def initialize(auth_token, sign_lambda)
|
16
|
+
raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
|
17
|
+
raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
|
18
|
+
|
19
|
+
@auth_token = auth_token
|
20
|
+
@sign_lambda = sign_lambda
|
21
|
+
end
|
22
|
+
|
23
|
+
def authenticate(method, headers, body)
|
24
|
+
covered_headers = [CONTENT_TYPE_HEADER_NAME,
|
25
|
+
CONTENT_DIGEST_HEADER_NAME,
|
26
|
+
STRIPE_CONTEXT_HEADER_NAME,
|
27
|
+
STRIPE_ACCOUNT_HEADER_NAME,
|
28
|
+
AUTHORIZATION_HEADER_NAME,]
|
29
|
+
|
30
|
+
headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
|
31
|
+
|
32
|
+
if method == :get
|
33
|
+
covered_headers -= [CONTENT_TYPE_HEADER_NAME,
|
34
|
+
CONTENT_DIGEST_HEADER_NAME,]
|
35
|
+
else
|
36
|
+
content = body || ""
|
37
|
+
headers[CONTENT_DIGEST_HEADER_NAME] =
|
38
|
+
%(sha-256=:#{content_digest(content)}:)
|
39
|
+
end
|
40
|
+
|
41
|
+
covered_headers_formatted = covered_headers
|
42
|
+
.map { |string| %("#{string.downcase}") }
|
43
|
+
.join(" ")
|
44
|
+
|
45
|
+
signature_input = "(#{covered_headers_formatted});created=#{created_time}"
|
46
|
+
|
47
|
+
inputs = covered_headers
|
48
|
+
.map { |header| %("#{header.downcase}": #{headers[header]}) }
|
49
|
+
.join("\n")
|
50
|
+
|
51
|
+
signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
|
52
|
+
.encode(Encoding::UTF_8)
|
53
|
+
|
54
|
+
headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
|
55
|
+
|
56
|
+
headers[SIGNATURE_HEADER_NAME] =
|
57
|
+
"sig1=:#{encoded_signature(signature_base)}:"
|
58
|
+
end
|
59
|
+
|
60
|
+
private def sign(signature_base)
|
61
|
+
@sign_lambda.call(signature_base)
|
62
|
+
end
|
63
|
+
|
64
|
+
private def encoded_signature(signature_base)
|
65
|
+
Base64.strict_encode64(sign(signature_base))
|
66
|
+
rescue StandardError
|
67
|
+
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
|
68
|
+
"when calculating request signature."
|
69
|
+
end
|
70
|
+
|
71
|
+
private def content_digest(content)
|
72
|
+
Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
|
73
|
+
end
|
74
|
+
|
75
|
+
private def created_time
|
76
|
+
Time.now.to_i
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
|
6
|
+
#
|
7
|
+
# See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
|
8
|
+
class AccountNotice < APIResource
|
9
|
+
extend Stripe::APIOperations::List
|
10
|
+
include Stripe::APIOperations::Save
|
11
|
+
|
12
|
+
OBJECT_NAME = "account_notice"
|
13
|
+
def self.object_name
|
14
|
+
"account_notice"
|
15
|
+
end
|
16
|
+
|
17
|
+
# Retrieves a list of AccountNotice objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
|
18
|
+
def self.list(filters = {}, opts = {})
|
19
|
+
request_stripe_object(method: :get, path: "/v1/account_notices", params: filters, opts: opts)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Updates an AccountNotice object.
|
23
|
+
def self.update(id, params = {}, opts = {})
|
24
|
+
request_stripe_object(
|
25
|
+
method: :post,
|
26
|
+
path: format("/v1/account_notices/%<id>s", { id: CGI.escape(id) }),
|
27
|
+
params: params,
|
28
|
+
opts: opts
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Capital
|
6
|
+
# This is an object representing an offer of financing from
|
7
|
+
# Stripe Capital to a Connect subaccount.
|
8
|
+
class FinancingOffer < APIResource
|
9
|
+
extend Stripe::APIOperations::List
|
10
|
+
|
11
|
+
OBJECT_NAME = "capital.financing_offer"
|
12
|
+
def self.object_name
|
13
|
+
"capital.financing_offer"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Retrieves the financing offers available for Connected accounts that belong to your platform.
|
17
|
+
def self.list(filters = {}, opts = {})
|
18
|
+
request_stripe_object(
|
19
|
+
method: :get,
|
20
|
+
path: "/v1/capital/financing_offers",
|
21
|
+
params: filters,
|
22
|
+
opts: opts
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Acknowledges that platform has received and delivered the financing_offer to
|
27
|
+
# the intended merchant recipient.
|
28
|
+
def mark_delivered(params = {}, opts = {})
|
29
|
+
request_stripe_object(
|
30
|
+
method: :post,
|
31
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
|
32
|
+
params: params,
|
33
|
+
opts: opts
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Acknowledges that platform has received and delivered the financing_offer to
|
38
|
+
# the intended merchant recipient.
|
39
|
+
def self.mark_delivered(financing_offer, params = {}, opts = {})
|
40
|
+
request_stripe_object(
|
41
|
+
method: :post,
|
42
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
|
43
|
+
params: params,
|
44
|
+
opts: opts
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Capital
|
6
|
+
# A financing object describes an account's current financing state. Used by Connect
|
7
|
+
# platforms to read the state of Capital offered to their connected accounts.
|
8
|
+
class FinancingSummary < SingletonAPIResource
|
9
|
+
OBJECT_NAME = "capital.financing_summary"
|
10
|
+
def self.object_name
|
11
|
+
"capital.financing_summary"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Capital
|
6
|
+
# This is an object representing the details of a transaction on a Capital financing object.
|
7
|
+
class FinancingTransaction < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "capital.financing_transaction"
|
11
|
+
def self.object_name
|
12
|
+
"capital.financing_transaction"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a list of financing transactions. The transactions are returned in sorted order,
|
16
|
+
# with the most recent transactions appearing first.
|
17
|
+
def self.list(filters = {}, opts = {})
|
18
|
+
request_stripe_object(
|
19
|
+
method: :get,
|
20
|
+
path: "/v1/capital/financing_transactions",
|
21
|
+
params: filters,
|
22
|
+
opts: opts
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -6,12 +6,15 @@ 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
|
def self.object_name
|
12
13
|
"financial_connections.account"
|
13
14
|
end
|
14
15
|
|
16
|
+
nested_resource_class_methods :inferred_balance, operations: %i[list]
|
17
|
+
|
15
18
|
# Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).
|
16
19
|
def disconnect(params = {}, opts = {})
|
17
20
|
request_stripe_object(
|
@@ -0,0 +1,14 @@
|
|
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 AccountInferredBalance < APIResource
|
8
|
+
OBJECT_NAME = "financial_connections.account_inferred_balance"
|
9
|
+
def self.object_name
|
10
|
+
"financial_connections.account_inferred_balance"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module FinancialConnections
|
6
|
+
# An institution represents a financial institution to which an end user can connect using the Financial Connections authentication flow.
|
7
|
+
class Institution < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "financial_connections.institution"
|
11
|
+
def self.object_name
|
12
|
+
"financial_connections.institution"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a list of Financial Connections Institution objects.
|
16
|
+
def self.list(filters = {}, opts = {})
|
17
|
+
request_stripe_object(
|
18
|
+
method: :get,
|
19
|
+
path: "/v1/financial_connections/institutions",
|
20
|
+
params: filters,
|
21
|
+
opts: opts
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,59 @@
|
|
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
|
+
def self.object_name
|
15
|
+
"gift_cards.card"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Creates a new gift card object.
|
19
|
+
def self.create(params = {}, opts = {})
|
20
|
+
request_stripe_object(
|
21
|
+
method: :post,
|
22
|
+
path: "/v1/gift_cards/cards",
|
23
|
+
params: params,
|
24
|
+
opts: opts
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
# List gift cards for an account
|
29
|
+
def self.list(filters = {}, opts = {})
|
30
|
+
request_stripe_object(
|
31
|
+
method: :get,
|
32
|
+
path: "/v1/gift_cards/cards",
|
33
|
+
params: filters,
|
34
|
+
opts: opts
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Update a gift card
|
39
|
+
def self.update(id, params = {}, opts = {})
|
40
|
+
request_stripe_object(
|
41
|
+
method: :post,
|
42
|
+
path: format("/v1/gift_cards/cards/%<id>s", { id: CGI.escape(id) }),
|
43
|
+
params: params,
|
44
|
+
opts: opts
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Validates a gift card code, returning the matching gift card object if it exists.
|
49
|
+
def self.validate(params = {}, opts = {})
|
50
|
+
request_stripe_object(
|
51
|
+
method: :post,
|
52
|
+
path: "/v1/gift_cards/cards/validate",
|
53
|
+
params: params,
|
54
|
+
opts: opts
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,93 @@
|
|
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
|
+
def self.object_name
|
19
|
+
"gift_cards.transaction"
|
20
|
+
end
|
21
|
+
|
22
|
+
# Cancel a gift card transaction
|
23
|
+
def cancel(params = {}, opts = {})
|
24
|
+
request_stripe_object(
|
25
|
+
method: :post,
|
26
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
|
27
|
+
params: params,
|
28
|
+
opts: opts
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Cancel a gift card transaction
|
33
|
+
def self.cancel(id, params = {}, opts = {})
|
34
|
+
request_stripe_object(
|
35
|
+
method: :post,
|
36
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
|
37
|
+
params: params,
|
38
|
+
opts: opts
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Confirm a gift card transaction
|
43
|
+
def confirm(params = {}, opts = {})
|
44
|
+
request_stripe_object(
|
45
|
+
method: :post,
|
46
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
|
47
|
+
params: params,
|
48
|
+
opts: opts
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Confirm a gift card transaction
|
53
|
+
def self.confirm(id, params = {}, opts = {})
|
54
|
+
request_stripe_object(
|
55
|
+
method: :post,
|
56
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
|
57
|
+
params: params,
|
58
|
+
opts: opts
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Create a gift card transaction
|
63
|
+
def self.create(params = {}, opts = {})
|
64
|
+
request_stripe_object(
|
65
|
+
method: :post,
|
66
|
+
path: "/v1/gift_cards/transactions",
|
67
|
+
params: params,
|
68
|
+
opts: opts
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
# List gift card transactions for a gift card
|
73
|
+
def self.list(filters = {}, opts = {})
|
74
|
+
request_stripe_object(
|
75
|
+
method: :get,
|
76
|
+
path: "/v1/gift_cards/transactions",
|
77
|
+
params: filters,
|
78
|
+
opts: opts
|
79
|
+
)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Update a gift card transaction
|
83
|
+
def self.update(id, params = {}, opts = {})
|
84
|
+
request_stripe_object(
|
85
|
+
method: :post,
|
86
|
+
path: format("/v1/gift_cards/transactions/%<id>s", { id: CGI.escape(id) }),
|
87
|
+
params: params,
|
88
|
+
opts: opts
|
89
|
+
)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -48,6 +48,7 @@ module Stripe
|
|
48
48
|
end
|
49
49
|
|
50
50
|
nested_resource_class_methods :line, operations: %i[list]
|
51
|
+
nested_resource_class_methods :payment, operations: %i[retrieve list]
|
51
52
|
|
52
53
|
# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
|
53
54
|
def add_lines(params = {}, opts = {})
|
@@ -69,6 +70,86 @@ module Stripe
|
|
69
70
|
)
|
70
71
|
end
|
71
72
|
|
73
|
+
# Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
|
74
|
+
#
|
75
|
+
# For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
|
76
|
+
# of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
|
77
|
+
#
|
78
|
+
# For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
|
79
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
80
|
+
# invoice's status becomes paid.
|
81
|
+
#
|
82
|
+
# If the PaymentIntent's status is already succeeded when it's attached, it's
|
83
|
+
# credited to the invoice immediately.
|
84
|
+
#
|
85
|
+
# See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
|
86
|
+
def attach_payment(params = {}, opts = {})
|
87
|
+
request_stripe_object(
|
88
|
+
method: :post,
|
89
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(self["id"]) }),
|
90
|
+
params: params,
|
91
|
+
opts: opts
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
95
|
+
# Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
|
96
|
+
#
|
97
|
+
# For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
|
98
|
+
# of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
|
99
|
+
#
|
100
|
+
# For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
|
101
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
102
|
+
# invoice's status becomes paid.
|
103
|
+
#
|
104
|
+
# If the PaymentIntent's status is already succeeded when it's attached, it's
|
105
|
+
# credited to the invoice immediately.
|
106
|
+
#
|
107
|
+
# See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
|
108
|
+
def self.attach_payment(invoice, params = {}, opts = {})
|
109
|
+
request_stripe_object(
|
110
|
+
method: :post,
|
111
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(invoice) }),
|
112
|
+
params: params,
|
113
|
+
opts: opts
|
114
|
+
)
|
115
|
+
end
|
116
|
+
|
117
|
+
# Attaches a PaymentIntent to the invoice, adding it to the list of payments.
|
118
|
+
# When the PaymentIntent's status changes to succeeded, the payment is credited
|
119
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
120
|
+
# invoice's status becomes paid.
|
121
|
+
#
|
122
|
+
# If the PaymentIntent's status is already succeeded when it is attached, it is
|
123
|
+
# credited to the invoice immediately.
|
124
|
+
#
|
125
|
+
# Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
|
126
|
+
def attach_payment_intent(params = {}, opts = {})
|
127
|
+
request_stripe_object(
|
128
|
+
method: :post,
|
129
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(self["id"]) }),
|
130
|
+
params: params,
|
131
|
+
opts: opts
|
132
|
+
)
|
133
|
+
end
|
134
|
+
|
135
|
+
# Attaches a PaymentIntent to the invoice, adding it to the list of payments.
|
136
|
+
# When the PaymentIntent's status changes to succeeded, the payment is credited
|
137
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
138
|
+
# invoice's status becomes paid.
|
139
|
+
#
|
140
|
+
# If the PaymentIntent's status is already succeeded when it is attached, it is
|
141
|
+
# credited to the invoice immediately.
|
142
|
+
#
|
143
|
+
# Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
|
144
|
+
def self.attach_payment_intent(invoice, params = {}, opts = {})
|
145
|
+
request_stripe_object(
|
146
|
+
method: :post,
|
147
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
|
148
|
+
params: params,
|
149
|
+
opts: opts
|
150
|
+
)
|
151
|
+
end
|
152
|
+
|
72
153
|
# This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers.
|
73
154
|
def self.create(params = {}, opts = {})
|
74
155
|
request_stripe_object(method: :post, path: "/v1/invoices", params: params, opts: opts)
|