stripe 11.3.0.pre.beta.1 → 11.3.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +658 -1314
  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 +1 -2
  7. data/lib/stripe/api_version.rb +0 -1
  8. data/lib/stripe/object_types.rb +0 -16
  9. data/lib/stripe/resources/account.rb +28 -15
  10. data/lib/stripe/resources/bank_account.rb +4 -3
  11. data/lib/stripe/resources/event.rb +3 -3
  12. data/lib/stripe/resources/financial_connections/account.rb +0 -3
  13. data/lib/stripe/resources/invoice.rb +5 -100
  14. data/lib/stripe/resources/issuing/authorization.rb +11 -0
  15. data/lib/stripe/resources/login_link.rb +1 -1
  16. data/lib/stripe/resources/payment_intent.rb +0 -50
  17. data/lib/stripe/resources/person.rb +2 -3
  18. data/lib/stripe/resources/quote.rb +0 -104
  19. data/lib/stripe/resources/subscription_schedule.rb +0 -20
  20. data/lib/stripe/resources/terminal/reader.rb +0 -60
  21. data/lib/stripe/resources/token.rb +2 -2
  22. data/lib/stripe/resources/webhook_endpoint.rb +2 -2
  23. data/lib/stripe/resources.rb +0 -15
  24. data/lib/stripe/stripe_client.rb +28 -62
  25. data/lib/stripe/stripe_configuration.rb +1 -2
  26. data/lib/stripe/util.rb +1 -8
  27. data/lib/stripe/version.rb +1 -1
  28. data/lib/stripe.rb +0 -54
  29. metadata +5 -21
  30. data/lib/stripe/request_signing_authenticator.rb +0 -79
  31. data/lib/stripe/resources/account_notice.rb +0 -32
  32. data/lib/stripe/resources/capital/financing_offer.rb +0 -49
  33. data/lib/stripe/resources/capital/financing_summary.rb +0 -15
  34. data/lib/stripe/resources/capital/financing_transaction.rb +0 -27
  35. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -14
  36. data/lib/stripe/resources/gift_cards/card.rb +0 -59
  37. data/lib/stripe/resources/gift_cards/transaction.rb +0 -93
  38. data/lib/stripe/resources/invoice_payment.rb +0 -12
  39. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -88
  40. data/lib/stripe/resources/margin.rb +0 -37
  41. data/lib/stripe/resources/order.rb +0 -120
  42. data/lib/stripe/resources/quote_phase.rb +0 -39
  43. data/lib/stripe/resources/quote_preview_invoice.rb +0 -43
  44. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -11
  45. data/lib/stripe/resources/tax/form.rb +0 -49
@@ -7,7 +7,6 @@ module Stripe
7
7
  class Quote < APIResource
8
8
  extend Stripe::APIOperations::Create
9
9
  extend Stripe::APIOperations::List
10
- extend Stripe::APIOperations::NestedResource
11
10
  include Stripe::APIOperations::Save
12
11
 
13
12
  OBJECT_NAME = "quote"
@@ -15,9 +14,6 @@ module Stripe
15
14
  "quote"
16
15
  end
17
16
 
18
- nested_resource_class_methods :preview_invoice, operations: %i[list]
19
- nested_resource_class_methods :preview_subscription_schedule, operations: %i[list]
20
-
21
17
  # Accepts the specified quote.
22
18
  def accept(params = {}, opts = {})
23
19
  request_stripe_object(
@@ -128,86 +124,6 @@ module Stripe
128
124
  )
129
125
  end
130
126
 
