stripe 8.7.0.pre.beta.3 → 8.7.0

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -176
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +0 -11
  5. data/VERSION +1 -1
  6. data/lib/stripe/api_operations/request.rb +0 -2
  7. data/lib/stripe/api_version.rb +0 -1
  8. data/lib/stripe/object_types.rb +3 -16
  9. data/lib/stripe/resources/credit_note_line_item.rb +1 -0
  10. data/lib/stripe/resources/financial_connections/account.rb +0 -39
  11. data/lib/stripe/resources/issuing/card.rb +0 -18
  12. data/lib/stripe/resources/quote.rb +0 -131
  13. data/lib/stripe/resources/subscription_schedule.rb +0 -18
  14. data/lib/stripe/resources/tax/calculation_line_item.rb +10 -0
  15. data/lib/stripe/resources/tax/transaction_line_item.rb +10 -0
  16. data/lib/stripe/resources/terminal/reader.rb +0 -54
  17. data/lib/stripe/resources/treasury/financial_account_features.rb +12 -0
  18. data/lib/stripe/resources.rb +3 -16
  19. data/lib/stripe/stripe_client.rb +26 -60
  20. data/lib/stripe/stripe_configuration.rb +0 -3
  21. data/lib/stripe/util.rb +1 -8
  22. data/lib/stripe/version.rb +1 -1
  23. data/lib/stripe.rb +0 -47
  24. metadata +7 -21
  25. data/lib/stripe/request_signing_authenticator.rb +0 -83
  26. data/lib/stripe/resources/account_session.rb +0 -17
  27. data/lib/stripe/resources/capital/financing_offer.rb +0 -32
  28. data/lib/stripe/resources/capital/financing_summary.rb +0 -12
  29. data/lib/stripe/resources/capital/financing_transaction.rb +0 -13
  30. data/lib/stripe/resources/customer_session.rb +0 -12
  31. data/lib/stripe/resources/financial_connections/inferred_balance.rb +0 -13
  32. data/lib/stripe/resources/financial_connections/transaction.rb +0 -13
  33. data/lib/stripe/resources/gift_cards/card.rb +0 -25
  34. data/lib/stripe/resources/gift_cards/transaction.rb +0 -56
  35. data/lib/stripe/resources/issuing/card_bundle.rb +0 -13
  36. data/lib/stripe/resources/issuing/card_design.rb +0 -58
  37. data/lib/stripe/resources/order.rb +0 -89
  38. data/lib/stripe/resources/payment_method_configuration.rb +0 -13
  39. data/lib/stripe/resources/quote_phase.rb +0 -29
  40. data/lib/stripe/resources/tax/form.rb +0 -39
  41. data/lib/stripe/resources/tax/registration.rb +0 -19
@@ -29,15 +29,6 @@ module Stripe
29
29
  )
30
30
  end
31
31
 
32
- def draft_quote(params = {}, opts = {})
33
- request_stripe_object(
34
- method: :post,
35
- path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
36
- params: params,
37
- opts: opts
38
- )
39
- end
40
-
41
32
  def finalize_quote(params = {}, opts = {})
42
33
  request_stripe_object(
43
34
  method: :post,
@@ -65,24 +56,6 @@ module Stripe
65
56
  )
66
57
  end
67
58
 
68
- def list_lines(params = {}, opts = {})
69
- request_stripe_object(
70
- method: :get,
71
- path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
72
- params: params,
73
- opts: opts
74
- )
75
- end
76
-
77
- def mark_stale_quote(params = {}, opts = {})
78
- request_stripe_object(
79
- method: :post,
80
- path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
81
- params: params,
82
- opts: opts
83
- )
84
- end
85
-
86
59
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
87
60
  config = opts[:client]&.config || Stripe.config
88
61
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -95,42 +68,6 @@ module Stripe
95
68
  )
96
69
  end
97
70
 
98
- def preview_invoice_lines(preview_invoice, params = {}, opts = {})
99
- request_stripe_object(
100
- method: :get,
101
- path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
102
- params: params,
103
- opts: opts
104
- )
105
- end
106
-
107
- def preview_invoices(params = {}, opts = {})
108
- request_stripe_object(
109
- method: :get,
110
- path: format("/v1/quotes/%<quote>s/preview_invoices", { quote: CGI.escape(self["id"]) }),
111
- params: params,
112
- opts: opts
113
- )
114
- end
115
-
116
- def preview_subscription_schedules(params = {}, opts = {})
117
- request_stripe_object(
118
- method: :get,
119
- path: format("/v1/quotes/%<quote>s/preview_subscription_schedules", { quote: CGI.escape(self["id"]) }),
120
- params: params,
121
- opts: opts
122
- )
123
- end
124
-
125
- def reestimate(params = {}, opts = {})
126
- request_stripe_object(
127
- method: :post,
128
- path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
129
- params: params,
130
- opts: opts
131
- )
132
- end
133
-
134
71
  def self.accept(quote, params = {}, opts = {})
