stripe 13.2.0 → 13.3.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1391 -645
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/object_types.rb +22 -0
  6. data/lib/stripe/request_signing_authenticator.rb +79 -0
  7. data/lib/stripe/resources/account_notice.rb +32 -0
  8. data/lib/stripe/resources/capital/financing_offer.rb +49 -0
  9. data/lib/stripe/resources/capital/financing_summary.rb +15 -0
  10. data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
  11. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  12. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  13. data/lib/stripe/resources/financial_connections/institution.rb +26 -0
  14. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  15. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  16. data/lib/stripe/resources/invoice.rb +81 -0
  17. data/lib/stripe/resources/invoice_payment.rb +12 -0
  18. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  19. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
  20. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +26 -0
  21. data/lib/stripe/resources/margin.rb +37 -0
  22. data/lib/stripe/resources/order.rb +120 -0
  23. data/lib/stripe/resources/payment_attempt_record.rb +27 -0
  24. data/lib/stripe/resources/payment_intent.rb +70 -0
  25. data/lib/stripe/resources/payment_record.rb +115 -0
  26. data/lib/stripe/resources/quote.rb +104 -0
  27. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  28. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  29. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  30. data/lib/stripe/resources/tax/association.rb +24 -0
  31. data/lib/stripe/resources/tax/form.rb +49 -0
  32. data/lib/stripe/resources/terminal/reader.rb +60 -0
  33. data/lib/stripe/resources/terminal/reader_collected_data.rb +14 -0
  34. data/lib/stripe/resources.rb +21 -0
  35. data/lib/stripe/services/account_notice_service.rb +39 -0
  36. data/lib/stripe/services/capital/financing_offer_service.rb +42 -0
  37. data/lib/stripe/services/capital/financing_summary_service.rb +19 -0
  38. data/lib/stripe/services/capital/financing_transaction_service.rb +31 -0
  39. data/lib/stripe/services/capital_service.rb +15 -0
  40. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +19 -0
  41. data/lib/stripe/services/financial_connections/account_service.rb +3 -1
  42. data/lib/stripe/services/financial_connections/institution_service.rb +30 -0
  43. data/lib/stripe/services/financial_connections_service.rb +2 -1
  44. data/lib/stripe/services/gift_cards/card_service.rb +63 -0
  45. data/lib/stripe/services/gift_cards/transaction_service.rb +74 -0
  46. data/lib/stripe/services/gift_cards_service.rb +14 -0
  47. data/lib/stripe/services/invoice_payment_service.rb +28 -0
  48. data/lib/stripe/services/invoice_service.rb +44 -1
  49. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +74 -0
  50. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +30 -0
  51. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +30 -0
  52. data/lib/stripe/services/issuing_service.rb +5 -1
  53. data/lib/stripe/services/margin_service.rb +50 -0
  54. data/lib/stripe/services/order_line_item_service.rb +17 -0
  55. data/lib/stripe/services/order_service.rb +78 -0
  56. data/lib/stripe/services/payment_attempt_record_service.rb +28 -0
  57. data/lib/stripe/services/payment_intent_service.rb +37 -0
  58. data/lib/stripe/services/payment_record_service.rb +78 -0
  59. data/lib/stripe/services/quote_line_service.rb +17 -0
  60. data/lib/stripe/services/quote_preview_invoice_service.rb +17 -0
  61. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +17 -0
  62. data/lib/stripe/services/quote_service.rb +49 -1
  63. data/lib/stripe/services/subscription_schedule_service.rb +11 -0
  64. data/lib/stripe/services/tax/association_service.rb +19 -0
  65. data/lib/stripe/services/tax/form_service.rb +37 -0
  66. data/lib/stripe/services/tax_service.rb +3 -1
  67. data/lib/stripe/services/terminal/reader_collected_data_service.rb +19 -0
  68. data/lib/stripe/services/terminal/reader_service.rb +33 -0
  69. data/lib/stripe/services/terminal_service.rb +2 -1
  70. data/lib/stripe/services/v1_services.rb +8 -1
  71. data/lib/stripe/services.rb +25 -0
  72. data/lib/stripe/stripe_configuration.rb +3 -1
  73. data/lib/stripe/util.rb +7 -1
  74. data/lib/stripe/version.rb +1 -1
  75. data/lib/stripe.rb +45 -0
  76. metadata +51 -4
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuotePreviewSubscriptionScheduleService < StripeService
6
+ # Preview the schedules that would be generated by accepting the quote
7
+ def list(quote, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/quotes/%<quote>s/preview_subscription_schedules", { quote: CGI.escape(quote) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end
@@ -3,10 +3,14 @@
3
3
 
4
4
  module Stripe
5
5
  class QuoteService < StripeService
6
- attr_reader :line_items, :computed_upfront_line_items
6
+ attr_reader :preview_invoices, :preview_subscription_schedules, :lines, :line_items, :computed_upfront_line_items
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
10
+ @preview_invoices = Stripe::QuotePreviewInvoiceService.new(@requestor)
11
+ @preview_subscription_schedules = Stripe::QuotePreviewSubscriptionScheduleService
12
+ .new(@requestor)
13
+ @lines = Stripe::QuoteLineService.new(@requestor)
10
14
  @line_items = Stripe::QuoteLineItemService.new(@requestor)
11
15
  @computed_upfront_line_items = Stripe::QuoteComputedUpfrontLineItemsService.new(@requestor)
12
16
  end
@@ -54,6 +58,39 @@ module Stripe
54
58
  request(method: :get, path: "/v1/quotes", params: params, opts: opts, base_address: :api)
55
59
  end
56
60
 
61
+ # Preview the invoice line items that would be generated by accepting the quote.
62
+ def list_preview_invoice_lines(quote, preview_invoice, params = {}, opts = {})
63
+ request(
64
+ method: :get,
65
+ path: format("/v1/quotes/%<quote>s/preview_invoices/%<preview_invoice>s/lines", { quote: CGI.escape(quote), preview_invoice: CGI.escape(preview_invoice) }),
66
+ params: params,
67
+ opts: opts,
68
+ base_address: :api
69
+ )
70
+ end
71
+
72
+ # Converts a stale quote to draft.
73
+ def mark_draft(quote, params = {}, opts = {})
74
+ request(
75
+ method: :post,
76
+ path: format("/v1/quotes/%<quote>s/mark_draft", { quote: CGI.escape(quote) }),
77
+ params: params,
78
+ opts: opts,
79
+ base_address: :api
80
+ )
81
+ end
82
+
83
+ # Converts a draft or open quote to stale.
84
+ def mark_stale(quote, params = {}, opts = {})
85
+ request(
86
+ method: :post,
87
+ path: format("/v1/quotes/%<quote>s/mark_stale", { quote: CGI.escape(quote) }),
88
+ params: params,
89
+ opts: opts,
90
+ base_address: :api
91
+ )
92
+ end
93
+
57
94
  # Download the PDF for a finalized quote. Explanation for special handling can be found [here](https://docs.stripe.com/quotes/overview#quote_pdf)
58
95
  def pdf(quote, params = {}, opts = {}, &read_body_chunk_block)
59
96
  opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
@@ -67,6 +104,17 @@ module Stripe
67
104
  )