131
- # Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
132
- def list_lines(params = {}, opts = {})
133
- request_stripe_object(
134
- method: :get,
135
- path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(self["id"]) }),
136
- params: params,
137
- opts: opts
138
- )
139
- end
140
-
141
- # Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
142
- def self.list_lines(quote, params = {}, opts = {})
143
- request_stripe_object(
144
- method: :get,
145
- path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
146
- params: params,
147
- opts: opts
148
- )
149
- end
150
-
151
- # Preview the invoice line items that would be generated by accepting the quote.
152
- def list_preview_invoice_lines(preview_invoice, params = {}, opts = {})
153
- request_stripe_object(
154
- method: :get,
155
- path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(self["id"]), preview_invoice: CGI.escape(preview_invoice) }),
156
- params: params,
157
- opts: opts
158
- )
159
- end
160
-
161
- # Preview the invoice line items that would be generated by accepting the quote.
162
- def self.list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
163
- request_stripe_object(
164
- method: :get,
165
- path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
166
- params: params,
167
- opts: opts
168
- )
169
- end
170
-
171
- # Converts a stale quote to draft.
172
- def mark_draft(params = {}, opts = {})
173
- request_stripe_object(
174
- method: :post,
175
- path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(self["id"]) }),
176
- params: params,
177
- opts: opts
178
- )
179
- end
180
-
181
- # Converts a stale quote to draft.
182
- def self.mark_draft(quote, params = {}, opts = {})
183
- request_stripe_object(
184
- method: :post,
185
- path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
186
- params: params,
187
- opts: opts
188
- )
189
- end
190
-
191
- # Converts a draft or open quote to stale.
192
- def mark_stale(params = {}, opts = {})
193
- request_stripe_object(
194
- method: :post,
195
- path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(self["id"]) }),
196
- params: params,
197
- opts: opts
198
- )
199
- end
200
-
201
- # Converts a draft or open quote to stale.
202
- def self.mark_stale(quote, params = {}, opts = {})
203
- request_stripe_object(
204
- method: :post,
205
- path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
206
- params: params,
207
- opts: opts
208
- )
209
- end
210
-
211
127
  # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.corp.stripe.com/quotes/overview#quote_pdf)
212
128
  def pdf(params = {}, opts = {}, &read_body_chunk_block)
213
129
  config = opts[:client]&.config || Stripe.config
@@ -234,26 +150,6 @@ module Stripe
234
150
  )
235
151
  end
236
152
 
237
- # Recompute the upcoming invoice estimate for the quote.
238
- def reestimate(params = {}, opts = {})
239
- request_stripe_object(
240
- method: :post,
241
- path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(self["id"]) }),
242
- params: params,
243
- opts: opts
244
- )
245
- end
246
-
247
- # Recompute the upcoming invoice estimate for the quote.
248
- def self.reestimate(quote, params = {}, opts = {})
249
- request_stripe_object(
250
- method: :post,
251
- path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
252
- params: params,
253
- opts: opts
254
- )
255
- end
256
-
257
153
  # A quote models prices and services for a customer.
258
154
  def self.update(id, params = {}, opts = {})
259
155
  request_stripe_object(
@@ -15,26 +15,6 @@ module Stripe
15
15
  "subscription_schedule"
16
16
  end
17
17
 
18
- # Amends an existing subscription schedule.
19
- def amend(params = {}, opts = {})
20
- request_stripe_object(
21
- method: :post,
22
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(self["id"]) }),
23
- params: params,
24
- opts: opts
25
- )
26
- end
27
-
28
- # Amends an existing subscription schedule.
29
- def self.amend(schedule, params = {}, opts = {})
30
- request_stripe_object(
31
- method: :post,
32
- path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
33
- params: params,
34
- opts: opts
35
- )
36
- end
37
-
38
18
  # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.
39
19
  def cancel(params = {}, opts = {})
40
20
  request_stripe_object(
@@ -37,66 +37,6 @@ module Stripe
37
37
  )
38
38
  end
39
39
 
40
- # Initiates an input collection flow on a Reader.
41
- def collect_inputs(params = {}, opts = {})
42
- request_stripe_object(
43
- method: :post,
44
- path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(self["id"]) }),
45
- params: params,
46
- opts: opts
47
- )
48
- end
49
-
50
- # Initiates an input collection flow on a Reader.
51
- def self.collect_inputs(reader, params = {}, opts = {})
52
- request_stripe_object(
53
- method: :post,
54
- path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
55
- params: params,
56
- opts: opts
57
- )
58
- end
59
-
60
- # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
61
- def collect_payment_method(params = {}, opts = {})
62
- request_stripe_object(
63
- method: :post,
64
- path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(self["id"]) }),
65
- params: params,
66
- opts: opts
67
- )
68
- end
69
-
70
- # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
71
- def self.collect_payment_method(reader, params = {}, opts = {})
72
- request_stripe_object(
73
- method: :post,
74
- path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
75
- params: params,
76
- opts: opts
77
- )
78
- end
79
-
80
- # Finalizes a payment on a Reader.
81
- def confirm_payment_intent(params = {}, opts = {})
82
- request_stripe_object(
83
- method: :post,
84
- path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(self["id"]) }),
85
- params: params,
86
- opts: opts
87
- )
88
- end
89
-
90
- # Finalizes a payment on a Reader.
91
- def self.confirm_payment_intent(reader, params = {}, opts = {})
92
- request_stripe_object(
93
- method: :post,
94
- path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
95
- params: params,
96
- opts: opts
97
- )
98
- end
99
-
100
40
  # Creates a new Reader object.
