stripe 13.1.1 → 13.2.0.pre.beta.2

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1385 -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/billing/credit_grant.rb +5 -6
  9. data/lib/stripe/resources/capital/financing_offer.rb +49 -0
  10. data/lib/stripe/resources/capital/financing_summary.rb +15 -0
  11. data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
  12. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  13. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  14. data/lib/stripe/resources/financial_connections/institution.rb +26 -0
  15. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  16. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  17. data/lib/stripe/resources/invoice.rb +81 -0
  18. data/lib/stripe/resources/invoice_payment.rb +12 -0
  19. data/lib/stripe/resources/issuing/card.rb +1 -1
  20. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  21. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
  22. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +26 -0
  23. data/lib/stripe/resources/margin.rb +37 -0
  24. data/lib/stripe/resources/order.rb +120 -0
  25. data/lib/stripe/resources/payment_attempt_record.rb +27 -0
  26. data/lib/stripe/resources/payment_intent.rb +70 -0
  27. data/lib/stripe/resources/payment_record.rb +115 -0
  28. data/lib/stripe/resources/quote.rb +104 -0
  29. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  30. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  31. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  32. data/lib/stripe/resources/tax/association.rb +24 -0
  33. data/lib/stripe/resources/tax/form.rb +49 -0
  34. data/lib/stripe/resources/terminal/reader.rb +60 -0
  35. data/lib/stripe/resources/terminal/reader_collected_data.rb +14 -0
  36. data/lib/stripe/resources.rb +21 -0
  37. data/lib/stripe/services/account_notice_service.rb +39 -0
  38. data/lib/stripe/services/billing/credit_grant_service.rb +3 -3
  39. data/lib/stripe/services/capital/financing_offer_service.rb +42 -0
  40. data/lib/stripe/services/capital/financing_summary_service.rb +19 -0
  41. data/lib/stripe/services/capital/financing_transaction_service.rb +31 -0
  42. data/lib/stripe/services/capital_service.rb +15 -0
  43. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +19 -0
  44. data/lib/stripe/services/financial_connections/account_service.rb +3 -1
  45. data/lib/stripe/services/financial_connections/institution_service.rb +30 -0
  46. data/lib/stripe/services/financial_connections_service.rb +2 -1
  47. data/lib/stripe/services/gift_cards/card_service.rb +63 -0
  48. data/lib/stripe/services/gift_cards/transaction_service.rb +74 -0
  49. data/lib/stripe/services/gift_cards_service.rb +14 -0
  50. data/lib/stripe/services/invoice_payment_service.rb +28 -0
  51. data/lib/stripe/services/invoice_service.rb +44 -1
  52. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +74 -0
  53. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +30 -0
  54. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +30 -0
  55. data/lib/stripe/services/issuing_service.rb +5 -1
  56. data/lib/stripe/services/margin_service.rb +50 -0
  57. data/lib/stripe/services/order_line_item_service.rb +17 -0
  58. data/lib/stripe/services/order_service.rb +78 -0
  59. data/lib/stripe/services/payment_attempt_record_service.rb +28 -0
  60. data/lib/stripe/services/payment_intent_service.rb +37 -0
  61. data/lib/stripe/services/payment_record_service.rb +78 -0
  62. data/lib/stripe/services/quote_line_service.rb +17 -0
  63. data/lib/stripe/services/quote_preview_invoice_service.rb +17 -0
  64. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +17 -0
  65. data/lib/stripe/services/quote_service.rb +49 -1
  66. data/lib/stripe/services/subscription_schedule_service.rb +11 -0
  67. data/lib/stripe/services/tax/association_service.rb +19 -0
  68. data/lib/stripe/services/tax/form_service.rb +37 -0
  69. data/lib/stripe/services/tax_service.rb +3 -1
  70. data/lib/stripe/services/terminal/reader_collected_data_service.rb +19 -0
  71. data/lib/stripe/services/terminal/reader_service.rb +33 -0
  72. data/lib/stripe/services/terminal_service.rb +2 -1
  73. data/lib/stripe/services/v1_services.rb +8 -1
  74. data/lib/stripe/services.rb +25 -0
  75. data/lib/stripe/stripe_configuration.rb +3 -1
  76. data/lib/stripe/util.rb +7 -1
  77. data/lib/stripe/version.rb +1 -1
  78. data/lib/stripe.rb +45 -0
  79. 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.1.1"
4
+ VERSION = "13.2.0-beta.2"
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?