stripe 10.7.1 → 10.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile +1 -1
  4. data/OPENAPI_VERSION +1 -1
  5. data/VERSION +1 -1
  6. data/lib/stripe/resources/account.rb +61 -1
  7. data/lib/stripe/resources/account_link.rb +5 -0
  8. data/lib/stripe/resources/account_session.rb +5 -0
  9. data/lib/stripe/resources/apple_pay_domain.rb +40 -0
  10. data/lib/stripe/resources/application_fee.rb +5 -0
  11. data/lib/stripe/resources/apps/secret.rb +10 -0
  12. data/lib/stripe/resources/balance_transaction.rb +12 -0
  13. data/lib/stripe/resources/bank_account.rb +27 -0
  14. data/lib/stripe/resources/billing_portal/configuration.rb +30 -0
  15. data/lib/stripe/resources/billing_portal/session.rb +10 -0
  16. data/lib/stripe/resources/card.rb +27 -0
  17. data/lib/stripe/resources/charge.rb +22 -0
  18. data/lib/stripe/resources/checkout/session.rb +20 -0
  19. data/lib/stripe/resources/climate/order.rb +22 -0
  20. data/lib/stripe/resources/climate/product.rb +10 -0
  21. data/lib/stripe/resources/climate/supplier.rb +10 -0
  22. data/lib/stripe/resources/country_spec.rb +5 -0
  23. data/lib/stripe/resources/coupon.rb +42 -0
  24. data/lib/stripe/resources/credit_note.rb +33 -0
  25. data/lib/stripe/resources/customer.rb +42 -0
  26. data/lib/stripe/resources/customer_session.rb +10 -0
  27. data/lib/stripe/resources/dispute.rb +17 -0
  28. data/lib/stripe/resources/ephemeral_key.rb +20 -0
  29. data/lib/stripe/resources/event.rb +5 -0
  30. data/lib/stripe/resources/exchange_rate.rb +5 -0
  31. data/lib/stripe/resources/file.rb +5 -0
  32. data/lib/stripe/resources/file_link.rb +20 -0
  33. data/lib/stripe/resources/financial_connections/account.rb +10 -0
  34. data/lib/stripe/resources/financial_connections/session.rb +10 -0
  35. data/lib/stripe/resources/financial_connections/transaction.rb +10 -0
  36. data/lib/stripe/resources/identity/verification_report.rb +10 -0
  37. data/lib/stripe/resources/identity/verification_session.rb +39 -0
  38. data/lib/stripe/resources/invoice.rb +45 -0
  39. data/lib/stripe/resources/invoice_item.rb +40 -0
  40. data/lib/stripe/resources/issuing/authorization.rb +20 -0
  41. data/lib/stripe/resources/issuing/card.rb +20 -0
  42. data/lib/stripe/resources/issuing/cardholder.rb +30 -0
  43. data/lib/stripe/resources/issuing/dispute.rb +30 -0
  44. data/lib/stripe/resources/issuing/token.rb +15 -0
  45. data/lib/stripe/resources/issuing/transaction.rb +20 -0
  46. data/lib/stripe/resources/payment_intent.rb +35 -0
  47. data/lib/stripe/resources/payment_link.rb +20 -0
  48. data/lib/stripe/resources/payment_method.rb +22 -0
  49. data/lib/stripe/resources/payment_method_configuration.rb +30 -0
  50. data/lib/stripe/resources/payment_method_domain.rb +30 -0
  51. data/lib/stripe/resources/payout.rb +24 -0
  52. data/lib/stripe/resources/plan.rb +40 -0
  53. data/lib/stripe/resources/price.rb +20 -0
  54. data/lib/stripe/resources/product.rb +40 -0
  55. data/lib/stripe/resources/promotion_code.rb +20 -0
  56. data/lib/stripe/resources/quote.rb +20 -0
  57. data/lib/stripe/resources/radar/early_fraud_warning.rb +10 -0
  58. data/lib/stripe/resources/radar/value_list.rb +50 -0
  59. data/lib/stripe/resources/radar/value_list_item.rb +40 -0
  60. data/lib/stripe/resources/refund.rb +36 -0
  61. data/lib/stripe/resources/reporting/report_run.rb +20 -0
  62. data/lib/stripe/resources/reporting/report_type.rb +10 -0
  63. data/lib/stripe/resources/review.rb +5 -0
  64. data/lib/stripe/resources/setup_attempt.rb +5 -0
  65. data/lib/stripe/resources/setup_intent.rb +23 -0
  66. data/lib/stripe/resources/shipping_rate.rb +20 -0
  67. data/lib/stripe/resources/sigma/scheduled_query_run.rb +10 -0
  68. data/lib/stripe/resources/source.rb +17 -0
  69. data/lib/stripe/resources/subscription.rb +46 -0
  70. data/lib/stripe/resources/subscription_item.rb +50 -0
  71. data/lib/stripe/resources/subscription_schedule.rb +30 -0
  72. data/lib/stripe/resources/tax/calculation.rb +10 -0
  73. data/lib/stripe/resources/tax/registration.rb +32 -0
  74. data/lib/stripe/resources/tax_code.rb +5 -0
  75. data/lib/stripe/resources/tax_id.rb +20 -0
  76. data/lib/stripe/resources/tax_rate.rb +20 -0
  77. data/lib/stripe/resources/terminal/configuration.rb +50 -0
  78. data/lib/stripe/resources/terminal/connection_token.rb +10 -0
  79. data/lib/stripe/resources/terminal/location.rb +51 -0
  80. data/lib/stripe/resources/terminal/reader.rb +50 -0
  81. data/lib/stripe/resources/test_helpers/test_clock.rb +40 -0
  82. data/lib/stripe/resources/token.rb +6 -0
  83. data/lib/stripe/resources/topup.rb +20 -0
  84. data/lib/stripe/resources/transfer.rb +22 -0
  85. data/lib/stripe/resources/treasury/credit_reversal.rb +20 -0
  86. data/lib/stripe/resources/treasury/debit_reversal.rb +20 -0
  87. data/lib/stripe/resources/treasury/financial_account.rb +30 -0
  88. data/lib/stripe/resources/treasury/inbound_transfer.rb +20 -0
  89. data/lib/stripe/resources/treasury/outbound_payment.rb +20 -0
  90. data/lib/stripe/resources/treasury/outbound_transfer.rb +20 -0
  91. data/lib/stripe/resources/treasury/received_credit.rb +10 -0
  92. data/lib/stripe/resources/treasury/received_debit.rb +10 -0
  93. data/lib/stripe/resources/treasury/transaction.rb +10 -0
  94. data/lib/stripe/resources/treasury/transaction_entry.rb +10 -0
  95. data/lib/stripe/resources/webhook_endpoint.rb +50 -0
  96. data/lib/stripe/version.rb +1 -1
  97. metadata +2 -2