101
41
  def self.create(params = {}, opts = {})
102
42
  request_stripe_object(
@@ -19,7 +19,7 @@ module Stripe
19
19
  #
20
20
  # You can't store or use tokens more than once. To store card or bank account
21
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).
22
+ # objects or [External accounts](https://stripe.com/api#external_accounts).
23
23
  # [Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection,
24
24
  # performs best with integrations that use client-side tokenization.
25
25
  class Token < APIResource
@@ -31,7 +31,7 @@ module Stripe
31
31
  end
32
32
 
33
33
  # Creates a single-use token that represents a bank account's details.
34
- # You can use this token with any API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [Custom account](https://stripe.com/docs/api#accounts).
34
+ # You can use this token with any API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [connected account](https://stripe.com/docs/api#accounts) where [controller.requirement_collection](https://stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts.
35
35
  def self.create(params = {}, opts = {})
36
36
  request_stripe_object(method: :post, path: "/v1/tokens", params: params, opts: opts)
37
37
  end
@@ -2,13 +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
5
+ # You can configure [webhook endpoints](https://docs.stripe.com/webhooks/) via the API to be
6
6
  # notified about events that happen in your Stripe account or connected
7
7
  # accounts.
8
8
  #
9
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
10
  #
11
- # Related guide: [Setting up webhooks](https://stripe.com/docs/webhooks/configure)
11
+ # Related guide: [Setting up webhooks](https://docs.stripe.com/webhooks/configure)
12
12
  class WebhookEndpoint < APIResource
13
13
  extend Stripe::APIOperations::Create
14
14
  include Stripe::APIOperations::Delete
@@ -3,7 +3,6 @@
3
3
 
4
4
  require "stripe/resources/account"
5
5
  require "stripe/resources/account_link"
6
- require "stripe/resources/account_notice"
7
6
  require "stripe/resources/account_session"
8
7
  require "stripe/resources/apple_pay_domain"
9
8
  require "stripe/resources/application_fee"
@@ -19,9 +18,6 @@ require "stripe/resources/billing/meter_event_summary"
19
18
  require "stripe/resources/billing_portal/configuration"
20
19
  require "stripe/resources/billing_portal/session"
21
20
  require "stripe/resources/capability"
22
- require "stripe/resources/capital/financing_offer"
23
- require "stripe/resources/capital/financing_summary"
24
- require "stripe/resources/capital/financing_transaction"
25
21
  require "stripe/resources/card"
26
22
  require "stripe/resources/cash_balance"
27
23
  require "stripe/resources/charge"
@@ -48,25 +44,20 @@ require "stripe/resources/exchange_rate"
48
44
  require "stripe/resources/file"
49
45
  require "stripe/resources/file_link"
50
46
  require "stripe/resources/financial_connections/account"
51
- require "stripe/resources/financial_connections/account_inferred_balance"
52
47
  require "stripe/resources/financial_connections/account_owner"
53
48
  require "stripe/resources/financial_connections/account_ownership"
54
49
  require "stripe/resources/financial_connections/session"
55
50
  require "stripe/resources/financial_connections/transaction"
56
51
  require "stripe/resources/forwarding/request"
57
52
  require "stripe/resources/funding_instructions"
58
- require "stripe/resources/gift_cards/card"
59
- require "stripe/resources/gift_cards/transaction"
60
53
  require "stripe/resources/identity/verification_report"
61
54
  require "stripe/resources/identity/verification_session"
62
55
  require "stripe/resources/invoice"
63
56
  require "stripe/resources/invoice_item"
64
57
  require "stripe/resources/invoice_line_item"
65
- require "stripe/resources/invoice_payment"
66
58
  require "stripe/resources/issuing/authorization"
67
59
  require "stripe/resources/issuing/card"
68
60
  require "stripe/resources/issuing/cardholder"
69
- require "stripe/resources/issuing/credit_underwriting_record"
70
61
  require "stripe/resources/issuing/dispute"
