stripe 10.12.0 → 10.13.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +301 -40
  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 +24 -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/confirmation_token.rb +37 -0
  19. data/lib/stripe/resources/customer.rb +11 -0
  20. data/lib/stripe/resources/customer_entitlement.rb +12 -0
  21. data/lib/stripe/resources/customer_entitlement_summary.rb +12 -0
  22. data/lib/stripe/resources/entitlements/feature.rb +38 -0
  23. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  24. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  25. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  26. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  27. data/lib/stripe/resources/invoice.rb +113 -0
  28. data/lib/stripe/resources/invoice_payment.rb +12 -0
  29. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  30. data/lib/stripe/resources/margin.rb +37 -0
  31. data/lib/stripe/resources/order.rb +120 -0
  32. data/lib/stripe/resources/payment_intent.rb +50 -0
  33. data/lib/stripe/resources/quote.rb +104 -0
  34. data/lib/stripe/resources/quote_phase.rb +39 -0
  35. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  36. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  37. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  38. data/lib/stripe/resources/tax/form.rb +49 -0
  39. data/lib/stripe/resources/terminal/reader.rb +60 -0
  40. data/lib/stripe/resources.rb +23 -0
  41. data/lib/stripe/stripe_client.rb +62 -28
  42. data/lib/stripe/stripe_configuration.rb +2 -1
  43. data/lib/stripe/util.rb +8 -1
  44. data/lib/stripe/version.rb +1 -1
  45. data/lib/stripe.rb +54 -0
  46. metadata +27 -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,
@@ -33,6 +41,7 @@ module Stripe
33
41
  Climate::Order.object_name => Climate::Order,
34
42
  Climate::Product.object_name => Climate::Product,
35
43
  Climate::Supplier.object_name => Climate::Supplier,
44
+ ConfirmationToken.object_name => ConfirmationToken,
36
45
  CountrySpec.object_name => CountrySpec,
37
46
  Coupon.object_name => Coupon,
38
47
  CreditNote.object_name => CreditNote,
@@ -40,28 +49,37 @@ module Stripe
40
49
  Customer.object_name => Customer,
41
50
  CustomerBalanceTransaction.object_name => CustomerBalanceTransaction,
42
51
  CustomerCashBalanceTransaction.object_name => CustomerCashBalanceTransaction,
52
+ CustomerEntitlement.object_name => CustomerEntitlement,
53
+ CustomerEntitlementSummary.object_name => CustomerEntitlementSummary,
43
54
  CustomerSession.object_name => CustomerSession,
44
55
  Discount.object_name => Discount,
45
56
  Dispute.object_name => Dispute,
57
+ Entitlements::Feature.object_name => Entitlements::Feature,
46
58
  EphemeralKey.object_name => EphemeralKey,
47
59
  Event.object_name => Event,
48
60
  ExchangeRate.object_name => ExchangeRate,
49
61
  File.object_name => File,
50
62
  FileLink.object_name => FileLink,
51
63
  FinancialConnections::Account.object_name => FinancialConnections::Account,
64
+ FinancialConnections::AccountInferredBalance.object_name =>
65
+ FinancialConnections::AccountInferredBalance,
52
66
  FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
53
67
  FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
54
68
  FinancialConnections::Session.object_name => FinancialConnections::Session,
55
69
  FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
56
70
  FundingInstructions.object_name => FundingInstructions,
71
+ GiftCards::Card.object_name => GiftCards::Card,
72
+ GiftCards::Transaction.object_name => GiftCards::Transaction,
57
73
  Identity::VerificationReport.object_name => Identity::VerificationReport,
58
74
  Identity::VerificationSession.object_name => Identity::VerificationSession,
59
75
  Invoice.object_name => Invoice,
60
76
  InvoiceItem.object_name => InvoiceItem,
61
77
  InvoiceLineItem.object_name => InvoiceLineItem,
78
+ InvoicePayment.object_name => InvoicePayment,
62
79
  Issuing::Authorization.object_name => Issuing::Authorization,
63
80
  Issuing::Card.object_name => Issuing::Card,
64
81
  Issuing::Cardholder.object_name => Issuing::Cardholder,
82
+ Issuing::CreditUnderwritingRecord.object_name => Issuing::CreditUnderwritingRecord,
65
83
  Issuing::Dispute.object_name => Issuing::Dispute,