135
72
  request_stripe_object(
136
73
  method: :post,
@@ -149,15 +86,6 @@ module Stripe
149
86
  )
150
87
  end
151
88
 
152
- def self.draft_quote(quote, params = {}, opts = {})
153
- request_stripe_object(
154
- method: :post,
155
- path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
156
- params: params,
157
- opts: opts
158
- )
159
- end
160
-
161
89
  def self.finalize_quote(quote, params = {}, opts = {})
162
90
  request_stripe_object(
163
91
  method: :post,
@@ -185,24 +113,6 @@ module Stripe
185
113
  )
186
114
  end
187
115
 
188
- def self.list_lines(quote, params = {}, opts = {})
189
- request_stripe_object(
190
- method: :get,
191
- path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
192
- params: params,
193
- opts: opts
194
- )
195
- end
196
-
197
- def self.mark_stale_quote(quote, params = {}, opts = {})
198
- request_stripe_object(
199
- method: :post,
200
- path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
201
- params: params,
202
- opts: opts
203
- )
204
- end
205
-
206
116
  def self.pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
207
117
  config = opts[:client]&.config || Stripe.config
208
118
  opts = { api_base: config.uploads_base }.merge(opts)
@@ -214,46 +124,5 @@ module Stripe
214
124
  &read_body_chunk_block
215
125
  )
216
126
  end
217
-
218
- def self.preview_invoice_lines(
219
- quote,
220
- preview_invoice,
221
- params = {},
222
- opts = {}
223
- )
224
- request_stripe_object(
225
- method: :get,
226
- path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
227
- params: params,
228
- opts: opts
229
- )
230
- end
231
-
232
- def self.preview_invoices(quote, params = {}, opts = {})
233
- request_stripe_object(
234
- method: :get,
235
- path: format("/v1/quotes/%<quote>s/preview_invoices", { quote: CGI.escape(quote) }),
236
- params: params,
237
- opts: opts
238
- )
239
- end
240
-
241
- def self.preview_subscription_schedules(quote, params = {}, opts = {})
242
- request_stripe_object(
243
- method: :get,
244
- path: format("/v1/quotes/%<quote>s/preview_subscription_schedules", { quote: CGI.escape(quote) }),
245
- params: params,
246
- opts: opts
247
- )
248
- end
249
-
250
- def self.reestimate(quote, params = {}, opts = {})
251
- request_stripe_object(
252
- method: :post,
253
- path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
254
- params: params,
255
- opts: opts
256
- )
257
- end
258
127
  end
259
128
  end
@@ -12,15 +12,6 @@ module Stripe
12
12
 
13
13
  OBJECT_NAME = "subscription_schedule"
14
14
 
15
- def amend(params = {}, opts = {})
16
- request_stripe_object(
17
- method: :post,
18
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
19
- params: params,
20
- opts: opts
21
- )
22
- end
23
-
24
15
  def cancel(params = {}, opts = {})
25
16
  request_stripe_object(
26
17
  method: :post,
@@ -39,15 +30,6 @@ module Stripe
39
30
  )
40
31
  end
41
32
 
42
- def self.amend(schedule, params = {}, opts = {})
43
- request_stripe_object(
44
- method: :post,
45
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
46
- params: params,
47
- opts: opts
48
- )
49
- end
50
-
51
33
  def self.cancel(schedule, params = {}, opts = {})
52
34
  request_stripe_object(
53
35
  method: :post,
@@ -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,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
@@ -23,33 +23,6 @@ module Stripe
23
23
  )
24
24
  end
25
25
 
