stripe 9.4.1 → 9.5.0.pre.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +219 -46
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +11 -0
  5. data/VERSION +1 -1
  6. data/lib/data/ca-certificates.crt +3340 -290
  7. data/lib/stripe/api_operations/request.rb +2 -0
  8. data/lib/stripe/api_version.rb +1 -0
  9. data/lib/stripe/object_types.rb +18 -0
  10. data/lib/stripe/request_signing_authenticator.rb +83 -0
  11. data/lib/stripe/resources/capital/financing_offer.rb +32 -0
  12. data/lib/stripe/resources/capital/financing_summary.rb +12 -0
  13. data/lib/stripe/resources/capital/financing_transaction.rb +13 -0
  14. data/lib/stripe/resources/confirmation_token.rb +11 -0
  15. data/lib/stripe/resources/customer_session.rb +12 -0
  16. data/lib/stripe/resources/financial_connections/account.rb +39 -0
  17. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +13 -0
  18. data/lib/stripe/resources/financial_connections/transaction.rb +13 -0
  19. data/lib/stripe/resources/gift_cards/card.rb +25 -0
  20. data/lib/stripe/resources/gift_cards/transaction.rb +56 -0
  21. data/lib/stripe/resources/issuing/personalization_design.rb +77 -0
  22. data/lib/stripe/resources/issuing/physical_bundle.rb +13 -0
  23. data/lib/stripe/resources/order.rb +89 -0
  24. data/lib/stripe/resources/quote.rb +94 -0
  25. data/lib/stripe/resources/quote_phase.rb +29 -0
  26. data/lib/stripe/resources/quote_preview_invoice.rb +42 -0
  27. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +10 -0
  28. data/lib/stripe/resources/subscription_schedule.rb +18 -0
  29. data/lib/stripe/resources/tax/form.rb +39 -0
  30. data/lib/stripe/resources/tax/registration.rb +19 -0
  31. data/lib/stripe/resources/terminal/reader.rb +54 -0
  32. data/lib/stripe/resources.rb +17 -0
  33. data/lib/stripe/stripe_client.rb +60 -26
  34. data/lib/stripe/stripe_configuration.rb +2 -0
  35. data/lib/stripe/util.rb +8 -1
  36. data/lib/stripe/version.rb +1 -1
  37. data/lib/stripe.rb +46 -0
  38. metadata +26 -8
@@ -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
 
@@ -4,5 +4,6 @@
4
4
  module Stripe
5
5
  module ApiVersion
6
6
  CURRENT = "2023-08-16"
7
+ PREVIEW = "2023-09-15.preview-v2"
7
8
  end
8
9
  end
@@ -25,10 +25,14 @@ module Stripe
25
25
  BillingPortal::Configuration::OBJECT_NAME => BillingPortal::Configuration,
26
26
  BillingPortal::Session::OBJECT_NAME => BillingPortal::Session,
27
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,
28
31
  Card::OBJECT_NAME => Card,
29
32
  CashBalance::OBJECT_NAME => CashBalance,
30
33
  Charge::OBJECT_NAME => Charge,
31
34
  Checkout::Session::OBJECT_NAME => Checkout::Session,
35
+ ConfirmationToken::OBJECT_NAME => ConfirmationToken,
32
36
  CountrySpec::OBJECT_NAME => CountrySpec,
33
37
  Coupon::OBJECT_NAME => Coupon,
34
38
  CreditNote::OBJECT_NAME => CreditNote,
@@ -36,6 +40,7 @@ module Stripe
36
40
  Customer::OBJECT_NAME => Customer,
37
41
  CustomerBalanceTransaction::OBJECT_NAME => CustomerBalanceTransaction,
38
42
  CustomerCashBalanceTransaction::OBJECT_NAME => CustomerCashBalanceTransaction,
43
+ CustomerSession::OBJECT_NAME => CustomerSession,
39
44
  Discount::OBJECT_NAME => Discount,
40
45
  Dispute::OBJECT_NAME => Dispute,
41
46
  EphemeralKey::OBJECT_NAME => EphemeralKey,
@@ -45,11 +50,16 @@ module Stripe
45
50
  File::OBJECT_NAME_ALT => File,
46
51
  FileLink::OBJECT_NAME => FileLink,
47
52
  FinancialConnections::Account::OBJECT_NAME => FinancialConnections::Account,
53
+ FinancialConnections::AccountInferredBalance::OBJECT_NAME =>
54
+ FinancialConnections::AccountInferredBalance,
48
55
  FinancialConnections::AccountOwner::OBJECT_NAME => FinancialConnections::AccountOwner,
49
56
  FinancialConnections::AccountOwnership::OBJECT_NAME =>
50
57
  FinancialConnections::AccountOwnership,