66
84
  Issuing::PersonalizationDesign.object_name => Issuing::PersonalizationDesign,
67
85
  Issuing::PhysicalBundle.object_name => Issuing::PhysicalBundle,
@@ -70,6 +88,8 @@ module Stripe
70
88
  LineItem.object_name => LineItem,
71
89
  LoginLink.object_name => LoginLink,
72
90
  Mandate.object_name => Mandate,
91
+ Margin.object_name => Margin,
92
+ Order.object_name => Order,
73
93
  PaymentIntent.object_name => PaymentIntent,
74
94
  PaymentLink.object_name => PaymentLink,
75
95
  PaymentMethod.object_name => PaymentMethod,
@@ -82,6 +102,9 @@ module Stripe
82
102
  Product.object_name => Product,
83
103
  PromotionCode.object_name => PromotionCode,
84
104
  Quote.object_name => Quote,
105
+ QuotePhase.object_name => QuotePhase,
106
+ QuotePreviewInvoice.object_name => QuotePreviewInvoice,
107
+ QuotePreviewSubscriptionSchedule.object_name => QuotePreviewSubscriptionSchedule,
85
108
  Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning,
86
109
  Radar::ValueList.object_name => Radar::ValueList,
87
110
  Radar::ValueListItem.object_name => Radar::ValueListItem,
@@ -101,6 +124,7 @@ module Stripe
101
124
  SubscriptionSchedule.object_name => SubscriptionSchedule,
102
125
  Tax::Calculation.object_name => Tax::Calculation,
103
126
  Tax::CalculationLineItem.object_name => Tax::CalculationLineItem,
127
+ Tax::Form.object_name => Tax::Form,
104
128
  Tax::Registration.object_name => Tax::Registration,
105
129
  Tax::Settings.object_name => Tax::Settings,
106
130
  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,37 @@
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
+ def self.object_name
13
+ "confirmation_token"
14
+ end
15
+
16
+ def test_helpers
17
+ TestHelpers.new(self)
18
+ end
19
+
20
+ class TestHelpers < APIResourceTestHelpers
21
+ RESOURCE_CLASS = ConfirmationToken
22
+ def self.resource_class
23
+ "ConfirmationToken"
24
+ end
25
+
26
+ # Creates a test mode Confirmation Token server side for your integration tests.
27
+ def self.create(params = {}, opts = {})
28
+ request_stripe_object(
29
+ method: :post,
30
+ path: "/v1/test_helpers/confirmation_tokens",
31
+ params: params,
32
+ opts: opts
33
+ )
34
+ end
35
+ end
36
+ end
37
+ end
@@ -22,6 +22,7 @@ module Stripe
22
22
  nested_resource_class_methods :cash_balance_transaction, operations: %i[retrieve list]
23
23
  nested_resource_class_methods :source, operations: %i[create retrieve update delete list]
24
24
  nested_resource_class_methods :tax_id, operations: %i[create retrieve delete list]
25
+ nested_resource_class_methods :entitlement, operations: %i[list]
25
26
 
26
27
  # Creates a new customer object.
27
28
  def self.create(params = {}, opts = {})
@@ -127,6 +128,16 @@ module Stripe
127
128
  )
128
129
  end
129
130
 
131
+ # Retrieve the entitlement summary for a customer
132
+ def self.retrieve_entitlement_summary(customer, params = {}, opts = {})
133
+ request_stripe_object(
134
+ method: :get,
135
+ path: format("/v1/customers/%<customer>s/entitlement_summary", { customer: CGI.escape(customer) }),
136
+ params: params,
137
+ opts: opts
138
+ )
139
+ end
140
+
130
141
  # Retrieves a PaymentMethod object for a given Customer.
131
142
  def retrieve_payment_method(payment_method, params = {}, opts = {})
132
143
  request_stripe_object(
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A entitlement for a customer describes access to a feature.
6
+ class CustomerEntitlement < APIResource
7
+ OBJECT_NAME = "customer_entitlement"
8
+ def self.object_name
9
+ "customer_entitlement"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A summary of a customer's entitlements.
6
+ class CustomerEntitlementSummary < APIResource
7
+ OBJECT_NAME = "customer_entitlement_summary"
8
+ def self.object_name
9
+ "customer_entitlement_summary"
10
+ end
11
+ end
12
+ 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