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
@@ -2,6 +2,8 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Subscription items allow you to create customer subscriptions with more than
6
+ # one plan, making it easy to represent complex billing relationships.
5
7
  class SubscriptionItem < APIResource
6
8
  extend Stripe::APIOperations::Create
7
9
  include Stripe::APIOperations::Delete
@@ -15,12 +17,5 @@ module Stripe
15
17
  nested_resource_class_methods :usage_record_summary,
16
18
  operations: %i[list],
17
19
  resource_plural: "usage_record_summaries"
18
-
19
- def usage_record_summaries(params = {}, opts = {})
20
- resp, opts = execute_resource_request(:get, resource_url + "/usage_record_summaries", params, opts)
21
- Util.convert_to_stripe_object(resp.data, opts)
22
- end
23
- extend Gem::Deprecate
24
- deprecate :usage_record_summaries, :"SubscriptionItem.list_usage_record_summaries", 2020, 1
25
20
  end
26
21
  end
@@ -2,6 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
6
+ #
7
+ # Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules)
5
8
  class SubscriptionSchedule < APIResource
6
9
  extend Stripe::APIOperations::Create
7
10
  extend Stripe::APIOperations::List
@@ -9,13 +12,10 @@ module Stripe
9
12
 
10
13
  OBJECT_NAME = "subscription_schedule"
11
14
 
12
- custom_method :cancel, http_verb: :post
13
- custom_method :release, http_verb: :post
14
-
15
15
  def cancel(params = {}, opts = {})
16
16
  request_stripe_object(
17
17
  method: :post,
18
- path: resource_url + "/cancel",
18
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(self["id"]) }),
19
19
  params: params,
20
20
  opts: opts
21
21
  )
@@ -24,7 +24,25 @@ module Stripe
24
24
  def release(params = {}, opts = {})