26
- def collect_inputs(params = {}, opts = {})
27
- request_stripe_object(
28
- method: :post,
29
- path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(self["id"]) }),
30
- params: params,
31
- opts: opts
32
- )
33
- end
34
-
35
- def collect_payment_method(params = {}, opts = {})
36
- request_stripe_object(
37
- method: :post,
38
- path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(self["id"]) }),
39
- params: params,
40
- opts: opts
41
- )
42
- end
43
-
44
- def confirm_payment_intent(params = {}, opts = {})
45
- request_stripe_object(
46
- method: :post,
47
- path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(self["id"]) }),
48
- params: params,
49
- opts: opts
50
- )
51
- end
52
-
53
26
  def process_payment_intent(params = {}, opts = {})
54
27
  request_stripe_object(
55
28
  method: :post,
@@ -95,33 +68,6 @@ module Stripe
95
68
  )
96
69
  end
97
70
 
98
- def self.collect_inputs(reader, params = {}, opts = {})
99
- request_stripe_object(
100
- method: :post,
101
- path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
102
- params: params,
103
- opts: opts
104
- )
105
- end
106
-
107
- def self.collect_payment_method(reader, params = {}, opts = {})
108
- request_stripe_object(
109
- method: :post,
110
- path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
111
- params: params,
112
- opts: opts
113
- )
114
- end
115
-
116
- def self.confirm_payment_intent(reader, params = {}, opts = {})
117
- request_stripe_object(
118
- method: :post,
119
- path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
120
- params: params,
121
- opts: opts
122
- )
123
- end
124
-
125
71
  def self.process_payment_intent(reader, params = {}, opts = {})
126
72
  request_stripe_object(
127
73
  method: :post,
@@ -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
@@ -3,7 +3,6 @@
3
3
 
4
4
  require "stripe/resources/account"
5
5
  require "stripe/resources/account_link"
6
- require "stripe/resources/account_session"
7
6
  require "stripe/resources/apple_pay_domain"
8
7
  require "stripe/resources/application_fee"
9
8
  require "stripe/resources/application_fee_refund"
@@ -14,9 +13,6 @@ require "stripe/resources/bank_account"
14
13
  require "stripe/resources/billing_portal/configuration"
15
14
  require "stripe/resources/billing_portal/session"
16
15
  require "stripe/resources/capability"
17
- require "stripe/resources/capital/financing_offer"
18
- require "stripe/resources/capital/financing_summary"
19
- require "stripe/resources/capital/financing_transaction"
20
16
  require "stripe/resources/card"
21
17
  require "stripe/resources/cash_balance"
22
18
  require "stripe/resources/charge"
@@ -28,7 +24,6 @@ require "stripe/resources/credit_note_line_item"
28
24
  require "stripe/resources/customer"
29
25
  require "stripe/resources/customer_balance_transaction"
30
26
  require "stripe/resources/customer_cash_balance_transaction"
31
- require "stripe/resources/customer_session"
32
27
  require "stripe/resources/discount"
33
28
  require "stripe/resources/dispute"
34
29
  require "stripe/resources/ephemeral_key"
@@ -39,12 +34,8 @@ require "stripe/resources/file_link"
39
34
  require "stripe/resources/financial_connections/account"
40
35
  require "stripe/resources/financial_connections/account_owner"
41
36
  require "stripe/resources/financial_connections/account_ownership"
42
- require "stripe/resources/financial_connections/inferred_balance"
43
37
  require "stripe/resources/financial_connections/session"
44
- require "stripe/resources/financial_connections/transaction"
45
38
  require "stripe/resources/funding_instructions"
46
- require "stripe/resources/gift_cards/card"
47
- require "stripe/resources/gift_cards/transaction"
48
39
  require "stripe/resources/identity/verification_report"
49
40
  require "stripe/resources/identity/verification_session"
50
41
  require "stripe/resources/invoice"
@@ -52,19 +43,15 @@ require "stripe/resources/invoice_item"
52
43
  require "stripe/resources/invoice_line_item"
53
44
  require "stripe/resources/issuing/authorization"
54
45
  require "stripe/resources/issuing/card"
55
- require "stripe/resources/issuing/card_bundle"
56
- require "stripe/resources/issuing/card_design"
57
46
  require "stripe/resources/issuing/cardholder"
58
47
  require "stripe/resources/issuing/dispute"
59
48
  require "stripe/resources/issuing/transaction"
60
49
  require "stripe/resources/line_item"
61
50
  require "stripe/resources/login_link"
62
51
  require "stripe/resources/mandate"
63
- require "stripe/resources/order"
64
52
  require "stripe/resources/payment_intent"
65
53
  require "stripe/resources/payment_link"
66
54
  require "stripe/resources/payment_method"
67
- require "stripe/resources/payment_method_configuration"
68
55
  require "stripe/resources/payout"
69
56
  require "stripe/resources/person"
70
57
  require "stripe/resources/plan"
@@ -72,7 +59,6 @@ require "stripe/resources/price"
72
59
  require "stripe/resources/product"
73
60
  require "stripe/resources/promotion_code"
74
61
  require "stripe/resources/quote"
75
- require "stripe/resources/quote_phase"
76
62
  require "stripe/resources/radar/early_fraud_warning"
77
63
  require "stripe/resources/radar/value_list"
78
64
  require "stripe/resources/radar/value_list_item"
@@ -91,10 +77,10 @@ require "stripe/resources/subscription"
91
77
  require "stripe/resources/subscription_item"
92
78
  require "stripe/resources/subscription_schedule"
93
79
  require "stripe/resources/tax/calculation"
94
- require "stripe/resources/tax/form"
95
- require "stripe/resources/tax/registration"
80
+ require "stripe/resources/tax/calculation_line_item"
96
81
  require "stripe/resources/tax/settings"
97
82
  require "stripe/resources/tax/transaction"
83
+ require "stripe/resources/tax/transaction_line_item"
98
84
  require "stripe/resources/tax_code"
99
85
  require "stripe/resources/tax_id"
100
86
  require "stripe/resources/tax_rate"
@@ -109,6 +95,7 @@ require "stripe/resources/transfer"
109
95
  require "stripe/resources/treasury/credit_reversal"
110
96
  require "stripe/resources/treasury/debit_reversal"
111
97
  require "stripe/resources/treasury/financial_account"
98
+ require "stripe/resources/treasury/financial_account_features"
112
99
  require "stripe/resources/treasury/inbound_transfer"
113
100
  require "stripe/resources/treasury/outbound_payment"
114
101
  require "stripe/resources/treasury/outbound_transfer"
@@ -212,10 +212,9 @@ module Stripe
212
212
  end
213
213
 
214
214
  def execute_request(method, path,
215
- api_base: nil, api_key: nil,
216
- headers: {}, params: {}, api_mode: nil)
215
+ api_base: nil, api_key: nil, headers: {}, params: {})
217
216
  http_resp, api_key = execute_request_internal(
218
- method, path, api_base, api_key, headers, params, api_mode
217
+ method, path, api_base, api_key, headers, params
219
218
  )
