stripe 13.0.2 → 13.1.0.pre.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1370 -654
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +1 -1
  5. data/VERSION +1 -1
  6. data/examples/README.md +2 -7
  7. data/examples/meter_event_stream.rb +0 -10
  8. data/examples/new_example.rb +24 -0
  9. data/examples/{thinevent_webhook_handler.rb → stripe_webhook_handler.rb} +0 -11
  10. data/lib/stripe/api_resource.rb +1 -0
  11. data/lib/stripe/object_types.rb +19 -0
  12. data/lib/stripe/request_signing_authenticator.rb +79 -0
  13. data/lib/stripe/resources/account_notice.rb +32 -0
  14. data/lib/stripe/resources/billing/meter.rb +2 -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/financial_connections/account.rb +3 -0
  19. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  20. data/lib/stripe/resources/financial_connections/institution.rb +26 -0
  21. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  22. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  23. data/lib/stripe/resources/invoice.rb +81 -0
  24. data/lib/stripe/resources/invoice_payment.rb +12 -0
  25. data/lib/stripe/resources/issuing/card.rb +20 -0
  26. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  27. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
  28. data/lib/stripe/resources/margin.rb +37 -0
  29. data/lib/stripe/resources/order.rb +120 -0
  30. data/lib/stripe/resources/payment_intent.rb +50 -0
  31. data/lib/stripe/resources/quote.rb +104 -0
  32. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  33. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  34. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  35. data/lib/stripe/resources/tax/association.rb +24 -0
  36. data/lib/stripe/resources/tax/form.rb +49 -0
  37. data/lib/stripe/resources/terminal/reader.rb +60 -0
  38. data/lib/stripe/resources/terminal/reader_collected_data.rb +14 -0
  39. data/lib/stripe/resources/usage_record_summary.rb +1 -0
  40. data/lib/stripe/resources/v2/billing/meter_event.rb +2 -2
  41. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +2 -2
  42. data/lib/stripe/resources/v2/billing/meter_event_session.rb +2 -2
  43. data/lib/stripe/resources.rb +18 -0
  44. data/lib/stripe/services/account_notice_service.rb +39 -0
  45. data/lib/stripe/services/capital/financing_offer_service.rb +42 -0
  46. data/lib/stripe/services/capital/financing_summary_service.rb +19 -0
  47. data/lib/stripe/services/capital/financing_transaction_service.rb +31 -0
  48. data/lib/stripe/services/capital_service.rb +15 -0
  49. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +19 -0
  50. data/lib/stripe/services/financial_connections/account_service.rb +3 -1
  51. data/lib/stripe/services/financial_connections/institution_service.rb +30 -0
  52. data/lib/stripe/services/financial_connections_service.rb +2 -1
  53. data/lib/stripe/services/gift_cards/card_service.rb +63 -0
  54. data/lib/stripe/services/gift_cards/transaction_service.rb +74 -0
  55. data/lib/stripe/services/gift_cards_service.rb +14 -0
  56. data/lib/stripe/services/invoice_payment_service.rb +28 -0
  57. data/lib/stripe/services/invoice_service.rb +44 -1
  58. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +74 -0
  59. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +30 -0
  60. data/lib/stripe/services/issuing_service.rb +4 -1
  61. data/lib/stripe/services/margin_service.rb +50 -0
  62. data/lib/stripe/services/order_line_item_service.rb +17 -0
  63. data/lib/stripe/services/order_service.rb +78 -0
  64. data/lib/stripe/services/payment_intent_service.rb +26 -0
  65. data/lib/stripe/services/quote_line_service.rb +17 -0
  66. data/lib/stripe/services/quote_preview_invoice_service.rb +17 -0
  67. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +17 -0
  68. data/lib/stripe/services/quote_service.rb +49 -1
  69. data/lib/stripe/services/subscription_schedule_service.rb +11 -0
  70. data/lib/stripe/services/tax/association_service.rb +19 -0
  71. data/lib/stripe/services/tax/form_service.rb +37 -0
  72. data/lib/stripe/services/tax_service.rb +3 -1
  73. data/lib/stripe/services/terminal/reader_collected_data_service.rb +19 -0
  74. data/lib/stripe/services/terminal/reader_service.rb +33 -0
  75. data/lib/stripe/services/terminal_service.rb +2 -1
  76. data/lib/stripe/services/test_helpers/issuing/card_service.rb +11 -0
  77. data/lib/stripe/services/v1_services.rb +6 -1
  78. data/lib/stripe/services.rb +22 -0
  79. data/lib/stripe/stripe_configuration.rb +3 -1
  80. data/lib/stripe/util.rb +7 -1
  81. data/lib/stripe/version.rb +1 -1
  82. data/lib/stripe.rb +45 -0
  83. metadata +47 -6
  84. data/examples/example_template.rb +0 -36