25
25
  request_stripe_object(
26
26
  method: :post,
27
- path: resource_url + "/release",
27
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(self["id"]) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def self.cancel(schedule, params = {}, opts = {})
34
+ request_stripe_object(
35
+ method: :post,
36
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
37
+ params: params,
38
+ opts: opts
39
+ )
40
+ end
41
+
42
+ def self.release(schedule, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
28
46
  params: params,
29
47
  opts: opts
30
48
  )
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # A Tax Calculation allows you to calculate the tax to collect from your customer.
7
+ #
8
+ # Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom)
9
+ class Calculation < APIResource
10
+ extend Stripe::APIOperations::Create
11
+
12
+ OBJECT_NAME = "tax.calculation"
13
+
14
+ def list_line_items(params = {}, opts = {})
15
+ request_stripe_object(
16
+ method: :get,
17
+ path: format("/v1/tax/calculations/%<calculation>s/line_items", { calculation: CGI.escape(self["id"]) }),
18
+ params: params,
19
+ opts: opts
20
+ )
21
+ end
22
+
23
+ def self.list_line_items(calculation, params = {}, opts = {})
24
+ request_stripe_object(
25
+ method: :get,
26
+ path: format("/v1/tax/calculations/%<calculation>s/line_items", { calculation: CGI.escape(calculation) }),
27
+ params: params,
28
+ opts: opts
29
+ )
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class CalculationLineItem < APIResource
7
+ OBJECT_NAME = "tax.calculation_line_item"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax).
7
+ #
8
+ # Stripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering).
9
+ #
10
+ # Related guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api)
11
+ class Registration < APIResource
12
+ extend Stripe::APIOperations::Create
13
+ extend Stripe::APIOperations::List
14
+ include Stripe::APIOperations::Save
15
+
16
+ OBJECT_NAME = "tax.registration"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.
7
+ #
8
+ # Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)
9
+ class Settings < SingletonAPIResource
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "tax.settings"
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 Tax
6
+ # A Tax Transaction records the tax collected from or refunded to your customer.
7
+ #
8
+ # Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)
9
+ class Transaction < APIResource
10
+ OBJECT_NAME = "tax.transaction"
11
+
12
+ def list_line_items(params = {}, opts = {})
13
+ request_stripe_object(
14
+ method: :get,
15
+ path: format("/v1/tax/transactions/%<transaction>s/line_items", { transaction: CGI.escape(self["id"]) }),
16
+ params: params,
17
+ opts: opts
18
+ )
19
+ end
20
+
21
+ def self.create_from_calculation(params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: "/v1/tax/transactions/create_from_calculation",
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ def self.create_reversal(params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: "/v1/tax/transactions/create_reversal",
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ def self.list_line_items(transaction, params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :get,
42
+ path: format("/v1/tax/transactions/%<transaction>s/line_items", { transaction: CGI.escape(transaction) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class TransactionLineItem < APIResource
7
+ OBJECT_NAME = "tax.transaction_line_item"
8
+ end
9
+ end
10
+ end
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # [Tax codes](https://stripe.com/docs/tax/tax-categories) classify goods and services for tax purposes.
5
6
  class TaxCode < APIResource
6
7
  extend Stripe::APIOperations::List
7
8
 
@@ -2,6 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers) or account.
6
+ # Customer and account tax IDs get displayed on related invoices and credit notes.
7
+ #
8
+ # Related guides: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids), [Account tax IDs](https://stripe.com/docs/invoicing/connect#account-tax-ids)
5
9
  class TaxId < APIResource
6
10
  include Stripe::APIOperations::Delete
7
11
  extend Stripe::APIOperations::List
@@ -2,6 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Tax rates can be applied to [invoices](https://stripe.com/docs/billing/invoices/tax-rates), [subscriptions](https://stripe.com/docs/billing/subscriptions/taxes) and [Checkout Sessions](https://stripe.com/docs/payments/checkout/set-up-a-subscription#tax-rates) to collect tax.
6
+ #
7
+ # Related guide: [Tax rates](https://stripe.com/docs/billing/taxes/tax-rates)
5
8
  class TaxRate < APIResource
6
9
  extend Stripe::APIOperations::Create
7
10
  extend Stripe::APIOperations::List
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Terminal
6
+ # A Configurations object represents how features should be configured for terminal readers.
7
+ class Configuration < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ include Stripe::APIOperations::Delete
10
+ extend Stripe::APIOperations::List
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "terminal.configuration"
14
+ end
15
+ end
16
+ end
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Connection Token is used by the Stripe Terminal SDK to connect to a reader.
7
+ #
8
+ # Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
6
9
  class ConnectionToken < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
 
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Location represents a grouping of readers.
7
+ #
8
+ # Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
6
9
  class Location < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  include Stripe::APIOperations::Delete
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Reader represents a physical device for accepting payment details.
7
+ #
8
+ # Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)
6
9
  class Reader < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  include Stripe::APIOperations::Delete
@@ -10,6 +13,122 @@ module Stripe
10
13
  include Stripe::APIOperations::Save
11
14
 
12
15
  OBJECT_NAME = "terminal.reader"
16
+
17
+ def cancel_action(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :post,
20
+ path: format("/v1/terminal/readers/%<reader>s/cancel_action", { reader: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def process_payment_intent(params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/terminal/readers/%<reader>s/process_payment_intent", { reader: CGI.escape(self["id"]) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ def process_setup_intent(params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/terminal/readers/%<reader>s/process_setup_intent", { reader: CGI.escape(self["id"]) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def refund_payment(params = {}, opts = {})
45
+ request_stripe_object(
46
+ method: :post,
47
+ path: format("/v1/terminal/readers/%<reader>s/refund_payment", { reader: CGI.escape(self["id"]) }),
48
+ params: params,
49
+ opts: opts
50
+ )
51
+ end
52
+
53
+ def set_reader_display(params = {}, opts = {})
54
+ request_stripe_object(
55
+ method: :post,
56
+ path: format("/v1/terminal/readers/%<reader>s/set_reader_display", { reader: CGI.escape(self["id"]) }),
57
+ params: params,
58
+ opts: opts
59
+ )
60
+ end
61
+
62
+ def self.cancel_action(reader, params = {}, opts = {})
63
+ request_stripe_object(
64
+ method: :post,
65
+ path: format("/v1/terminal/readers/%<reader>s/cancel_action", { reader: CGI.escape(reader) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
70
+
71
+ def self.process_payment_intent(reader, params = {}, opts = {})
72
+ request_stripe_object(
73
+ method: :post,
74
+ path: format("/v1/terminal/readers/%<reader>s/process_payment_intent", { reader: CGI.escape(reader) }),
75
+ params: params,
76
+ opts: opts
77
+ )
78
+ end
79
+
80
+ def self.process_setup_intent(reader, params = {}, opts = {})
81
+ request_stripe_object(
82
+ method: :post,
83
+ path: format("/v1/terminal/readers/%<reader>s/process_setup_intent", { reader: CGI.escape(reader) }),
84
+ params: params,
85
+ opts: opts
86
+ )
87
+ end
88
+
89
+ def self.refund_payment(reader, params = {}, opts = {})
90
+ request_stripe_object(
91
+ method: :post,
92
+ path: format("/v1/terminal/readers/%<reader>s/refund_payment", { reader: CGI.escape(reader) }),
93
+ params: params,
94
+ opts: opts
95
+ )
96
+ end
97
+
98
+ def self.set_reader_display(reader, params = {}, opts = {})
99
+ request_stripe_object(
100
+ method: :post,
101
+ path: format("/v1/terminal/readers/%<reader>s/set_reader_display", { reader: CGI.escape(reader) }),
102
+ params: params,
103
+ opts: opts
104
+ )
105
+ end
106
+
107
+ def test_helpers
108
+ TestHelpers.new(self)
109
+ end
110
+
111
+ class TestHelpers < APIResourceTestHelpers
112
+ RESOURCE_CLASS = Reader
113
+
114
+ def self.present_payment_method(reader, params = {}, opts = {})
115
+ request_stripe_object(
116
+ method: :post,
117
+ path: format("/v1/test_helpers/terminal/readers/%<reader>s/present_payment_method", { reader: CGI.escape(reader) }),
118
+ params: params,
119
+ opts: opts
120
+ )
121
+ end
122
+
123
+ def present_payment_method(params = {}, opts = {})
124
+ @resource.request_stripe_object(
125
+ method: :post,
126
+ path: format("/v1/test_helpers/terminal/readers/%<reader>s/present_payment_method", { reader: CGI.escape(@resource["id"]) }),
127
+ params: params,
128
+ opts: opts
129
+ )
130
+ end
131
+ end
13
132
  end
14
133
  end
15
134
  end
@@ -0,0 +1,35 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module TestHelpers
6
+ # A test clock enables deterministic control over objects in testmode. With a test clock, you can create
7
+ # objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances,
8
+ # you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.
9
+ class TestClock < APIResource
10
+ extend Stripe::APIOperations::Create
11
+ include Stripe::APIOperations::Delete
12
+ extend Stripe::APIOperations::List
13
+
14
+ OBJECT_NAME = "test_helpers.test_clock"
15
+
16
+ def advance(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: format("/v1/test_helpers/test_clocks/%<test_clock>s/advance", { test_clock: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
25
+ def self.advance(test_clock, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/test_helpers/test_clocks/%<test_clock>s/advance", { test_clock: CGI.escape(test_clock) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+ end
34
+ end
35
+ end
@@ -2,6 +2,26 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Tokenization is the process Stripe uses to collect sensitive card or bank
6
+ # account details, or personally identifiable information (PII), directly from
7
+ # your customers in a secure manner. A token representing this information is
8
+ # returned to your server to use. Use our
9
+ # [recommended payments integrations](https://stripe.com/docs/payments) to perform this process
10
+ # on the client-side. This guarantees that no sensitive card data touches your server,
11
+ # and allows your integration to operate in a PCI-compliant way.
12
+ #
13
+ # If you can't use client-side tokenization, you can also create tokens using
14
+ # the API with either your publishable or secret API key. If
15
+ # your integration uses this method, you're responsible for any PCI compliance
16
+ # that it might require, and you must keep your secret API key safe. Unlike with
17
+ # client-side tokenization, your customer's information isn't sent directly to
18
+ # Stripe, so we can't determine how it's handled or stored.
19
+ #
20
+ # You can't store or use tokens more than once. To store card or bank account
21
+ # information for later use, create [Customer](https://stripe.com/docs/api#customers)
22
+ # objects or [Custom accounts](https://stripe.com/docs/api#external_accounts).
23
+ # [Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection,
24
+ # performs best with integrations that use client-side tokenization.
5
25
  class Token < APIResource
6
26
  extend Stripe::APIOperations::Create
7
27
 
@@ -2,6 +2,11 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # To top up your Stripe balance, you create a top-up object. You can retrieve
6
+ # individual top-ups, as well as list all top-ups. Top-ups are identified by a
7
+ # unique, random ID.
8
+ #
9
+ # Related guide: [Topping up your platform account](https://stripe.com/docs/connect/top-ups)
5
10
  class Topup < APIResource
6
11
  extend Stripe::APIOperations::Create
7
12
  extend Stripe::APIOperations::List
@@ -9,12 +14,19 @@ module Stripe
9
14
 
10
15
  OBJECT_NAME = "topup"
11
16
 
12
- custom_method :cancel, http_verb: :post
13
-
14
17
  def cancel(params = {}, opts = {})
15
18
  request_stripe_object(
16
19
  method: :post,
17
- path: resource_url + "/cancel",
20
+ path: format("/v1/topups/%<topup>s/cancel", { topup: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def self.cancel(topup, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/topups/%<topup>s/cancel", { topup: CGI.escape(topup) }),
18
30
  params: params,
19
31
  opts: opts
20
32
  )
@@ -2,6 +2,16 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A `Transfer` object is created when you move funds between Stripe accounts as
6
+ # part of Connect.
7
+ #
8
+ # Before April 6, 2017, transfers also represented movement of funds from a
9
+ # Stripe account to a card or bank account. This behavior has since been split
10
+ # out into a [Payout](https://stripe.com/docs/api#payout_object) object, with corresponding payout endpoints. For more
11
+ # information, read about the
12
+ # [transfer/payout split](https://stripe.com/docs/transfer-payout-split).
13
+ #
14
+ # Related guide: [Creating separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers)
5
15
  class Transfer < APIResource
6
16
  extend Stripe::APIOperations::Create
7
17
  extend Stripe::APIOperations::List
@@ -10,18 +20,6 @@ module Stripe
10
20
 
11
21
  OBJECT_NAME = "transfer"
12
22
 
13
- custom_method :cancel, http_verb: :post
14
-
15
- nested_resource_class_methods :reversal,
16
- operations: %i[create retrieve update list]
17
-
18
- def cancel(params = {}, opts = {})
19
- request_stripe_object(
20
- method: :post,
21
- path: resource_url + "/cancel",
22
- params: params,
23
- opts: opts
24
- )
25
- end
23
+ nested_resource_class_methods :reversal, operations: %i[create retrieve update list]
26
24
  end
27
25
  end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.
7
+ class CreditReversal < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "treasury.credit_reversal"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
7
+ class DebitReversal < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "treasury.debit_reversal"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,52 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Stripe Treasury provides users with a container for money called a FinancialAccount that is separate from their Payments balance.
7
+ # FinancialAccounts serve as the source and destination of Treasury's money movement APIs.
8
+ class FinancialAccount < APIResource
9
+ extend Stripe::APIOperations::Create
10
+ extend Stripe::APIOperations::List
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "treasury.financial_account"
14
+
15
+ def retrieve_features(params = {}, opts = {})
16
+ request_stripe_object(
17
+ method: :get,
18
+ path: format("/v1/treasury/financial_accounts/%<financial_account>s/features", { financial_account: CGI.escape(self["id"]) }),
19
+ params: params,
20
+ opts: opts
21
+ )
22
+ end
23
+
24
+ def update_features(params = {}, opts = {})
25
+ request_stripe_object(
26
+ method: :post,
27
+ path: format("/v1/treasury/financial_accounts/%<financial_account>s/features", { financial_account: CGI.escape(self["id"]) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def self.retrieve_features(financial_account, params = {}, opts = {})
34
+ request_stripe_object(
35
+ method: :get,
36
+ path: format("/v1/treasury/financial_accounts/%<financial_account>s/features", { financial_account: CGI.escape(financial_account) }),
37
+ params: params,
38
+ opts: opts
39
+ )
40
+ end
41
+
42
+ def self.update_features(financial_account, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/treasury/financial_accounts/%<financial_account>s/features", { financial_account: CGI.escape(financial_account) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # Encodes whether a FinancialAccount has access to a particular Feature, with a `status` enum and associated `status_details`.
7
+ # Stripe or the platform can control Features via the requested field.
8
+ class FinancialAccountFeatures < APIResource
9
+ OBJECT_NAME = "treasury.financial_account_features"
10
+ end
11
+ end
12
+ end