stripe 5.28.0 → 8.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +286 -0
  3. data/Gemfile +5 -3
  4. data/Makefile +13 -0
  5. data/OPENAPI_VERSION +1 -0
  6. data/README.md +43 -5
  7. data/VERSION +1 -1
  8. data/lib/data/ca-certificates.crt +1241 -1937
  9. data/lib/stripe/api_operations/create.rb +6 -2
  10. data/lib/stripe/api_operations/delete.rb +12 -7
  11. data/lib/stripe/api_operations/list.rb +6 -9
  12. data/lib/stripe/api_operations/nested_resource.rb +62 -34
  13. data/lib/stripe/api_operations/request.rb +45 -2
  14. data/lib/stripe/api_operations/save.rb +13 -3
  15. data/lib/stripe/api_operations/search.rb +16 -0
  16. data/lib/stripe/api_resource.rb +11 -18
  17. data/lib/stripe/api_resource_test_helpers.rb +49 -0
  18. data/lib/stripe/api_version.rb +8 -0
  19. data/lib/stripe/connection_manager.rb +49 -11
  20. data/lib/stripe/error_object.rb +2 -3
  21. data/lib/stripe/instrumentation.rb +46 -6
  22. data/lib/stripe/oauth.rb +4 -3
  23. data/lib/stripe/object_types.rb +36 -10
  24. data/lib/stripe/resources/account.rb +39 -17
  25. data/lib/stripe/resources/account_link.rb +4 -0
  26. data/lib/stripe/resources/application_fee_refund.rb +7 -1
  27. data/lib/stripe/resources/apps/secret.rb +40 -0
  28. data/lib/stripe/resources/balance.rb +11 -0
  29. data/lib/stripe/resources/balance_transaction.rb +4 -0
  30. data/lib/stripe/resources/bank_account.rb +7 -0
  31. data/lib/stripe/resources/billing_portal/configuration.rb +15 -0
  32. data/lib/stripe/resources/billing_portal/session.rb +14 -0
  33. data/lib/stripe/resources/capability.rb +5 -1
  34. data/lib/stripe/resources/card.rb +6 -3
  35. data/lib/stripe/resources/cash_balance.rb +23 -0
  36. data/lib/stripe/resources/charge.rb +23 -3
  37. data/lib/stripe/resources/checkout/session.rb +49 -2
  38. data/lib/stripe/resources/country_spec.rb +6 -0
  39. data/lib/stripe/resources/coupon.rb +3 -0
  40. data/lib/stripe/resources/credit_note.rb +27 -9
  41. data/lib/stripe/resources/credit_note_line_item.rb +2 -0
  42. data/lib/stripe/resources/customer.rb +132 -4
  43. data/lib/stripe/resources/customer_balance_transaction.rb +9 -2
  44. data/lib/stripe/resources/customer_cash_balance_transaction.rb +14 -0
  45. data/lib/stripe/resources/discount.rb +5 -0
  46. data/lib/stripe/resources/dispute.rb +17 -3
  47. data/lib/stripe/resources/event.rb +29 -0
  48. data/lib/stripe/resources/exchange_rate.rb +11 -0
  49. data/lib/stripe/resources/file.rb +9 -1
  50. data/lib/stripe/resources/file_link.rb +3 -0
  51. data/lib/stripe/resources/financial_connections/account.rb +67 -0
  52. data/lib/stripe/resources/financial_connections/account_owner.rb +11 -0
  53. data/lib/stripe/resources/financial_connections/account_ownership.rb +11 -0
  54. data/lib/stripe/resources/financial_connections/session.rb +13 -0
  55. data/lib/stripe/resources/funding_instructions.rb +21 -0
  56. data/lib/stripe/resources/identity/verification_report.rb +23 -0
  57. data/lib/stripe/resources/identity/verification_session.rb +61 -0
  58. data/lib/stripe/resources/invoice.rb +105 -17
  59. data/lib/stripe/resources/invoice_item.rb +11 -0
  60. data/lib/stripe/resources/invoice_line_item.rb +1 -0
  61. data/lib/stripe/resources/issuing/authorization.rb +25 -5
  62. data/lib/stripe/resources/issuing/card.rb +78 -8
  63. data/lib/stripe/resources/issuing/cardholder.rb +3 -0
  64. data/lib/stripe/resources/issuing/dispute.rb +13 -3
  65. data/lib/stripe/resources/issuing/transaction.rb +5 -0
  66. data/lib/stripe/resources/line_item.rb +2 -0
  67. data/lib/stripe/resources/login_link.rb +2 -0
  68. data/lib/stripe/resources/mandate.rb +1 -0
  69. data/lib/stripe/resources/payment_intent.rb +103 -6
  70. data/lib/stripe/resources/payment_link.rb +35 -0
  71. data/lib/stripe/resources/payment_method.rb +25 -5
  72. data/lib/stripe/resources/payout.rb +28 -5
  73. data/lib/stripe/resources/person.rb +7 -0
  74. data/lib/stripe/resources/plan.rb +8 -0
  75. data/lib/stripe/resources/price.rb +15 -0
  76. data/lib/stripe/resources/product.rb +17 -0
  77. data/lib/stripe/resources/promotion_code.rb +2 -0
  78. data/lib/stripe/resources/quote.rb +128 -0
  79. data/lib/stripe/resources/radar/early_fraud_warning.rb +4 -0
  80. data/lib/stripe/resources/radar/value_list.rb +3 -0
  81. data/lib/stripe/resources/radar/value_list_item.rb +3 -0
  82. data/lib/stripe/resources/refund.rb +49 -0
  83. data/lib/stripe/resources/reporting/report_run.rb +8 -0
  84. data/lib/stripe/resources/reporting/report_type.rb +8 -1
  85. data/lib/stripe/resources/reversal.rb +16 -2
  86. data/lib/stripe/resources/review.rb +14 -3
  87. data/lib/stripe/resources/setup_attempt.rb +4 -0
  88. data/lib/stripe/resources/setup_intent.rb +60 -5
  89. data/lib/stripe/resources/shipping_rate.rb +14 -0
  90. data/lib/stripe/resources/sigma/scheduled_query_run.rb +4 -0
  91. data/lib/stripe/resources/source.rb +26 -6
  92. data/lib/stripe/resources/source_transaction.rb +5 -0
  93. data/lib/stripe/resources/subscription.rb +57 -3
  94. data/lib/stripe/resources/subscription_item.rb +2 -7
  95. data/lib/stripe/resources/subscription_schedule.rb +23 -5
  96. data/lib/stripe/resources/tax/calculation.rb +33 -0
  97. data/lib/stripe/resources/tax/calculation_line_item.rb +10 -0
  98. data/lib/stripe/resources/tax/settings.rb +15 -0
  99. data/lib/stripe/resources/tax/transaction.rb +49 -0
  100. data/lib/stripe/resources/tax/transaction_line_item.rb +10 -0
  101. data/lib/stripe/resources/tax_code.rb +11 -0
  102. data/lib/stripe/resources/tax_id.rb +5 -0
  103. data/lib/stripe/resources/tax_rate.rb +3 -0
  104. data/lib/stripe/resources/terminal/configuration.rb +16 -0
  105. data/lib/stripe/resources/terminal/connection_token.rb +3 -0
  106. data/lib/stripe/resources/terminal/location.rb +3 -0
  107. data/lib/stripe/resources/terminal/reader.rb +119 -0
  108. data/lib/stripe/resources/test_helpers/test_clock.rb +35 -0
  109. data/lib/stripe/resources/token.rb +20 -0
  110. data/lib/stripe/resources/topup.rb +15 -3
  111. data/lib/stripe/resources/transfer.rb +10 -11
  112. data/lib/stripe/resources/treasury/credit_reversal.rb +14 -0
  113. data/lib/stripe/resources/treasury/debit_reversal.rb +14 -0
  114. data/lib/stripe/resources/treasury/financial_account.rb +52 -0
  115. data/lib/stripe/resources/treasury/financial_account_features.rb +12 -0
  116. data/lib/stripe/resources/treasury/inbound_transfer.rb +94 -0
  117. data/lib/stripe/resources/treasury/outbound_payment.rb +96 -0
  118. data/lib/stripe/resources/treasury/outbound_transfer.rb +100 -0
  119. data/lib/stripe/resources/treasury/received_credit.rb +30 -0
  120. data/lib/stripe/resources/treasury/received_debit.rb +30 -0
  121. data/lib/stripe/resources/treasury/transaction.rb +13 -0
  122. data/lib/stripe/resources/treasury/transaction_entry.rb +17 -0
  123. data/lib/stripe/resources/usage_record.rb +5 -0
  124. data/lib/stripe/resources/usage_record_summary.rb +1 -0
  125. data/lib/stripe/resources/webhook_endpoint.rb +7 -0
  126. data/lib/stripe/resources.rb +34 -10
  127. data/lib/stripe/search_result_object.rb +86 -0
  128. data/lib/stripe/stripe_client.rb +267 -121
  129. data/lib/stripe/stripe_configuration.rb +29 -10
  130. data/lib/stripe/stripe_object.rb +25 -2
  131. data/lib/stripe/stripe_response.rb +80 -52
  132. data/lib/stripe/util.rb +100 -9
  133. data/lib/stripe/version.rb +1 -1
  134. data/lib/stripe.rb +27 -23
  135. data/stripe.gemspec +12 -5
  136. metadata +46 -204
  137. data/.editorconfig +0 -10
  138. data/.gitattributes +0 -4
  139. data/.github/ISSUE_TEMPLATE.md +0 -5
  140. data/.gitignore +0 -8
  141. data/.rubocop.yml +0 -80
  142. data/.rubocop_todo.yml +0 -33
  143. data/.travis.yml +0 -38
  144. data/.vscode/extensions.json +0 -7
  145. data/.vscode/settings.json +0 -8
  146. data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
  147. data/lib/stripe/resources/bitcoin_transaction.rb +0 -15
  148. data/lib/stripe/resources/issuing/card_details.rb +0 -9
  149. data/lib/stripe/resources/order.rb +0 -33
  150. data/lib/stripe/resources/order_return.rb +0 -10
  151. data/lib/stripe/resources/recipient.rb +0 -14
  152. data/lib/stripe/resources/sku.rb +0 -13
  153. data/lib/stripe/resources/three_d_secure.rb +0 -14
  154. data/test/openapi/README.md +0 -9
  155. data/test/stripe/account_link_test.rb +0 -18
  156. data/test/stripe/account_test.rb +0 -412
  157. data/test/stripe/alipay_account_test.rb +0 -37
  158. data/test/stripe/api_operations_test.rb +0 -80
  159. data/test/stripe/api_resource_test.rb +0 -646
  160. data/test/stripe/apple_pay_domain_test.rb +0 -46
  161. data/test/stripe/application_fee_refund_test.rb +0 -37
  162. data/test/stripe/application_fee_test.rb +0 -58
  163. data/test/stripe/balance_test.rb +0 -13
  164. data/test/stripe/balance_transaction_test.rb +0 -20
  165. data/test/stripe/bank_account_test.rb +0 -36
  166. data/test/stripe/billing_portal/session_test.rb +0 -18
  167. data/test/stripe/capability_test.rb +0 -45
  168. data/test/stripe/charge_test.rb +0 -64
  169. data/test/stripe/checkout/session_test.rb +0 -53
  170. data/test/stripe/connection_manager_test.rb +0 -167
  171. data/test/stripe/country_spec_test.rb +0 -20
  172. data/test/stripe/coupon_test.rb +0 -61
  173. data/test/stripe/credit_note_test.rb +0 -90
  174. data/test/stripe/customer_balance_transaction_test.rb +0 -37
  175. data/test/stripe/customer_card_test.rb +0 -48
  176. data/test/stripe/customer_test.rb +0 -226
  177. data/test/stripe/dispute_test.rb +0 -51
  178. data/test/stripe/ephemeral_key_test.rb +0 -93
  179. data/test/stripe/errors_test.rb +0 -53
  180. data/test/stripe/exchange_rate_test.rb +0 -20
  181. data/test/stripe/file_link_test.rb +0 -41
  182. data/test/stripe/file_test.rb +0 -87
  183. data/test/stripe/instrumentation_test.rb +0 -74
  184. data/test/stripe/invoice_item_test.rb +0 -66
  185. data/test/stripe/invoice_line_item_test.rb +0 -8
  186. data/test/stripe/invoice_test.rb +0 -229
  187. data/test/stripe/issuing/authorization_test.rb +0 -72
  188. data/test/stripe/issuing/card_test.rb +0 -74
  189. data/test/stripe/issuing/cardholder_test.rb +0 -53
  190. data/test/stripe/issuing/dispute_test.rb +0 -54
  191. data/test/stripe/issuing/transaction_test.rb +0 -48
  192. data/test/stripe/list_object_test.rb +0 -202
  193. data/test/stripe/login_link_test.rb +0 -37
  194. data/test/stripe/mandate_test.rb +0 -14
  195. data/test/stripe/multipart_encoder_test.rb +0 -130
  196. data/test/stripe/oauth_test.rb +0 -104
  197. data/test/stripe/order_return_test.rb +0 -21
  198. data/test/stripe/order_test.rb +0 -82
  199. data/test/stripe/payment_intent_test.rb +0 -107
  200. data/test/stripe/payment_method_test.rb +0 -84
  201. data/test/stripe/payout_test.rb +0 -72
  202. data/test/stripe/person_test.rb +0 -46
  203. data/test/stripe/plan_test.rb +0 -98
  204. data/test/stripe/price_test.rb +0 -48
  205. data/test/stripe/product_test.rb +0 -58
  206. data/test/stripe/promotion_code_test.rb +0 -42
  207. data/test/stripe/radar/early_fraud_warning_test.rb +0 -22
  208. data/test/stripe/radar/value_list_item_test.rb +0 -48
  209. data/test/stripe/radar/value_list_test.rb +0 -61
  210. data/test/stripe/recipient_test.rb +0 -62
  211. data/test/stripe/refund_test.rb +0 -39
  212. data/test/stripe/reporting/report_run_test.rb +0 -33
  213. data/test/stripe/reporting/report_type_test.rb +0 -22
  214. data/test/stripe/reversal_test.rb +0 -43
  215. data/test/stripe/review_test.rb +0 -27
  216. data/test/stripe/setup_attempt_test.rb +0 -16
  217. data/test/stripe/setup_intent_test.rb +0 -84
  218. data/test/stripe/sigma/scheduled_query_run_test.rb +0 -22
  219. data/test/stripe/sku_test.rb +0 -60
  220. data/test/stripe/source_test.rb +0 -119
  221. data/test/stripe/stripe_client_test.rb +0 -1291
  222. data/test/stripe/stripe_configuration_test.rb +0 -131
  223. data/test/stripe/stripe_object_test.rb +0 -500
  224. data/test/stripe/stripe_response_test.rb +0 -95
  225. data/test/stripe/subscription_item_test.rb +0 -84
  226. data/test/stripe/subscription_schedule_test.rb +0 -82
  227. data/test/stripe/subscription_test.rb +0 -80
  228. data/test/stripe/tax_id_test.rb +0 -31
  229. data/test/stripe/tax_rate_test.rb +0 -43
  230. data/test/stripe/terminal/connection_token_test.rb +0 -16
  231. data/test/stripe/terminal/location_test.rb +0 -68
  232. data/test/stripe/terminal/reader_test.rb +0 -62
  233. data/test/stripe/three_d_secure_test.rb +0 -23
  234. data/test/stripe/topup_test.rb +0 -62
  235. data/test/stripe/transfer_test.rb +0 -88
  236. data/test/stripe/usage_record_summary_test.rb +0 -29
  237. data/test/stripe/util_test.rb +0 -402
  238. data/test/stripe/webhook_endpoint_test.rb +0 -59
  239. data/test/stripe/webhook_test.rb +0 -135
  240. data/test/stripe_mock.rb +0 -78
  241. data/test/stripe_test.rb +0 -132
  242. data/test/test_data.rb +0 -61
  243. data/test/test_helper.rb +0 -77