220
219
 
221
220
  begin
@@ -246,7 +245,6 @@ module Stripe
246
245
  def execute_request_stream(method, path,
247
246
  api_base: nil, api_key: nil,
248
247
  headers: {}, params: {},
249
- api_mode: nil,
250
248
  &read_body_chunk_block)
251
249
  unless block_given?
252
250
  raise ArgumentError,
@@ -254,8 +252,7 @@ module Stripe
254
252
  end
255
253
 
256
254
  http_resp, api_key = execute_request_internal(
257
- method, path, api_base, api_key,
258
- headers, params, api_mode, &read_body_chunk_block
255
+ method, path, api_base, api_key, headers, params, &read_body_chunk_block
259
256
  )
260
257
 
261
258
  # When the read_body_chunk_block is given, we no longer have access to the
@@ -435,7 +432,7 @@ module Stripe
435
432
 
436
433
  private def execute_request_internal(method, path,
437
434
  api_base, api_key, headers, params,
438
- api_mode, &read_body_chunk_block)
435
+ &read_body_chunk_block)
439
436
  raise ArgumentError, "method should be a symbol" \
440
437
  unless method.is_a?(Symbol)
441
438
  raise ArgumentError, "path should be a string" \
@@ -443,10 +440,9 @@ module Stripe
443
440
 
444
441
  api_base ||= config.api_base
445
442
  api_key ||= config.api_key
446
- authenticator ||= config.authenticator
447
443
  params = Util.objects_to_ids(params)
448
444
 
449
- check_keys!(api_key, authenticator)
445
+ check_api_key!(api_key)
450
446
 
451
447
  body_params = nil
452
448
  query_params = nil
@@ -459,9 +455,8 @@ module Stripe
459
455
 
460
456
  query_params, path = merge_query_params(query_params, path)
461
457
 
462
- headers = request_headers(api_key, method, api_mode)
458
+ headers = request_headers(api_key, method)
463
459
  .update(Util.normalize_headers(headers))
464
-
465
460
  url = api_url(path, api_base)
466
461
 
467
462
  # Merge given query parameters with any already encoded in the path.