data/OPENAPI_VERSION CHANGED
@@ -1 +1 @@
1
- v1268
1
+ v1273
data/README.md CHANGED
@@ -367,7 +367,7 @@ background terminal ([stripe-mock's README][stripe-mock] also contains
367
367
  instructions for installing via Homebrew and other methods):
368
368
 
369
369
  ```sh
370
- go install github.com/stripe/stripe-mock@latest
370
+ go get -u github.com/stripe/stripe-mock
371
371
  stripe-mock
372
372
  ```
373
373
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 13.0.2
1
+ 13.1.0-beta.2
data/examples/README.md CHANGED
@@ -3,14 +3,9 @@
3
3
  From the examples folder, run:
4
4
  `RUBYLIB=../lib ruby your_example.rb`
5
5
 
6
- e.g.
7
-
8
- `RUBYLIB=../lib ruby thinevent_webhook_handler.rb`
9
-
10
6
  ## Adding a new example
11
7
 
12
8
  1. Clone new_example.rb
13
9
  2. Implement your example
14
- 3. Fill out the file comment. Include a description and key steps that are being demonstrated.
15
- 4. Run it (as per above)
16
- 5. 👍
10
+ 3. Run it (as per above)
11
+ 4. 👍
@@ -1,15 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # meter_event_stream.py - use the high-throughput meter event stream to report create billing meter events.
4
- #
5
- # In this example, we:
6
- # - create a meter event session and store the session's authentication token
7
- # - define an event with a payload
8
- # - use the meter_event_stream service accessor in StripeClient to create an event stream that reports this event
9
- #
10
- # This example expects a billing meter with an event_name of 'alpaca_ai_tokens'. If you have
11
- # a different meter event name, you can change it before running this example.
12
-
13
3
  require "stripe"
14
4
  require "date"
15
5
 
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "stripe"
4
+ require "date"
5
+
6
+ class NewExample
7
+ attr_accessor :api_key
8
+
9
+ def initialize(api_key)
10
+ @api_key = api_key
11
+ end
12
+
13
+ def do_something_great
14
+ puts "Hello World"
15
+ # client = Stripe::StripeClient.new(api_key)
16
+ # client.v1
17
+ end
18
+ end
19
+
20
+ # Send meter events
21
+ api_key = "{{API_KEY}}"
22
+
23
+ example = NewExample.new(api_key)
24
+ example.do_something_great
@@ -1,17 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  # typed: false
3
3
 
4
- # thinevent_webhook_handler.rb - receive and process thin events like the
5
- # v1.billing.meter.error_report_triggered event.
6
- #
7
- # In this example, we:
8
- # - create a StripeClient called client
9
- # - use client.parse_thin_event to parse the received thin event webhook body
10
- # - call client.v2.core.events.retrieve to retrieve the full event object
11
- # - if it is a V1BillingMeterErrorReportTriggeredEvent event type, call
12
- # event.fetchRelatedObject to retrieve the Billing Meter object associated
13
- # with the event.
14
-
15
4
  require "stripe"
16
5
  require "sinatra"
17
6
 
@@ -110,6 +110,7 @@ module Stripe
110
110
  opts = Util.normalize_opts(opts)
111
111
  instance = new(id, opts)
112
112
  instance.refresh
113
+ instance
113
114
  end
114
115
 
115
116
  def request_stripe_object(method:, path:, params:, base_address: :api, opts: {})
@@ -14,6 +14,7 @@ module Stripe
14
14
  # object classes: The beginning of the section generated from our OpenAPI spec
15
15
  Account.object_name => Account,
16
16
  AccountLink.object_name => AccountLink,
17
+ AccountNotice.object_name => AccountNotice,
17
18
  AccountSession.object_name => AccountSession,
18
19
  ApplePayDomain.object_name => ApplePayDomain,
19
20
  ApplicationFee.object_name => ApplicationFee,
@@ -33,6 +34,9 @@ module Stripe
33
34
  BillingPortal::Configuration.object_name => BillingPortal::Configuration,
34
35
  BillingPortal::Session.object_name => BillingPortal::Session,
35
36
  Capability.object_name => Capability,
37
+ Capital::FinancingOffer.object_name => Capital::FinancingOffer,
38
+ Capital::FinancingSummary.object_name => Capital::FinancingSummary,
39
+ Capital::FinancingTransaction.object_name => Capital::FinancingTransaction,
36
40
  Card.object_name => Card,
37
41
  CashBalance.object_name => CashBalance,
38
42
  Charge.object_name => Charge,
@@ -59,22 +63,30 @@ module Stripe
59
63
  File.object_name => File,
60
64
  FileLink.object_name => FileLink,
61
65
  FinancialConnections::Account.object_name => FinancialConnections::Account,
66
+ FinancialConnections::AccountInferredBalance.object_name =>
67
+ FinancialConnections::AccountInferredBalance,
62
68
  FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner,
63
69
  FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership,
70
+ FinancialConnections::Institution.object_name => FinancialConnections::Institution,
64
71
  FinancialConnections::Session.object_name => FinancialConnections::Session,
65
72
  FinancialConnections::Transaction.object_name => FinancialConnections::Transaction,
66
73
  Forwarding::Request.object_name => Forwarding::Request,
67
74
  FundingInstructions.object_name => FundingInstructions,
75
+ GiftCards::Card.object_name => GiftCards::Card,
76
+ GiftCards::Transaction.object_name => GiftCards::Transaction,
68
77
  Identity::VerificationReport.object_name => Identity::VerificationReport,
69
78
  Identity::VerificationSession.object_name => Identity::VerificationSession,
70
79
  Invoice.object_name => Invoice,
71
80
  InvoiceItem.object_name => InvoiceItem,
72
81
  InvoiceLineItem.object_name => InvoiceLineItem,
82
+ InvoicePayment.object_name => InvoicePayment,
73
83
  InvoiceRenderingTemplate.object_name => InvoiceRenderingTemplate,
74
84
  Issuing::Authorization.object_name => Issuing::Authorization,
75
85
  Issuing::Card.object_name => Issuing::Card,
76
86
  Issuing::Cardholder.object_name => Issuing::Cardholder,
87
+ Issuing::CreditUnderwritingRecord.object_name => Issuing::CreditUnderwritingRecord,
77
88
  Issuing::Dispute.object_name => Issuing::Dispute,
89
+ Issuing::DisputeSettlementDetail.object_name => Issuing::DisputeSettlementDetail,
78
90
  Issuing::PersonalizationDesign.object_name => Issuing::PersonalizationDesign,
79
91
  Issuing::PhysicalBundle.object_name => Issuing::PhysicalBundle,
80
92
  Issuing::Token.object_name => Issuing::Token,
@@ -82,6 +94,8 @@ module Stripe
82
94
  LineItem.object_name => LineItem,
83
95
  LoginLink.object_name => LoginLink,
84
96
  Mandate.object_name => Mandate,
97
+ Margin.object_name => Margin,
98
+ Order.object_name => Order,
85
99
  PaymentIntent.object_name => PaymentIntent,
86
100
  PaymentLink.object_name => PaymentLink,
87
101
  PaymentMethod.object_name => PaymentMethod,
@@ -95,6 +109,8 @@ module Stripe
95
109
  ProductFeature.object_name => ProductFeature,
96
110
  PromotionCode.object_name => PromotionCode,
97
111
  Quote.object_name => Quote,
112
+ QuotePreviewInvoice.object_name => QuotePreviewInvoice,
113
+ QuotePreviewSubscriptionSchedule.object_name => QuotePreviewSubscriptionSchedule,
98
114
  Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning,
99
115
  Radar::ValueList.object_name => Radar::ValueList,
100
116
  Radar::ValueListItem.object_name => Radar::ValueListItem,
@@ -112,8 +128,10 @@ module Stripe
112
128
  Subscription.object_name => Subscription,
113
129
  SubscriptionItem.object_name => SubscriptionItem,
114
130
  SubscriptionSchedule.object_name => SubscriptionSchedule,
131
+ Tax::Association.object_name => Tax::Association,
115
132
  Tax::Calculation.object_name => Tax::Calculation,
116
133
  Tax::CalculationLineItem.object_name => Tax::CalculationLineItem,
134
+ Tax::Form.object_name => Tax::Form,
117
135
  Tax::Registration.object_name => Tax::Registration,
118
136
  Tax::Settings.object_name => Tax::Settings,
119
137
  Tax::Transaction.object_name => Tax::Transaction,
@@ -125,6 +143,7 @@ module Stripe
125
143
  Terminal::ConnectionToken.object_name => Terminal::ConnectionToken,
126
144
  Terminal::Location.object_name => Terminal::Location,
127
145
  Terminal::Reader.object_name => Terminal::Reader,
146
+ Terminal::ReaderCollectedData.object_name => Terminal::ReaderCollectedData,
128
147
  TestHelpers::TestClock.object_name => TestHelpers::TestClock,
129
148
  Token.object_name => Token,
130
149
  Topup.object_name => Topup,
@@ -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
@@ -4,6 +4,8 @@
4
4
  module Stripe
5
5
  module Billing
6
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 attach the billing meter to a price and attach the price to a subscription to charge the user for the number of API calls they make.
7
+ #
8
+ # Related guide: [Usage based billing](https://docs.stripe.com/billing/subscriptions/usage-based)
7
9
  class Meter < APIResource
8
10
  extend Stripe::APIOperations::Create
9
11
  extend Stripe::APIOperations::List
@@ -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
@@ -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,26 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module FinancialConnections
6
+ # An institution represents a financial institution to which an end user can connect using the Financial Connections authentication flow.
7
+ class Institution < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "financial_connections.institution"
11
+ def self.object_name
12
+ "financial_connections.institution"
13
+ end
14
+
15
+ # Returns a list of Financial Connections Institution objects.
16
+ def self.list(filters = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :get,
19
+ path: "/v1/financial_connections/institutions",
20
+ params: filters,
21
+ opts: opts
22
+ )
23
+ end
24
+ end
25
+ end
26
+ 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
@@ -0,0 +1,93 @@
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
+ def self.object_name
19
+ "gift_cards.transaction"
20
+ end
21
+
22
+ # Cancel a gift card transaction
23
+ def cancel(params = {}, opts = {})
24
+ request_stripe_object(
25
+ method: :post,
26
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
27
+ params: params,
28
+ opts: opts
29
+ )
30
+ end
31
+
32
+ # Cancel a gift card transaction
33
+ def self.cancel(id, params = {}, opts = {})
34
+ request_stripe_object(
35
+ method: :post,
36
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
37
+ params: params,
38
+ opts: opts
39
+ )
40
+ end
41
+
42
+ # Confirm a gift card transaction
43
+ def confirm(params = {}, opts = {})
44
+ request_stripe_object(
45
+ method: :post,
46
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(self["id"]) }),
47
+ params: params,
48
+ opts: opts
49
+ )
50
+ end
51
+
52
+ # Confirm a gift card transaction
53
+ def self.confirm(id, params = {}, opts = {})
54
+ request_stripe_object(
55
+ method: :post,
56
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
57
+ params: params,
58
+ opts: opts
59
+ )
60
+ end
61
+
62
+ # Create a gift card transaction
63
+ def self.create(params = {}, opts = {})
64
+ request_stripe_object(
65
+ method: :post,
66
+ path: "/v1/gift_cards/transactions",
67
+ params: params,
68
+ opts: opts
69
+ )
70
+ end
71
+
72
+ # List gift card transactions for a gift card
73
+ def self.list(filters = {}, opts = {})
74
+ request_stripe_object(
75
+ method: :get,
76
+ path: "/v1/gift_cards/transactions",
77
+ params: filters,
78
+ opts: opts
79
+ )
80
+ end
81
+
82
+ # Update a gift card transaction
83
+ def self.update(id, params = {}, opts = {})
84
+ request_stripe_object(
85
+ method: :post,
86
+ path: format("/v1/gift_cards/transactions/%<id>s", { id: CGI.escape(id) }),
87
+ params: params,
88
+ opts: opts
89
+ )
90
+ end
91
+ end
92
+ end
93
+ end