stripe 13.0.2 → 13.1.0.pre.beta.2

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 (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