stripe 12.7.0.pre.beta.2 → 13.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +720 -1360
  3. data/OPENAPI_VERSION +1 -1
  4. data/README.md +4 -3
  5. data/VERSION +1 -1
  6. data/examples/README.md +11 -0
  7. data/examples/meter_event_stream.rb +47 -0
  8. data/examples/new_example.rb +24 -0
  9. data/examples/stripe_webhook_handler.rb +28 -0
  10. data/lib/stripe/api_operations/nested_resource.rb +1 -21
  11. data/lib/stripe/api_operations/request.rb +19 -70
  12. data/lib/stripe/api_operations/save.rb +4 -3
  13. data/lib/stripe/api_operations/singleton_save.rb +5 -2
  14. data/lib/stripe/api_requestor.rb +1131 -0
  15. data/lib/stripe/api_resource.rb +22 -14
  16. data/lib/stripe/api_version.rb +1 -2
  17. data/lib/stripe/connection_manager.rb +1 -1
  18. data/lib/stripe/errors.rb +8 -2
  19. data/lib/stripe/event_types.rb +14 -0
  20. data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
  21. data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
  22. data/lib/stripe/list_object.rb +2 -3
  23. data/lib/stripe/oauth.rb +8 -15
  24. data/lib/stripe/object_types.rb +16 -20
  25. data/lib/stripe/request_options.rb +128 -0
  26. data/lib/stripe/resources/billing/credit_balance_summary.rb +14 -0
  27. data/lib/stripe/resources/billing/credit_balance_transaction.rb +26 -0
  28. data/lib/stripe/resources/billing/credit_grant.rb +88 -0
  29. data/lib/stripe/resources/customer.rb +2 -3
  30. data/lib/stripe/resources/file.rb +7 -5
  31. data/lib/stripe/resources/financial_connections/account.rb +0 -3
  32. data/lib/stripe/resources/invoice.rb +0 -81
  33. data/lib/stripe/resources/payment_intent.rb +0 -50
  34. data/lib/stripe/resources/quote.rb +4 -108
  35. data/lib/stripe/resources/source.rb +3 -2
  36. data/lib/stripe/resources/subscription.rb +6 -6
  37. data/lib/stripe/resources/subscription_schedule.rb +0 -20
  38. data/lib/stripe/resources/terminal/reader.rb +0 -60
  39. data/lib/stripe/resources/v2/billing/meter_event.rb +16 -0
  40. data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +15 -0
  41. data/lib/stripe/resources/v2/billing/meter_event_session.rb +15 -0
  42. data/lib/stripe/resources/v2/event.rb +13 -0
  43. data/lib/stripe/resources.rb +9 -18
  44. data/lib/stripe/search_result_object.rb +1 -1
  45. data/lib/stripe/services/account_capability_service.rb +39 -0
  46. data/lib/stripe/services/account_external_account_service.rb +68 -0
  47. data/lib/stripe/services/account_link_service.rb +17 -0
  48. data/lib/stripe/services/account_login_link_service.rb +19 -0
  49. data/lib/stripe/services/account_person_service.rb +61 -0
  50. data/lib/stripe/services/account_service.rb +100 -0
  51. data/lib/stripe/services/account_session_service.rb +17 -0
  52. data/lib/stripe/services/apple_pay_domain_service.rb +50 -0
  53. data/lib/stripe/services/application_fee_refund_service.rb +60 -0
  54. data/lib/stripe/services/application_fee_service.rb +35 -0
  55. data/lib/stripe/services/apps/secret_service.rb +52 -0
  56. data/lib/stripe/services/apps_service.rb +13 -0
  57. data/lib/stripe/services/balance_service.rb +12 -0
  58. data/lib/stripe/services/balance_transaction_service.rb +32 -0
  59. data/lib/stripe/services/billing/alert_service.rb +74 -0
  60. data/lib/stripe/services/billing/credit_balance_summary_service.rb +19 -0
  61. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +30 -0
  62. data/lib/stripe/services/billing/credit_grant_service.rb +74 -0
  63. data/lib/stripe/services/billing/meter_event_adjustment_service.rb +19 -0
  64. data/lib/stripe/services/billing/meter_event_service.rb +19 -0
  65. data/lib/stripe/services/billing/meter_event_summary_service.rb +19 -0
  66. data/lib/stripe/services/billing/meter_service.rb +81 -0
  67. data/lib/stripe/services/billing_portal/configuration_service.rb +52 -0
  68. data/lib/stripe/services/billing_portal/session_service.rb +19 -0
  69. data/lib/stripe/services/billing_portal_service.rb +14 -0
  70. data/lib/stripe/services/billing_service.rb +20 -0
  71. data/lib/stripe/services/charge_service.rb +69 -0
  72. data/lib/stripe/services/checkout/session_line_item_service.rb +19 -0
  73. data/lib/stripe/services/checkout/session_service.rb +72 -0
  74. data/lib/stripe/services/checkout_service.rb +13 -0
  75. data/lib/stripe/services/climate/order_service.rb +68 -0
  76. data/lib/stripe/services/climate/product_service.rb +30 -0
  77. data/lib/stripe/services/climate/supplier_service.rb +30 -0
  78. data/lib/stripe/services/climate_service.rb +15 -0
  79. data/lib/stripe/services/confirmation_token_service.rb +17 -0
  80. data/lib/stripe/services/country_spec_service.rb +28 -0
  81. data/lib/stripe/services/coupon_service.rb +51 -0
  82. data/lib/stripe/services/credit_note_line_item_service.rb +17 -0
  83. data/lib/stripe/services/credit_note_preview_lines_service.rb +17 -0
  84. data/lib/stripe/services/credit_note_service.rb +93 -0
  85. data/lib/stripe/services/customer_balance_transaction_service.rb +50 -0
  86. data/lib/stripe/services/customer_cash_balance_service.rb +28 -0
  87. data/lib/stripe/services/customer_cash_balance_transaction_service.rb +28 -0
  88. data/lib/stripe/services/customer_funding_instructions_service.rb +19 -0
  89. data/lib/stripe/services/customer_payment_method_service.rb +28 -0
  90. data/lib/stripe/services/customer_payment_source_service.rb +76 -0
  91. data/lib/stripe/services/customer_service.rb +89 -0
  92. data/lib/stripe/services/customer_session_service.rb +17 -0
  93. data/lib/stripe/services/customer_tax_id_service.rb +50 -0
  94. data/lib/stripe/services/dispute_service.rb +48 -0
  95. data/lib/stripe/services/entitlements/active_entitlement_service.rb +30 -0
  96. data/lib/stripe/services/entitlements/feature_service.rb +52 -0
  97. data/lib/stripe/services/entitlements_service.rb +14 -0
  98. data/lib/stripe/services/ephemeral_key_service.rb +28 -0
  99. data/lib/stripe/services/event_service.rb +22 -0
  100. data/lib/stripe/services/exchange_rate_service.rb +28 -0
  101. data/lib/stripe/services/file_link_service.rb +38 -0
  102. data/lib/stripe/services/file_service.rb +35 -0
  103. data/lib/stripe/services/financial_connections/account_owner_service.rb +19 -0
  104. data/lib/stripe/services/financial_connections/account_service.rb +81 -0
  105. data/lib/stripe/services/financial_connections/session_service.rb +30 -0
  106. data/lib/stripe/services/financial_connections/transaction_service.rb +30 -0
  107. data/lib/stripe/services/financial_connections_service.rb +15 -0
  108. data/lib/stripe/services/forwarding/request_service.rb +41 -0
  109. data/lib/stripe/services/forwarding_service.rb +13 -0
  110. data/lib/stripe/services/identity/verification_report_service.rb +30 -0
  111. data/lib/stripe/services/identity/verification_session_service.rb +106 -0
  112. data/lib/stripe/services/identity_service.rb +14 -0
  113. data/lib/stripe/services/invoice_item_service.rb +61 -0
  114. data/lib/stripe/services/invoice_line_item_service.rb +31 -0
  115. data/lib/stripe/services/invoice_rendering_template_service.rb +50 -0
  116. data/lib/stripe/services/invoice_service.rb +202 -0
  117. data/lib/stripe/services/invoice_upcoming_lines_service.rb +17 -0
  118. data/lib/stripe/services/issuing/authorization_service.rb +65 -0
  119. data/lib/stripe/services/issuing/card_service.rb +52 -0
  120. data/lib/stripe/services/issuing/cardholder_service.rb +52 -0
  121. data/lib/stripe/services/issuing/dispute_service.rb +63 -0
  122. data/lib/stripe/services/issuing/personalization_design_service.rb +52 -0
  123. data/lib/stripe/services/issuing/physical_bundle_service.rb +30 -0
  124. data/lib/stripe/services/issuing/token_service.rb +41 -0
  125. data/lib/stripe/services/issuing/transaction_service.rb +41 -0
  126. data/lib/stripe/services/issuing_service.rb +20 -0
  127. data/lib/stripe/services/mandate_service.rb +17 -0
  128. data/lib/stripe/services/oauth_service.rb +63 -0
  129. data/lib/stripe/services/payment_intent_service.rb +204 -0
  130. data/lib/stripe/services/payment_link_line_item_service.rb +17 -0
  131. data/lib/stripe/services/payment_link_service.rb +57 -0
  132. data/lib/stripe/services/payment_method_configuration_service.rb +50 -0
  133. data/lib/stripe/services/payment_method_domain_service.rb +66 -0
  134. data/lib/stripe/services/payment_method_service.rb +86 -0
  135. data/lib/stripe/services/payout_service.rb +66 -0
  136. data/lib/stripe/services/plan_service.rb +49 -0
  137. data/lib/stripe/services/price_service.rb +52 -0
  138. data/lib/stripe/services/product_feature_service.rb +50 -0
  139. data/lib/stripe/services/product_service.rb +70 -0
  140. data/lib/stripe/services/promotion_code_service.rb +50 -0
  141. data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +17 -0
  142. data/lib/stripe/services/quote_line_item_service.rb +17 -0
  143. data/lib/stripe/services/quote_service.rb +92 -0
  144. data/lib/stripe/services/radar/early_fraud_warning_service.rb +32 -0
  145. data/lib/stripe/services/radar/value_list_item_service.rb +52 -0
  146. data/lib/stripe/services/radar/value_list_service.rb +63 -0
  147. data/lib/stripe/services/radar_service.rb +15 -0
  148. data/lib/stripe/services/refund_service.rb +63 -0
  149. data/lib/stripe/services/reporting/report_run_service.rb +41 -0
  150. data/lib/stripe/services/reporting/report_type_service.rb +30 -0
  151. data/lib/stripe/services/reporting_service.rb +14 -0
  152. data/lib/stripe/services/review_service.rb +33 -0
  153. data/lib/stripe/services/setup_attempt_service.rb +17 -0
  154. data/lib/stripe/services/setup_intent_service.rb +105 -0
  155. data/lib/stripe/services/shipping_rate_service.rb +50 -0
  156. data/lib/stripe/services/sigma/scheduled_query_run_service.rb +30 -0
  157. data/lib/stripe/services/sigma_service.rb +13 -0
  158. data/lib/stripe/services/source_service.rb +64 -0
  159. data/lib/stripe/services/source_transaction_service.rb +17 -0
  160. data/lib/stripe/services/subscription_item_service.rb +69 -0
  161. data/lib/stripe/services/subscription_item_usage_record_service.rb +23 -0
  162. data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +19 -0
  163. data/lib/stripe/services/subscription_schedule_service.rb +72 -0
  164. data/lib/stripe/services/subscription_service.rb +127 -0
  165. data/lib/stripe/services/tax/calculation_line_item_service.rb +19 -0
  166. data/lib/stripe/services/tax/calculation_service.rb +37 -0
  167. data/lib/stripe/services/tax/registration_service.rb +54 -0
  168. data/lib/stripe/services/tax/settings_service.rb +30 -0
  169. data/lib/stripe/services/tax/transaction_line_item_service.rb +19 -0
  170. data/lib/stripe/services/tax/transaction_service.rb +48 -0
  171. data/lib/stripe/services/tax_code_service.rb +22 -0
  172. data/lib/stripe/services/tax_id_service.rb +38 -0
  173. data/lib/stripe/services/tax_rate_service.rb +38 -0
  174. data/lib/stripe/services/tax_service.rb +16 -0
  175. data/lib/stripe/services/terminal/configuration_service.rb +63 -0
  176. data/lib/stripe/services/terminal/connection_token_service.rb +19 -0
  177. data/lib/stripe/services/terminal/location_service.rb +64 -0
  178. data/lib/stripe/services/terminal/reader_service.rb +118 -0
  179. data/lib/stripe/services/terminal_service.rb +16 -0
  180. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +19 -0
  181. data/lib/stripe/services/test_helpers/customer_service.rb +19 -0
  182. data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +76 -0
  183. data/lib/stripe/services/test_helpers/issuing/card_service.rb +54 -0
  184. data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +43 -0
  185. data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +43 -0
  186. data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
  187. data/lib/stripe/services/test_helpers/refund_service.rb +19 -0
  188. data/lib/stripe/services/test_helpers/terminal/reader_service.rb +21 -0
  189. data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
  190. data/lib/stripe/services/test_helpers/test_clock_service.rb +63 -0
  191. data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +43 -0
  192. data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +54 -0
  193. data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +54 -0
  194. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +21 -0
  195. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +21 -0
  196. data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
  197. data/lib/stripe/services/test_helpers_service.rb +19 -0
  198. data/lib/stripe/services/token_service.rb +23 -0
  199. data/lib/stripe/services/topup_service.rb +49 -0
  200. data/lib/stripe/services/transfer_reversal_service.rb +56 -0
  201. data/lib/stripe/services/transfer_service.rb +47 -0
  202. data/lib/stripe/services/treasury/credit_reversal_service.rb +41 -0
  203. data/lib/stripe/services/treasury/debit_reversal_service.rb +41 -0
  204. data/lib/stripe/services/treasury/financial_account_features_service.rb +30 -0
  205. data/lib/stripe/services/treasury/financial_account_service.rb +59 -0
  206. data/lib/stripe/services/treasury/inbound_transfer_service.rb +52 -0
  207. data/lib/stripe/services/treasury/outbound_payment_service.rb +52 -0
  208. data/lib/stripe/services/treasury/outbound_transfer_service.rb +52 -0
  209. data/lib/stripe/services/treasury/received_credit_service.rb +30 -0
  210. data/lib/stripe/services/treasury/received_debit_service.rb +30 -0
  211. data/lib/stripe/services/treasury/transaction_entry_service.rb +30 -0
  212. data/lib/stripe/services/treasury/transaction_service.rb +30 -0
  213. data/lib/stripe/services/treasury_service.rb +22 -0
  214. data/lib/stripe/services/v1_services.rb +89 -0
  215. data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +21 -0
  216. data/lib/stripe/services/v2/billing/meter_event_service.rb +21 -0
  217. data/lib/stripe/services/v2/billing/meter_event_session_service.rb +21 -0
  218. data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +23 -0
  219. data/lib/stripe/services/v2/billing_service.rb +18 -0
  220. data/lib/stripe/services/v2/core/event_service.rb +32 -0
  221. data/lib/stripe/services/v2/core_service.rb +15 -0
  222. data/lib/stripe/services/v2_services.rb +14 -0
  223. data/lib/stripe/services/webhook_endpoint_service.rb +61 -0
  224. data/lib/stripe/services.rb +181 -0
  225. data/lib/stripe/singleton_api_resource.rb +1 -18
  226. data/lib/stripe/stripe_client.rb +51 -1067
  227. data/lib/stripe/stripe_configuration.rb +32 -20
  228. data/lib/stripe/stripe_object.rb +37 -18
  229. data/lib/stripe/stripe_service.rb +32 -0
  230. data/lib/stripe/thin_event.rb +17 -0
  231. data/lib/stripe/util.rb +69 -46
  232. data/lib/stripe/v2_list_object.rb +84 -0
  233. data/lib/stripe/version.rb +1 -1
  234. data/lib/stripe/webhook.rb +1 -1
  235. data/lib/stripe.rb +15 -54
  236. metadata +203 -23
  237. data/lib/stripe/request_signing_authenticator.rb +0 -79
  238. data/lib/stripe/resources/account_notice.rb +0 -32
  239. data/lib/stripe/resources/capital/financing_offer.rb +0 -49
  240. data/lib/stripe/resources/capital/financing_summary.rb +0 -15
  241. data/lib/stripe/resources/capital/financing_transaction.rb +0 -27
  242. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -14
  243. data/lib/stripe/resources/financial_connections/institution.rb +0 -26
  244. data/lib/stripe/resources/gift_cards/card.rb +0 -59
  245. data/lib/stripe/resources/gift_cards/transaction.rb +0 -93
  246. data/lib/stripe/resources/invoice_payment.rb +0 -12
  247. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -88
  248. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +0 -26
  249. data/lib/stripe/resources/margin.rb +0 -37
  250. data/lib/stripe/resources/order.rb +0 -120
  251. data/lib/stripe/resources/quote_preview_invoice.rb +0 -43
  252. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -11
  253. data/lib/stripe/resources/tax/association.rb +0 -24
  254. data/lib/stripe/resources/tax/form.rb +0 -49
  255. data/lib/stripe/resources/terminal/reader_collected_data.rb +0 -14
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class PhysicalBundleService < StripeService
7
+ # Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
8
+ def list(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/issuing/physical_bundles",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Retrieves a physical bundle object.
19
+ def retrieve(physical_bundle, params = {}, opts = {})
20
+ request(
21
+ method: :get,
22
+ path: format("/v1/issuing/physical_bundles/%<physical_bundle>s", { physical_bundle: CGI.escape(physical_bundle) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class TokenService < StripeService
7
+ # Lists all Issuing Token objects for a given card.
8
+ def list(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/issuing/tokens",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Retrieves an Issuing Token object.
19
+ def retrieve(token, params = {}, opts = {})
20
+ request(
21
+ method: :get,
22
+ path: format("/v1/issuing/tokens/%<token>s", { token: CGI.escape(token) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+
29
+ # Attempts to update the specified Issuing Token object to the status specified.
30
+ def update(token, params = {}, opts = {})
31
+ request(
32
+ method: :post,
33
+ path: format("/v1/issuing/tokens/%<token>s", { token: CGI.escape(token) }),
34
+ params: params,
35
+ opts: opts,
36
+ base_address: :api
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class TransactionService < StripeService
7
+ # Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
8
+ def list(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/issuing/transactions",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Retrieves an Issuing Transaction object.
19
+ def retrieve(transaction, params = {}, opts = {})
20
+ request(
21
+ method: :get,
22
+ path: format("/v1/issuing/transactions/%<transaction>s", { transaction: CGI.escape(transaction) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+
29
+ # Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
30
+ def update(transaction, params = {}, opts = {})
31
+ request(
32
+ method: :post,
33
+ path: format("/v1/issuing/transactions/%<transaction>s", { transaction: CGI.escape(transaction) }),
34
+ params: params,
35
+ opts: opts,
36
+ base_address: :api
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class IssuingService < StripeService
6
+ attr_reader :authorizations, :cards, :cardholders, :disputes, :personalization_designs, :physical_bundles, :tokens, :transactions
7
+
8
+ def initialize(requestor)
9
+ super(requestor)
10
+ @authorizations = Stripe::Issuing::AuthorizationService.new(@requestor)
11
+ @cards = Stripe::Issuing::CardService.new(@requestor)
12
+ @cardholders = Stripe::Issuing::CardholderService.new(@requestor)
13
+ @disputes = Stripe::Issuing::DisputeService.new(@requestor)
14
+ @personalization_designs = Stripe::Issuing::PersonalizationDesignService.new(@requestor)
15
+ @physical_bundles = Stripe::Issuing::PhysicalBundleService.new(@requestor)
16
+ @tokens = Stripe::Issuing::TokenService.new(@requestor)
17
+ @transactions = Stripe::Issuing::TransactionService.new(@requestor)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class MandateService < StripeService
6
+ # Retrieves a Mandate object.
7
+ def retrieve(mandate, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/mandates/%<mandate>s", { mandate: CGI.escape(mandate) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stripe
4
+ class OAuthService < StripeService
5
+ def authorize_url(params = {}, opts = {})
6
+ path = if opts[:express]
7
+ "/express/oauth/authorize"
8
+ else
9
+ "/oauth/authorize"
10
+ end
11
+
12
+ params[:client_id] = client_id(params)
13
+
14
+ params[:response_type] = "code" if params.include?(:response_type)
15
+
16
+ query = Util.encode_parameters(params, :v1)
17
+
18
+ connect_api_base = @requestor.config.base_addresses[:connect]
19
+ raise ArgumentError, "connect_api_base cannot be empty" if connect_api_base.nil? || connect_api_base.empty?
20
+
21
+ "#{connect_api_base}#{path}?#{query}"
22
+ end
23
+
24
+ def token(params = {}, opts = {})
25
+ opts = Util.normalize_opts(opts)
26
+ opts[:api_key] = params[:client_secret] if params[:client_secret]
27
+
28
+ request(
29
+ method: :post,
30
+ path: "/oauth/token",
31
+ params: params,
32
+ opts: opts,
33
+ base_address: :connect
34
+ )
35
+ end
36
+
37
+ def deauthorize(params = {}, opts = {})
38
+ params[:client_id] = client_id(params)
39
+
40
+ request(
41
+ method: :post,
42
+ path: "/oauth/deauthorize",
43
+ params: params,
44
+ opts: opts,
45
+ base_address: :connect
46
+ )
47
+ end
48
+
49
+ private def client_id(params = {})
50
+ return params[:client_id] if params.include?(:client_id)
51
+
52
+ return @requestor.config.client_id if !@requestor.config.client_id.nil? && !@requestor.config.client_id.empty?
53
+
54
+ raise AuthenticationError, "No client_id provided. (HINT: set your client_id when configuring " \
55
+ "your StripeClient: \"Stripe::StripeClient.new(..., client_id: <CLIENT_ID>)\"). " \
56
+ "You can find your client_ids in your Stripe dashboard at " \
57
+ "https://dashboard.stripe.com/account/applications/settings, " \
58
+ "after registering your account as a platform. See " \
59
+ "https://stripe.com/docs/connect/standalone-accounts for details, " \
60
+ "or email support@stripe.com if you have any questions." \
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,204 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentIntentService < StripeService
6
+ # Manually reconcile the remaining amount for a customer_balance PaymentIntent.
7
+ def apply_customer_balance(intent, params = {}, opts = {})
8
+ request(
9
+ method: :post,
10
+ path: format("/v1/payment_intents/%<intent>s/apply_customer_balance", { intent: CGI.escape(intent) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # You can cancel a PaymentIntent object when it's in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, [in rare cases](https://stripe.com/docs/payments/intents), processing.
18
+ #
19
+ # After it's canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded.
20
+ #
21
+ # You can't cancel the PaymentIntent for a Checkout Session. [Expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.
22
+ def cancel(intent, params = {}, opts = {})
23
+ request(
24
+ method: :post,
25
+ path: format("/v1/payment_intents/%<intent>s/cancel", { intent: CGI.escape(intent) }),
26
+ params: params,
27
+ opts: opts,
28
+ base_address: :api
29
+ )
30
+ end
31
+
32
+ # Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.
33
+ #
34
+ # Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.
35
+ #
36
+ # Learn more about [separate authorization and capture](https://stripe.com/docs/payments/capture-later).
37
+ def capture(intent, params = {}, opts = {})
38
+ request(
39
+ method: :post,
40
+ path: format("/v1/payment_intents/%<intent>s/capture", { intent: CGI.escape(intent) }),
41
+ params: params,
42
+ opts: opts,
43
+ base_address: :api
44
+ )
45
+ end
46
+
47
+ # Confirm that your customer intends to pay with current or provided
48
+ # payment method. Upon confirmation, the PaymentIntent will attempt to initiate
49
+ # a payment.
50
+ # If the selected payment method requires additional authentication steps, the
51
+ # PaymentIntent will transition to the requires_action status and
52
+ # suggest additional actions via next_action. If payment fails,
53
+ # the PaymentIntent transitions to the requires_payment_method status or the
54
+ # canceled status if the confirmation limit is reached. If
55
+ # payment succeeds, the PaymentIntent will transition to the succeeded
56
+ # status (or requires_capture, if capture_method is set to manual).
57
+ # If the confirmation_method is automatic, payment may be attempted
58
+ # using our [client SDKs](https://stripe.com/docs/stripe-js/reference#stripe-handle-card-payment)
59
+ # and the PaymentIntent's [client_secret](https://stripe.com/docs/api#payment_intent_object-client_secret).
60
+ # After next_actions are handled by the client, no additional
61
+ # confirmation is required to complete the payment.
62
+ # If the confirmation_method is manual, all payment attempts must be
63
+ # initiated using a secret key.
64
+ # If any actions are required for the payment, the PaymentIntent will
65
+ # return to the requires_confirmation state
66
+ # after those actions are completed. Your server needs to then
67
+ # explicitly re-confirm the PaymentIntent to initiate the next payment
68
+ # attempt.
69
+ # There is a variable upper limit on how many times a PaymentIntent can be confirmed.
70
+ # After this limit is reached, any further calls to this endpoint will
71
+ # transition the PaymentIntent to the canceled state.
72
+ def confirm(intent, params = {}, opts = {})
73
+ request(
74
+ method: :post,
75
+ path: format("/v1/payment_intents/%<intent>s/confirm", { intent: CGI.escape(intent) }),
76
+ params: params,
77
+ opts: opts,
78
+ base_address: :api
79
+ )
80
+ end
81
+
82
+ # Creates a PaymentIntent object.
83
+ #
84
+ # After the PaymentIntent is created, attach a payment method and [confirm](https://stripe.com/docs/api/payment_intents/confirm)
85
+ # to continue the payment. Learn more about <a href="/docs/payments/payment-intents">the available payment flows
86
+ # with the Payment Intents API.
87
+ #
88
+ # When you use confirm=true during creation, it's equivalent to creating
89
+ # and confirming the PaymentIntent in the same call. You can use any parameters
90
+ # available in the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) when you supply
91
+ # confirm=true.
92
+ def create(params = {}, opts = {})
93
+ request(
94
+ method: :post,
95
+ path: "/v1/payment_intents",
96
+ params: params,
97
+ opts: opts,
98
+ base_address: :api
99
+ )
100
+ end
101
+
102
+ # Perform an incremental authorization on an eligible
103
+ # [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
104
+ # PaymentIntent's status must be requires_capture and
105
+ # [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported)
106
+ # must be true.
107
+ #
108
+ # Incremental authorizations attempt to increase the authorized amount on
109
+ # your customer's card to the new, higher amount provided. Similar to the
110
+ # initial authorization, incremental authorizations can be declined. A
111
+ # single PaymentIntent can call this endpoint multiple times to further
112
+ # increase the authorized amount.
113
+ #
114
+ # If the incremental authorization succeeds, the PaymentIntent object
115
+ # returns with the updated
116
+ # [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
117
+ # If the incremental authorization fails, a
118
+ # [card_declined](https://stripe.com/docs/error-codes#card-declined) error returns, and no other
119
+ # fields on the PaymentIntent or Charge update. The PaymentIntent
120
+ # object remains capturable for the previously authorized amount.
121
+ #
122
+ # Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines.
123
+ # After it's captured, a PaymentIntent can no longer be incremented.
124
+ #
125
+ # Learn more about [incremental authorizations](https://stripe.com/docs/terminal/features/incremental-authorizations).
126
+ def increment_authorization(intent, params = {}, opts = {})
127
+ request(
128
+ method: :post,
129
+ path: format("/v1/payment_intents/%<intent>s/increment_authorization", { intent: CGI.escape(intent) }),
130
+ params: params,
131
+ opts: opts,
132
+ base_address: :api
133
+ )
134
+ end
135
+
136
+ # Returns a list of PaymentIntents.
137
+ def list(params = {}, opts = {})
138
+ request(
139
+ method: :get,
140
+ path: "/v1/payment_intents",
141
+ params: params,
142
+ opts: opts,
143
+ base_address: :api
144
+ )
145
+ end
146
+
147
+ # Retrieves the details of a PaymentIntent that has previously been created.
148
+ #
149
+ # You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string.
150
+ #
151
+ # If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the [payment intent](https://stripe.com/docs/api#payment_intent_object) object reference for more details.
152
+ def retrieve(intent, params = {}, opts = {})
153
+ request(
154
+ method: :get,
155
+ path: format("/v1/payment_intents/%<intent>s", { intent: CGI.escape(intent) }),
156
+ params: params,
157
+ opts: opts,
158
+ base_address: :api
159
+ )
160
+ end
161
+
162
+ # Search for PaymentIntents you've previously created using Stripe's [Search Query Language](https://stripe.com/docs/search#search-query-language).
163
+ # Don't use search in read-after-write flows where strict consistency is necessary. Under normal operating
164
+ # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up
165
+ # to an hour behind during outages. Search functionality is not available to merchants in India.
166
+ def search(params = {}, opts = {})
167
+ request(
168
+ method: :get,
169
+ path: "/v1/payment_intents/search",
170
+ params: params,
171
+ opts: opts,
172
+ base_address: :api
173
+ )
174
+ end
175
+
176
+ # Updates properties on a PaymentIntent object without confirming.
177
+ #
178
+ # Depending on which properties you update, you might need to confirm the
179
+ # PaymentIntent again. For example, updating the payment_method
180
+ # always requires you to confirm the PaymentIntent again. If you prefer to
181
+ # update and confirm at the same time, we recommend updating properties through
182
+ # the [confirm API](https://stripe.com/docs/api/payment_intents/confirm) instead.
183
+ def update(intent, params = {}, opts = {})
184
+ request(
185
+ method: :post,
186
+ path: format("/v1/payment_intents/%<intent>s", { intent: CGI.escape(intent) }),
187
+ params: params,
188
+ opts: opts,
189
+ base_address: :api
190
+ )
191
+ end
192
+
193
+ # Verifies microdeposits on a PaymentIntent object.
194
+ def verify_microdeposits(intent, params = {}, opts = {})
195
+ request(
196
+ method: :post,
197
+ path: format("/v1/payment_intents/%<intent>s/verify_microdeposits", { intent: CGI.escape(intent) }),
198
+ params: params,
199
+ opts: opts,
200
+ base_address: :api
201
+ )
202
+ end
203
+ end
204
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentLinkLineItemService < StripeService
6
+ # When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
7
+ def list(payment_link, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/payment_links/%<payment_link>s/line_items", { payment_link: CGI.escape(payment_link) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,57 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentLinkService < StripeService
6
+ attr_reader :line_items
7
+
8
+ def initialize(requestor)
9
+ super(requestor)
10
+ @line_items = Stripe::PaymentLinkLineItemService.new(@requestor)
11
+ end
12
+
13
+ # Creates a payment link.
14
+ def create(params = {}, opts = {})
15
+ request(
16
+ method: :post,
17
+ path: "/v1/payment_links",
18
+ params: params,
19
+ opts: opts,
20
+ base_address: :api
21
+ )
22
+ end
23
+
24
+ # Returns a list of your payment links.
25
+ def list(params = {}, opts = {})
26
+ request(
27
+ method: :get,
28
+ path: "/v1/payment_links",
29
+ params: params,
30
+ opts: opts,
31
+ base_address: :api
32
+ )
33
+ end
34
+
35
+ # Retrieve a payment link.
36
+ def retrieve(payment_link, params = {}, opts = {})
37
+ request(
38
+ method: :get,
39
+ path: format("/v1/payment_links/%<payment_link>s", { payment_link: CGI.escape(payment_link) }),
40
+ params: params,
41
+ opts: opts,
42
+ base_address: :api
43
+ )
44
+ end
45
+
46
+ # Updates a payment link.
47
+ def update(payment_link, params = {}, opts = {})
48
+ request(
49
+ method: :post,
50
+ path: format("/v1/payment_links/%<payment_link>s", { payment_link: CGI.escape(payment_link) }),
51
+ params: params,
52
+ opts: opts,
53
+ base_address: :api
54
+ )
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,50 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentMethodConfigurationService < StripeService
6
+ # Creates a payment method configuration
7
+ def create(params = {}, opts = {})
8
+ request(
9
+ method: :post,
10
+ path: "/v1/payment_method_configurations",
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # List payment method configurations
18
+ def list(params = {}, opts = {})
19
+ request(
20
+ method: :get,
21
+ path: "/v1/payment_method_configurations",
22
+ params: params,
23
+ opts: opts,
24
+ base_address: :api
25
+ )
26
+ end
27
+
28
+ # Retrieve payment method configuration
29
+ def retrieve(configuration, params = {}, opts = {})
30
+ request(
31
+ method: :get,
32
+ path: format("/v1/payment_method_configurations/%<configuration>s", { configuration: CGI.escape(configuration) }),
33
+ params: params,
34
+ opts: opts,
35
+ base_address: :api
36
+ )
37
+ end
38
+
39
+ # Update payment method configuration
40
+ def update(configuration, params = {}, opts = {})
41
+ request(
42
+ method: :post,
43
+ path: format("/v1/payment_method_configurations/%<configuration>s", { configuration: CGI.escape(configuration) }),
44
+ params: params,
45
+ opts: opts,
46
+ base_address: :api
47
+ )
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,66 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentMethodDomainService < StripeService
6
+ # Creates a payment method domain.
7
+ def create(params = {}, opts = {})
8
+ request(
9
+ method: :post,
10
+ path: "/v1/payment_method_domains",
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # Lists the details of existing payment method domains.
18
+ def list(params = {}, opts = {})
19
+ request(
20
+ method: :get,
21
+ path: "/v1/payment_method_domains",
22
+ params: params,
23
+ opts: opts,
24
+ base_address: :api
25
+ )
26
+ end
27
+
28
+ # Retrieves the details of an existing payment method domain.
29
+ def retrieve(payment_method_domain, params = {}, opts = {})
30
+ request(
31
+ method: :get,
32
+ path: format("/v1/payment_method_domains/%<payment_method_domain>s", { payment_method_domain: CGI.escape(payment_method_domain) }),
33
+ params: params,
34
+ opts: opts,
35
+ base_address: :api
36
+ )
37
+ end
38
+
39
+ # Updates an existing payment method domain.
40
+ def update(payment_method_domain, params = {}, opts = {})
41
+ request(
42
+ method: :post,
43
+ path: format("/v1/payment_method_domains/%<payment_method_domain>s", { payment_method_domain: CGI.escape(payment_method_domain) }),
44
+ params: params,
45
+ opts: opts,
46
+ base_address: :api
47
+ )
48
+ end
49
+
50
+ # Some payment methods such as Apple Pay require additional steps to verify a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain.
51
+ # The payment method doesn't appear in Elements for this domain until it is active.
52
+ #
53
+ # To activate a payment method on an existing payment method domain, complete the required validation steps specific to the payment method, and then validate the payment method domain with this endpoint.
54
+ #
55
+ # Related guides: [Payment method domains](https://stripe.com/docs/payments/payment-methods/pmd-registration).
56
+ def validate(payment_method_domain, params = {}, opts = {})
57
+ request(
58
+ method: :post,
59
+ path: format("/v1/payment_method_domains/%<payment_method_domain>s/validate", { payment_method_domain: CGI.escape(payment_method_domain) }),
60
+ params: params,
61
+ opts: opts,
62
+ base_address: :api
63
+ )
64
+ end
65
+ end
66
+ end