@@ -42,5 +42,35 @@ module Stripe
42
42
  opts: opts
43
43
  )
44
44
  end
45
+
46
+ # Creates a payment method domain.
47
+ def self.create(params = {}, opts = {})
48
+ request_stripe_object(
49
+ method: :post,
50
+ path: "/v1/payment_method_domains",
51
+ params: params,
52
+ opts: opts
53
+ )
54
+ end
55
+
56
+ # Lists the details of existing payment method domains.
57
+ def self.list(filters = {}, opts = {})
58
+ request_stripe_object(
59
+ method: :get,
60
+ path: "/v1/payment_method_domains",
61
+ params: filters,
62
+ opts: opts
63
+ )
64
+ end
65
+
66
+ # Updates an existing payment method domain.
67
+ def self.update(id, params = {}, opts = {})
68
+ request_stripe_object(
69
+ method: :post,
70
+ path: format("/v1/payment_method_domains/%<id>s", { id: CGI.escape(id) }),
71
+ params: params,
72
+ opts: opts
73
+ )
74
+ end
45
75
  end
46
76
  end
@@ -60,5 +60,29 @@ module Stripe
60
60
  opts: opts
61
61
  )
62
62
  end
63
+
64
+ # To send funds to your own bank account, create a new payout object. Your [Stripe balance](https://stripe.com/docs/api#balance) must cover the payout amount. If it doesn't, you receive an “Insufficient Funds” error.
65
+ #
66
+ # If your API key is in test mode, money won't actually be sent, though every other action occurs as if you're in live mode.
67
+ #
68
+ # If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The [balance object](https://stripe.com/docs/api#balance_object) details available and pending amounts by source type.
69
+ def self.create(params = {}, opts = {})
70
+ request_stripe_object(method: :post, path: "/v1/payouts", params: params, opts: opts)
71
+ end
72
+
73
+ # Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.
74
+ def self.list(filters = {}, opts = {})
75
+ request_stripe_object(method: :get, path: "/v1/payouts", params: filters, opts: opts)
76
+ end
77
+
78
+ # Updates the specified payout by setting the values of the parameters you pass. We don't change parameters that you don't provide. This request only accepts the metadata as arguments.
79
+ def self.update(id, params = {}, opts = {})
80
+ request_stripe_object(
81
+ method: :post,
82
+ path: format("/v1/payouts/%<id>s", { id: CGI.escape(id) }),
83
+ params: params,
84
+ opts: opts
85
+ )
86
+ end
63
87
  end
