stripe 5.39.0 → 10.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +304 -0
  3. data/Gemfile +5 -2
  4. data/Makefile +13 -0
  5. data/OPENAPI_VERSION +1 -0
  6. data/README.md +40 -6
  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 +10 -0
  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 +3 -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 +22 -1
  20. data/lib/stripe/instrumentation.rb +45 -7
  21. data/lib/stripe/object_types.rb +35 -10
  22. data/lib/stripe/resources/account.rb +37 -11
  23. data/lib/stripe/resources/account_link.rb +4 -0
  24. data/lib/stripe/resources/account_session.rb +17 -0
  25. data/lib/stripe/resources/application_fee.rb +1 -2
  26. data/lib/stripe/resources/application_fee_refund.rb +5 -0
  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 +1 -0
  32. data/lib/stripe/resources/billing_portal/session.rb +14 -0
  33. data/lib/stripe/resources/capability.rb +3 -0
  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 +1 -0
  42. data/lib/stripe/resources/customer.rb +119 -15
  43. data/lib/stripe/resources/customer_balance_transaction.rb +6 -0
  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 +15 -3
  47. data/lib/stripe/resources/event.rb +30 -0
  48. data/lib/stripe/resources/exchange_rate.rb +26 -0
  49. data/lib/stripe/resources/file.rb +7 -0
  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 +11 -0
  57. data/lib/stripe/resources/identity/verification_session.rb +31 -5
  58. data/lib/stripe/resources/invoice.rb +100 -17
  59. data/lib/stripe/resources/invoice_item.rb +11 -0
  60. data/lib/stripe/resources/issuing/authorization.rb +114 -5
  61. data/lib/stripe/resources/issuing/card.rb +78 -8
  62. data/lib/stripe/resources/issuing/cardholder.rb +3 -0
  63. data/lib/stripe/resources/issuing/dispute.rb +13 -3
  64. data/lib/stripe/resources/issuing/token.rb +14 -0
  65. data/lib/stripe/resources/issuing/transaction.rb +49 -0
  66. data/lib/stripe/resources/line_item.rb +1 -0
  67. data/lib/stripe/resources/login_link.rb +1 -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/payment_method_configuration.rb +26 -0
  73. data/lib/stripe/resources/payment_method_domain.rb +34 -0
  74. data/lib/stripe/resources/payout.rb +28 -5
  75. data/lib/stripe/resources/person.rb +6 -0
  76. data/lib/stripe/resources/plan.rb +8 -0
  77. data/lib/stripe/resources/price.rb +15 -0
  78. data/lib/stripe/resources/product.rb +17 -0
  79. data/lib/stripe/resources/promotion_code.rb +2 -0
  80. data/lib/stripe/resources/quote.rb +58 -35
  81. data/lib/stripe/resources/radar/early_fraud_warning.rb +4 -0
  82. data/lib/stripe/resources/radar/value_list.rb +3 -0
  83. data/lib/stripe/resources/radar/value_list_item.rb +3 -0
  84. data/lib/stripe/resources/refund.rb +49 -0
  85. data/lib/stripe/resources/reporting/report_run.rb +8 -0
  86. data/lib/stripe/resources/reporting/report_type.rb +8 -1
  87. data/lib/stripe/resources/reversal.rb +13 -0
  88. data/lib/stripe/resources/review.rb +14 -3
  89. data/lib/stripe/resources/setup_attempt.rb +4 -0
  90. data/lib/stripe/resources/setup_intent.rb +59 -5
  91. data/lib/stripe/resources/shipping_rate.rb +14 -0
  92. data/lib/stripe/resources/sigma/scheduled_query_run.rb +4 -0
  93. data/lib/stripe/resources/source.rb +27 -8
  94. data/lib/stripe/resources/source_transaction.rb +5 -0
  95. data/lib/stripe/resources/subscription.rb +57 -3
  96. data/lib/stripe/resources/subscription_item.rb +2 -7
  97. data/lib/stripe/resources/subscription_schedule.rb +23 -5
  98. data/lib/stripe/resources/tax/calculation.rb +33 -0
  99. data/lib/stripe/resources/tax/calculation_line_item.rb +10 -0
  100. data/lib/stripe/resources/tax/registration.rb +19 -0
  101. data/lib/stripe/resources/tax/settings.rb +15 -0
  102. data/lib/stripe/resources/tax/transaction.rb +49 -0
  103. data/lib/stripe/resources/tax/transaction_line_item.rb +10 -0
  104. data/lib/stripe/resources/tax_code.rb +1 -0
  105. data/lib/stripe/resources/tax_id.rb +4 -0
  106. data/lib/stripe/resources/tax_rate.rb +3 -0
  107. data/lib/stripe/resources/terminal/configuration.rb +16 -0
  108. data/lib/stripe/resources/terminal/connection_token.rb +3 -0
  109. data/lib/stripe/resources/terminal/location.rb +3 -0
  110. data/lib/stripe/resources/terminal/reader.rb +119 -0
  111. data/lib/stripe/resources/test_helpers/test_clock.rb +35 -0
  112. data/lib/stripe/resources/token.rb +20 -0
  113. data/lib/stripe/resources/topup.rb +15 -3
  114. data/lib/stripe/resources/transfer.rb +11 -13
  115. data/lib/stripe/resources/treasury/credit_reversal.rb +14 -0
  116. data/lib/stripe/resources/treasury/debit_reversal.rb +14 -0
  117. data/lib/stripe/resources/treasury/financial_account.rb +52 -0
  118. data/lib/stripe/resources/treasury/financial_account_features.rb +12 -0
  119. data/lib/stripe/resources/treasury/inbound_transfer.rb +94 -0
  120. data/lib/stripe/resources/treasury/outbound_payment.rb +96 -0
  121. data/lib/stripe/resources/treasury/outbound_transfer.rb +96 -0
  122. data/lib/stripe/resources/treasury/received_credit.rb +30 -0
  123. data/lib/stripe/resources/treasury/received_debit.rb +30 -0
  124. data/lib/stripe/resources/treasury/transaction.rb +13 -0
  125. data/lib/stripe/resources/treasury/transaction_entry.rb +17 -0
  126. data/lib/stripe/resources/usage_record.rb +4 -0
  127. data/lib/stripe/resources/webhook_endpoint.rb +7 -0
  128. data/lib/stripe/resources.rb +33 -10
  129. data/lib/stripe/search_result_object.rb +86 -0
  130. data/lib/stripe/stripe_client.rb +37 -22
  131. data/lib/stripe/stripe_configuration.rb +5 -1
  132. data/lib/stripe/stripe_object.rb +2 -2
  133. data/lib/stripe/util.rb +85 -2
  134. data/lib/stripe/version.rb +1 -1
  135. data/lib/stripe/webhook.rb +2 -1
  136. data/lib/stripe.rb +5 -1
  137. data/stripe.gemspec +3 -3
  138. metadata +45 -14
  139. data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
  140. data/lib/stripe/resources/bitcoin_transaction.rb +0 -16
  141. data/lib/stripe/resources/issuing/card_details.rb +0 -9
  142. data/lib/stripe/resources/order.rb +0 -33
  143. data/lib/stripe/resources/order_return.rb +0 -10
  144. data/lib/stripe/resources/recipient.rb +0 -14
  145. data/lib/stripe/resources/sku.rb +0 -13
  146. data/lib/stripe/resources/three_d_secure.rb +0 -14
