stripe 10.13.0 → 10.14.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +305 -46
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +11 -0
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_operations/request.rb +2 -1
  7. data/lib/stripe/api_version.rb +1 -0
  8. data/lib/stripe/object_types.rb +23 -0
  9. data/lib/stripe/request_signing_authenticator.rb +79 -0
  10. data/lib/stripe/resources/account_notice.rb +32 -0
  11. data/lib/stripe/resources/billing/meter.rb +83 -0
  12. data/lib/stripe/resources/billing/meter_event.rb +27 -0
  13. data/lib/stripe/resources/billing/meter_event_adjustment.rb +26 -0
  14. data/lib/stripe/resources/billing/meter_event_summary.rb +15 -0
  15. data/lib/stripe/resources/capital/financing_offer.rb +49 -0
  16. data/lib/stripe/resources/capital/financing_summary.rb +15 -0
  17. data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
  18. data/lib/stripe/resources/entitlements/active_entitlement.rb +26 -0
  19. data/lib/stripe/resources/entitlements/feature.rb +38 -0
  20. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  21. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  22. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  23. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  24. data/lib/stripe/resources/invoice.rb +113 -0
  25. data/lib/stripe/resources/invoice_payment.rb +12 -0
  26. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  27. data/lib/stripe/resources/margin.rb +37 -0
  28. data/lib/stripe/resources/order.rb +120 -0
  29. data/lib/stripe/resources/payment_intent.rb +50 -0
  30. data/lib/stripe/resources/product.rb +3 -0
  31. data/lib/stripe/resources/product_feature.rb +13 -0
  32. data/lib/stripe/resources/quote.rb +106 -2
  33. data/lib/stripe/resources/quote_phase.rb +39 -0
  34. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  35. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  36. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  37. data/lib/stripe/resources/tax/form.rb +49 -0
  38. data/lib/stripe/resources/terminal/reader.rb +60 -0
  39. data/lib/stripe/resources.rb +22 -0
  40. data/lib/stripe/stripe_client.rb +62 -28
  41. data/lib/stripe/stripe_configuration.rb +2 -1
  42. data/lib/stripe/util.rb +8 -1
  43. data/lib/stripe/version.rb +1 -1
  44. data/lib/stripe.rb +54 -0
  45. metadata +26 -3
@@ -15,6 +15,7 @@ module Stripe
15
15
  # 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,
@@ -23,9 +24,16 @@ module Stripe
23
24
  Balance.object_name => Balance,
24
25
  BalanceTransaction.object_name => BalanceTransaction,
25
26
  BankAccount.object_name => BankAccount,
27
+ Billing::Meter.object_name => Billing::Meter,
28
+ Billing::MeterEvent.object_name => Billing::MeterEvent,
29
+ Billing::MeterEventAdjustment.object_name => Billing::MeterEventAdjustment,
30
+ Billing::MeterEventSummary.object_name => Billing::MeterEventSummary,
26
31
  BillingPortal::Configuration.object_name => BillingPortal::Configuration,
27
32
  BillingPortal::Session.object_name => BillingPortal::Session,
28
33
  Capability.object_name => Capability,
34
+ Capital::FinancingOffer.object_name => Capital::FinancingOffer,
35
+ Capital::FinancingSummary.object_name => Capital::FinancingSummary,
36
+ Capital::FinancingTransaction.object_name => Capital::FinancingTransaction,
29
37
  Card.object_name => Card,
30
38
  CashBalance.object_name => CashBalance,
31
39
  Charge.object_name => Charge,
@@ -44,26 +52,34 @@ module Stripe
44
52
  CustomerSession.object_name => CustomerSession,
45
53
  Discount.object_name => Discount,
46
54
  Dispute.object_name => Dispute,
55
+ Entitlements::ActiveEntitlement.object_name => Entitlements::ActiveEntitlement,
56
+ Entitlements::Feature.object_name => Entitlements::Feature,
47
57
  EphemeralKey.object_name => EphemeralKey,
48
58
  Event.object_name => Event,
49
59
  ExchangeRate.object_name => ExchangeRate,
50
60
  File.object_name => File,
51
61
  FileLink.object_name => FileLink,
52
62
  FinancialConnections::Account.object_name => FinancialConnections::Account,