71
62
  require "stripe/resources/issuing/personalization_design"
72
63
  require "stripe/resources/issuing/physical_bundle"
@@ -75,8 +66,6 @@ require "stripe/resources/issuing/transaction"
75
66
  require "stripe/resources/line_item"
76
67
  require "stripe/resources/login_link"
77
68
  require "stripe/resources/mandate"
78
- require "stripe/resources/margin"
79
- require "stripe/resources/order"
80
69
  require "stripe/resources/payment_intent"
81
70
  require "stripe/resources/payment_link"
82
71
  require "stripe/resources/payment_method"
@@ -90,9 +79,6 @@ require "stripe/resources/product"
90
79
  require "stripe/resources/product_feature"
91
80
  require "stripe/resources/promotion_code"
92
81
  require "stripe/resources/quote"
93
- require "stripe/resources/quote_phase"
94
- require "stripe/resources/quote_preview_invoice"
95
- require "stripe/resources/quote_preview_subscription_schedule"
96
82
  require "stripe/resources/radar/early_fraud_warning"
97
83
  require "stripe/resources/radar/value_list"
98
84
  require "stripe/resources/radar/value_list_item"
@@ -112,7 +98,6 @@ require "stripe/resources/subscription_item"
112
98
  require "stripe/resources/subscription_schedule"
113
99
  require "stripe/resources/tax/calculation"
114
100
  require "stripe/resources/tax/calculation_line_item"
115
- require "stripe/resources/tax/form"
116
101
  require "stripe/resources/tax/registration"
117
102
  require "stripe/resources/tax/settings"
118
103
  require "stripe/resources/tax/transaction"
@@ -206,10 +206,9 @@ module Stripe
206
206
  end
207
207
 
208
208
  def execute_request(method, path,
209
- api_base: nil, api_key: nil,
210
- headers: {}, params: {}, api_mode: nil, usage: [])
209
+ api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
211
210
  http_resp, api_key = execute_request_internal(
212
- method, path, api_base, api_key, headers, params, api_mode, usage
211
+ method, path, api_base, api_key, headers, params, usage
213
212
  )
214
213
 
215
214
  begin
@@ -240,7 +239,6 @@ module Stripe
240
239
  def execute_request_stream(method, path,
241
240
  api_base: nil, api_key: nil, usage: [],
242
241
  headers: {}, params: {},
243
- api_mode: nil,
244
242
  &read_body_chunk_block)
245
243
  unless block_given?
246
244
  raise ArgumentError,
@@ -248,8 +246,7 @@ module Stripe
248
246
  end
249
247
 
250
248
  http_resp, api_key = execute_request_internal(
251
- method, path, api_base, api_key,
252
- headers, params, api_mode, usage, &read_body_chunk_block
249
+ method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
253
250
  )
254
251
 
255
252
  # When the read_body_chunk_block is given, we no longer have access to the
@@ -428,8 +425,8 @@ module Stripe
428
425
  end
429
426
 
430
427
  private def execute_request_internal(method, path,
431
- api_base, api_key, headers, params,
432
- api_mode, usage, &read_body_chunk_block)
428
+ api_base, api_key, headers, params, usage,
429
+ &read_body_chunk_block)
433
430
  raise ArgumentError, "method should be a symbol" \
434
431
  unless method.is_a?(Symbol)
435
432
  raise ArgumentError, "path should be a string" \
@@ -437,10 +434,9 @@ module Stripe
437
434
 
438
435
  api_base ||= config.api_base
439
436
  api_key ||= config.api_key
440
- authenticator ||= config.authenticator
441
437
  params = Util.objects_to_ids(params)
442
438
 
443
- check_keys!(api_key, authenticator)
439
+ check_api_key!(api_key)
444
440
 
445
441
  body_params = nil
446
442
  query_params = nil
@@ -453,9 +449,8 @@ module Stripe
453
449
 
454
450
  query_params, path = merge_query_params(query_params, path)
455
451
 
456
- headers = request_headers(api_key, method, api_mode)
452
+ headers = request_headers(api_key, method)
457
453
  .update(Util.normalize_headers(headers))
458
-
459
454
  url = api_url(path, api_base)
460
455
 
461
456
  # Merge given query parameters with any already encoded in the path.
@@ -466,16 +461,13 @@ module Stripe
466
461
  # a log-friendly variant of the encoded form. File objects are displayed