51
58
  FinancialConnections::Session::OBJECT_NAME => FinancialConnections::Session,
59
+ FinancialConnections::Transaction::OBJECT_NAME => FinancialConnections::Transaction,
52
60
  FundingInstructions::OBJECT_NAME => FundingInstructions,
61
+ GiftCards::Card::OBJECT_NAME => GiftCards::Card,
62
+ GiftCards::Transaction::OBJECT_NAME => GiftCards::Transaction,
53
63
  Identity::VerificationReport::OBJECT_NAME => Identity::VerificationReport,
54
64
  Identity::VerificationSession::OBJECT_NAME => Identity::VerificationSession,
55
65
  Invoice::OBJECT_NAME => Invoice,
@@ -59,11 +69,14 @@ module Stripe
59
69
  Issuing::Card::OBJECT_NAME => Issuing::Card,
60
70
  Issuing::Cardholder::OBJECT_NAME => Issuing::Cardholder,
61
71
  Issuing::Dispute::OBJECT_NAME => Issuing::Dispute,
72
+ Issuing::PersonalizationDesign::OBJECT_NAME => Issuing::PersonalizationDesign,
73
+ Issuing::PhysicalBundle::OBJECT_NAME => Issuing::PhysicalBundle,
62
74
  Issuing::Token::OBJECT_NAME => Issuing::Token,
63
75
  Issuing::Transaction::OBJECT_NAME => Issuing::Transaction,
64
76
  LineItem::OBJECT_NAME => LineItem,
65
77
  LoginLink::OBJECT_NAME => LoginLink,
66
78
  Mandate::OBJECT_NAME => Mandate,
79
+ Order::OBJECT_NAME => Order,
67
80
  PaymentIntent::OBJECT_NAME => PaymentIntent,
68
81
  PaymentLink::OBJECT_NAME => PaymentLink,
69
82
  PaymentMethod::OBJECT_NAME => PaymentMethod,
@@ -76,6 +89,9 @@ module Stripe
76
89
  Product::OBJECT_NAME => Product,
77
90
  PromotionCode::OBJECT_NAME => PromotionCode,
78
91
  Quote::OBJECT_NAME => Quote,
92
+ QuotePhase::OBJECT_NAME => QuotePhase,
93
+ QuotePreviewInvoice::OBJECT_NAME => QuotePreviewInvoice,
94
+ QuotePreviewSubscriptionSchedule::OBJECT_NAME => QuotePreviewSubscriptionSchedule,
79
95
  Radar::EarlyFraudWarning::OBJECT_NAME => Radar::EarlyFraudWarning,
80
96
  Radar::ValueList::OBJECT_NAME => Radar::ValueList,
81
97
  Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem,
@@ -95,6 +111,8 @@ module Stripe
95
111
  SubscriptionSchedule::OBJECT_NAME => SubscriptionSchedule,
96
112
  Tax::Calculation::OBJECT_NAME => Tax::Calculation,
97
113
  Tax::CalculationLineItem::OBJECT_NAME => Tax::CalculationLineItem,
114
+ Tax::Form::OBJECT_NAME => Tax::Form,
115
+ Tax::Registration::OBJECT_NAME => Tax::Registration,
98
116
  Tax::Settings::OBJECT_NAME => Tax::Settings,
99
117
  Tax::Transaction::OBJECT_NAME => Tax::Transaction,
100
118
  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,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,11 @@
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
+ class ConfirmationToken < APIResource
9
+ OBJECT_NAME = "confirmation_token"
10
+ end
11
+ 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 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,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
@@ -0,0 +1,77 @@
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
+ def self.activate(personalization_design, params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(personalization_design) }),
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ def self.deactivate(personalization_design, params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(personalization_design) }),
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ def self.reject(personalization_design, params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :post,
42
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(personalization_design) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+
48
+ def activate(params = {}, opts = {})
49
+ @resource.request_stripe_object(
50
+ method: :post,
51
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/activate", { personalization_design: CGI.escape(@resource["id"]) }),
52
+ params: params,
53
+ opts: opts
54
+ )
55
+ end
56
+
57
+ def deactivate(params = {}, opts = {})
58
+ @resource.request_stripe_object(
59
+ method: :post,
60
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/deactivate", { personalization_design: CGI.escape(@resource["id"]) }),
61
+ params: params,
62
+ opts: opts
63
+ )
64
+ end
65
+
66
+ def reject(params = {}, opts = {})
67
+ @resource.request_stripe_object(
68
+ method: :post,
69
+ path: format("/v1/test_helpers/issuing/personalization_designs/%<personalization_design>s/reject", { personalization_design: CGI.escape(@resource["id"]) }),
70
+ params: params,
71
+ opts: opts
72
+ )
73
+ end
74
+ end
75
+ end
76
+ end
77
+ 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,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