stripe 10.5.0 → 10.6.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 +255 -40
- 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 +20 -0
- data/lib/stripe/request_signing_authenticator.rb +79 -0
- data/lib/stripe/resources/account_notice.rb +14 -0
- data/lib/stripe/resources/capital/financing_offer.rb +36 -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/confirmation_token.rb +13 -0
- data/lib/stripe/resources/customer_session.rb +12 -0
- data/lib/stripe/resources/financial_connections/account.rb +3 -0
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +13 -0
- data/lib/stripe/resources/gift_cards/card.rb +26 -0
- data/lib/stripe/resources/gift_cards/transaction.rb +60 -0
- data/lib/stripe/resources/invoice.rb +39 -0
- data/lib/stripe/resources/invoice_payment.rb +11 -0
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +75 -0
- data/lib/stripe/resources/issuing/personalization_design.rb +83 -0
- data/lib/stripe/resources/issuing/physical_bundle.rb +13 -0
- data/lib/stripe/resources/margin.rb +14 -0
- data/lib/stripe/resources/order.rb +97 -0
- data/lib/stripe/resources/quote.rb +104 -0
- data/lib/stripe/resources/quote_phase.rb +31 -0
- data/lib/stripe/resources/quote_preview_invoice.rb +42 -0
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +10 -0
- data/lib/stripe/resources/subscription_schedule.rb +20 -0
- data/lib/stripe/resources/tax/form.rb +41 -0
- data/lib/stripe/resources/terminal/reader.rb +60 -0
- data/lib/stripe/resources.rb +19 -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 +23 -3
@@ -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,14 @@
|
|
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
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,36 @@
|
|
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
|
+
# Acknowledges that platform has received and delivered the financing_offer to
|
14
|
+
# the intended merchant recipient.
|
15
|
+
def mark_delivered(params = {}, opts = {})
|
16
|
+
request_stripe_object(
|
17
|
+
method: :post,
|
18
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
|
19
|
+
params: params,
|
20
|
+
opts: opts
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Acknowledges that platform has received and delivered the financing_offer to
|
25
|
+
# the intended merchant recipient.
|
26
|
+
def self.mark_delivered(financing_offer, params = {}, opts = {})
|
27
|
+
request_stripe_object(
|
28
|
+
method: :post,
|
29
|
+
path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
|
30
|
+
params: params,
|
31
|
+
opts: opts
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
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,13 @@
|
|
1
|
+
# File generated from our OpenAPI spec
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
# ConfirmationTokens help transport client side data collected by Stripe JS over
|
6
|
+
# to your server for confirming a PaymentIntent or SetupIntent. If the confirmation
|
7
|
+
# is successful, values present on the ConfirmationToken are written onto the Intent.
|
8
|
+
#
|
9
|
+
# To learn more or request access, visit the related guided: [Finalize payments on the server using Confirmation Tokens](https://stripe.com/docs/payments/finalize-payments-on-the-server-confirmation-tokens).
|
10
|
+
class ConfirmationToken < APIResource
|
11
|
+
OBJECT_NAME = "confirmation_token"
|
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
|
# 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).
|
13
16
|
def disconnect(params = {}, opts = {})
|
14
17
|
request_stripe_object(
|
@@ -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 AccountInferredBalance < APIResource
|
8
|
+
extend Stripe::APIOperations::List
|
9
|
+
|
10
|
+
OBJECT_NAME = "financial_connections.account_inferred_balance"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,26 @@
|
|
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
|
+
# Validates a gift card code, returning the matching gift card object if it exists.
|
16
|
+
def self.validate(params = {}, opts = {})
|
17
|
+
request_stripe_object(
|
18
|
+
method: :post,
|
19
|
+
path: "/v1/gift_cards/cards/validate",
|
20
|
+
params: params,
|
21
|
+
opts: opts
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,60 @@
|
|
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
|
+
# Cancel a gift card transaction
|
20
|
+
def cancel(params = {}, opts = {})
|
21
|
+
request_stripe_object(
|
22
|
+
method: :post,
|
23
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
|
24
|
+
params: params,
|
25
|
+
opts: opts
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Confirm a gift card transaction
|
30
|
+
def confirm(params = {}, opts = {})
|
31
|
+
request_stripe_object(
|
32
|
+
method: :post,
|
33
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
|
34
|
+
params: params,
|
35
|
+
opts: opts
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Cancel a gift card transaction
|
40
|
+
def self.cancel(id, params = {}, opts = {})
|
41
|
+
request_stripe_object(
|
42
|
+
method: :post,
|
43
|
+
path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
|
44
|
+
params: params,
|
45
|
+
opts: opts
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Confirm a gift card transaction
|
50
|
+
def self.confirm(id, params = {}, opts = {})
|
51
|
+
request_stripe_object(
|
52
|
+
method: :post,
|
53
|
+
path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
|
54
|
+
params: params,
|
55
|
+
opts: opts
|
56
|
+
)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -40,9 +40,30 @@ module Stripe
|
|
40
40
|
extend Stripe::APIOperations::List
|
41
41
|
extend Stripe::APIOperations::Search
|
42
42
|
include Stripe::APIOperations::Save
|
43
|
+
extend Stripe::APIOperations::NestedResource
|
43
44
|
|
44
45
|
OBJECT_NAME = "invoice"
|
45
46
|
|
47
|
+
nested_resource_class_methods :payment, operations: %i[retrieve list]
|
48
|
+
|
49
|
+
# Attaches a PaymentIntent to the invoice, adding it to the list of payments.
|
50
|
+
# When the PaymentIntent's status changes to succeeded, the payment is credited
|
51
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
52
|
+
# invoice's status becomes paid.
|
53
|
+
#
|
54
|
+
# If the PaymentIntent's status is already succeeded when it is attached, it is
|
55
|
+
# credited to the invoice immediately.
|
56
|
+
#
|
57
|
+
# Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
|
58
|
+
def attach_payment_intent(params = {}, opts = {})
|
59
|
+
request_stripe_object(
|
60
|
+
method: :post,
|
61
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(self["id"]) }),
|
62
|
+
params: params,
|
63
|
+
opts: opts
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
46
67
|
# Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method.
|
47
68
|
def finalize_invoice(params = {}, opts = {})
|
48
69
|
request_stripe_object(
|
@@ -95,6 +116,24 @@ module Stripe
|
|
95
116
|
)
|
96
117
|
end
|
97
118
|
|
119
|
+
# Attaches a PaymentIntent to the invoice, adding it to the list of payments.
|
120
|
+
# When the PaymentIntent's status changes to succeeded, the payment is credited
|
121
|
+
# to the invoice, increasing its amount_paid. When the invoice is fully paid, the
|
122
|
+
# invoice's status becomes paid.
|
123
|
+
#
|
124
|
+
# If the PaymentIntent's status is already succeeded when it is attached, it is
|
125
|
+
# credited to the invoice immediately.
|
126
|
+
#
|
127
|
+
# Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
|
128
|
+
def self.attach_payment_intent(invoice, params = {}, opts = {})
|
129
|
+
request_stripe_object(
|
130
|
+
method: :post,
|
131
|
+
path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
|
132
|
+
params: params,
|
133
|
+
opts: opts
|
134
|
+
)
|
135
|
+
end
|
136
|
+
|
98
137
|
# Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method.
|
99
138
|
def self.finalize_invoice(invoice, params = {}, opts = {})
|
100
139
|
request_stripe_object(
|
@@ -0,0 +1,75 @@
|
|
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
|
+
|
14
|
+
# Update a CreditUnderwritingRecord object to correct mistakes.
|
15
|
+
def correct(params = {}, opts = {})
|
16
|
+
request_stripe_object(
|
17
|
+
method: :post,
|
18
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(self["id"]) }),
|
19
|
+
params: params,
|
20
|
+
opts: opts
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Update a CreditUnderwritingRecord object from a decision made on a credit application.
|
25
|
+
def report_decision(params = {}, opts = {})
|
26
|
+
request_stripe_object(
|
27
|
+
method: :post,
|
28
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(self["id"]) }),
|
29
|
+
params: params,
|
30
|
+
opts: opts
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Update a CreditUnderwritingRecord object to correct mistakes.
|
35
|
+
def self.correct(credit_underwriting_record, params = {}, opts = {})
|
36
|
+
request_stripe_object(
|
37
|
+
method: :post,
|
38
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
|
39
|
+
params: params,
|
40
|
+
opts: opts
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Creates a CreditUnderwritingRecord object with information about a credit application submission.
|
45
|
+
def self.create_from_application(params = {}, opts = {})
|
46
|
+
request_stripe_object(
|
47
|
+
method: :post,
|
48
|
+
path: "/v1/issuing/credit_underwriting_records/create_from_application",
|
49
|
+
params: params,
|
50
|
+
opts: opts
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
# Creates a CreditUnderwritingRecord object from an underwriting decision coming from a proactive review of an existing accountholder.
|
55
|
+
def self.create_from_proactive_review(params = {}, opts = {})
|
56
|
+
request_stripe_object(
|
57
|
+
method: :post,
|
58
|
+
path: "/v1/issuing/credit_underwriting_records/create_from_proactive_review",
|
59
|
+
params: params,
|
60
|
+
opts: opts
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Update a CreditUnderwritingRecord object from a decision made on a credit application.
|
65
|
+
def self.report_decision(credit_underwriting_record, params = {}, opts = {})
|
66
|
+
request_stripe_object(
|
67
|
+
method: :post,
|
68
|
+
path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
|
69
|
+
params: params,
|
70
|
+
opts: opts
|
71
|
+
)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,83 @@
|
|
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
|
+
def test_helpers
|
15
|
+
TestHelpers.new(self)
|
16
|
+
end
|
17
|
+
|
18
|
+
class TestHelpers < APIResourceTestHelpers
|
19
|
+
RESOURCE_CLASS = PersonalizationDesign
|
20
|
+
|
21
|
+
# Updates the status of the specified testmode personalization design object to active.
|
22
|
+
def self.activate(personalization_design, params = {}, opts = {})
|
23
|
+
request_stripe_object(
|
24
|
+
method: :post,
|
25
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(personalization_design) }),
|
26
|
+
params: params,
|
27
|
+
opts: opts
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Updates the status of the specified testmode personalization design object to inactive.
|
32
|
+
def self.deactivate(personalization_design, params = {}, opts = {})
|
33
|
+
request_stripe_object(
|
34
|
+
method: :post,
|
35
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(personalization_design) }),
|
36
|
+
params: params,
|
37
|
+
opts: opts
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Updates the status of the specified testmode personalization design object to rejected.
|
42
|
+
def self.reject(personalization_design, params = {}, opts = {})
|
43
|
+
request_stripe_object(
|
44
|
+
method: :post,
|
45
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(personalization_design) }),
|
46
|
+
params: params,
|
47
|
+
opts: opts
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Updates the status of the specified testmode personalization design object to active.
|
52
|
+
def activate(params = {}, opts = {})
|
53
|
+
@resource.request_stripe_object(
|
54
|
+
method: :post,
|
55
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(@resource["id"]) }),
|
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 deactivate(params = {}, opts = {})
|
63
|
+
@resource.request_stripe_object(
|
64
|
+
method: :post,
|
65
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(@resource["id"]) }),
|
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 reject(params = {}, opts = {})
|
73
|
+
@resource.request_stripe_object(
|
74
|
+
method: :post,
|
75
|
+
path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(@resource["id"]) }),
|
76
|
+
params: params,
|
77
|
+
opts: opts
|
78
|
+
)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
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 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
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,14 @@
|
|
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
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,97 @@
|
|
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
|
+
end
|
97
|
+
end
|