467
462
  # as such instead of as their file contents.
468
463
  body, body_log =
469
- body_params ? encode_body(body_params, headers, api_mode) : [nil, nil]
470
-
471
- authenticator.authenticate(method, headers, body) unless api_key
464
+ body_params ? encode_body(body_params, headers) : [nil, nil]
472
465
 
473
466
  # stores information on the request we're about to make so that we don't
474
467
  # have to pass as many parameters around for logging.
475
468
  context = RequestLogContext.new
476
469
  context.account = headers["Stripe-Account"]
477
470
  context.api_key = api_key
478
- context.authenticator = authenticator
479
471
  context.api_version = headers["Stripe-Version"]
480
472
  context.body = body_log
481
473
  context.idempotency_key = headers["Idempotency-Key"]
@@ -512,16 +504,8 @@ module Stripe
512
504
  (api_base || config.api_base) + url
513
505
  end
514
506
 
515
- private def check_keys!(api_key, authenticator)
516
- if api_key && authenticator
517
- raise AuthenticationError, "Can't specify both API key " \
518
- "and authenticator. Either set your API key" \
519
- 'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
520
- 'using "Stripe.authenticator = <AUTHENTICATOR>"' \
521
- end
522
-
523
- unless api_key || authenticator
524
- # Default to missing API key error message for general users.
507
+ private def check_api_key!(api_key)
508
+ unless api_key
525
509
  raise AuthenticationError, "No API key provided. " \
526
510
  'Set your API key using "Stripe.api_key = <API-KEY>". ' \
527
511
  "You can generate API keys from the Stripe web interface. " \
@@ -540,7 +524,7 @@ module Stripe
540
524
  # Encodes a set of body parameters using multipart if `Content-Type` is set
541
525
  # for that, or standard form-encoding otherwise. Returns the encoded body
542
526
  # and a version of the encoded body that's safe to be logged.
543
- private def encode_body(body_params, headers, api_mode)
527
+ private def encode_body(body_params, headers)
544
528
  body = nil
545
529
  flattened_params = Util.flatten_params(body_params)
546
530
 
@@ -556,22 +540,15 @@ module Stripe
556
540
  flattened_params =
557
541
  flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
558
542
 
559
- elsif api_mode == :preview
560
- body = JSON.generate(body_params)
561
- headers["Content-Type"] = "application/json"
562
543
  else
563
544
  body = Util.encode_parameters(body_params)
564
545
  end
565
546
 
566
- body_log = if api_mode == :preview
567
- body
568
- else
569
- # We don't use `Util.encode_parameters` partly as an optimization (to
570
- # not redo work we've already done), and partly because the encoded
571
- # forms of certain characters introduce a lot of visual noise and it's
572
- # nice to have a clearer format for logs.
573
- flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
574
- end
547
+ # We don't use `Util.encode_parameters` partly as an optimization (to not
548
+ # redo work we've already done), and partly because the encoded forms of
549
+ # certain characters introduce a lot of visual noise and it's nice to
550
+ # have a clearer format for logs.
551
+ body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
575
552
 
576
553
  [body, body_log]
577
554
  end
@@ -757,11 +734,10 @@ module Stripe
757
734
  end
758
735
 
759
736
  private def specific_api_error(resp, error_data, context)