@@ -472,16 +467,13 @@ module Stripe
472
467
  # a log-friendly variant of the encoded form. File objects are displayed
473
468
  # as such instead of as their file contents.
474
469
  body, body_log =
475
- body_params ? encode_body(body_params, headers, api_mode) : [nil, nil]
476
-
477
- authenticator.authenticate(method, headers, body) unless api_key
470
+ body_params ? encode_body(body_params, headers) : [nil, nil]
478
471
 
479
472
  # stores information on the request we're about to make so that we don't
480
473
  # have to pass as many parameters around for logging.
481
474
  context = RequestLogContext.new
482
475
  context.account = headers["Stripe-Account"]
483
476
  context.api_key = api_key
484
- context.authenticator = authenticator
485
477
  context.api_version = headers["Stripe-Version"]
486
478
  context.body = body_log
487
479
  context.idempotency_key = headers["Idempotency-Key"]
@@ -520,16 +512,8 @@ module Stripe
520
512
  (api_base || config.api_base) + url
521
513
  end
522
514
 
523
- private def check_keys!(api_key, authenticator)
524
- if api_key && authenticator
525
- raise AuthenticationError, "Can't specify both API key " \
526
- "and authenticator. Either set your API key" \
527
- 'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
528
- 'using "Stripe.authenticator = <AUTHENTICATOR>"' \
529
- end
530
-
531
- unless api_key || authenticator
532
- # Default to missing API key error message for general users.
515
+ private def check_api_key!(api_key)
516
+ unless api_key
533
517
  raise AuthenticationError, "No API key provided. " \
534
518
  'Set your API key using "Stripe.api_key = <API-KEY>". ' \
535
519
  "You can generate API keys from the Stripe web interface. " \
@@ -548,7 +532,7 @@ module Stripe
548
532
  # Encodes a set of body parameters using multipart if `Content-Type` is set
549
533
  # for that, or standard form-encoding otherwise. Returns the encoded body
550
534
  # and a version of the encoded body that's safe to be logged.
551
- private def encode_body(body_params, headers, api_mode)
535
+ private def encode_body(body_params, headers)
552
536
  body = nil
553
537
  flattened_params = Util.flatten_params(body_params)
554
538
 
@@ -564,22 +548,15 @@ module Stripe
564
548
  flattened_params =
565
549
  flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
566
550
 
567
- elsif api_mode == :preview
568
- body = JSON.generate(body_params)
569
- headers["Content-Type"] = "application/json"
570
551
  else
571
552
  body = Util.encode_parameters(body_params)
572
553
  end
573
554
 
574
- if api_mode == :preview
575
- body_log = body
576
- else
577
- # We don't use `Util.encode_parameters` partly as an optimization (to
578
- # not redo work we've already done), and partly because the encoded
579
- # forms of certain characters introduce a lot of visual noise and it's
580
- # nice to have a clearer format for logs.
581
- body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
582
- end
555
+ # We don't use `Util.encode_parameters` partly as an optimization (to not
556
+ # redo work we've already done), and partly because the encoded forms of
557
+ # certain characters introduce a lot of visual noise and it's nice to
558
+ # have a clearer format for logs.
559
+ body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
583
560
 
584
561
  [body, body_log]
585
562
  end
@@ -768,11 +745,10 @@ module Stripe
768
745
  end
769
746
 
770
747
  private def specific_api_error(resp, error_data, context)