64
88
  end
@@ -17,5 +17,45 @@ module Stripe
17
17
  include Stripe::APIOperations::Save
18
18
 
19
19
  OBJECT_NAME = "plan"
20
+
21
+ # 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.
22
+ def self.create(params = {}, opts = {})
23
+ request_stripe_object(method: :post, path: "/v1/plans", params: params, opts: opts)
24
+ end
25
+
26
+ # Deleting plans means new subscribers can't be added. Existing subscribers aren't affected.
27
+ def self.delete(id, params = {}, opts = {})
28
+ request_stripe_object(
29
+ method: :delete,
30
+ path: format("/v1/plans/%<id>s", { id: CGI.escape(id) }),
31
+ params: params,
32
+ opts: opts
33
+ )
34
+ end
35
+
36
+ # Deleting plans means new subscribers can't be added. Existing subscribers aren't affected.
37
+ def delete(params = {}, opts = {})
38
+ request_stripe_object(
39
+ method: :delete,
40
+ path: format("/v1/plans/%<plan>s", { plan: CGI.escape(self["id"]) }),
41
+ params: params,
42
+ opts: opts
43
+ )
44
+ end
45
+
46
+ # Returns a list of your plans.
47
+ def self.list(filters = {}, opts = {})
48
+ request_stripe_object(method: :get, path: "/v1/plans", params: filters, opts: opts)
49
+ end
50
+
51
+ # Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan's ID, amount, currency, or billing cycle.
52
+ def self.update(id, params = {}, opts = {})
53
+ request_stripe_object(
54
+ method: :post,
55
+ path: format("/v1/plans/%<id>s", { id: CGI.escape(id) }),
56
+ params: params,
57
+ opts: opts
58
+ )
59
+ end
20
60
  end
21
61
  end
@@ -16,6 +16,16 @@ module Stripe
16
16
 
17
17
  OBJECT_NAME = "price"
18
18
 
19
+ # Creates a new price for an existing product. The price can be recurring or one-time.
20
+ def self.create(params = {}, opts = {})
21
+ request_stripe_object(method: :post, path: "/v1/prices", params: params, opts: opts)
22
+ end
23
+
24
+ # Returns a list of your active prices, excluding [inline prices](https://stripe.com/docs/products-prices/pricing-models#inline-pricing). For the list of inactive prices, set active to false.
25
+ def self.list(filters = {}, opts = {})
26
+ request_stripe_object(method: :get, path: "/v1/prices", params: filters, opts: opts)
27
+ end
28
+
19
29
  def self.search(params = {}, opts = {})
20
30
  request_stripe_object(method: :get, path: "/v1/prices/search", params: params, opts: opts)
21
31
  end
@@ -23,5 +33,15 @@ module Stripe
23
33
  def self.search_auto_paging_each(params = {}, opts = {}, &blk)
24
34
  search(params, opts).auto_paging_each(&blk)
25
35
  end
