stripe 5.39.0 → 10.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +304 -0
  3. data/Gemfile +5 -2
  4. data/Makefile +13 -0
  5. data/OPENAPI_VERSION +1 -0
  6. data/README.md +40 -6
  7. data/VERSION +1 -1
  8. data/lib/data/ca-certificates.crt +1241 -1937
  9. data/lib/stripe/api_operations/create.rb +6 -2
  10. data/lib/stripe/api_operations/delete.rb +12 -7
  11. data/lib/stripe/api_operations/list.rb +6 -9
  12. data/lib/stripe/api_operations/nested_resource.rb +62 -34
  13. data/lib/stripe/api_operations/request.rb +10 -0
  14. data/lib/stripe/api_operations/save.rb +13 -3
  15. data/lib/stripe/api_operations/search.rb +16 -0
  16. data/lib/stripe/api_resource.rb +3 -18
  17. data/lib/stripe/api_resource_test_helpers.rb +49 -0
  18. data/lib/stripe/api_version.rb +8 -0
  19. data/lib/stripe/connection_manager.rb +22 -1
  20. data/lib/stripe/instrumentation.rb +45 -7
  21. data/lib/stripe/object_types.rb +35 -10
  22. data/lib/stripe/resources/account.rb +37 -11
  23. data/lib/stripe/resources/account_link.rb +4 -0
  24. data/lib/stripe/resources/account_session.rb +17 -0
  25. data/lib/stripe/resources/application_fee.rb +1 -2
  26. data/lib/stripe/resources/application_fee_refund.rb +5 -0
  27. data/lib/stripe/resources/apps/secret.rb +40 -0
  28. data/lib/stripe/resources/balance.rb +11 -0
  29. data/lib/stripe/resources/balance_transaction.rb +4 -0
  30. data/lib/stripe/resources/bank_account.rb +7 -0
  31. data/lib/stripe/resources/billing_portal/configuration.rb +1 -0
  32. data/lib/stripe/resources/billing_portal/session.rb +14 -0
  33. data/lib/stripe/resources/capability.rb +3 -0
  34. data/lib/stripe/resources/card.rb +6 -3
  35. data/lib/stripe/resources/cash_balance.rb +23 -0
  36. data/lib/stripe/resources/charge.rb +23 -3
  37. data/lib/stripe/resources/checkout/session.rb +49 -2
  38. data/lib/stripe/resources/country_spec.rb +6 -0
  39. data/lib/stripe/resources/coupon.rb +3 -0
  40. data/lib/stripe/resources/credit_note.rb +27 -9
  41. data/lib/stripe/resources/credit_note_line_item.rb +1 -0
  42. data/lib/stripe/resources/customer.rb +119 -15
  43. data/lib/stripe/resources/customer_balance_transaction.rb +6 -0
  44. data/lib/stripe/resources/customer_cash_balance_transaction.rb +14 -0
  45. data/lib/stripe/resources/discount.rb +5 -0
  46. data/lib/stripe/resources/dispute.rb +15 -3
  47. data/lib/stripe/resources/event.rb +30 -0
  48. data/lib/stripe/resources/exchange_rate.rb +26 -0
  49. data/lib/stripe/resources/file.rb +7 -0
  50. data/lib/stripe/resources/file_link.rb +3 -0
  51. data/lib/stripe/resources/financial_connections/account.rb +67 -0
  52. data/lib/stripe/resources/financial_connections/account_owner.rb +11 -0
  53. data/lib/stripe/resources/financial_connections/account_ownership.rb +11 -0
  54. data/lib/stripe/resources/financial_connections/session.rb +13 -0
  55. data/lib/stripe/resources/funding_instructions.rb +21 -0
  56. data/lib/stripe/resources/identity/verification_report.rb +11 -0
  57. data/lib/stripe/resources/identity/verification_session.rb +31 -5
  58. data/lib/stripe/resources/invoice.rb +100 -17
  59. data/lib/stripe/resources/invoice_item.rb +11 -0
  60. data/lib/stripe/resources/issuing/authorization.rb +114 -5
  61. data/lib/stripe/resources/issuing/card.rb +78 -8
  62. data/lib/stripe/resources/issuing/cardholder.rb +3 -0
  63. data/lib/stripe/resources/issuing/dispute.rb +13 -3
  64. data/lib/stripe/resources/issuing/token.rb +14 -0
  65. data/lib/stripe/resources/issuing/transaction.rb +49 -0
  66. data/lib/stripe/resources/line_item.rb +1 -0
  67. data/lib/stripe/resources/login_link.rb +1 -0
  68. data/lib/stripe/resources/mandate.rb +1 -0
  69. data/lib/stripe/resources/payment_intent.rb +103 -6
  70. data/lib/stripe/resources/payment_link.rb +35 -0
  71. data/lib/stripe/resources/payment_method.rb +25 -5
  72. data/lib/stripe/resources/payment_method_configuration.rb +26 -0
  73. data/lib/stripe/resources/payment_method_domain.rb +34 -0
  74. data/lib/stripe/resources/payout.rb +28 -5
  75. data/lib/stripe/resources/person.rb +6 -0
  76. data/lib/stripe/resources/plan.rb +8 -0
  77. data/lib/stripe/resources/price.rb +15 -0
  78. data/lib/stripe/resources/product.rb +17 -0
  79. data/lib/stripe/resources/promotion_code.rb +2 -0
  80. data/lib/stripe/resources/quote.rb +58 -35
  81. data/lib/stripe/resources/radar/early_fraud_warning.rb +4 -0
  82. data/lib/stripe/resources/radar/value_list.rb +3 -0
  83. data/lib/stripe/resources/radar/value_list_item.rb +3 -0
  84. data/lib/stripe/resources/refund.rb +49 -0
  85. data/lib/stripe/resources/reporting/report_run.rb +8 -0
  86. data/lib/stripe/resources/reporting/report_type.rb +8 -1
  87. data/lib/stripe/resources/reversal.rb +13 -0
  88. data/lib/stripe/resources/review.rb +14 -3
  89. data/lib/stripe/resources/setup_attempt.rb +4 -0
  90. data/lib/stripe/resources/setup_intent.rb +59 -5
  91. data/lib/stripe/resources/shipping_rate.rb +14 -0
  92. data/lib/stripe/resources/sigma/scheduled_query_run.rb +4 -0
  93. data/lib/stripe/resources/source.rb +27 -8
  94. data/lib/stripe/resources/source_transaction.rb +5 -0
  95. data/lib/stripe/resources/subscription.rb +57 -3
  96. data/lib/stripe/resources/subscription_item.rb +2 -7
  97. data/lib/stripe/resources/subscription_schedule.rb +23 -5
  98. data/lib/stripe/resources/tax/calculation.rb +33 -0
  99. data/lib/stripe/resources/tax/calculation_line_item.rb +10 -0
  100. data/lib/stripe/resources/tax/registration.rb +19 -0
  101. data/lib/stripe/resources/tax/settings.rb +15 -0
  102. data/lib/stripe/resources/tax/transaction.rb +49 -0
  103. data/lib/stripe/resources/tax/transaction_line_item.rb +10 -0
  104. data/lib/stripe/resources/tax_code.rb +1 -0
  105. data/lib/stripe/resources/tax_id.rb +4 -0
  106. data/lib/stripe/resources/tax_rate.rb +3 -0
  107. data/lib/stripe/resources/terminal/configuration.rb +16 -0
  108. data/lib/stripe/resources/terminal/connection_token.rb +3 -0
  109. data/lib/stripe/resources/terminal/location.rb +3 -0
  110. data/lib/stripe/resources/terminal/reader.rb +119 -0
  111. data/lib/stripe/resources/test_helpers/test_clock.rb +35 -0
  112. data/lib/stripe/resources/token.rb +20 -0
  113. data/lib/stripe/resources/topup.rb +15 -3
  114. data/lib/stripe/resources/transfer.rb +11 -13
  115. data/lib/stripe/resources/treasury/credit_reversal.rb +14 -0
  116. data/lib/stripe/resources/treasury/debit_reversal.rb +14 -0
  117. data/lib/stripe/resources/treasury/financial_account.rb +52 -0
  118. data/lib/stripe/resources/treasury/financial_account_features.rb +12 -0
  119. data/lib/stripe/resources/treasury/inbound_transfer.rb +94 -0
  120. data/lib/stripe/resources/treasury/outbound_payment.rb +96 -0
  121. data/lib/stripe/resources/treasury/outbound_transfer.rb +96 -0
  122. data/lib/stripe/resources/treasury/received_credit.rb +30 -0
  123. data/lib/stripe/resources/treasury/received_debit.rb +30 -0
  124. data/lib/stripe/resources/treasury/transaction.rb +13 -0
  125. data/lib/stripe/resources/treasury/transaction_entry.rb +17 -0
  126. data/lib/stripe/resources/usage_record.rb +4 -0
  127. data/lib/stripe/resources/webhook_endpoint.rb +7 -0
  128. data/lib/stripe/resources.rb +33 -10
  129. data/lib/stripe/search_result_object.rb +86 -0
  130. data/lib/stripe/stripe_client.rb +37 -22
  131. data/lib/stripe/stripe_configuration.rb +5 -1
  132. data/lib/stripe/stripe_object.rb +2 -2
  133. data/lib/stripe/util.rb +85 -2
  134. data/lib/stripe/version.rb +1 -1
  135. data/lib/stripe/webhook.rb +2 -1
  136. data/lib/stripe.rb +5 -1
  137. data/stripe.gemspec +3 -3
  138. metadata +45 -14
  139. data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
  140. data/lib/stripe/resources/bitcoin_transaction.rb +0 -16
  141. data/lib/stripe/resources/issuing/card_details.rb +0 -9
  142. data/lib/stripe/resources/order.rb +0 -33
  143. data/lib/stripe/resources/order_return.rb +0 -10
  144. data/lib/stripe/resources/recipient.rb +0 -14
  145. data/lib/stripe/resources/sku.rb +0 -13
  146. data/lib/stripe/resources/three_d_secure.rb +0 -14
