stripe 8.7.0 → 9.0.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 +477 -301
- data/OPENAPI_VERSION +1 -1
- data/README.md +11 -0
- data/VERSION +1 -1
- data/lib/stripe/api_operations/request.rb +2 -0
- data/lib/stripe/api_version.rb +2 -1
- data/lib/stripe/object_types.rb +18 -0
- data/lib/stripe/request_signing_authenticator.rb +83 -0
- data/lib/stripe/resources/account_session.rb +17 -0
- data/lib/stripe/resources/capital/financing_offer.rb +32 -0
- data/lib/stripe/resources/capital/financing_summary.rb +12 -0
- data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
- data/lib/stripe/resources/customer_session.rb +12 -0
- data/lib/stripe/resources/financial_connections/account.rb +39 -0
- data/lib/stripe/resources/financial_connections/inferred_balance.rb +13 -0
- data/lib/stripe/resources/financial_connections/transaction.rb +13 -0
- data/lib/stripe/resources/gift_cards/card.rb +25 -0
- data/lib/stripe/resources/gift_cards/transaction.rb +56 -0
- data/lib/stripe/resources/issuing/card.rb +18 -0
- data/lib/stripe/resources/issuing/card_bundle.rb +13 -0
- data/lib/stripe/resources/issuing/card_design.rb +58 -0
- data/lib/stripe/resources/order.rb +89 -0
- data/lib/stripe/resources/payment_method_configuration.rb +13 -0
- data/lib/stripe/resources/quote.rb +131 -0
- data/lib/stripe/resources/quote_phase.rb +29 -0
- data/lib/stripe/resources/quote_preview_invoice.rb +40 -0
- data/lib/stripe/resources/quote_preview_schedule.rb +8 -0
- data/lib/stripe/resources/subscription_schedule.rb +18 -0
- data/lib/stripe/resources/tax/form.rb +39 -0
- data/lib/stripe/resources/tax/registration.rb +19 -0
- data/lib/stripe/resources/terminal/reader.rb +54 -0
- data/lib/stripe/resources.rb +18 -0
- data/lib/stripe/stripe_client.rb +60 -26
- data/lib/stripe/stripe_configuration.rb +3 -0
- data/lib/stripe/util.rb +8 -1
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe/webhook.rb +2 -1
- data/lib/stripe.rb +47 -0
- metadata +23 -4
data/OPENAPI_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
v482
|
data/README.md
CHANGED
@@ -323,6 +323,17 @@ If your beta feature requires a `Stripe-Version` header to be sent, use the `Str
|
|
323
323
|
Stripe.api_version += "; feature_beta=v3"
|
324
324
|
```
|
325
325
|
|
326
|
+
### Custom requests
|
327
|
+
|
328
|
+
If you would like to send a request to an undocumented API (for example you are in a private beta), or if you prefer to bypass the method definitions in the library and specify your request details directly, you can use the `raw_request` method on `Stripe`.
|
329
|
+
|
330
|
+
```ruby
|
331
|
+
resp = Stripe.raw_request(:post, "/v1/beta_endpoint", {param: 123}, {stripe_version: "2022-11-15; feature_beta=v3"})
|
332
|
+
|
333
|
+
# (Optional) resp is a StripeResponse. You can use `Stripe.deserialize` to get a StripeObject.
|
334
|
+
deserialized_resp = Stripe.deserialize(resp.http_body)
|
335
|
+
```
|
336
|
+
|
326
337
|
## Support
|
327
338
|
|
328
339
|
New features and bug fixes are released on the latest major version of the Stripe Ruby library. If you are on an older major version, we recommend that you upgrade to the latest in order to use the new features and bug fixes including those for security vulnerabilities. Older major versions of the package will continue to be available for use, but will not be receiving any updates.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
9.0.0-beta.1
|
@@ -47,6 +47,7 @@ module Stripe
|
|
47
47
|
api_key = headers.delete(:api_key)
|
48
48
|
api_base = headers.delete(:api_base)
|
49
49
|
client = headers.delete(:client)
|
50
|
+
api_mode = headers.delete(:api_mode)
|
50
51
|
# Assume all remaining opts must be headers
|
51
52
|
|
52
53
|
resp, opts[:api_key] = client.send(
|
@@ -54,6 +55,7 @@ module Stripe
|
|
54
55
|
method, url,
|
55
56
|
api_base: api_base, api_key: api_key,
|
56
57
|
headers: headers, params: params,
|
58
|
+
api_mode: api_mode,
|
57
59
|
&read_body_chunk_block
|
58
60
|
)
|
59
61
|
|
data/lib/stripe/api_version.rb
CHANGED
data/lib/stripe/object_types.rb
CHANGED
@@ -14,6 +14,7 @@ module Stripe
|
|
14
14
|
# business objects
|
15
15
|
Account::OBJECT_NAME => Account,
|
16
16
|
AccountLink::OBJECT_NAME => AccountLink,
|
17
|
+
AccountSession::OBJECT_NAME => AccountSession,
|
17
18
|
ApplePayDomain::OBJECT_NAME => ApplePayDomain,
|
18
19
|
ApplicationFee::OBJECT_NAME => ApplicationFee,
|
19
20
|
ApplicationFeeRefund::OBJECT_NAME => ApplicationFeeRefund,
|
@@ -24,6 +25,9 @@ module Stripe
|
|
24
25
|
BillingPortal::Configuration::OBJECT_NAME => BillingPortal::Configuration,
|
25
26
|
BillingPortal::Session::OBJECT_NAME => BillingPortal::Session,
|
26
27
|
Capability::OBJECT_NAME => Capability,
|
28
|
+
Capital::FinancingOffer::OBJECT_NAME => Capital::FinancingOffer,
|
29
|
+
Capital::FinancingSummary::OBJECT_NAME => Capital::FinancingSummary,
|
30
|
+
Capital::FinancingTransaction::OBJECT_NAME => Capital::FinancingTransaction,
|
27
31
|
Card::OBJECT_NAME => Card,
|
28
32
|
CashBalance::OBJECT_NAME => CashBalance,
|
29
33
|
Charge::OBJECT_NAME => Charge,
|
@@ -35,6 +39,7 @@ module Stripe
|
|
35
39
|
Customer::OBJECT_NAME => Customer,
|
36
40
|
CustomerBalanceTransaction::OBJECT_NAME => CustomerBalanceTransaction,
|
37
41
|
CustomerCashBalanceTransaction::OBJECT_NAME => CustomerCashBalanceTransaction,
|
42
|
+
CustomerSession::OBJECT_NAME => CustomerSession,
|
38
43
|
Discount::OBJECT_NAME => Discount,
|
39
44
|
Dispute::OBJECT_NAME => Dispute,
|
40
45
|
EphemeralKey::OBJECT_NAME => EphemeralKey,
|
@@ -47,8 +52,12 @@ module Stripe
|
|
47
52
|
FinancialConnections::AccountOwner::OBJECT_NAME => FinancialConnections::AccountOwner,
|
48
53
|
FinancialConnections::AccountOwnership::OBJECT_NAME =>
|
49
54
|
FinancialConnections::AccountOwnership,
|
55
|
+
FinancialConnections::InferredBalance::OBJECT_NAME => FinancialConnections::InferredBalance,
|
50
56
|
FinancialConnections::Session::OBJECT_NAME => FinancialConnections::Session,
|
57
|
+
FinancialConnections::Transaction::OBJECT_NAME => FinancialConnections::Transaction,
|
51
58
|
FundingInstructions::OBJECT_NAME => FundingInstructions,
|
59
|
+
GiftCards::Card::OBJECT_NAME => GiftCards::Card,
|
60
|
+
GiftCards::Transaction::OBJECT_NAME => GiftCards::Transaction,
|
52
61
|
Identity::VerificationReport::OBJECT_NAME => Identity::VerificationReport,
|
53
62
|
Identity::VerificationSession::OBJECT_NAME => Identity::VerificationSession,
|
54
63
|
Invoice::OBJECT_NAME => Invoice,
|
@@ -56,15 +65,19 @@ module Stripe
|
|
56
65
|
InvoiceLineItem::OBJECT_NAME => InvoiceLineItem,
|
57
66
|
Issuing::Authorization::OBJECT_NAME => Issuing::Authorization,
|
58
67
|
Issuing::Card::OBJECT_NAME => Issuing::Card,
|
68
|
+
Issuing::CardBundle::OBJECT_NAME => Issuing::CardBundle,
|
69
|
+
Issuing::CardDesign::OBJECT_NAME => Issuing::CardDesign,
|
59
70
|
Issuing::Cardholder::OBJECT_NAME => Issuing::Cardholder,
|
60
71
|
Issuing::Dispute::OBJECT_NAME => Issuing::Dispute,
|
61
72
|
Issuing::Transaction::OBJECT_NAME => Issuing::Transaction,
|
62
73
|
LineItem::OBJECT_NAME => LineItem,
|
63
74
|
LoginLink::OBJECT_NAME => LoginLink,
|
64
75
|
Mandate::OBJECT_NAME => Mandate,
|
76
|
+
Order::OBJECT_NAME => Order,
|
65
77
|
PaymentIntent::OBJECT_NAME => PaymentIntent,
|
66
78
|
PaymentLink::OBJECT_NAME => PaymentLink,
|
67
79
|
PaymentMethod::OBJECT_NAME => PaymentMethod,
|
80
|
+
PaymentMethodConfiguration::OBJECT_NAME => PaymentMethodConfiguration,
|
68
81
|
Payout::OBJECT_NAME => Payout,
|
69
82
|
Person::OBJECT_NAME => Person,
|
70
83
|
Plan::OBJECT_NAME => Plan,
|
@@ -72,6 +85,9 @@ module Stripe
|
|
72
85
|
Product::OBJECT_NAME => Product,
|
73
86
|
PromotionCode::OBJECT_NAME => PromotionCode,
|
74
87
|
Quote::OBJECT_NAME => Quote,
|
88
|
+
QuotePhase::OBJECT_NAME => QuotePhase,
|
89
|
+
QuotePreviewInvoice::OBJECT_NAME => QuotePreviewInvoice,
|
90
|
+
QuotePreviewSchedule::OBJECT_NAME => QuotePreviewSchedule,
|
75
91
|
Radar::EarlyFraudWarning::OBJECT_NAME => Radar::EarlyFraudWarning,
|
76
92
|
Radar::ValueList::OBJECT_NAME => Radar::ValueList,
|
77
93
|
Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem,
|
@@ -91,6 +107,8 @@ module Stripe
|
|
91
107
|
SubscriptionSchedule::OBJECT_NAME => SubscriptionSchedule,
|
92
108
|
Tax::Calculation::OBJECT_NAME => Tax::Calculation,
|
93
109
|
Tax::CalculationLineItem::OBJECT_NAME => Tax::CalculationLineItem,
|
110
|
+
Tax::Form::OBJECT_NAME => Tax::Form,
|
111
|
+
Tax::Registration::OBJECT_NAME => Tax::Registration,
|
94
112
|
Tax::Settings::OBJECT_NAME => Tax::Settings,
|
95
113
|
Tax::Transaction::OBJECT_NAME => Tax::Transaction,
|
96
114
|
Tax::TransactionLineItem::OBJECT_NAME => Tax::TransactionLineItem,
|
@@ -0,0 +1,83 @@
|
|
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
|
+
unless auth_token.is_a?(String)
|
17
|
+
raise ArgumentError, "auth_token must be a string"
|
18
|
+
end
|
19
|
+
unless sign_lambda.is_a?(Proc)
|
20
|
+
raise ArgumentError, "sign_lambda must be a lambda"
|
21
|
+
end
|
22
|
+
|
23
|
+
@auth_token = auth_token
|
24
|
+
@sign_lambda = sign_lambda
|
25
|
+
end
|
26
|
+
|
27
|
+
def authenticate(method, headers, body)
|
28
|
+
covered_headers = [CONTENT_TYPE_HEADER_NAME,
|
29
|
+
CONTENT_DIGEST_HEADER_NAME,
|
30
|
+
STRIPE_CONTEXT_HEADER_NAME,
|
31
|
+
STRIPE_ACCOUNT_HEADER_NAME,
|
32
|
+
AUTHORIZATION_HEADER_NAME,]
|
33
|
+
|
34
|
+
headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
|
35
|
+
|
36
|
+
if method == :get
|
37
|
+
covered_headers -= [CONTENT_TYPE_HEADER_NAME,
|
38
|
+
CONTENT_DIGEST_HEADER_NAME,]
|
39
|
+
else
|
40
|
+
content = body || ""
|
41
|
+
headers[CONTENT_DIGEST_HEADER_NAME] =
|
42
|
+
%(sha-256=:#{content_digest(content)}:)
|
43
|
+
end
|
44
|
+
|
45
|
+
covered_headers_formatted = covered_headers
|
46
|
+
.map { |string| %("#{string.downcase}") }
|
47
|
+
.join(" ")
|
48
|
+
|
49
|
+
signature_input = "(#{covered_headers_formatted});created=#{created_time}"
|
50
|
+
|
51
|
+
inputs = covered_headers
|
52
|
+
.map { |header| %("#{header.downcase}": #{headers[header]}) }
|
53
|
+
.join("\n")
|
54
|
+
|
55
|
+
signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
|
56
|
+
.encode(Encoding::UTF_8)
|
57
|
+
|
58
|
+
headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
|
59
|
+
|
60
|
+
headers[SIGNATURE_HEADER_NAME] =
|
61
|
+
"sig1=:#{encoded_signature(signature_base)}:"
|
62
|
+
end
|
63
|
+
|
64
|
+
private def sign(signature_base)
|
65
|
+
@sign_lambda.call(signature_base)
|
66
|
+
end
|
67
|
+
|
68
|
+
private def encoded_signature(signature_base)
|
69
|
+
Base64.strict_encode64(sign(signature_base))
|
70
|
+
rescue StandardError
|
71
|
+
raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' "\
|
72
|
+
"when calculating request signature."
|
73
|
+
end
|
74
|
+
|
75
|
+
private def content_digest(content)
|
76
|
+
Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
|
77
|
+
end
|
78
|
+
|
79
|
+
private def created_time
|
80
|
+
Time.now.to_i
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components.
|
6
|
+
#
|
7
|
+
# We recommend that you create an AccountSession each time you need to display an embedded component
|
8
|
+
# to your user. Do not save AccountSessions to your database as they expire relatively
|
9
|
+
# quickly, and cannot be used more than once.
|
10
|
+
#
|
11
|
+
# Related guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components)
|
12
|
+
class AccountSession < APIResource
|
13
|
+
extend Stripe::APIOperations::Create
|
14
|
+
|
15
|
+
OBJECT_NAME = "account_session"
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,32 @@
|
|
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
|
+
|
13
|
+
def mark_delivered(params = {}, opts = {})
|
14
|
+
request_stripe_object(
|
15
|
+
method: :post,
|
16
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
|
17
|
+
params: params,
|
18
|
+
opts: opts
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.mark_delivered(financing_offer, params = {}, opts = {})
|
23
|
+
request_stripe_object(
|
24
|
+
method: :post,
|
25
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
|
26
|
+
params: params,
|
27
|
+
opts: opts
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,12 @@
|
|
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
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
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
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# A customer session allows you to grant client access to Stripe's frontend SDKs (like StripeJs)
|
6
|
+
# control over a customer.
|
7
|
+
class CustomerSession < APIResource
|
8
|
+
extend Stripe::APIOperations::Create
|
9
|
+
|
10
|
+
OBJECT_NAME = "customer_session"
|
11
|
+
end
|
12
|
+
end
|
@@ -6,9 +6,12 @@ module Stripe
|
|
6
6
|
# A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
|
7
7
|
class Account < APIResource
|
8
8
|
extend Stripe::APIOperations::List
|
9
|
+
extend Stripe::APIOperations::NestedResource
|
9
10
|
|
10
11
|
OBJECT_NAME = "financial_connections.account"
|
11
12
|
|
13
|
+
nested_resource_class_methods :inferred_balance, operations: %i[list]
|
14
|
+
|
12
15
|
def disconnect(params = {}, opts = {})
|
13
16
|
request_stripe_object(
|
14
17
|
method: :post,
|
@@ -36,6 +39,24 @@ module Stripe
|
|
36
39
|
)
|
37
40
|
end
|
38
41
|
|
42
|
+
def subscribe(params = {}, opts = {})
|
43
|
+
request_stripe_object(
|
44
|
+
method: :post,
|
45
|
+
path: format("/v1/financial_connections/accounts/%<account>s/subscribe", { account: CGI.escape(self["id"]) }),
|
46
|
+
params: params,
|
47
|
+
opts: opts
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
def unsubscribe(params = {}, opts = {})
|
52
|
+
request_stripe_object(
|
53
|
+
method: :post,
|
54
|
+
path: format("/v1/financial_connections/accounts/%<account>s/unsubscribe", { account: CGI.escape(self["id"]) }),
|
55
|
+
params: params,
|
56
|
+
opts: opts
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
39
60
|
def self.disconnect(account, params = {}, opts = {})
|
40
61
|
request_stripe_object(
|
41
62
|
method: :post,
|
@@ -62,6 +83,24 @@ module Stripe
|
|
62
83
|
opts: opts
|
63
84
|
)
|
64
85
|
end
|
86
|
+
|
87
|
+
def self.subscribe(account, params = {}, opts = {})
|
88
|
+
request_stripe_object(
|
89
|
+
method: :post,
|
90
|
+
path: format("/v1/financial_connections/accounts/%<account>s/subscribe", { account: CGI.escape(account) }),
|
91
|
+
params: params,
|
92
|
+
opts: opts
|
93
|
+
)
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.unsubscribe(account, params = {}, opts = {})
|
97
|
+
request_stripe_object(
|
98
|
+
method: :post,
|
99
|
+
path: format("/v1/financial_connections/accounts/%<account>s/unsubscribe", { account: CGI.escape(account) }),
|
100
|
+
params: params,
|
101
|
+
opts: opts
|
102
|
+
)
|
103
|
+
end
|
65
104
|
end
|
66
105
|
end
|
67
106
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module FinancialConnections
|
6
|
+
# A historical balance for the account on a particular day. It may be sourced from a balance snapshot provided by a financial institution, or inferred using transactions data.
|
7
|
+
class InferredBalance < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "financial_connections.account_inferred_balance"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module FinancialConnections
|
6
|
+
# A Transaction represents a real transaction that affects a Financial Connections Account balance.
|
7
|
+
class Transaction < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "financial_connections.transaction"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module GiftCards
|
6
|
+
# A gift card represents a single gift card owned by a customer, including the
|
7
|
+
# remaining balance, gift card code, and whether or not it is active.
|
8
|
+
class Card < APIResource
|
9
|
+
extend Stripe::APIOperations::Create
|
10
|
+
extend Stripe::APIOperations::List
|
11
|
+
include Stripe::APIOperations::Save
|
12
|
+
|
13
|
+
OBJECT_NAME = "gift_cards.card"
|
14
|
+
|
15
|
+
def self.validate(params = {}, opts = {})
|
16
|
+
request_stripe_object(
|
17
|
+
method: :post,
|
18
|
+
path: "/v1/gift_cards/cards/validate",
|
19
|
+
params: params,
|
20
|
+
opts: opts
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module GiftCards
|
6
|
+
# A gift card transaction represents a single transaction on a referenced gift card.
|
7
|
+
# A transaction is in one of three states, `confirmed`, `held` or `canceled`. A `confirmed`
|
8
|
+
# transaction is one that has added/deducted funds. A `held` transaction has created a
|
9
|
+
# temporary hold on funds, which can then be cancelled or confirmed. A `held` transaction
|
10
|
+
# can be confirmed into a `confirmed` transaction, or canceled into a `canceled` transaction.
|
11
|
+
# A `canceled` transaction has no effect on a gift card's balance.
|
12
|
+
class Transaction < APIResource
|
13
|
+
extend Stripe::APIOperations::Create
|
14
|
+
extend Stripe::APIOperations::List
|
15
|
+
include Stripe::APIOperations::Save
|
16
|
+
|
17
|
+
OBJECT_NAME = "gift_cards.transaction"
|
18
|
+
|
19
|
+
def cancel(params = {}, opts = {})
|
20
|
+
request_stripe_object(
|
21
|
+
method: :post,
|
22
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
|
23
|
+
params: params,
|
24
|
+
opts: opts
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def confirm(params = {}, opts = {})
|
29
|
+
request_stripe_object(
|
30
|
+
method: :post,
|
31
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
|
32
|
+
params: params,
|
33
|
+
opts: opts
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.cancel(id, params = {}, opts = {})
|
38
|
+
request_stripe_object(
|
39
|
+
method: :post,
|
40
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
|
41
|
+
params: params,
|
42
|
+
opts: opts
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.confirm(id, params = {}, opts = {})
|
47
|
+
request_stripe_object(
|
48
|
+
method: :post,
|
49
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
|
50
|
+
params: params,
|
51
|
+
opts: opts
|
52
|
+
)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -54,6 +54,15 @@ module Stripe
|
|
54
54
|
)
|
55
55
|
end
|
56
56
|
|
57
|
+
def self.submit_card(card, params = {}, opts = {})
|
58
|
+
request_stripe_object(
|
59
|
+
method: :post,
|
60
|
+
path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/submit", { card: CGI.escape(card) }),
|
61
|
+
params: params,
|
62
|
+
opts: opts
|
63
|
+
)
|
64
|
+
end
|
65
|
+
|
57
66
|
def deliver_card(params = {}, opts = {})
|
58
67
|
@resource.request_stripe_object(
|
59
68
|
method: :post,
|
@@ -89,6 +98,15 @@ module Stripe
|
|
89
98
|
opts: opts
|
90
99
|
)
|
91
100
|
end
|
101
|
+
|
102
|
+
def submit_card(params = {}, opts = {})
|
103
|
+
@resource.request_stripe_object(
|
104
|
+
method: :post,
|
105
|
+
path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/submit", { card: CGI.escape(@resource["id"]) }),
|
106
|
+
params: params,
|
107
|
+
opts: opts
|
108
|
+
)
|
109
|
+
end
|
92
110
|
end
|
93
111
|
end
|
94
112
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Issuing
|
6
|
+
# A Card Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card.
|
7
|
+
class CardBundle < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "issuing.card_bundle"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
module Issuing
|
6
|
+
# A Card Design is a logical grouping of a Card Bundle, card logo, and carrier text that represents a product line.
|
7
|
+
class CardDesign < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
include Stripe::APIOperations::Save
|
10
|
+
|
11
|
+
OBJECT_NAME = "issuing.card_design"
|
12
|
+
|
13
|
+
def test_helpers
|
14
|
+
TestHelpers.new(self)
|
15
|
+
end
|
16
|
+
|
17
|
+
class TestHelpers < APIResourceTestHelpers
|
18
|
+
RESOURCE_CLASS = CardDesign
|
19
|
+
|
20
|
+
def self.activate_testmode(card_design, params = {}, opts = {})
|
21
|
+
request_stripe_object(
|
22
|
+
method: :post,
|
23
|
+
path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(card_design) }),
|
24
|
+
params: params,
|
25
|
+
opts: opts
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.deactivate_testmode(card_design, params = {}, opts = {})
|
30
|
+
request_stripe_object(
|
31
|
+
method: :post,
|
32
|
+
path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(card_design) }),
|
33
|
+
params: params,
|
34
|
+
opts: opts
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def activate_testmode(params = {}, opts = {})
|
39
|
+
@resource.request_stripe_object(
|
40
|
+
method: :post,
|
41
|
+
path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/activate", { card_design: CGI.escape(@resource["id"]) }),
|
42
|
+
params: params,
|
43
|
+
opts: opts
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
def deactivate_testmode(params = {}, opts = {})
|
48
|
+
@resource.request_stripe_object(
|
49
|
+
method: :post,
|
50
|
+
path: format("/v1/test_helpers/issuing/card_designs/%<card_design>s/status/deactivate", { card_design: CGI.escape(@resource["id"]) }),
|
51
|
+
params: params,
|
52
|
+
opts: opts
|
53
|
+
)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# An Order describes a purchase being made by a customer, including the
|
6
|
+
# products & quantities being purchased, the order status, the payment information,
|
7
|
+
# and the billing/shipping details.
|
8
|
+
#
|
9
|
+
# Related guide: [Orders overview](https://stripe.com/docs/orders)
|
10
|
+
class Order < APIResource
|
11
|
+
extend Stripe::APIOperations::Create
|
12
|
+
extend Stripe::APIOperations::List
|
13
|
+
include Stripe::APIOperations::Save
|
14
|
+
|
15
|
+
OBJECT_NAME = "order"
|
16
|
+
|
17
|
+
def cancel(params = {}, opts = {})
|
18
|
+
request_stripe_object(
|
19
|
+
method: :post,
|
20
|
+
path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
|
21
|
+
params: params,
|
22
|
+
opts: opts
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
def list_line_items(params = {}, opts = {})
|
27
|
+
request_stripe_object(
|
28
|
+
method: :get,
|
29
|
+
path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(self["id"]) }),
|
30
|
+
params: params,
|
31
|
+
opts: opts
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
def reopen(params = {}, opts = {})
|
36
|
+
request_stripe_object(
|
37
|
+
method: :post,
|
38
|
+
path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(self["id"]) }),
|
39
|
+
params: params,
|
40
|
+
opts: opts
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
def submit(params = {}, opts = {})
|
45
|
+
request_stripe_object(
|
46
|
+
method: :post,
|
47
|
+
path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(self["id"]) }),
|
48
|
+
params: params,
|
49
|
+
opts: opts
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.cancel(id, params = {}, opts = {})
|
54
|
+
request_stripe_object(
|
55
|
+
method: :post,
|
56
|
+
path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
|
57
|
+
params: params,
|
58
|
+
opts: opts
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.list_line_items(id, params = {}, opts = {})
|
63
|
+
request_stripe_object(
|
64
|
+
method: :get,
|
65
|
+
path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
|
66
|
+
params: params,
|
67
|
+
opts: opts
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.reopen(id, params = {}, opts = {})
|
72
|
+
request_stripe_object(
|
73
|
+
method: :post,
|
74
|
+
path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
|
75
|
+
params: params,
|
76
|
+
opts: opts
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.submit(id, params = {}, opts = {})
|
81
|
+
request_stripe_object(
|
82
|
+
method: :post,
|
83
|
+
path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
|
84
|
+
params: params,
|
85
|
+
opts: opts
|
86
|
+
)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|