63
+ FinancialConnections::AccountInferredBalance.object_name =>
64
+ FinancialConnections::AccountInferredBalance,
53
65
  FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
54
66
  FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
55
67
  FinancialConnections::Session.object_name => FinancialConnections::Session,
56
68
  FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
57
69
  Forwarding::Request.object_name => Forwarding::Request,
58
70
  FundingInstructions.object_name => FundingInstructions,
71
+ GiftCards::Card.object_name => GiftCards::Card,
72
+ GiftCards::Transaction.object_name => GiftCards::Transaction,
59
73
  Identity::VerificationReport.object_name => Identity::VerificationReport,
60
74
  Identity::VerificationSession.object_name => Identity::VerificationSession,
61
75
  Invoice.object_name => Invoice,
62
76
  InvoiceItem.object_name => InvoiceItem,
63
77
  InvoiceLineItem.object_name => InvoiceLineItem,
78
+ InvoicePayment.object_name => InvoicePayment,
64
79
  Issuing::Authorization.object_name => Issuing::Authorization,
65
80
  Issuing::Card.object_name => Issuing::Card,
66
81
  Issuing::Cardholder.object_name => Issuing::Cardholder,
82
+ Issuing::CreditUnderwritingRecord.object_name => Issuing::CreditUnderwritingRecord,
67
83
  Issuing::Dispute.object_name => Issuing::Dispute,
68
84
  Issuing::PersonalizationDesign.object_name => Issuing::PersonalizationDesign,
69
85
  Issuing::PhysicalBundle.object_name => Issuing::PhysicalBundle,
@@ -72,6 +88,8 @@ module Stripe
72
88
  LineItem.object_name => LineItem,
73
89
  LoginLink.object_name => LoginLink,
74
90
  Mandate.object_name => Mandate,
91
+ Margin.object_name => Margin,
92
+ Order.object_name => Order,
75
93
  PaymentIntent.object_name => PaymentIntent,
76
94
  PaymentLink.object_name => PaymentLink,
77
95
  PaymentMethod.object_name => PaymentMethod,
@@ -82,8 +100,12 @@ module Stripe
82
100
  Plan.object_name => Plan,
83
101
  Price.object_name => Price,
84
102
  Product.object_name => Product,
103
+ ProductFeature.object_name => ProductFeature,
85
104
  PromotionCode.object_name => PromotionCode,
86
105
  Quote.object_name => Quote,
106
+ QuotePhase.object_name => QuotePhase,
107
+ QuotePreviewInvoice.object_name => QuotePreviewInvoice,
108
+ QuotePreviewSubscriptionSchedule.object_name => QuotePreviewSubscriptionSchedule,
87
109
  Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning,
88
110
  Radar::ValueList.object_name => Radar::ValueList,
89
111
  Radar::ValueListItem.object_name => Radar::ValueListItem,
@@ -103,6 +125,7 @@ module Stripe
103
125
  SubscriptionSchedule.object_name => SubscriptionSchedule,
104
126
  Tax::Calculation.object_name => Tax::Calculation,
105
127
  Tax::CalculationLineItem.object_name => Tax::CalculationLineItem,
128
+ Tax::Form.object_name => Tax::Form,
106
129
  Tax::Registration.object_name => Tax::Registration,
107
130
  Tax::Settings.object_name => Tax::Settings,
108
131
  Tax::Transaction.object_name => Tax::Transaction,