@@ -0,0 +1,94 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Use [InboundTransfers](https://stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit.
7
+ class InboundTransfer < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "treasury.inbound_transfer"
12
+
13
+ def cancel(params = {}, opts = {})
14
+ request_stripe_object(
15
+ method: :post,
16
+ path: format("/v1/treasury/inbound_transfers/%<inbound_transfer>s/cancel", { inbound_transfer: CGI.escape(self["id"]) }),
17
+ params: params,
18
+ opts: opts
19
+ )
20
+ end
21
+
22
+ def self.cancel(inbound_transfer, params = {}, opts = {})
23
+ request_stripe_object(
24
+ method: :post,
25
+ path: format("/v1/treasury/inbound_transfers/%<inbound_transfer>s/cancel", { inbound_transfer: CGI.escape(inbound_transfer) }),
26
+ params: params,
27
+ opts: opts
28
+ )
29
+ end
30
+
31
+ def test_helpers
32
+ TestHelpers.new(self)
33
+ end
34
+
35
+ class TestHelpers < APIResourceTestHelpers
36
+ RESOURCE_CLASS = InboundTransfer
37
+
38
+ def self.fail(id, params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/fail", { id: CGI.escape(id) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ def self.return_inbound_transfer(id, params = {}, opts = {})
48
+ request_stripe_object(
49
+ method: :post,
50
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/return", { id: CGI.escape(id) }),
51
+ params: params,
52
+ opts: opts
53
+ )
54
+ end
55
+
56
+ def self.succeed(id, params = {}, opts = {})
57
+ request_stripe_object(
58
+ method: :post,
59
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/succeed", { id: CGI.escape(id) }),
60
+ params: params,
61
+ opts: opts
62
+ )
63
+ end
64
+
65
+ def fail(params = {}, opts = {})
66
+ @resource.request_stripe_object(
67
+ method: :post,
68
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/fail", { id: CGI.escape(@resource["id"]) }),
69
+ params: params,
70
+ opts: opts
71
+ )
72
+ end
73
+
74
+ def return_inbound_transfer(params = {}, opts = {})
75
+ @resource.request_stripe_object(
76
+ method: :post,
77
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/return", { id: CGI.escape(@resource["id"]) }),
78
+ params: params,
79
+ opts: opts
80
+ )
81
+ end
82
+
83
+ def succeed(params = {}, opts = {})
84
+ @resource.request_stripe_object(
85
+ method: :post,
86
+ path: format("/v1/test_helpers/treasury/inbound_transfers/%<id>s/succeed", { id: CGI.escape(@resource["id"]) }),
87
+ params: params,
88
+ opts: opts
89
+ )
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,96 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Use OutboundPayments to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers).
7
+ #
8
+ # Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects.
9
+ class OutboundPayment < APIResource
10
+ extend Stripe::APIOperations::Create
11
+ extend Stripe::APIOperations::List
12
+
13
+ OBJECT_NAME = "treasury.outbound_payment"
14
+
15
+ def cancel(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: format("/v1/treasury/outbound_payments/%<id>s/cancel", { id: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ def self.cancel(id, params = {}, opts = {})
25
+ request_stripe_object(
26
+ method: :post,
27
+ path: format("/v1/treasury/outbound_payments/%<id>s/cancel", { id: CGI.escape(id) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def test_helpers
34
+ TestHelpers.new(self)
35
+ end
36
+
37
+ class TestHelpers < APIResourceTestHelpers
38
+ RESOURCE_CLASS = OutboundPayment
39
+
40
+ def self.fail(id, params = {}, opts = {})
41
+ request_stripe_object(
42
+ method: :post,
43
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/fail", { id: CGI.escape(id) }),
44
+ params: params,
45
+ opts: opts
46
+ )
47
+ end
48
+
49
+ def self.post(id, params = {}, opts = {})
50
+ request_stripe_object(
51
+ method: :post,
52
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/post", { id: CGI.escape(id) }),
53
+ params: params,
54
+ opts: opts
55
+ )
56
+ end
57
+
58
+ def self.return_outbound_payment(id, params = {}, opts = {})
59
+ request_stripe_object(
60
+ method: :post,
61
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/return", { id: CGI.escape(id) }),
62
+ params: params,
63
+ opts: opts
64
+ )
65
+ end
66
+
67
+ def fail(params = {}, opts = {})
68
+ @resource.request_stripe_object(
69
+ method: :post,
70
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/fail", { id: CGI.escape(@resource["id"]) }),
71
+ params: params,
72
+ opts: opts
73
+ )
74
+ end
75
+
76
+ def post(params = {}, opts = {})
77
+ @resource.request_stripe_object(
78
+ method: :post,
79
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/post", { id: CGI.escape(@resource["id"]) }),
80
+ params: params,
81
+ opts: opts
82
+ )
83
+ end
84
+
85
+ def return_outbound_payment(params = {}, opts = {})
86
+ @resource.request_stripe_object(
87
+ method: :post,
88
+ path: format("/v1/test_helpers/treasury/outbound_payments/%<id>s/return", { id: CGI.escape(@resource["id"]) }),
89
+ params: params,
90
+ opts: opts
91
+ )
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,96 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Use OutboundTransfers to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account.
7
+ #
8
+ # Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects.
9
+ class OutboundTransfer < APIResource
10
+ extend Stripe::APIOperations::Create
11
+ extend Stripe::APIOperations::List
12
+
13
+ OBJECT_NAME = "treasury.outbound_transfer"
14
+
15
+ def cancel(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :post,
18
+ path: format("/v1/treasury/outbound_transfers/%<outbound_transfer>s/cancel", { outbound_transfer: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ def self.cancel(outbound_transfer, params = {}, opts = {})
25
+ request_stripe_object(
26
+ method: :post,
27
+ path: format("/v1/treasury/outbound_transfers/%<outbound_transfer>s/cancel", { outbound_transfer: CGI.escape(outbound_transfer) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def test_helpers
34
+ TestHelpers.new(self)
35
+ end
36
+
37
+ class TestHelpers < APIResourceTestHelpers
38
+ RESOURCE_CLASS = OutboundTransfer
39
+
40
+ def self.fail(outbound_transfer, params = {}, opts = {})
41
+ request_stripe_object(
42
+ method: :post,
43
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/fail", { outbound_transfer: CGI.escape(outbound_transfer) }),
44
+ params: params,
45
+ opts: opts
46
+ )
47
+ end
48
+
49
+ def self.post(outbound_transfer, params = {}, opts = {})
50
+ request_stripe_object(
51
+ method: :post,
52
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/post", { outbound_transfer: CGI.escape(outbound_transfer) }),
53
+ params: params,
54
+ opts: opts
55
+ )
56
+ end
57
+
58
+ def self.return_outbound_transfer(outbound_transfer, params = {}, opts = {})
59
+ request_stripe_object(
60
+ method: :post,
61
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/return", { outbound_transfer: CGI.escape(outbound_transfer) }),
62
+ params: params,
63
+ opts: opts
64
+ )
65
+ end
66
+
67
+ def fail(params = {}, opts = {})
68
+ @resource.request_stripe_object(
69
+ method: :post,
70
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/fail", { outbound_transfer: CGI.escape(@resource["id"]) }),
71
+ params: params,
72
+ opts: opts
73
+ )
74
+ end
75
+
76
+ def post(params = {}, opts = {})
77
+ @resource.request_stripe_object(
78
+ method: :post,
79
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/post", { outbound_transfer: CGI.escape(@resource["id"]) }),
80
+ params: params,
81
+ opts: opts
82
+ )
83
+ end
84
+
85
+ def return_outbound_transfer(params = {}, opts = {})
86
+ @resource.request_stripe_object(
87
+ method: :post,
88
+ path: format("/v1/test_helpers/treasury/outbound_transfers/%<outbound_transfer>s/return", { outbound_transfer: CGI.escape(@resource["id"]) }),
89
+ params: params,
90
+ opts: opts
91
+ )
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount.
7
+ class ReceivedCredit < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "treasury.received_credit"
11
+
12
+ def test_helpers
13
+ TestHelpers.new(self)
14
+ end
15
+
16
+ class TestHelpers < APIResourceTestHelpers
17
+ RESOURCE_CLASS = ReceivedCredit
18
+
19
+ def self.create(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: "/v1/test_helpers/treasury/received_credits",
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount.
7
+ class ReceivedDebit < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "treasury.received_debit"
11
+
12
+ def test_helpers
13
+ TestHelpers.new(self)
14
+ end
15
+
16
+ class TestHelpers < APIResourceTestHelpers
17
+ RESOURCE_CLASS = ReceivedDebit
18
+
19
+ def self.create(params = {}, opts = {})
20
+ request_stripe_object(
21
+ method: :post,
22
+ path: "/v1/test_helpers/treasury/received_debits",
23
+ params: params,
24
+ opts: opts
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Transactions represent changes to a [FinancialAccount's](https://stripe.com/docs/api#financial_accounts) balance.
7
+ class Transaction < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "treasury.transaction"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # TransactionEntries represent individual units of money movements within a single [Transaction](https://stripe.com/docs/api#transactions).
7
+ class TransactionEntry < APIResource
8
+ extend Stripe::APIOperations::List
9
+
10
+ OBJECT_NAME = "treasury.transaction_entry"
11
+
12
+ def self.resource_url
13
+ "/v1/treasury/transaction_entries"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,6 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Usage records allow you to report customer usage and metrics to Stripe for
6
+ # metered billing of subscription prices.
7
+ #
8
+ # Related guide: [Metered billing](https://stripe.com/docs/billing/subscriptions/metered-billing)
5
9
  class UsageRecord < APIResource
6
10
  OBJECT_NAME = "usage_record"
7
11
  end
@@ -2,6 +2,13 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # You can configure [webhook endpoints](https://stripe.com/docs/webhooks/) via the API to be
6
+ # notified about events that happen in your Stripe account or connected
7
+ # accounts.
8
+ #
9
+ # Most users configure webhooks from [the dashboard](https://dashboard.stripe.com/webhooks), which provides a user interface for registering and testing your webhook endpoints.
10
+ #
11
+ # Related guide: [Setting up webhooks](https://stripe.com/docs/webhooks/configure)
5
12
  class WebhookEndpoint < APIResource
6
13
  extend Stripe::APIOperations::Create
7
14
  include Stripe::APIOperations::Delete
@@ -3,19 +3,19 @@
3
3
 
4
4
  require "stripe/resources/account"
5
5
  require "stripe/resources/account_link"
6
- require "stripe/resources/alipay_account"
6
+ require "stripe/resources/account_session"
7
7
  require "stripe/resources/apple_pay_domain"
8
8
  require "stripe/resources/application_fee"
9
9
  require "stripe/resources/application_fee_refund"
10
+ require "stripe/resources/apps/secret"
10
11
  require "stripe/resources/balance"
11
12
  require "stripe/resources/balance_transaction"
12
13
  require "stripe/resources/bank_account"
13
14
  require "stripe/resources/billing_portal/configuration"
14
15
  require "stripe/resources/billing_portal/session"
15
- require "stripe/resources/bitcoin_receiver"
16
- require "stripe/resources/bitcoin_transaction"
17
16
  require "stripe/resources/capability"
18
17
  require "stripe/resources/card"
18
+ require "stripe/resources/cash_balance"
19
19
  require "stripe/resources/charge"
20
20
  require "stripe/resources/checkout/session"
21
21
  require "stripe/resources/country_spec"
@@ -24,6 +24,7 @@ require "stripe/resources/credit_note"
24
24
  require "stripe/resources/credit_note_line_item"
25
25
  require "stripe/resources/customer"
26
26
  require "stripe/resources/customer_balance_transaction"
27
+ require "stripe/resources/customer_cash_balance_transaction"
27
28
  require "stripe/resources/discount"
28
29
  require "stripe/resources/dispute"
29
30
  require "stripe/resources/ephemeral_key"
@@ -31,6 +32,11 @@ require "stripe/resources/event"
31
32
  require "stripe/resources/exchange_rate"
32
33
  require "stripe/resources/file"
33
34
  require "stripe/resources/file_link"
35
+ require "stripe/resources/financial_connections/account"
36
+ require "stripe/resources/financial_connections/account_owner"
37
+ require "stripe/resources/financial_connections/account_ownership"
38
+ require "stripe/resources/financial_connections/session"
39
+ require "stripe/resources/funding_instructions"
34
40
  require "stripe/resources/identity/verification_report"
35
41
  require "stripe/resources/identity/verification_session"
36
42
  require "stripe/resources/invoice"
@@ -38,17 +44,18 @@ require "stripe/resources/invoice_item"
38
44
  require "stripe/resources/invoice_line_item"
39
45
  require "stripe/resources/issuing/authorization"
40
46
  require "stripe/resources/issuing/card"
41
- require "stripe/resources/issuing/card_details"
42
47
  require "stripe/resources/issuing/cardholder"
43
48
  require "stripe/resources/issuing/dispute"
49
+ require "stripe/resources/issuing/token"
44
50
  require "stripe/resources/issuing/transaction"
45
51
  require "stripe/resources/line_item"
46
52
  require "stripe/resources/login_link"
47
53
  require "stripe/resources/mandate"
48
- require "stripe/resources/order"
49
- require "stripe/resources/order_return"
50
54
  require "stripe/resources/payment_intent"
55
+ require "stripe/resources/payment_link"
51
56
  require "stripe/resources/payment_method"
57
+ require "stripe/resources/payment_method_configuration"
58
+ require "stripe/resources/payment_method_domain"
52
59
  require "stripe/resources/payout"
53
60
  require "stripe/resources/person"
54
61
  require "stripe/resources/plan"
@@ -59,8 +66,6 @@ require "stripe/resources/quote"
59
66
  require "stripe/resources/radar/early_fraud_warning"
60
67
  require "stripe/resources/radar/value_list"
61
68
  require "stripe/resources/radar/value_list_item"
62
- require "stripe/resources/recipient"
63
- require "stripe/resources/recipient_transfer"
64
69
  require "stripe/resources/refund"
65
70
  require "stripe/resources/reporting/report_run"
66
71
  require "stripe/resources/reporting/report_type"
@@ -68,23 +73,41 @@ require "stripe/resources/reversal"
68
73
  require "stripe/resources/review"
69
74
  require "stripe/resources/setup_attempt"
70
75
  require "stripe/resources/setup_intent"
76
+ require "stripe/resources/shipping_rate"
71
77
  require "stripe/resources/sigma/scheduled_query_run"
72
- require "stripe/resources/sku"
73
78
  require "stripe/resources/source"
74
79
  require "stripe/resources/source_transaction"
75
80
  require "stripe/resources/subscription"
76
81
  require "stripe/resources/subscription_item"
77
82
  require "stripe/resources/subscription_schedule"
83
+ require "stripe/resources/tax/calculation"
84
+ require "stripe/resources/tax/calculation_line_item"
85
+ require "stripe/resources/tax/registration"
86
+ require "stripe/resources/tax/settings"
87
+ require "stripe/resources/tax/transaction"
88
+ require "stripe/resources/tax/transaction_line_item"
78
89
  require "stripe/resources/tax_code"
79
90
  require "stripe/resources/tax_id"
80
91
  require "stripe/resources/tax_rate"
92
+ require "stripe/resources/terminal/configuration"
81
93
  require "stripe/resources/terminal/connection_token"
82
94
  require "stripe/resources/terminal/location"
83
95
  require "stripe/resources/terminal/reader"
84
- require "stripe/resources/three_d_secure"
96
+ require "stripe/resources/test_helpers/test_clock"
85
97
  require "stripe/resources/token"
86
98
  require "stripe/resources/topup"
87
99
  require "stripe/resources/transfer"
100
+ require "stripe/resources/treasury/credit_reversal"
101
+ require "stripe/resources/treasury/debit_reversal"
102
+ require "stripe/resources/treasury/financial_account"
103
+ require "stripe/resources/treasury/financial_account_features"
104
+ require "stripe/resources/treasury/inbound_transfer"
105
+ require "stripe/resources/treasury/outbound_payment"
106
+ require "stripe/resources/treasury/outbound_transfer"
107
+ require "stripe/resources/treasury/received_credit"
108
+ require "stripe/resources/treasury/received_debit"
109
+ require "stripe/resources/treasury/transaction"
110
+ require "stripe/resources/treasury/transaction_entry"
88
111
  require "stripe/resources/usage_record"
89
112
  require "stripe/resources/usage_record_summary"
90
113
  require "stripe/resources/webhook_endpoint"
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stripe
4
+ class SearchResultObject < StripeObject
5
+ include Enumerable
6
+ include Stripe::APIOperations::Search
7
+ include Stripe::APIOperations::Request
8
+
9
+ OBJECT_NAME = "search_result"
10
+
11
+ # This accessor allows a `SearchResultObject` to inherit various filters
12
+ # that were given to a predecessor. This allows for things like consistent
13
+ # limits, expansions, and predicates as a user pages through resources.
14
+ attr_accessor :filters
15
+
16
+ # An empty search result object. This is returned from +next+ when we know
17
+ # that there isn't a next page in order to replicate the behavior of the API
18
+ # when it attempts to return a page beyond the last.
19
+ def self.empty_search_result(opts = {})
20
+ SearchResultObject.construct_from({ data: [] }, opts)
21
+ end
22
+
23
+ def initialize(*args)
24
+ super
25
+ self.filters = {}
26
+ end
27
+
28
+ def [](key)
29
+ case key
30
+ when String, Symbol
31
+ super
32
+ else
33
+ raise ArgumentError,
34
+ "You tried to access the #{key.inspect} index, but " \
35
+ "SearchResultObject types only support String keys. " \
36
+ "(HINT: Search calls return an object with a 'data' (which is " \
37
+ "the data array). You likely want to call #data[#{key.inspect}])"
38
+ end
39
+ end
40
+
41
+ # Iterates through each resource in the page represented by the current
42
+ # `SearchListObject`.
43
+ #
44
+ # Note that this method makes no effort to fetch a new page when it gets to
45
+ # the end of the current page's resources. See also +auto_paging_each+.
46
+ def each(&blk)
47
+ data.each(&blk)
48
+ end
49
+
50
+ # Returns true if the page object contains no elements.
51
+ def empty?
52
+ data.empty?
53
+ end
54
+
55
+ # Iterates through each resource in all pages, making additional fetches to
56
+ # the API as necessary.
57
+ #
58
+ # Note that this method will make as many API calls as necessary to fetch
59
+ # all resources. For more granular control, please see +each+ and
60
+ # +next_search_result_page+.
61
+ def auto_paging_each(&blk)
62
+ return enum_for(:auto_paging_each) unless block_given?
63
+
64
+ page = self
65
+
66
+ loop do
67
+ page.each(&blk)
68
+ page = page.next_search_result_page
69
+
70
+ break if page.empty?
71
+ end
72
+ end
73
+
74
+ # Fetches the next page in the resource list (if there is one).
75
+ #
76
+ # This method will try to respect the limit of the current page. If none
77
+ # was given, the default limit will be fetched again.
78
+ def next_search_result_page(params = {}, opts = {})
79
+ return self.class.empty_search_result(opts) unless has_more
80
+
81
+ params = filters.merge(page: next_page).merge(params)
82
+
83
+ _search(url, params, opts)
84
+ end
85
+ end
86
+ end