771
- message = error_data[:message]
772
748
  Util.log_error("Stripe API error",
773
749
  status: resp.http_status,
774
750
  error_code: error_data[:code],
775
- error_message: message,
751
+ error_message: error_data[:message],
776
752
  error_param: error_data[:param],
777
753
  error_type: error_data[:type],
778
754
  idempotency_key: context.idempotency_key,
@@ -793,26 +769,26 @@ module Stripe
793
769
  when 400, 404
794
770
  case error_data[:type]
795
771
  when "idempotency_error"
796
- IdempotencyError.new(message, **opts)
772
+ IdempotencyError.new(error_data[:message], **opts)
797
773
  else
798
774
  InvalidRequestError.new(
799
- message, error_data[:param],
775
+ error_data[:message], error_data[:param],
800
776
  **opts
801
777
  )
802
778
  end
803
779
  when 401
804
- AuthenticationError.new(message, **opts)
780
+ AuthenticationError.new(error_data[:message], **opts)
805
781
  when 402
806
782
  CardError.new(
807
- message, error_data[:param],
783
+ error_data[:message], error_data[:param],
808
784
  **opts
809
785
  )
810
786
  when 403
811
- PermissionError.new(message, **opts)
787
+ PermissionError.new(error_data[:message], **opts)
812
788
  when 429
813
- RateLimitError.new(message, **opts)
789
+ RateLimitError.new(error_data[:message], **opts)
814
790
  else
815
- APIError.new(message, **opts)
791
+ APIError.new(error_data[:message], **opts)
816
792
  end
817
793
  end
818
794
 
@@ -880,7 +856,7 @@ module Stripe
880
856
  message + "\n\n(Network error: #{error.message})"
881
857
  end
882
858
 
883
- private def request_headers(api_key, method, api_mode)
859
+ private def request_headers(api_key, method)
884
860
  user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
885
861
  unless Stripe.app_info.nil?
886
862
  user_agent += " " + format_app_info(Stripe.app_info)
@@ -889,13 +865,9 @@ module Stripe
889
865
  headers = {
890
866
  "User-Agent" => user_agent,
891
867
  "Authorization" => "Bearer #{api_key}",
868
+ "Content-Type" => "application/x-www-form-urlencoded",
892
869
  }
893
870
 
894
- if api_mode != :preview
895
- # TODO: (major) don't set Content-Type if method is not post
896
- headers["Content-Type"] = "application/x-www-form-urlencoded"
897
- end
898
-
899
871
  if config.enable_telemetry? && !@last_request_metrics.nil?
900
872
  headers["X-Stripe-Client-Telemetry"] = JSON.generate(
901
873
  last_request_metrics: @last_request_metrics.payload
@@ -908,12 +880,7 @@ module Stripe
908
880
  headers["Idempotency-Key"] ||= SecureRandom.uuid
909
881
  end
910
882
 
911
- if api_mode == :preview
912
- headers["Stripe-Version"] = ApiVersion::PREVIEW
913
- elsif config.api_version
914
- headers["Stripe-Version"] = config.api_version
915
- end
916
-
883
+ headers["Stripe-Version"] = config.api_version if config.api_version
917
884
  headers["Stripe-Account"] = config.stripe_account if config.stripe_account
918
885
 
919
886
  user_agent = @system_profiler.user_agent
@@ -999,7 +966,6 @@ module Stripe
999
966
  attr_accessor :body
1000
967
  attr_accessor :account
1001
968
  attr_accessor :api_key
1002
- attr_accessor :authenticator
1003
969
  attr_accessor :api_version
1004
970
  attr_accessor :idempotency_key
1005
971
  attr_accessor :method
@@ -27,7 +27,6 @@ module Stripe
27
27
  class StripeConfiguration
28
28
  attr_accessor :api_key
29
29
  attr_accessor :api_version
30
- attr_accessor :authenticator
31
30
  attr_accessor :client_id
32
31
  attr_accessor :enable_telemetry
33
32
  attr_accessor :logger
@@ -64,8 +63,6 @@ module Stripe
64
63
  end
65
64
 
66
65
  def initialize
67
- @api_version = ApiVersion::CURRENT
68
-
69
66
  @ca_bundle_path = Stripe::DEFAULT_CA_BUNDLE_PATH
70
67
  @enable_telemetry = true
71
68
  @verify_ssl_certs = true
data/lib/stripe/util.rb CHANGED
@@ -7,7 +7,6 @@ module Stripe
7
7
  # Options that a user is allowed to specify.
8
8
  OPTS_USER_SPECIFIED = Set[
9
9
  :api_key,
10
- :authenticator,
11
10
  :idempotency_key,
12
11
  :stripe_account,
13
12
  :stripe_version
@@ -282,13 +281,7 @@ module Stripe
282
281
  when String
283
282
  { api_key: opts }
284
283
  when Hash
285
- # If the user is using request signing for authentication,
286
- # no need to check the api_key per request.
287
- if !(opts.key?(:client) &&
288
- opts.fetch(:client).config.authenticator) &&
289
- opts.key?(:api_key)
290
- check_api_key!(opts.fetch(:api_key))
291
- end
284
+ check_api_key!(opts.fetch(:api_key)) if opts.key?(:api_key)
292
285
  # Explicitly use dup here instead of clone to avoid preserving freeze
293
286
  # state on input params.
294
287
  opts.dup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "8.7.0-beta.3"
4
+ VERSION = "8.7.0"
5
5
  end