@@ -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,83 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Billing
6
+ # A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then use the billing meter to charge the user for the number of API calls they make.
7
+ class Meter < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+ extend Stripe::APIOperations::NestedResource
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "billing.meter"
14
+ def self.object_name
15
+ "billing.meter"
16
+ end
17
+
18
+ nested_resource_class_methods :event_summary,
19
+ operations: %i[list],
20
+ resource_plural: "event_summaries"
21
+
22
+ # Creates a billing meter
23
+ def self.create(params = {}, opts = {})
24
+ request_stripe_object(method: :post, path: "/v1/billing/meters", params: params, opts: opts)
25
+ end
26
+
27
+ # Deactivates a billing meter
28
+ def deactivate(params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :post,
31
+ path: format("/v1/billing/meters/%<id>s/deactivate", { id: CGI.escape(self["id"]) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ # Deactivates a billing meter
38
+ def self.deactivate(id, params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/billing/meters/%<id>s/deactivate", { id: CGI.escape(id) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ # Retrieve a list of billing meters.
48
+ def self.list(filters = {}, opts = {})
49
+ request_stripe_object(method: :get, path: "/v1/billing/meters", params: filters, opts: opts)
50
+ end
51
+
52
+ # Reactivates a billing meter
53
+ def reactivate(params = {}, opts = {})
54
+ request_stripe_object(
55
+ method: :post,
56
+ path: format("/v1/billing/meters/%<id>s/reactivate", { id: CGI.escape(self["id"]) }),
57
+ params: params,
58
+ opts: opts
59
+ )
60
+ end
61
+
62
+ # Reactivates a billing meter
63
+ def self.reactivate(id, params = {}, opts = {})
64
+ request_stripe_object(
65
+ method: :post,
66
+ path: format("/v1/billing/meters/%<id>s/reactivate", { id: CGI.escape(id) }),
67
+ params: params,
68
+ opts: opts
69
+ )
70
+ end
71
+
72
+ # Updates a billing meter
73
+ def self.update(id, params = {}, opts = {})
74
+ request_stripe_object(
75
+ method: :post,
76
+ path: format("/v1/billing/meters/%<id>s", { id: CGI.escape(id) }),
77
+ params: params,
78
+ opts: opts
79
+ )
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,27 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Billing
6
+ # A billing meter event represents a customer's usage of a product. Meter events are used to bill a customer based on their usage.
7
+ # Meter events are associated with billing meters, which define the shape of the event's payload and how those events are aggregated for billing.
8
+ class MeterEvent < APIResource
9
+ extend Stripe::APIOperations::Create
10
+
11
+ OBJECT_NAME = "billing.meter_event"
12
+ def self.object_name
13
+ "billing.meter_event"
14
+ end
15
+
16
+ # Creates a billing meter event
17
+ def self.create(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :post,
20
+ path: "/v1/billing/meter_events",
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Billing
6
+ # A billing meter event adjustment represents the status of a meter event adjustment.
7
+ class MeterEventAdjustment < APIResource
8
+ extend Stripe::APIOperations::Create
9
+
10
+ OBJECT_NAME = "billing.meter_event_adjustment"
11
+ def self.object_name
12
+ "billing.meter_event_adjustment"
13
+ end
14
+
15
+ # Creates a billing meter event adjustment
16
+ def self.create(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: "/v1/billing/meter_event_adjustments",
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Billing
6
+ # A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much
7
+ # usage was accrued by a customer for that period.
8
+ class MeterEventSummary < APIResource
9
+ OBJECT_NAME = "billing.meter_event_summary"
10
+ def self.object_name
11
+ "billing.meter_event_summary"
12
+ end
13
+ end
14
+ end
15
+ 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
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Entitlements
6
+ # An active entitlement describes access to a feature for a customer.
7
+ class ActiveEntitlement < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "entitlements.active_entitlement"
11
+ def self.object_name
12
+ "entitlements.active_entitlement"
13
+ end
14
+
15
+ # Retrieve a list of active entitlements for a customer
16
+ def self.list(filters = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :get,
19
+ path: "/v1/entitlements/active_entitlements",
20
+ params: filters,
21
+ opts: opts
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,38 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Entitlements
6
+ # A feature represents a monetizable ability or functionality in your system.
7
+ # Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer.
8
+ class Feature < APIResource
9
+ extend Stripe::APIOperations::Create
10
+ extend Stripe::APIOperations::List
11
+
12
+ OBJECT_NAME = "entitlements.feature"
13
+ def self.object_name
14
+ "entitlements.feature"
15
+ end
16
+
17
+ # Creates a feature
18
+ def self.create(params = {}, opts = {})
19
+ request_stripe_object(
20
+ method: :post,
21
+ path: "/v1/entitlements/features",
22
+ params: params,
23
+ opts: opts
24
+ )
25
+ end
26
+
27
+ # Retrieve a list of features
28
+ def self.list(filters = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :get,
31
+ path: "/v1/entitlements/features",
32
+ params: filters,
33
+ opts: opts
34
+ )
35
+ end
36
+ end
37
+ end
38
+ 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,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