@@ -1,6 +1,11 @@
1
+ # File generated from our OpenAPI spec
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Stripe
5
+ # Some payment methods have no required amount that a customer must send.
6
+ # Customers can be instructed to send any amount, and it can be made up of
7
+ # multiple transactions. As such, sources can have multiple associated
8
+ # transactions.
4
9
  class SourceTransaction < StripeObject
5
10
  OBJECT_NAME = "source_transaction"
6
11
  end
@@ -2,25 +2,79 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Subscriptions allow you to charge a customer on a recurring basis.
6
+ #
7
+ # Related guide: [Creating subscriptions](https://stripe.com/docs/billing/subscriptions/creating)
5
8
  class Subscription < APIResource
6
9
  extend Stripe::APIOperations::Create
7
- include Stripe::APIOperations::Delete
8
10
  extend Stripe::APIOperations::List
11
+ extend Stripe::APIOperations::Search
9
12
  include Stripe::APIOperations::Save
10
13
 
11
14
  OBJECT_NAME = "subscription"
12
15
 
13
- custom_method :delete_discount, http_verb: :delete, http_path: "discount"
16
+ def cancel(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :delete,
19
+ path: format("/v1/subscriptions/%<subscription_exposed_id>s", { subscription_exposed_id: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
14
24
 
15
25
  def delete_discount(params = {}, opts = {})
16
26
  request_stripe_object(
17
27
  method: :delete,
18
- path: resource_url + "/discount",
28
+ path: format("/v1/subscriptions/%<subscription_exposed_id>s/discount", { subscription_exposed_id: CGI.escape(self["id"]) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+
34
+ def resume(params = {}, opts = {})
35
+ request_stripe_object(
36
+ method: :post,
37
+ path: format("/v1/subscriptions/%<subscription>s/resume", { subscription: CGI.escape(self["id"]) }),
38
+ params: params,
39
+ opts: opts
40
+ )
41
+ end
42
+
43
+ def self.cancel(subscription_exposed_id, params = {}, opts = {})
44
+ request_stripe_object(
45
+ method: :delete,
46
+ path: format("/v1/subscriptions/%<subscription_exposed_id>s", { subscription_exposed_id: CGI.escape(subscription_exposed_id) }),
47
+ params: params,
48
+ opts: opts
49
+ )
50
+ end
51
+
52
+ def self.delete_discount(subscription_exposed_id, params = {}, opts = {})
53
+ request_stripe_object(
54
+ method: :delete,
55
+ path: format("/v1/subscriptions/%<subscription_exposed_id>s/discount", { subscription_exposed_id: CGI.escape(subscription_exposed_id) }),
56
+ params: params,
57
+ opts: opts
58
+ )
59
+ end
60
+
61
+ def self.resume(subscription, params = {}, opts = {})
62
+ request_stripe_object(
63
+ method: :post,
64
+ path: format("/v1/subscriptions/%<subscription>s/resume", { subscription: CGI.escape(subscription) }),
19
65
  params: params,
20
66
  opts: opts
21
67
  )
22
68
  end
23
69
 
24
70
  save_nested_resource :source
71
+
72
+ def self.search(params = {}, opts = {})
73
+ _search("/v1/subscriptions/search", params, opts)
74
+ end
75
+
76
+ def self.search_auto_paging_each(params = {}, opts = {}, &blk)
77
+ search(params, opts).auto_paging_each(&blk)
78
+ end
25
79
  end
26
80
  end
@@ -2,6 +2,8 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Subscription items allow you to create customer subscriptions with more than
6
+ # one plan, making it easy to represent complex billing relationships.
5
7
  class SubscriptionItem < APIResource
6
8
  extend Stripe::APIOperations::Create
7
9
  include Stripe::APIOperations::Delete
@@ -15,12 +17,5 @@ module Stripe
15
17
  nested_resource_class_methods :usage_record_summary,
16
18
  operations: %i[list],
17
19
  resource_plural: "usage_record_summaries"
18
-
19
- def usage_record_summaries(params = {}, opts = {})
20
- resp, opts = execute_resource_request(:get, resource_url + "/usage_record_summaries", params, opts)
21
- Util.convert_to_stripe_object(resp.data, opts)
22
- end
23
- extend Gem::Deprecate
24
- deprecate :usage_record_summaries, :"SubscriptionItem.list_usage_record_summaries", 2020, 1
25
20
  end
26
21
  end
@@ -2,6 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
6
+ #
7
+ # Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules)
5
8
  class SubscriptionSchedule < APIResource
6
9
  extend Stripe::APIOperations::Create
7
10
  extend Stripe::APIOperations::List
@@ -9,13 +12,10 @@ module Stripe
9
12
 
10
13
  OBJECT_NAME = "subscription_schedule"
11
14
 
12
- custom_method :cancel, http_verb: :post
13
- custom_method :release, http_verb: :post
14
-
15
15
  def cancel(params = {}, opts = {})
16
16
  request_stripe_object(
17
17
  method: :post,
18
- path: resource_url + "/cancel",
18
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(self["id"]) }),
19
19
  params: params,
20
20
  opts: opts
21
21
  )
@@ -24,7 +24,25 @@ module Stripe
24
24
  def release(params = {}, opts = {})
25
25
  request_stripe_object(
26
26
  method: :post,
27
- path: resource_url + "/release",
27
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(self["id"]) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def self.cancel(schedule, params = {}, opts = {})
34
+ request_stripe_object(
35
+ method: :post,
36
+ path: format("/v1/subscription_schedules/%<schedule>s/cancel", { schedule: CGI.escape(schedule) }),
37
+ params: params,
38
+ opts: opts
39
+ )
40
+ end
41
+
42
+ def self.release(schedule, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/subscription_schedules/%<schedule>s/release", { schedule: CGI.escape(schedule) }),
28
46
  params: params,
29
47
  opts: opts
30
48
  )
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # A Tax Calculation allows you to calculate the tax to collect from your customer.
7
+ #
8
+ # Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom)
9
+ class Calculation < APIResource
10
+ extend Stripe::APIOperations::Create
11
+
12
+ OBJECT_NAME = "tax.calculation"
13
+
14
+ def list_line_items(params = {}, opts = {})
15
+ request_stripe_object(
16
+ method: :get,
17
+ path: format("/v1/tax/calculations/%<calculation>s/line_items", { calculation: CGI.escape(self["id"]) }),
18
+ params: params,
19
+ opts: opts
20
+ )
21
+ end
22
+
23
+ def self.list_line_items(calculation, params = {}, opts = {})
24
+ request_stripe_object(
25
+ method: :get,
26
+ path: format("/v1/tax/calculations/%<calculation>s/line_items", { calculation: CGI.escape(calculation) }),
27
+ params: params,
28
+ opts: opts
29
+ )
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class CalculationLineItem < APIResource
7
+ OBJECT_NAME = "tax.calculation_line_item"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.
7
+ #
8
+ # Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)
9
+ class Settings < SingletonAPIResource
10
+ include Stripe::APIOperations::Save
11
+
12
+ OBJECT_NAME = "tax.settings"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,49 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ # A Tax Transaction records the tax collected from or refunded to your customer.
7
+ #
8
+ # Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)
9
+ class Transaction < APIResource
10
+ OBJECT_NAME = "tax.transaction"
11
+
12
+ def list_line_items(params = {}, opts = {})
13
+ request_stripe_object(
14
+ method: :get,
15
+ path: format("/v1/tax/transactions/%<transaction>s/line_items", { transaction: CGI.escape(self["id"]) }),
16
+ params: params,
17
+ opts: opts
18
+ )
19
+ end
20
+
21
+ def self.create_from_calculation(params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: "/v1/tax/transactions/create_from_calculation",
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ def self.create_reversal(params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: "/v1/tax/transactions/create_reversal",
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ def self.list_line_items(transaction, params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :get,
42
+ path: format("/v1/tax/transactions/%<transaction>s/line_items", { transaction: CGI.escape(transaction) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Tax
6
+ class TransactionLineItem < APIResource
7
+ OBJECT_NAME = "tax.transaction_line_item"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # [Tax codes](https://stripe.com/docs/tax/tax-categories) classify goods and services for tax purposes.
6
+ class TaxCode < APIResource
7
+ extend Stripe::APIOperations::List
8
+
9
+ OBJECT_NAME = "tax_code"
10
+ end
11
+ end
@@ -1,6 +1,11 @@
1
+ # File generated from our OpenAPI spec
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Stripe
5
+ # You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers).
6
+ # A customer's tax IDs are displayed on invoices and credit notes issued for the customer.
7
+ #
8
+ # Related guide: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids)
4
9
  class TaxId < APIResource
5
10
  include Stripe::APIOperations::Delete
6
11
  extend Stripe::APIOperations::List
@@ -2,6 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Tax rates can be applied to [invoices](https://stripe.com/docs/billing/invoices/tax-rates), [subscriptions](https://stripe.com/docs/billing/subscriptions/taxes) and [Checkout Sessions](https://stripe.com/docs/payments/checkout/set-up-a-subscription#tax-rates) to collect tax.
6
+ #
7
+ # Related guide: [Tax rates](https://stripe.com/docs/billing/taxes/tax-rates)
5
8
  class TaxRate < APIResource
6
9
  extend Stripe::APIOperations::Create
7
10
  extend Stripe::APIOperations::List
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Terminal
6
+ # A Configurations object represents how features should be configured for terminal readers.
7
+ class Configuration < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ include Stripe::APIOperations::Delete
10
+ extend Stripe::APIOperations::List
11
+ include Stripe::APIOperations::Save
12
+
13
+ OBJECT_NAME = "terminal.configuration"
14
+ end
15
+ end
16
+ end
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Connection Token is used by the Stripe Terminal SDK to connect to a reader.
7
+ #
8
+ # Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
6
9
  class ConnectionToken < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
 
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Location represents a grouping of readers.
7
+ #
8
+ # Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)
6
9
  class Location < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  include Stripe::APIOperations::Delete
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Terminal
6
+ # A Reader represents a physical device for accepting payment details.
7
+ #
8
+ # Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)
6
9
  class Reader < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  include Stripe::APIOperations::Delete
@@ -10,6 +13,122 @@ module Stripe
10
13
  include Stripe::APIOperations::Save
11
14
 
12
15
  OBJECT_NAME = "terminal.reader"
16
+
17
+ def cancel_action(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :post,
20
+ path: format("/v1/terminal/readers/%<reader>s/cancel_action", { reader: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def process_payment_intent(params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/terminal/readers/%<reader>s/process_payment_intent", { reader: CGI.escape(self["id"]) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ def process_setup_intent(params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/terminal/readers/%<reader>s/process_setup_intent", { reader: CGI.escape(self["id"]) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def refund_payment(params = {}, opts = {})
45
+ request_stripe_object(
46
+ method: :post,
47
+ path: format("/v1/terminal/readers/%<reader>s/refund_payment", { reader: CGI.escape(self["id"]) }),
48
+ params: params,
49
+ opts: opts
50
+ )
51
+ end
52
+
53
+ def set_reader_display(params = {}, opts = {})
54
+ request_stripe_object(
55
+ method: :post,
56
+ path: format("/v1/terminal/readers/%<reader>s/set_reader_display", { reader: CGI.escape(self["id"]) }),
57
+ params: params,
58
+ opts: opts
59
+ )
60
+ end
61
+
62
+ def self.cancel_action(reader, params = {}, opts = {})
63
+ request_stripe_object(
64
+ method: :post,
65
+ path: format("/v1/terminal/readers/%<reader>s/cancel_action", { reader: CGI.escape(reader) }),
66
+ params: params,
67
+ opts: opts
68
+ )
69
+ end
70
+
71
+ def self.process_payment_intent(reader, params = {}, opts = {})
72
+ request_stripe_object(
73
+ method: :post,
74
+ path: format("/v1/terminal/readers/%<reader>s/process_payment_intent", { reader: CGI.escape(reader) }),
75
+ params: params,
76
+ opts: opts
77
+ )
78
+ end
79
+
80
+ def self.process_setup_intent(reader, params = {}, opts = {})
81
+ request_stripe_object(
82
+ method: :post,
83
+ path: format("/v1/terminal/readers/%<reader>s/process_setup_intent", { reader: CGI.escape(reader) }),
84
+ params: params,
85
+ opts: opts
86
+ )
87
+ end
88
+
89
+ def self.refund_payment(reader, params = {}, opts = {})
90
+ request_stripe_object(
91
+ method: :post,
92
+ path: format("/v1/terminal/readers/%<reader>s/refund_payment", { reader: CGI.escape(reader) }),
93
+ params: params,
94
+ opts: opts
95
+ )
96
+ end
97
+
98
+ def self.set_reader_display(reader, params = {}, opts = {})
99
+ request_stripe_object(
100
+ method: :post,
101
+ path: format("/v1/terminal/readers/%<reader>s/set_reader_display", { reader: CGI.escape(reader) }),
102
+ params: params,
103
+ opts: opts
104
+ )
105
+ end
106
+
107
+ def test_helpers
108
+ TestHelpers.new(self)
109
+ end
110
+
111
+ class TestHelpers < APIResourceTestHelpers
112
+ RESOURCE_CLASS = Reader
113
+
114
+ def self.present_payment_method(reader, params = {}, opts = {})
115
+ request_stripe_object(
116
+ method: :post,
117
+ path: format("/v1/test_helpers/terminal/readers/%<reader>s/present_payment_method", { reader: CGI.escape(reader) }),
118
+ params: params,
119
+ opts: opts
120
+ )
121
+ end
122
+
123
+ def present_payment_method(params = {}, opts = {})
124
+ @resource.request_stripe_object(
125
+ method: :post,
126
+ path: format("/v1/test_helpers/terminal/readers/%<reader>s/present_payment_method", { reader: CGI.escape(@resource["id"]) }),
127
+ params: params,
128
+ opts: opts
129
+ )
130
+ end
131
+ end
13
132
  end
14
133
  end
15
134
  end
@@ -0,0 +1,35 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module TestHelpers
6
+ # A test clock enables deterministic control over objects in testmode. With a test clock, you can create
7
+ # objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances,
8
+ # you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.
9
+ class TestClock < APIResource
10
+ extend Stripe::APIOperations::Create
11
+ include Stripe::APIOperations::Delete
12
+ extend Stripe::APIOperations::List
13
+
14
+ OBJECT_NAME = "test_helpers.test_clock"
15
+
16
+ def advance(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: format("/v1/test_helpers/test_clocks/%<test_clock>s/advance", { test_clock: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
25
+ def self.advance(test_clock, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/test_helpers/test_clocks/%<test_clock>s/advance", { test_clock: CGI.escape(test_clock) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+ end
34
+ end
35
+ end
@@ -2,6 +2,26 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Tokenization is the process Stripe uses to collect sensitive card or bank
6
+ # account details, or personally identifiable information (PII), directly from
7
+ # your customers in a secure manner. A token representing this information is
8
+ # returned to your server to use. You should use our
9
+ # [recommended payments integrations](https://stripe.com/docs/payments) to perform this process
10
+ # client-side. This ensures that no sensitive card data touches your server,
11
+ # and allows your integration to operate in a PCI-compliant way.
12
+ #
13
+ # If you cannot use client-side tokenization, you can also create tokens using
14
+ # the API with either your publishable or secret API key. Keep in mind that if
15
+ # your integration uses this method, you are responsible for any PCI compliance
16
+ # that may be required, and you must keep your secret API key safe. Unlike with
17
+ # client-side tokenization, your customer's information is not sent directly to
18
+ # Stripe, so we cannot determine how it is handled or stored.
19
+ #
20
+ # Tokens cannot be stored or used more than once. To store card or bank account
21
+ # information for later use, you can create [Customer](https://stripe.com/docs/api#customers)
22
+ # objects or [Custom accounts](https://stripe.com/docs/api#external_accounts). Note that
23
+ # [Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection,
24
+ # performs best with integrations that use client-side tokenization.
5
25
  class Token < APIResource
6
26
  extend Stripe::APIOperations::Create
7
27
 
@@ -2,6 +2,11 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # To top up your Stripe balance, you create a top-up object. You can retrieve
6
+ # individual top-ups, as well as list all top-ups. Top-ups are identified by a
7
+ # unique, random ID.
8
+ #
9
+ # Related guide: [Topping up your platform account](https://stripe.com/docs/connect/top-ups)
5
10
  class Topup < APIResource
6
11
  extend Stripe::APIOperations::Create
7
12
  extend Stripe::APIOperations::List
@@ -9,12 +14,19 @@ module Stripe
9
14
 
10
15
  OBJECT_NAME = "topup"
11
16
 
12
- custom_method :cancel, http_verb: :post
13
-
14
17
  def cancel(params = {}, opts = {})
15
18
  request_stripe_object(
16
19
  method: :post,
17
- path: resource_url + "/cancel",
20
+ path: format("/v1/topups/%<topup>s/cancel", { topup: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def self.cancel(topup, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :post,
29
+ path: format("/v1/topups/%<topup>s/cancel", { topup: CGI.escape(topup) }),
18
30
  params: params,
19
31
  opts: opts
20
32
  )
@@ -2,6 +2,16 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A `Transfer` object is created when you move funds between Stripe accounts as
6
+ # part of Connect.
7
+ #
8
+ # Before April 6, 2017, transfers also represented movement of funds from a
9
+ # Stripe account to a card or bank account. This behavior has since been split
10
+ # out into a [Payout](https://stripe.com/docs/api#payout_object) object, with corresponding payout endpoints. For more
11
+ # information, read about the
12
+ # [transfer/payout split](https://stripe.com/docs/transfer-payout-split).
13
+ #
14
+ # Related guide: [Creating separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers)
5
15
  class Transfer < APIResource
6
16
  extend Stripe::APIOperations::Create
7
17
  extend Stripe::APIOperations::List
@@ -10,18 +20,7 @@ module Stripe
10
20
 
11
21
  OBJECT_NAME = "transfer"
12
22
 
13
- custom_method :cancel, http_verb: :post
14
-
15
23
  nested_resource_class_methods :reversal,
16
24
  operations: %i[create retrieve update list]
17
-
18
- def cancel(params = {}, opts = {})
19
- request_stripe_object(
20
- method: :post,
21
- path: resource_url + "/cancel",
22
- params: params,
23
- opts: opts
24
- )
25
- end
26
25
  end
27
26
  end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.
7
+ class CreditReversal < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "treasury.credit_reversal"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Treasury
6
+ # You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
7
+ class DebitReversal < APIResource
8
+ extend Stripe::APIOperations::Create
9
+ extend Stripe::APIOperations::List
10
+
11
+ OBJECT_NAME = "treasury.debit_reversal"
12
+ end
13
+ end
14
+ end