@@ -3,6 +3,7 @@
3
3
 
4
4
  module Stripe
5
5
  module Issuing
6
+ # You can [create physical or virtual cards](https://stripe.com/docs/issuing/cards) that are issued to cardholders.
6
7
  class Card < APIResource
7
8
  extend Stripe::APIOperations::Create
8
9
  extend Stripe::APIOperations::List
@@ -10,15 +11,84 @@ module Stripe
10
11
 
11
12
  OBJECT_NAME = "issuing.card"
12
13
 
13
- custom_method :details, http_verb: :get
14
+ def test_helpers
15
+ TestHelpers.new(self)
16
+ end
17
+
18
+ class TestHelpers < APIResourceTestHelpers
19
+ RESOURCE_CLASS = Card
20
+
21
+ def self.deliver_card(card, params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/deliver", { card: CGI.escape(card) }),
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ def self.fail_card(card, params = {}, opts = {})
31
+ request_stripe_object(
32
+ method: :post,
33
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/fail", { card: CGI.escape(card) }),
34
+ params: params,
35
+ opts: opts
36
+ )
37
+ end
38
+
39
+ def self.return_card(card, params = {}, opts = {})
40
+ request_stripe_object(
41
+ method: :post,
42
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/return", { card: CGI.escape(card) }),
43
+ params: params,
44
+ opts: opts
45
+ )
46
+ end
47
+
48
+ def self.ship_card(card, params = {}, opts = {})
49
+ request_stripe_object(
50
+ method: :post,
51
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/ship", { card: CGI.escape(card) }),
52
+ params: params,
53
+ opts: opts
54
+ )
55
+ end
56
+
57
+ def deliver_card(params = {}, opts = {})
58
+ @resource.request_stripe_object(
59
+ method: :post,
60
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/deliver", { card: CGI.escape(@resource["id"]) }),
61
+ params: params,
62
+ opts: opts
63
+ )
64
+ end
65
+
66
+ def fail_card(params = {}, opts = {})
67
+ @resource.request_stripe_object(
68
+ method: :post,
69
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/fail", { card: CGI.escape(@resource["id"]) }),
70
+ params: params,
71
+ opts: opts
72
+ )
73
+ end
74
+
75
+ def return_card(params = {}, opts = {})
76
+ @resource.request_stripe_object(
77
+ method: :post,
78
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/return", { card: CGI.escape(@resource["id"]) }),
79
+ params: params,
80
+ opts: opts
81
+ )
82
+ end
14
83
 
15
- def details(params = {}, opts = {})
16
- request_stripe_object(
17
- method: :get,
18
- path: resource_url + "/details",
19
- params: params,
20
- opts: opts
21
- )
84
+ def ship_card(params = {}, opts = {})
85
+ @resource.request_stripe_object(
86
+ method: :post,
87
+ path: format("/v1/test_helpers/issuing/cards/%<card>s/shipping/ship", { card: CGI.escape(@resource["id"]) }),
88
+ params: params,
89
+ opts: opts
90
+ )
91
+ end
22
92
  end
23
93
  end
24
94
  end
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Issuing
6
+ # An Issuing `Cardholder` object represents an individual or business entity who is [issued](https://stripe.com/docs/issuing) cards.
7
+ #
8
+ # Related guide: [How to create a cardholder](https://stripe.com/docs/issuing/cards#create-cardholder)
6
9
  class Cardholder < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  extend Stripe::APIOperations::List
@@ -3,6 +3,9 @@
3
3
 
4
4
  module Stripe
5
5
  module Issuing
6
+ # As a [card issuer](https://stripe.com/docs/issuing), you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.
7
+ #
8
+ # Related guide: [Issuing disputes](https://stripe.com/docs/issuing/purchases/disputes)
6
9
  class Dispute < APIResource
7
10
  extend Stripe::APIOperations::Create
8
11
  extend Stripe::APIOperations::List
@@ -10,12 +13,19 @@ module Stripe
10
13
 
11
14
  OBJECT_NAME = "issuing.dispute"
12
15
 
13
- custom_method :submit, http_verb: :post
14
-
15
16
  def submit(params = {}, opts = {})
16
17
  request_stripe_object(
17
18
  method: :post,
18
- path: resource_url + "/submit",
19
+ path: format("/v1/issuing/disputes/%<dispute>s/submit", { dispute: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
25
+ def self.submit(dispute, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/issuing/disputes/%<dispute>s/submit", { dispute: CGI.escape(dispute) }),
19
29
  params: params,
20
30
  opts: opts
21
31
  )
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ # An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://stripe.com/docs/issuing), you can [view and manage these tokens](https://stripe.com/docs/issuing/controls/token-management) through Stripe.
7
+ class Token < APIResource
8
+ extend Stripe::APIOperations::List
9
+ include Stripe::APIOperations::Save
10
+
11
+ OBJECT_NAME = "issuing.token"
12
+ end
13
+ end
14
+ end
@@ -3,11 +3,60 @@
3
3
 
4
4
  module Stripe
5
5
  module Issuing
6
+ # Any use of an [issued card](https://stripe.com/docs/issuing) that results in funds entering or leaving
7
+ # your Stripe account, such as a completed purchase or refund, is represented by an Issuing
8
+ # `Transaction` object.
9
+ #
10
+ # Related guide: [Issued card transactions](https://stripe.com/docs/issuing/purchases/transactions)
6
11
  class Transaction < APIResource
7
12
  extend Stripe::APIOperations::List
8
13
  include Stripe::APIOperations::Save
9
14
 
10
15
  OBJECT_NAME = "issuing.transaction"
16
+
17
+ def test_helpers
18
+ TestHelpers.new(self)
19
+ end
20
+
21
+ class TestHelpers < APIResourceTestHelpers
22
+ RESOURCE_CLASS = Transaction
23
+
24
+ def self.create_force_capture(params = {}, opts = {})
25
+ request_stripe_object(
26
+ method: :post,
27
+ path: "/v1/test_helpers/issuing/transactions/create_force_capture",
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
32
+
33
+ def self.create_unlinked_refund(params = {}, opts = {})
34
+ request_stripe_object(
35
+ method: :post,
36
+ path: "/v1/test_helpers/issuing/transactions/create_unlinked_refund",
37
+ params: params,
38
+ opts: opts
39
+ )
40
+ end
41
+
42
+ def self.refund(transaction, params = {}, opts = {})
43
+ request_stripe_object(
44
+ method: :post,
45
+ path: format("/v1/test_helpers/issuing/transactions/%<transaction>s/refund", { transaction: CGI.escape(transaction) }),
46
+ params: params,
47
+ opts: opts
48
+ )
49
+ end
50
+
51
+ def refund(params = {}, opts = {})
52
+ @resource.request_stripe_object(
53
+ method: :post,
54
+ path: format("/v1/test_helpers/issuing/transactions/%<transaction>s/refund", { transaction: CGI.escape(@resource["id"]) }),
55
+ params: params,
56
+ opts: opts
57
+ )
58
+ end
59
+ end
11
60
  end
12
61
  end
13
62
  end
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A line item.
5
6
  class LineItem < APIResource
6
7
  OBJECT_NAME = "item"
7
8
  end
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Login Links are single-use login link for an Express account to access their Stripe dashboard.
5
6
  class LoginLink < APIResource
6
7
  OBJECT_NAME = "login_link"
7
8
 
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A Mandate is a record of the permission that your customer gives you to debit their payment method.
5
6
  class Mandate < APIResource
6
7
  OBJECT_NAME = "mandate"
7
8
  end
@@ -2,21 +2,38 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A PaymentIntent guides you through the process of collecting a payment from your customer.
6
+ # We recommend that you create exactly one PaymentIntent for each order or
7
+ # customer session in your system. You can reference the PaymentIntent later to
8
+ # see the history of payment attempts for a particular session.
9
+ #
10
+ # A PaymentIntent transitions through
11
+ # [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses)
12
+ # throughout its lifetime as it interfaces with Stripe.js to perform
13
+ # authentication flows and ultimately creates at most one successful charge.
14
+ #
15
+ # Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents)
5
16
  class PaymentIntent < APIResource
6
17
  extend Stripe::APIOperations::Create
7
18
  extend Stripe::APIOperations::List
19
+ extend Stripe::APIOperations::Search
8
20
  include Stripe::APIOperations::Save
9
21
 
10
22
  OBJECT_NAME = "payment_intent"
11
23
 
12
- custom_method :cancel, http_verb: :post
13
- custom_method :capture, http_verb: :post
14
- custom_method :confirm, http_verb: :post
24
+ def apply_customer_balance(params = {}, opts = {})
25
+ request_stripe_object(
26
+ method: :post,
27
+ path: format("/v1/payment_intents/%<intent>s/apply_customer_balance", { intent: CGI.escape(self["id"]) }),
28
+ params: params,
29
+ opts: opts
30
+ )
31
+ end
15
32
 
16
33
  def cancel(params = {}, opts = {})
17
34
  request_stripe_object(
18
35
  method: :post,
19
- path: resource_url + "/cancel",
36
+ path: format("/v1/payment_intents/%<intent>s/cancel", { intent: CGI.escape(self["id"]) }),
20
37
  params: params,
21
38
  opts: opts
22
39
  )
@@ -25,7 +42,7 @@ module Stripe
25
42
  def capture(params = {}, opts = {})
26
43
  request_stripe_object(
27
44
  method: :post,
28
- path: resource_url + "/capture",
45
+ path: format("/v1/payment_intents/%<intent>s/capture", { intent: CGI.escape(self["id"]) }),
29
46
  params: params,
30
47
  opts: opts
31
48
  )
@@ -34,10 +51,90 @@ module Stripe
34
51
  def confirm(params = {}, opts = {})
35
52
  request_stripe_object(
36
53
  method: :post,
37
- path: resource_url + "/confirm",
54
+ path: format("/v1/payment_intents/%<intent>s/confirm", { intent: CGI.escape(self["id"]) }),
55
+ params: params,
56
+ opts: opts
57
+ )
58
+ end
59
+
60
+ def increment_authorization(params = {}, opts = {})
61
+ request_stripe_object(
62
+ method: :post,
63
+ path: format("/v1/payment_intents/%<intent>s/increment_authorization", { intent: CGI.escape(self["id"]) }),
64
+ params: params,
65
+ opts: opts
66
+ )
67
+ end
68
+
69
+ def verify_microdeposits(params = {}, opts = {})
70
+ request_stripe_object(
71
+ method: :post,
72
+ path: format("/v1/payment_intents/%<intent>s/verify_microdeposits", { intent: CGI.escape(self["id"]) }),
73
+ params: params,
74
+ opts: opts
75
+ )
76
+ end
77
+
78
+ def self.apply_customer_balance(intent, params = {}, opts = {})
79
+ request_stripe_object(
80
+ method: :post,
81
+ path: format("/v1/payment_intents/%<intent>s/apply_customer_balance", { intent: CGI.escape(intent) }),
82
+ params: params,
83
+ opts: opts
84
+ )
85
+ end
86
+
87
+ def self.cancel(intent, params = {}, opts = {})
88
+ request_stripe_object(
89
+ method: :post,
90
+ path: format("/v1/payment_intents/%<intent>s/cancel", { intent: CGI.escape(intent) }),
38
91
  params: params,
39
92
  opts: opts
40
93
  )
41
94
  end
95
+
96
+ def self.capture(intent, params = {}, opts = {})
97
+ request_stripe_object(
98
+ method: :post,
99
+ path: format("/v1/payment_intents/%<intent>s/capture", { intent: CGI.escape(intent) }),
100
+ params: params,
101
+ opts: opts
102
+ )
103
+ end
104
+
105
+ def self.confirm(intent, params = {}, opts = {})
106
+ request_stripe_object(
107
+ method: :post,
108
+ path: format("/v1/payment_intents/%<intent>s/confirm", { intent: CGI.escape(intent) }),
109
+ params: params,
110
+ opts: opts
111
+ )
112
+ end
113
+
114
+ def self.increment_authorization(intent, params = {}, opts = {})
115
+ request_stripe_object(
116
+ method: :post,
117
+ path: format("/v1/payment_intents/%<intent>s/increment_authorization", { intent: CGI.escape(intent) }),
118
+ params: params,
119
+ opts: opts
120
+ )
121
+ end
122
+
123
+ def self.verify_microdeposits(intent, params = {}, opts = {})
124
+ request_stripe_object(
125
+ method: :post,
126
+ path: format("/v1/payment_intents/%<intent>s/verify_microdeposits", { intent: CGI.escape(intent) }),
127
+ params: params,
128
+ opts: opts
129
+ )
130
+ end
131
+
132
+ def self.search(params = {}, opts = {})
133
+ _search("/v1/payment_intents/search", params, opts)
134
+ end
135
+
136
+ def self.search_auto_paging_each(params = {}, opts = {}, &blk)
137
+ search(params, opts).auto_paging_each(&blk)
138
+ end
42
139
  end
43
140
  end
@@ -0,0 +1,35 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times.
6
+ #
7
+ # When a customer opens a payment link it will open a new [checkout session](https://stripe.com/docs/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://stripe.com/docs/api/events/types#event_types-checkout.session.completed) to track payments through payment links.
8
+ #
9
+ # Related guide: [Payment Links API](https://stripe.com/docs/payment-links)
10
+ class PaymentLink < APIResource
11
+ extend Stripe::APIOperations::Create
12
+ extend Stripe::APIOperations::List
13
+ include Stripe::APIOperations::Save
14
+
15
+ OBJECT_NAME = "payment_link"
16
+
17
+ def list_line_items(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :get,
20
+ path: format("/v1/payment_links/%<payment_link>s/line_items", { payment_link: CGI.escape(self["id"]) }),
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ def self.list_line_items(payment_link, params = {}, opts = {})
27
+ request_stripe_object(
28
+ method: :get,
29
+ path: format("/v1/payment_links/%<payment_link>s/line_items", { payment_link: CGI.escape(payment_link) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+ end
35
+ end
@@ -2,6 +2,11 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # PaymentMethod objects represent your customer's payment instruments.
6
+ # You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to
7
+ # Customer objects to store instrument details for future payments.
8
+ #
9
+ # Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios).
5
10
  class PaymentMethod < APIResource
6
11
  extend Stripe::APIOperations::Create
7
12
  extend Stripe::APIOperations::List
@@ -9,13 +14,10 @@ module Stripe
9
14
 
10
15
  OBJECT_NAME = "payment_method"
11
16
 
12
- custom_method :attach, http_verb: :post
13
- custom_method :detach, http_verb: :post
14
-
15
17
  def attach(params = {}, opts = {})
16
18
  request_stripe_object(
17
19
  method: :post,
18
- path: resource_url + "/attach",
20
+ path: format("/v1/payment_methods/%<payment_method>s/attach", { payment_method: CGI.escape(self["id"]) }),
19
21
  params: params,
20
22
  opts: opts
21
23
  )
@@ -24,7 +26,25 @@ module Stripe
24
26
  def detach(params = {}, opts = {})
25
27
  request_stripe_object(
26
28
  method: :post,
27
- path: resource_url + "/detach",
29
+ path: format("/v1/payment_methods/%<payment_method>s/detach", { payment_method: CGI.escape(self["id"]) }),
30
+ params: params,
31
+ opts: opts
32
+ )
33
+ end
34
+
35
+ def self.attach(payment_method, params = {}, opts = {})
36
+ request_stripe_object(
37
+ method: :post,
38
+ path: format("/v1/payment_methods/%<payment_method>s/attach", { payment_method: CGI.escape(payment_method) }),
39
+ params: params,
40
+ opts: opts
41
+ )
42
+ end
43
+
44
+ def self.detach(payment_method, params = {}, opts = {})
45
+ request_stripe_object(
46
+ method: :post,
47
+ path: format("/v1/payment_methods/%<payment_method>s/detach", { payment_method: CGI.escape(payment_method) }),
28
48
  params: params,
29
49
  opts: opts
30
50
  )
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios.
6
+ #
7
+ # There are two types of PaymentMethodConfigurations. Which is used depends on the [charge type](https://stripe.com/docs/connect/charges):
8
+ #
9
+ # **Direct** configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect.
10
+ #
11
+ # **Child** configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter.
12
+ #
13
+ # Child configurations have a `parent` that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account's associated child configuration. Parent configurations are [managed in the dashboard](https://dashboard.stripe.com/settings/payment_methods/connected_accounts) and are not available in this API.
14
+ #
15
+ # Related guides:
16
+ # - [Payment Method Configurations API](https://stripe.com/docs/connect/payment-method-configurations)
17
+ # - [Multiple configurations on dynamic payment methods](https://stripe.com/docs/payments/multiple-payment-method-configs)
18
+ # - [Multiple configurations for your Connect accounts](https://stripe.com/docs/connect/multiple-payment-method-configurations)
19
+ class PaymentMethodConfiguration < APIResource
20
+ extend Stripe::APIOperations::Create
21
+ extend Stripe::APIOperations::List
22
+ include Stripe::APIOperations::Save
23
+
24
+ OBJECT_NAME = "payment_method_configuration"
25
+ end
26
+ end
@@ -0,0 +1,34 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ # A payment method domain represents a web domain that you have registered with Stripe.
6
+ # Stripe Elements use registered payment method domains to control where certain payment methods are shown.
7
+ #
8
+ # Related guides: [Payment method domains](https://stripe.com/docs/payments/payment-methods/pmd-registration).
9
+ class PaymentMethodDomain < APIResource
10
+ extend Stripe::APIOperations::Create
11
+ extend Stripe::APIOperations::List
12
+ include Stripe::APIOperations::Save
13
+
14
+ OBJECT_NAME = "payment_method_domain"
15
+
16
+ def validate(params = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :post,
19
+ path: format("/v1/payment_method_domains/%<payment_method_domain>s/validate", { payment_method_domain: CGI.escape(self["id"]) }),
20
+ params: params,
21
+ opts: opts
22
+ )
23
+ end
24
+
25
+ def self.validate(payment_method_domain, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/payment_method_domains/%<payment_method_domain>s/validate", { payment_method_domain: CGI.escape(payment_method_domain) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
33
+ end
34
+ end
@@ -2,6 +2,14 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # A `Payout` object is created when you receive funds from Stripe, or when you
6
+ # initiate a payout to either a bank account or debit card of a [connected
7
+ # Stripe account](https://stripe.com/docs/connect/bank-debit-card-payouts). You can retrieve individual payouts,
8
+ # and list all payouts. Payouts are made on [varying
9
+ # schedules](https://stripe.com/docs/connect/manage-payout-schedule), depending on your country and
10
+ # industry.
11
+ #
12
+ # Related guide: [Receiving payouts](https://stripe.com/docs/payouts)
5
13
  class Payout < APIResource
6
14
  extend Stripe::APIOperations::Create
7
15
  extend Stripe::APIOperations::List
@@ -9,13 +17,10 @@ module Stripe
9
17
 
10
18
  OBJECT_NAME = "payout"
11
19
 
12
- custom_method :cancel, http_verb: :post
13
- custom_method :reverse, http_verb: :post
14
-
15
20
  def cancel(params = {}, opts = {})
16
21
  request_stripe_object(
17
22
  method: :post,
18
- path: resource_url + "/cancel",
23
+ path: format("/v1/payouts/%<payout>s/cancel", { payout: CGI.escape(self["id"]) }),
19
24
  params: params,
20
25
  opts: opts
21
26
  )
@@ -24,7 +29,25 @@ module Stripe
24
29
  def reverse(params = {}, opts = {})
25
30
  request_stripe_object(
26
31
  method: :post,
27
- path: resource_url + "/reverse",
32
+ path: format("/v1/payouts/%<payout>s/reverse", { payout: CGI.escape(self["id"]) }),
33
+ params: params,
34
+ opts: opts
35
+ )
36
+ end
37
+
38
+ def self.cancel(payout, params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/payouts/%<payout>s/cancel", { payout: CGI.escape(payout) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ def self.reverse(payout, params = {}, opts = {})
48
+ request_stripe_object(
49
+ method: :post,
50
+ path: format("/v1/payouts/%<payout>s/reverse", { payout: CGI.escape(payout) }),
28
51
  params: params,
29
52
  opts: opts
30
53
  )
@@ -2,6 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # This is an object representing a person associated with a Stripe account.
6
+ #
7
+ # A platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account.
8
+ # See the [Standard onboarding](https://stripe.com/docs/connect/standard-accounts) or [Express onboarding documentation](https://stripe.com/docs/connect/express-accounts) for information about platform prefilling and account onboarding steps.
9
+ #
10
+ # Related guide: [Handling identity verification with the API](https://stripe.com/docs/connect/handling-api-verification#person-information)
5
11
  class Person < APIResource
6
12
  extend Stripe::APIOperations::List
7
13
  include Stripe::APIOperations::Save
@@ -2,6 +2,14 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration.
6
+ #
7
+ # Plans define the base price, currency, and billing cycle for recurring purchases of products.
8
+ # [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.
9
+ #
10
+ # For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year.
11
+ #
12
+ # Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/products-prices/overview).
5
13
  class Plan < APIResource
6
14
  extend Stripe::APIOperations::Create
7
15
  include Stripe::APIOperations::Delete
@@ -2,11 +2,26 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Stripe
5
+ # Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.
6
+ # [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.
7
+ #
8
+ # For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once.
9
+ #
10
+ # Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), [create an invoice](https://stripe.com/docs/billing/invoices/create), and more about [products and prices](https://stripe.com/docs/products-prices/overview).
5
11
  class Price < APIResource
6
12
  extend Stripe::APIOperations::Create
7
13
  extend Stripe::APIOperations::List
14
+ extend Stripe::APIOperations::Search
8
15
  include Stripe::APIOperations::Save
9
16
 
10
17
  OBJECT_NAME = "price"
18
+
19
+ def self.search(params = {}, opts = {})
20
+ _search("/v1/prices/search", params, opts)
21
+ end
22
+
23
+ def self.search_auto_paging_each(params = {}, opts = {}, &blk)
24
+ search(params, opts).auto_paging_each(&blk)
25
+ end
11
26
  end
12
27
  end