36
+
37
+ # Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged.
38
+ def self.update(id, params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :post,
41
+ path: format("/v1/prices/%<id>s", { id: CGI.escape(id) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
26
46
  end
27
47
  end
@@ -19,6 +19,36 @@ module Stripe
19
19
 
20
20
  OBJECT_NAME = "product"
21
21
 
22
+ # Creates a new product object.
23
+ def self.create(params = {}, opts = {})
24
+ request_stripe_object(method: :post, path: "/v1/products", params: params, opts: opts)
25
+ end
26
+
27
+ # Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.
28
+ def self.delete(id, params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :delete,
31
+ path: format("/v1/products/%<id>s", { id: CGI.escape(id) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ # Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.
38
+ def delete(params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :delete,
41
+ path: format("/v1/products/%<id>s", { id: CGI.escape(self["id"]) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ # Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.
48
+ def self.list(filters = {}, opts = {})
49
+ request_stripe_object(method: :get, path: "/v1/products", params: filters, opts: opts)
50
+ end
51
+
22
52
  def self.search(params = {}, opts = {})
23
53
  request_stripe_object(method: :get, path: "/v1/products/search", params: params, opts: opts)
24
54
  end
@@ -26,5 +56,15 @@ module Stripe
26
56
  def self.search_auto_paging_each(params = {}, opts = {}, &blk)
27
57
  search(params, opts).auto_paging_each(&blk)
28
58
  end
59
+
60
+ # Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
61
+ def self.update(id, params = {}, opts = {})
62
+ request_stripe_object(
63
+ method: :post,
64
+ path: format("/v1/products/%<id>s", { id: CGI.escape(id) }),
65
+ params: params,
66
+ opts: opts
67
+ )
68
+ end
29
69
  end
30
70
  end
@@ -10,5 +10,25 @@ module Stripe
10
10
  include Stripe::APIOperations::Save
11
11
 
12
12
  OBJECT_NAME = "promotion_code"
13
+
14
+ # A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(method: :post, path: "/v1/promotion_codes", params: params, opts: opts)
17
+ end
18
+
19
+ # Returns a list of your promotion codes.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(method: :get, path: "/v1/promotion_codes", params: filters, opts: opts)
22
+ end
23
+
24
+ # Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.
25
+ def self.update(id, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/promotion_codes/%<id>s", { id: CGI.escape(id) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
13
33
  end
14
34
  end
@@ -136,5 +136,25 @@ module Stripe
136
136
  &read_body_chunk_block
137
137
  )
138
138
  end
139
+
140
+ # A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the [quote template](https://dashboard.stripe.com/settings/billing/quote).
141
+ def self.create(params = {}, opts = {})
142
+ request_stripe_object(method: :post, path: "/v1/quotes", params: params, opts: opts)
143
+ end
144
+
145
+ # Returns a list of your quotes.
146
+ def self.list(filters = {}, opts = {})
147
+ request_stripe_object(method: :get, path: "/v1/quotes", params: filters, opts: opts)
148
+ end
149
+
150
+ # A quote models prices and services for a customer.
151
+ def self.update(id, params = {}, opts = {})
152
+ request_stripe_object(
153
+ method: :post,
154
+ path: format("/v1/quotes/%<id>s", { id: CGI.escape(id) }),
155
+ params: params,
156
+ opts: opts
157
+ )
158
+ end
139
159
  end
140
160
  end
@@ -11,6 +11,16 @@ module Stripe
11
11
  extend Stripe::APIOperations::List
12
12
 
13
13
  OBJECT_NAME = "radar.early_fraud_warning"
14
+
15
+ # Returns a list of early fraud warnings.
16
+ def self.list(filters = {}, opts = {})
17
+ request_stripe_object(
18
+ method: :get,
19
+ path: "/v1/radar/early_fraud_warnings",
20
+ params: filters,
21
+ opts: opts
22
+ )
23
+ end
14
24
  end
15
25
  end
16
26
  end
@@ -13,6 +13,56 @@ module Stripe
13
13
  include Stripe::APIOperations::Save
14
14
 
15
15
  OBJECT_NAME = "radar.value_list"
16
+
17
+ # Creates a new ValueList object, which can then be referenced in rules.
18
+ def self.create(params = {}, opts = {})
19
+ request_stripe_object(
20
+ method: :post,
21
+ path: "/v1/radar/value_lists",
22
+ params: params,
23
+ opts: opts
24
+ )
25
+ end
26
+
27
+ # Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules.
28
+ def self.delete(id, params = {}, opts = {})
29
+ request_stripe_object(
30
+ method: :delete,
31
+ path: format("/v1/radar/value_lists/%<id>s", { id: CGI.escape(id) }),
32
+ params: params,
33
+ opts: opts
34
+ )
35
+ end
36
+
37
+ # Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules.
38
+ def delete(params = {}, opts = {})
39
+ request_stripe_object(
40
+ method: :delete,
41
+ path: format("/v1/radar/value_lists/%<value_list>s", { value_list: CGI.escape(self["id"]) }),
42
+ params: params,
43
+ opts: opts
44
+ )
45
+ end
46
+
47
+ # Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
48
+ def self.list(filters = {}, opts = {})
49
+ request_stripe_object(
50
+ method: :get,
51
+ path: "/v1/radar/value_lists",
52
+ params: filters,
53
+ opts: opts
54
+ )
55
+ end
56
+
57
+ # Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable.
58
+ def self.update(id, params = {}, opts = {})
59
+ request_stripe_object(
60
+ method: :post,
61
+ path: format("/v1/radar/value_lists/%<id>s", { id: CGI.escape(id) }),
62
+ params: params,
63
+ opts: opts
64
+ )
65
+ end
16
66
  end
17
67
  end
18
68
  end
@@ -12,6 +12,46 @@ module Stripe
12
12
  extend Stripe::APIOperations::List
13
13
 
14
14
  OBJECT_NAME = "radar.value_list_item"
15
+
16
+ # Creates a new ValueListItem object, which is added to the specified parent value list.
17
+ def self.create(params = {}, opts = {})
18
+ request_stripe_object(
19
+ method: :post,
20
+ path: "/v1/radar/value_list_items",
21
+ params: params,
22
+ opts: opts
23
+ )
24
+ end
25
+
26
+ # Deletes a ValueListItem object, removing it from its parent value list.
27
+ def self.delete(id, params = {}, opts = {})
28
+ request_stripe_object(
29
+ method: :delete,
30
+ path: format("/v1/radar/value_list_items/%<id>s", { id: CGI.escape(id) }),
31
+ params: params,
32
+ opts: opts
33
+ )
34
+ end
35
+
36
+ # Deletes a ValueListItem object, removing it from its parent value list.
37
+ def delete(params = {}, opts = {})
38
+ request_stripe_object(
39
+ method: :delete,
40
+ path: format("/v1/radar/value_list_items/%<item>s", { item: CGI.escape(self["id"]) }),
41
+ params: params,
42
+ opts: opts
43
+ )
44
+ end
45
+
46
+ # Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
47
+ def self.list(filters = {}, opts = {})
48
+ request_stripe_object(
49
+ method: :get,
50
+ path: "/v1/radar/value_list_items",
51
+ params: filters,
52
+ opts: opts
53
+ )
54
+ end
15
55
  end
16
56
  end
17
57
  end
@@ -38,6 +38,42 @@ module Stripe
38
38
  )
39
39
  end
40
40
 
41
+ def self.list(filters = {}, opts = {})
42
+ request_stripe_object(
43
+ method: :get,
44
+ path: format("/v1/refunds"),
45
+ params: filters,
46
+ opts: opts
47
+ )
48
+ end
49
+
50
+ # When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.
51
+ #
52
+ # Creating a new refund will refund a charge that has previously been created but not yet refunded.
53
+ # Funds will be refunded to the credit or debit card that was originally charged.
54
+ #
55
+ # You can optionally refund only part of a charge.
56
+ # You can do so multiple times, until the entire charge has been refunded.
57
+ #
58
+ # Once entirely refunded, a charge can't be refunded again.
59
+ # This method will raise an error when called on an already-refunded charge,
60
+ # or when trying to refund more money than is left on a charge.
61
+ def self.create(params = {}, opts = {})
62
+ request_stripe_object(method: :post, path: "/v1/refunds", params: params, opts: opts)
63
+ end
64
+
65
+ # Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don't provide remain unchanged.
66
+ #
67
+ # This request only accepts metadata as an argument.
68
+ def self.update(id, params = {}, opts = {})
69
+ request_stripe_object(
70
+ method: :post,
71
+ path: format("/v1/refunds/%<id>s", { id: CGI.escape(id) }),
72
+ params: params,
73
+ opts: opts
74
+ )
75
+ end
76
+
41
77
  def test_helpers
42
78
  TestHelpers.new(self)
43
79
  end
@@ -16,6 +16,26 @@ module Stripe
16
16
  extend Stripe::APIOperations::List
17
17
 
18
18
  OBJECT_NAME = "reporting.report_run"
19
+
20
+ # Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).)
21
+ def self.create(params = {}, opts = {})
22
+ request_stripe_object(
23
+ method: :post,
24
+ path: "/v1/reporting/report_runs",
25
+ params: params,
26
+ opts: opts
27
+ )
28
+ end
29
+
30
+ # Returns a list of Report Runs, with the most recent appearing first.
31
+ def self.list(filters = {}, opts = {})
32
+ request_stripe_object(
33
+ method: :get,
34
+ path: "/v1/reporting/report_runs",
35
+ params: filters,
36
+ opts: opts
37
+ )
38
+ end
19
39
  end
20
40
  end
21
41
  end
@@ -15,6 +15,16 @@ module Stripe
15
15
  extend Stripe::APIOperations::List
16
16
 
17
17
  OBJECT_NAME = "reporting.report_type"
18
+
19
+ # Returns a full list of Report Types.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :get,
23
+ path: "/v1/reporting/report_types",
24
+ params: filters,
25
+ opts: opts
26
+ )
27
+ end
18
28
  end
19
29
  end
20
30
  end
@@ -30,5 +30,10 @@ module Stripe
30
30
  opts: opts
31
31
  )
32
32
  end
33
+
34
+ # Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
35
+ def self.list(filters = {}, opts = {})
36
+ request_stripe_object(method: :get, path: "/v1/reviews", params: filters, opts: opts)
37
+ end
33
38
  end
34
39
  end
@@ -10,5 +10,10 @@ module Stripe
10
10
  extend Stripe::APIOperations::List
11
11
 
12
12
  OBJECT_NAME = "setup_attempt"
13
+
14
+ # Returns a list of SetupAttempts that associate with a provided SetupIntent.
15
+ def self.list(filters = {}, opts = {})
16
+ request_stripe_object(method: :get, path: "/v1/setup_attempts", params: filters, opts: opts)
17
+ end
13
18
  end
14
19
  end
@@ -119,5 +119,28 @@ module Stripe
119
119
  opts: opts
120
120
  )
121
121
  end
122
+
123
+ # Creates a SetupIntent object.
124
+ #
125
+ # After you create the SetupIntent, attach a payment method and [confirm](https://stripe.com/docs/api/setup_intents/confirm)
126
+ # it to collect any required permissions to charge the payment method later.
127
+ def self.create(params = {}, opts = {})
128
+ request_stripe_object(method: :post, path: "/v1/setup_intents", params: params, opts: opts)
129
+ end
130
+
131
+ # Returns a list of SetupIntents.
132
+ def self.list(filters = {}, opts = {})
133
+ request_stripe_object(method: :get, path: "/v1/setup_intents", params: filters, opts: opts)
134
+ end
135
+
136
+ # Updates a SetupIntent object.
137
+ def self.update(id, params = {}, opts = {})
138
+ request_stripe_object(
139
+ method: :post,
140
+ path: format("/v1/setup_intents/%<id>s", { id: CGI.escape(id) }),
141
+ params: params,
142
+ opts: opts
143
+ )
144
+ end
122
145
  end
123
146
  end
@@ -10,5 +10,25 @@ module Stripe
10
10
  include Stripe::APIOperations::Save
11
11
 
12
12
  OBJECT_NAME = "shipping_rate"
13
+
14
+ # Creates a new shipping rate object.
15
+ def self.create(params = {}, opts = {})
16
+ request_stripe_object(method: :post, path: "/v1/shipping_rates", params: params, opts: opts)
17
+ end
18
+
19
+ # Returns a list of your shipping rates.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(method: :get, path: "/v1/shipping_rates", params: filters, opts: opts)
22
+ end
23
+
24
+ # Updates an existing shipping rate object.
25
+ def self.update(id, params = {}, opts = {})
26
+ request_stripe_object(
27
+ method: :post,
28
+ path: format("/v1/shipping_rates/%<id>s", { id: CGI.escape(id) }),
29
+ params: params,
30
+ opts: opts
31
+ )
32
+ end
13
33
  end
14
34
  end
@@ -15,6 +15,16 @@ module Stripe
15
15
  def self.resource_url
16
16
  "/v1/sigma/scheduled_query_runs"
17
17
  end
18
+
19
+ # Returns a list of scheduled query runs.
20
+ def self.list(filters = {}, opts = {})
21
+ request_stripe_object(
22
+ method: :get,
23
+ path: "/v1/sigma/scheduled_query_runs",
24
+ params: filters,
25
+ opts: opts
26
+ )
27
+ end
18
28
  end
19
29
  end
20
30
  end
@@ -64,5 +64,22 @@ module Stripe
64
64
  end
65
65
  extend Gem::Deprecate
66
66
  deprecate :source_transactions, :"Source.list_source_transactions", 2020, 1
67
+
68
+ # Creates a new source object.
69
+ def self.create(params = {}, opts = {})
70
+ request_stripe_object(method: :post, path: "/v1/sources", params: params, opts: opts)
71
+ end
72
+
73
+ # Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
74
+ #
75
+ # This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](https://stripe.com/docs/sources) for more detail.
76
+ def self.update(id, params = {}, opts = {})
77
+ request_stripe_object(
78
+ method: :post,
79
+ path: format("/v1/sources/%<id>s", { id: CGI.escape(id) }),
80
+ params: params,
81
+ opts: opts
82
+ )
83
+ end
67
84
  end
68
85
  end
@@ -83,6 +83,22 @@ module Stripe
83
83
 
84
84
  save_nested_resource :source
85
85
 
86
+ # Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.
87
+ #
88
+ # When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request.
89
+ # The payment_behavior parameter determines the exact behavior of the initial payment.
90
+ #
91
+ # To start subscriptions where the first invoice always begins in a draft status, use [subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules#managing) instead.
92
+ # Schedules provide the flexibility to model more complex billing configurations that change over time.
93
+ def self.create(params = {}, opts = {})
94
+ request_stripe_object(method: :post, path: "/v1/subscriptions", params: params, opts: opts)
95
+ end
96
+
97
+ # By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.
98
+ def self.list(filters = {}, opts = {})
99
+ request_stripe_object(method: :get, path: "/v1/subscriptions", params: filters, opts: opts)
100
+ end
101
+
86
102
  def self.search(params = {}, opts = {})
87
103
  request_stripe_object(
88
104
  method: :get,
@@ -95,5 +111,35 @@ module Stripe
95
111
  def self.search_auto_paging_each(params = {}, opts = {}, &blk)
96
112
  search(params, opts).auto_paging_each(&blk)
97
113
  end
114
+
115
+ # Updates an existing subscription to match the specified parameters.
116
+ # When changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes.
117
+ # To preview how the proration is calculated, use the [upcoming invoice](https://stripe.com/docs/api/invoices/upcoming) endpoint.
118
+ #
119
+ # By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they'll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they'll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month's 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes.
120
+ #
121
+ # Switching prices does not normally change the billing date or generate an immediate charge unless:
122
+ #
123
+ #
124
+ # The billing interval is changed (for example, from monthly to yearly).
125
+ # The subscription moves from free to paid, or paid to free.
126
+ # A trial starts or ends.
127
+ #
128
+ #
129
+ # In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date.
130
+ #
131
+ # If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription's renewal date, you need to manually [invoice the customer](https://stripe.com/docs/api/invoices/create).
132
+ #
133
+ # If you don't want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don't generate any credits for the old subscription's unused time. We still reset the billing date and bill immediately for the new subscription.
134
+ #
135
+ # Updating the quantity on a subscription many times in an hour may result in [rate limiting. If you need to bill for a frequently changing quantity, consider integrating <a href="/docs/billing/subscriptions/usage-based">usage-based billing](https://stripe.com/docs/rate-limits) instead.
136
+ def self.update(id, params = {}, opts = {})
137
+ request_stripe_object(
138
+ method: :post,
139
+ path: format("/v1/subscriptions/%<id>s", { id: CGI.escape(id) }),
140
+ params: params,
141
+ opts: opts
142
+ )
143
+ end
98
144
  end
99
145
  end