760
- message = error_data[:message]
761
737
  Util.log_error("Stripe API error",
762
738
  status: resp.http_status,
763
739
  error_code: error_data[:code],
764
- error_message: message,
740
+ error_message: error_data[:message],
765
741
  error_param: error_data[:param],
766
742
  error_type: error_data[:type],
767
743
  idempotency_key: context.idempotency_key,
@@ -782,26 +758,26 @@ module Stripe
782
758
  when 400, 404
783
759
  case error_data[:type]
784
760
  when "idempotency_error"
785
- IdempotencyError.new(message, **opts)
761
+ IdempotencyError.new(error_data[:message], **opts)
786
762
  else
787
763
  InvalidRequestError.new(
788
- message, error_data[:param],
764
+ error_data[:message], error_data[:param],
789
765
  **opts
790
766
  )
791
767
  end
792
768
  when 401
793
- AuthenticationError.new(message, **opts)
769
+ AuthenticationError.new(error_data[:message], **opts)
794
770
  when 402
795
771
  CardError.new(
796
- message, error_data[:param],
772
+ error_data[:message], error_data[:param],
797
773
  **opts
798
774
  )
799
775
  when 403
800
- PermissionError.new(message, **opts)
776
+ PermissionError.new(error_data[:message], **opts)
801
777
  when 429
802
- RateLimitError.new(message, **opts)
778
+ RateLimitError.new(error_data[:message], **opts)
803
779
  else
804
- APIError.new(message, **opts)
780
+ APIError.new(error_data[:message], **opts)
805
781
  end
806
782
  end
807
783
 
@@ -869,20 +845,16 @@ module Stripe
869
845
  message + "\n\n(Network error: #{error.message})"
870
846
  end
871
847
 
872
- private def request_headers(api_key, method, api_mode)
848
+ private def request_headers(api_key, method)
873
849
  user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
874
850
  user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
875
851
 
876
852
  headers = {
877
853
  "User-Agent" => user_agent,
878
854
  "Authorization" => "Bearer #{api_key}",
855
+ "Content-Type" => "application/x-www-form-urlencoded",
879
856
  }
880
857
 
881
- if api_mode != :preview
882
- # TODO: (major) don't set Content-Type if method is not post
883
- headers["Content-Type"] = "application/x-www-form-urlencoded"
884
- end
885
-
886
858
  if config.enable_telemetry? && !@last_request_metrics.nil?
887
859
  headers["X-Stripe-Client-Telemetry"] = JSON.generate(
888
860
  last_request_metrics: @last_request_metrics.payload
@@ -895,12 +867,7 @@ module Stripe
895
867
  headers["Idempotency-Key"] ||= SecureRandom.uuid
896
868
  end
897
869
 
898
- if api_mode == :preview
899
- headers["Stripe-Version"] = ApiVersion::PREVIEW
900
- elsif config.api_version
901
- headers["Stripe-Version"] = config.api_version
902
- end
903
-
870
+ headers["Stripe-Version"] = config.api_version if config.api_version
904
871
  headers["Stripe-Account"] = config.stripe_account if config.stripe_account
905
872
 
906
873
  user_agent = @system_profiler.user_agent
@@ -983,8 +950,7 @@ module Stripe
983
950
  # that we can log certain information. It's useful because it means that we
984
951
  # don't have to pass around as many parameters.
985
952
  class RequestLogContext
986
- attr_accessor :body, :account, :api_key, :authenticator, :api_version, :idempotency_key, :method, :path, :query,
987
- :request_id
953
+ attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
988
954
 
989
955
  # The idea with this method is that we might want to update some of
990
956
  # context information because a response that we've received from the API
@@ -25,7 +25,7 @@ module Stripe
25
25
  # If `.logger` is set, the value of `.log_level` is ignored. The decision on
26
26
  # what levels to print is entirely deferred to the logger.
27
27
  class StripeConfiguration
28
- attr_accessor :api_key, :api_version, :authenticator, :client_id, :enable_telemetry, :logger, :stripe_account
28
+ attr_accessor :api_key, :api_version, :client_id, :enable_telemetry, :logger, :stripe_account
29
29
 
30
30
  attr_reader :api_base, :uploads_base, :connect_base, :ca_bundle_path, :log_level, :initial_network_retry_delay,
31
31
  # rubocop:todo Layout/LineLength
@@ -50,7 +50,6 @@ module Stripe
50
50
 
51
51
  def initialize
52
52
  @api_version = ApiVersion::CURRENT
53
-
54
53
  @ca_bundle_path = Stripe::DEFAULT_CA_BUNDLE_PATH
55
54
  @enable_telemetry = true
56
55
  @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
@@ -280,13 +279,7 @@ module Stripe
280
279
  when String
281
280
  { api_key: opts }
282
281
  when Hash
283
- # If the user is using request signing for authentication,
284
- # no need to check the api_key per request.
285
- if !(opts.key?(:client) &&
286
- opts.fetch(:client).config.authenticator) &&
287
- opts.key?(:api_key)
288
- check_api_key!(opts.fetch(:api_key))
289
- end
282
+ check_api_key!(opts.fetch(:api_key)) if opts.key?(:api_key)
290
283
  # Explicitly use dup here instead of clone to avoid preserving freeze
291
284
  # state on input params.
292
285
  opts.dup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "11.3.0-beta.1"
4
+ VERSION = "11.3.0"
5
5
  end