68
105
  end
69
106
 
107
+ # Recompute the upcoming invoice estimate for the quote.
108
+ def reestimate(quote, params = {}, opts = {})
109
+ request(
110
+ method: :post,
111
+ path: format("/v1/quotes/%<quote>s/reestimate", { quote: CGI.escape(quote) }),
112
+ params: params,
113
+ opts: opts,
114
+ base_address: :api
115
+ )
116
+ end
117
+
70
118
  # Retrieves the quote with the given ID.
71
119
  def retrieve(quote, params = {}, opts = {})
72
120
  request(
@@ -3,6 +3,17 @@
3
3
 
4
4
  module Stripe
5
5
  class SubscriptionScheduleService < StripeService
6
+ # Amends an existing subscription schedule.
7
+ def amend(schedule, params = {}, opts = {})
8
+ request(
9
+ method: :post,
10
+ path: format("/v1/subscription_schedules/%<schedule>s/amend", { schedule: CGI.escape(schedule) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
6
17
  # 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.
7
18
  def cancel(schedule, params = {}, opts = {})
8
19
  request(
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class AssociationService < StripeService
7
+ # Finds a tax association object by PaymentIntent id.
8
+ def find(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/tax/associations/find",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,37 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class FormService < StripeService
7
+ # Returns a list of tax forms which were previously created. The tax forms are returned in sorted order, with the oldest tax forms appearing first.
8
+ def list(params = {}, opts = {})
9
+ request(method: :get, path: "/v1/tax/forms", params: params, opts: opts, base_address: :api)
10
+ end
11
+
12
+ # Download the PDF for a tax form.
13
+ def pdf(id, params = {}, opts = {}, &read_body_chunk_block)
14
+ opts = { api_base: APIRequestor.active_requestor.config.uploads_base }.merge(opts)
15
+ request_stream(
16
+ method: :get,
17
+ path: format("/v1/tax/forms/%<id>s/pdf", { id: CGI.escape(id) }),
18
+ params: params,
19
+ opts: opts,
20
+ base_address: :files,
21
+ &read_body_chunk_block
22
+ )
23
+ end
24
+
25
+ # Retrieves the details of a tax form that has previously been created. Supply the unique tax form ID that was returned from your previous request, and Stripe will return the corresponding tax form information.
26
+ def retrieve(id, params = {}, opts = {})
27
+ request(
28
+ method: :get,
29
+ path: format("/v1/tax/forms/%<id>s", { id: CGI.escape(id) }),
30
+ params: params,
31
+ opts: opts,
32
+ base_address: :api
33
+ )
34
+ end
35
+ end
36
+ end
37
+ end
@@ -3,11 +3,13 @@
3
3
 
4
4
  module Stripe
5
5
  class TaxService < StripeService
6
- attr_reader :calculations, :registrations, :settings, :transactions
6
+ attr_reader :associations, :calculations, :forms, :registrations, :settings, :transactions
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
10
+ @associations = Stripe::Tax::AssociationService.new(@requestor)
10
11
  @calculations = Stripe::Tax::CalculationService.new(@requestor)
12
+ @forms = Stripe::Tax::FormService.new(@requestor)
11
13
  @registrations = Stripe::Tax::RegistrationService.new(@requestor)
12
14
  @settings = Stripe::Tax::SettingsService.new(@requestor)
13
15
  @transactions = Stripe::Tax::TransactionService.new(@requestor)
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Terminal
6
+ class ReaderCollectedDataService < StripeService
7
+ # Retrieve data collected using Reader hardware.
8
+ def retrieve(reader_collected_data, params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: format("/v1/terminal/reader_collected_data/%<reader_collected_data>s", { reader_collected_data: CGI.escape(reader_collected_data) }),
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+ end
18
+ end
19
+ end
@@ -15,6 +15,39 @@ module Stripe
15
15
  )
16
16
  end
17
17
 
18
+ # Initiates an input collection flow on a Reader.
19
+ def collect_inputs(reader, params = {}, opts = {})
20
+ request(
21
+ method: :post,
22
+ path: format("/v1/terminal/readers/%<reader>s/collect_inputs", { reader: CGI.escape(reader) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+
29
+ # Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation.
30
+ def collect_payment_method(reader, params = {}, opts = {})
31
+ request(
32
+ method: :post,
33
+ path: format("/v1/terminal/readers/%<reader>s/collect_payment_method", { reader: CGI.escape(reader) }),
34
+ params: params,
35
+ opts: opts,
36
+ base_address: :api
37
+ )
38
+ end
39
+
40
+ # Finalizes a payment on a Reader.
41
+ def confirm_payment_intent(reader, params = {}, opts = {})
42
+ request(
43
+ method: :post,
44
+ path: format("/v1/terminal/readers/%<reader>s/confirm_payment_intent", { reader: CGI.escape(reader) }),
45
+ params: params,
46
+ opts: opts,
47
+ base_address: :api
48
+ )
49
+ end
50
+
18
51
  # Creates a new Reader object.
19
52
  def create(params = {}, opts = {})
20
53
  request(
@@ -3,7 +3,7 @@
3
3
 
4
4
  module Stripe
5
5
  class TerminalService < StripeService
6
- attr_reader :configurations, :connection_tokens, :locations, :readers
6
+ attr_reader :configurations, :connection_tokens, :locations, :readers, :reader_collected_data
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
@@ -11,6 +11,7 @@ module Stripe
11
11
  @connection_tokens = Stripe::Terminal::ConnectionTokenService.new(@requestor)
12
12
  @locations = Stripe::Terminal::LocationService.new(@requestor)
13
13
  @readers = Stripe::Terminal::ReaderService.new(@requestor)
14
+ @reader_collected_data = Stripe::Terminal::ReaderCollectedDataService.new(@requestor)
14
15
  end
15
16
  end
16
17
  end
@@ -4,7 +4,7 @@ module Stripe
4
4
  class V1Services < StripeService
5
5
  # v1 accessors: The beginning of the section generated from our OpenAPI spec
6
6
  attr_reader :accounts
7
- attr_reader :account_links, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_transactions, :billing, :billing_portal, :charges, :checkout, :climate, :confirmation_tokens, :test_helpers, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :files, :file_links, :financial_connections, :forwarding, :identity, :invoices, :invoice_rendering_templates, :invoice_items, :issuing, :mandates, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payouts, :plans, :prices, :products, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :sigma, :setup_attempts, :setup_intents, :shipping_rates, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :tokens, :topups, :transfers, :treasury, :webhook_endpoints
7
+ attr_reader :account_links, :account_notices, :account_sessions, :apple_pay_domains, :application_fees, :apps, :balance, :balance_transactions, :billing, :billing_portal, :capital, :charges, :checkout, :climate, :confirmation_tokens, :test_helpers, :country_specs, :coupons, :credit_notes, :customers, :customer_sessions, :disputes, :entitlements, :ephemeral_keys, :events, :exchange_rates, :files, :file_links, :financial_connections, :forwarding, :gift_cards, :identity, :invoices, :invoice_rendering_templates, :invoice_items, :issuing, :mandates, :margins, :orders, :payment_attempt_records, :payment_intents, :payment_links, :payment_methods, :payment_method_configurations, :payment_method_domains, :payment_records, :payouts, :plans, :prices, :products, :promotion_codes, :quotes, :radar, :refunds, :reporting, :reviews, :sigma, :setup_attempts, :setup_intents, :shipping_rates, :sources, :subscriptions, :subscription_items, :subscription_schedules, :tax, :tax_codes, :tax_ids, :tax_rates, :terminal, :tokens, :topups, :transfers, :treasury, :webhook_endpoints
8
8
  # v1 accessors: The end of the section generated from our OpenAPI spec
9
9
 
10
10
  # OAuthService is manually maintained, as it has special behaviors
@@ -15,6 +15,7 @@ module Stripe
15
15
  # v1 services: The beginning of the section generated from our OpenAPI spec
16
16
  @accounts = Stripe::AccountService.new(@requestor)
17
17
  @account_links = Stripe::AccountLinkService.new(@requestor)
18
+ @account_notices = Stripe::AccountNoticeService.new(@requestor)
18
19
  @account_sessions = Stripe::AccountSessionService.new(@requestor)
19
20
  @apple_pay_domains = Stripe::ApplePayDomainService.new(@requestor)
20
21
  @application_fees = Stripe::ApplicationFeeService.new(@requestor)
@@ -23,6 +24,7 @@ module Stripe
23
24
  @balance_transactions = Stripe::BalanceTransactionService.new(@requestor)
24
25
  @billing = Stripe::BillingService.new(@requestor)
25
26
  @billing_portal = Stripe::BillingPortalService.new(@requestor)
27
+ @capital = Stripe::CapitalService.new(@requestor)
26
28
  @charges = Stripe::ChargeService.new(@requestor)
27
29
  @checkout = Stripe::CheckoutService.new(@requestor)
28
30
  @climate = Stripe::ClimateService.new(@requestor)
@@ -42,17 +44,22 @@ module Stripe
42
44
  @file_links = Stripe::FileLinkService.new(@requestor)
43
45
  @financial_connections = Stripe::FinancialConnectionsService.new(@requestor)
44
46
  @forwarding = Stripe::ForwardingService.new(@requestor)
47
+ @gift_cards = Stripe::GiftCardsService.new(@requestor)
45
48
  @identity = Stripe::IdentityService.new(@requestor)
46
49
  @invoices = Stripe::InvoiceService.new(@requestor)
47
50
  @invoice_rendering_templates = Stripe::InvoiceRenderingTemplateService.new(@requestor)
48
51
  @invoice_items = Stripe::InvoiceItemService.new(@requestor)
49
52
  @issuing = Stripe::IssuingService.new(@requestor)
50
53
  @mandates = Stripe::MandateService.new(@requestor)
54
+ @margins = Stripe::MarginService.new(@requestor)
55
+ @orders = Stripe::OrderService.new(@requestor)
56
+ @payment_attempt_records = Stripe::PaymentAttemptRecordService.new(@requestor)
51
57
  @payment_intents = Stripe::PaymentIntentService.new(@requestor)
52
58
  @payment_links = Stripe::PaymentLinkService.new(@requestor)
53
59
  @payment_methods = Stripe::PaymentMethodService.new(@requestor)
54
60
  @payment_method_configurations = Stripe::PaymentMethodConfigurationService.new(@requestor)
55
61
  @payment_method_domains = Stripe::PaymentMethodDomainService.new(@requestor)
62
+ @payment_records = Stripe::PaymentRecordService.new(@requestor)
56
63
  @payouts = Stripe::PayoutService.new(@requestor)
57
64
  @plans = Stripe::PlanService.new(@requestor)
58
65
  @prices = Stripe::PriceService.new(@requestor)
@@ -5,6 +5,7 @@ require "stripe/services/account_capability_service"
5
5
  require "stripe/services/account_external_account_service"
6
6
  require "stripe/services/account_link_service"
7
7
  require "stripe/services/account_login_link_service"
8
+ require "stripe/services/account_notice_service"
8
9
  require "stripe/services/account_person_service"
9
10
  require "stripe/services/account_service"
10
11
  require "stripe/services/account_session_service"
@@ -27,6 +28,10 @@ require "stripe/services/billing_portal/configuration_service"
27
28
  require "stripe/services/billing_portal/session_service"
28
29
  require "stripe/services/billing_portal_service"
29
30
  require "stripe/services/billing_service"
31
+ require "stripe/services/capital/financing_offer_service"
32
+ require "stripe/services/capital/financing_summary_service"
33
+ require "stripe/services/capital/financing_transaction_service"
34
+ require "stripe/services/capital_service"
30
35
  require "stripe/services/charge_service"
31
36
  require "stripe/services/checkout/session_line_item_service"
32
37
  require "stripe/services/checkout/session_service"
@@ -59,37 +64,51 @@ require "stripe/services/event_service"
59
64
  require "stripe/services/exchange_rate_service"
60
65
  require "stripe/services/file_link_service"
61
66
  require "stripe/services/file_service"
67
+ require "stripe/services/financial_connections/account_inferred_balance_service"
62
68
  require "stripe/services/financial_connections/account_owner_service"
63
69
  require "stripe/services/financial_connections/account_service"
70
+ require "stripe/services/financial_connections/institution_service"
64
71
  require "stripe/services/financial_connections/session_service"
65
72
  require "stripe/services/financial_connections/transaction_service"
66
73
  require "stripe/services/financial_connections_service"
67
74
  require "stripe/services/forwarding/request_service"
68
75
  require "stripe/services/forwarding_service"
76
+ require "stripe/services/gift_cards/card_service"
77
+ require "stripe/services/gift_cards/transaction_service"
78
+ require "stripe/services/gift_cards_service"
69
79
  require "stripe/services/identity/verification_report_service"
70
80
  require "stripe/services/identity/verification_session_service"
71
81
  require "stripe/services/identity_service"
72
82
  require "stripe/services/invoice_item_service"
73
83
  require "stripe/services/invoice_line_item_service"
84
+ require "stripe/services/invoice_payment_service"
74
85
  require "stripe/services/invoice_rendering_template_service"
75
86
  require "stripe/services/invoice_service"
76
87
  require "stripe/services/invoice_upcoming_lines_service"
77
88
  require "stripe/services/issuing/authorization_service"
78
89
  require "stripe/services/issuing/card_service"
79
90
  require "stripe/services/issuing/cardholder_service"
91
+ require "stripe/services/issuing/credit_underwriting_record_service"
80
92
  require "stripe/services/issuing/dispute_service"
93
+ require "stripe/services/issuing/dispute_settlement_detail_service"
94
+ require "stripe/services/issuing/fraud_liability_debit_service"
81
95
  require "stripe/services/issuing/personalization_design_service"
82
96
  require "stripe/services/issuing/physical_bundle_service"
83
97
  require "stripe/services/issuing/token_service"
84
98
  require "stripe/services/issuing/transaction_service"
85
99
  require "stripe/services/issuing_service"
86
100
  require "stripe/services/mandate_service"
101
+ require "stripe/services/margin_service"
102
+ require "stripe/services/order_line_item_service"
103
+ require "stripe/services/order_service"
104
+ require "stripe/services/payment_attempt_record_service"
87
105
  require "stripe/services/payment_intent_service"
88
106
  require "stripe/services/payment_link_line_item_service"
89
107
  require "stripe/services/payment_link_service"
90
108
  require "stripe/services/payment_method_configuration_service"
91
109
  require "stripe/services/payment_method_domain_service"
92
110
  require "stripe/services/payment_method_service"
111
+ require "stripe/services/payment_record_service"
93
112
  require "stripe/services/payout_service"
94
113
  require "stripe/services/plan_service"
95
114
  require "stripe/services/price_service"
@@ -98,6 +117,9 @@ require "stripe/services/product_service"
98
117
  require "stripe/services/promotion_code_service"
99
118
  require "stripe/services/quote_computed_upfront_line_items_service"
100
119
  require "stripe/services/quote_line_item_service"
120
+ require "stripe/services/quote_line_service"
121
+ require "stripe/services/quote_preview_invoice_service"
122
+ require "stripe/services/quote_preview_subscription_schedule_service"
101
123
  require "stripe/services/quote_service"
102
124
  require "stripe/services/radar/early_fraud_warning_service"
103
125
  require "stripe/services/radar/value_list_item_service"
@@ -120,8 +142,10 @@ require "stripe/services/subscription_item_usage_record_service"
120
142
  require "stripe/services/subscription_item_usage_record_summary_service"
121
143
  require "stripe/services/subscription_schedule_service"
122
144
  require "stripe/services/subscription_service"
145
+ require "stripe/services/tax/association_service"
123
146
  require "stripe/services/tax/calculation_line_item_service"
124
147
  require "stripe/services/tax/calculation_service"
148
+ require "stripe/services/tax/form_service"
125
149
  require "stripe/services/tax/registration_service"
126
150
  require "stripe/services/tax/settings_service"
127
151
  require "stripe/services/tax/transaction_line_item_service"
@@ -133,6 +157,7 @@ require "stripe/services/tax_service"
133
157
  require "stripe/services/terminal/configuration_service"
134
158
  require "stripe/services/terminal/connection_token_service"
135
159
  require "stripe/services/terminal/location_service"
160
+ require "stripe/services/terminal/reader_collected_data_service"
136
161
  require "stripe/services/terminal/reader_service"
137
162
  require "stripe/services/terminal_service"
138
163
  require "stripe/services/test_helpers/confirmation_token_service"
@@ -25,7 +25,8 @@ 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, :client_id, :enable_telemetry, :logger, :stripe_account, :stripe_context
28
+ attr_accessor :api_key, :api_version, :authenticator, :client_id, :enable_telemetry, :logger,
29
+ :stripe_account, :stripe_context
29
30
 
30
31
  attr_reader :api_base, :uploads_base, :connect_base, :meter_events_base, :base_addresses, :ca_bundle_path,
31
32
  :log_level, :initial_network_retry_delay, :max_network_retries, :max_network_retry_delay,
@@ -52,6 +53,7 @@ module Stripe
52
53
 
53
54
  def initialize
54
55
  @api_version = ApiVersion::CURRENT
56
+
55
57
  @ca_bundle_path = Stripe::DEFAULT_CA_BUNDLE_PATH
56
58
  @enable_telemetry = true
57
59
  @verify_ssl_certs = true
data/lib/stripe/util.rb CHANGED
@@ -300,7 +300,13 @@ module Stripe
300
300
  when String
301
301
  { api_key: opts }
302
302
  when Hash
303
- check_api_key!(opts.fetch(:api_key)) if opts.key?(:api_key)
303
+ # If the user is using request signing for authentication,
304
+ # no need to check the api_key per request.
305
+ if !(opts.key?(:client) &&
306
+ opts.fetch(:client).config.authenticator) &&
307
+ opts.key?(:api_key)
308
+ check_api_key!(opts.fetch(:api_key))
309
+ end
304
310
  # Explicitly use dup here instead of clone to avoid preserving freeze
305
311
  # state on input params.
306
312
  opts.dup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stripe
4
- VERSION = "13.2.0"
4
+ VERSION = "13.3.0-beta.1"
5
5
  end
data/lib/stripe.rb CHANGED
@@ -13,6 +13,7 @@ require "set"
13
13
  require "socket"
14
14
  require "uri"
15
15
  require "forwardable"
16
+ require "base64"
16
17
 
17
18
  # Version
18
19
  require "stripe/api_version"
@@ -50,6 +51,7 @@ require "stripe/api_resource_test_helpers"
50
51
  require "stripe/singleton_api_resource"
51
52
  require "stripe/webhook"
52
53
  require "stripe/stripe_configuration"
54
+ require "stripe/request_signing_authenticator"
53
55
  require "stripe/thin_event"
54
56
 
55
57
  # Named API resources
@@ -85,6 +87,7 @@ module Stripe
85
87
 
86
88
  # User configurable options
87
89
  def_delegators :@config, :api_key, :api_key=
90
+ def_delegators :@config, :authenticator, :authenticator=
88
91
  def_delegators :@config, :api_version, :api_version=
89
92
  def_delegators :@config, :stripe_account, :stripe_account=
90
93
  def_delegators :@config, :api_base, :api_base=
@@ -132,6 +135,48 @@ module Stripe
132
135
  version: version,
133
136
  }
134
137
  end
138
+
139
+ def self.add_beta_version(beta_name, version)
140
+ if api_version.include?("; #{beta_name}=")
141
+ raise "Stripe version header #{api_version} already contains entry for beta #{beta_name}"
142
+ end
143
+
144
+ self.api_version = "#{api_version}; #{beta_name}=#{version}"
145
+ end
146
+
147
+ class RawRequest
148
+ def initialize
149
+ @opts = {}
150
+ end
151
+
152
+ def execute(method, url, base_address: :api, params: {}, opts: {}, usage: [])
153
+ opts = Util.normalize_opts(opts)
154
+ req_opts = RequestOptions.extract_opts_from_hash(opts)
155
+
156
+ requestor = APIRequestor.active_requestor
157
+ resp, = requestor.send(:execute_request_internal, method, url, base_address, params, req_opts,
158
+ usage)
159
+
160
+ requestor.interpret_response(resp)
161
+ end
162
+ end
163
+
164
+ # Sends a request to Stripe REST API
165
+ def self.raw_request(method, url, params = {}, opts = {}, base_address: :api)
166
+ req = RawRequest.new
167
+ req.execute(method, url, base_address: base_address, params: params, opts: opts,
168
+ usage: ["raw_request"])
169
+ end
170
+
171
+ def self.deserialize(data, api_mode: :v1)
172
+ data = JSON.parse(data) if data.is_a?(String)
173
+ Util.convert_to_stripe_object(data, {}, api_mode: api_mode)
174
+ end
175
+ class << self
176
+ extend Gem::Deprecate
177
+ deprecate :raw_request, "StripeClient#raw_request", 2024, 9
178
+ deprecate :deserialize, "StripeClient#deserialize", 2024, 9
179
+ end
135
180
  end
136
181
 
137
182
  Stripe.log_level = ENV["STRIPE_LOG"] unless ENV["STRIPE_LOG"].nil?