stripe 11.7.0 → 12.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -0
- data/Gemfile +0 -1
- data/OPENAPI_VERSION +1 -1
- data/README.md +0 -1
- data/VERSION +1 -1
- data/lib/stripe/api_version.rb +1 -1
- data/lib/stripe/resources/bank_account.rb +27 -16
- data/lib/stripe/resources/card.rb +10 -12
- data/lib/stripe/resources/climate/order.rb +2 -2
- data/lib/stripe/resources/customer_session.rb +3 -3
- data/lib/stripe/resources/invoice.rb +60 -0
- data/lib/stripe/resources/issuing/authorization.rb +20 -0
- data/lib/stripe/resources/setup_intent.rb +2 -2
- data/lib/stripe/resources/tax/calculation.rb +3 -3
- data/lib/stripe/resources/tax/transaction.rb +1 -1
- data/lib/stripe/stripe_client.rb +1 -1
- data/lib/stripe/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9aca4084cfbcc4eec52a2f5b1756be4ac140769e46520bd644967473468898fc
|
4
|
+
data.tar.gz: b6b4350bc34d08ba00eb6791e53ec5a570345c86930149032305dd58bce9374c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a59e650d1e896c9d3f4c549518a0837f0593f05be7c18373ad51125849edbaec032295742bf79f7727efc568edc26464307b9e285831cdd61e3ef6e9df62e14
|
7
|
+
data.tar.gz: 3d0c0ab2d096538c0db2ed09f2ebb263f299fbffa524d0713c7a6026c328fc7647116270f4badcb83ea3264d64a885a78093329f30d3d2bec82bdc07fa05ace3
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,43 @@
|
|
1
1
|
# Changelog
|
2
|
+
## 12.1.0 - 2024-07-05
|
3
|
+
* [#1425](https://github.com/stripe/stripe-ruby/pull/1425) Update generated code
|
4
|
+
* Add support for `add_lines`, `remove_lines`, and `update_lines` methods on resource `Invoice`
|
5
|
+
* [#1420](https://github.com/stripe/stripe-ruby/pull/1420) Update static methods for delete/list on BankAccount/Card to throw NotImplementedError
|
6
|
+
* The below methods have been throwing `InvalidRequestError` because the urls used to make the requests have been buggy. Updating them to throw `NotImplementedError` instead just like their counterparts for update & retrieve because they cannot be implemented without the parent id.
|
7
|
+
|
8
|
+
Methods affected | Use these instead in the context of payment method | Use these in the context of external accounts
|
9
|
+
------ | ------ | ----
|
10
|
+
Stripe:: BankAccount.delete | Stripe::Customer.delete_source | Stripe::Account.delete_external_account
|
11
|
+
Stripe:: BankAccount.list | Stripe::Customer.list_sources | Stripe::Customer.list_external_accounts
|
12
|
+
Stripe:: Card.delete | Stripe::Customer.delete_source | Stripe::Account.delete_external_account
|
13
|
+
Stripe:: Card.list | Stripe::Customer.list_sources | Stripe::Customer.list_external_accounts
|
14
|
+
* [#1427](https://github.com/stripe/stripe-ruby/pull/1427) Regenerate rbis
|
15
|
+
* [#1426](https://github.com/stripe/stripe-ruby/pull/1426) Remove coveralls and re-added JRuby
|
16
|
+
|
17
|
+
## 12.0.0 - 2024-06-24
|
18
|
+
* [#1418](https://github.com/stripe/stripe-ruby/pull/1418) Add missing static method for verify on BankAccount
|
19
|
+
* [#1419](https://github.com/stripe/stripe-ruby/pull/1419)
|
20
|
+
|
21
|
+
This release changes the pinned API version to 2024-06-20. Please read the [API Upgrade Guide](https://stripe.com/docs/upgrades#2024-06-20) and carefully review the API changes before upgrading.
|
22
|
+
|
23
|
+
### ⚠️ Breaking changes
|
24
|
+
|
25
|
+
* Singleton `retrieve` method now requires `params` to be passed as the first argument. Existing calls to singleton `retrieve` method with only `opts` argument will have to be updated to account for the addition of `params` argument.
|
26
|
+
```ruby
|
27
|
+
params = { expand: ["available"] }
|
28
|
+
opts = { stripe_account: "acct_123" }
|
29
|
+
|
30
|
+
# ❌ No longer works
|
31
|
+
Stripe::Balance.retrieve(opts)
|
32
|
+
|
33
|
+
# ✅ Correct way to call retrieve method
|
34
|
+
Stripe::Balance.retrieve(params, opts)
|
35
|
+
```
|
36
|
+
|
37
|
+
### Additions
|
38
|
+
|
39
|
+
* Add support for `finalize_amount` test helper method on resource `Issuing.Authorization`
|
40
|
+
|
2
41
|
## 11.7.0 - 2024-06-13
|
3
42
|
* [#1415](https://github.com/stripe/stripe-ruby/pull/1415) Deprecate StripeClient#request
|
4
43
|
* Add deprecation warning for `StripeClient#request`. This helper method will be removed in a future major version. To access response objects, use the `last_response` property on the returned resource instead. Refer to [Accessing a response object](https://github.com/stripe/stripe-ruby?tab=readme-ov-file#accessing-a-response-object) in the README for usage details.
|
data/Gemfile
CHANGED
data/OPENAPI_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
v1111
|
data/README.md
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/stripe.svg)](https://badge.fury.io/rb/stripe)
|
4
4
|
[![Build Status](https://github.com/stripe/stripe-ruby/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/stripe/stripe-ruby/actions?query=branch%3Amaster)
|
5
|
-
[![Coverage Status](https://coveralls.io/repos/github/stripe/stripe-ruby/badge.svg?branch=master)](https://coveralls.io/github/stripe/stripe-ruby?branch=master)
|
6
5
|
|
7
6
|
The Stripe Ruby library provides convenient access to the Stripe API from
|
8
7
|
applications written in the Ruby language. It includes a pre-defined set of
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
12.1.0
|
data/lib/stripe/api_version.rb
CHANGED
@@ -5,8 +5,7 @@ module Stripe
|
|
5
5
|
# These bank accounts are payment methods on `Customer` objects.
|
6
6
|
#
|
7
7
|
# On the other hand [External Accounts](https://stripe.com/api#external_accounts) are transfer
|
8
|
-
# destinations on `Account` objects for accounts
|
9
|
-
# is `application`, which includes [Custom accounts](https://stripe.com/connect/custom-accounts).
|
8
|
+
# destinations on `Account` objects for connected accounts.
|
10
9
|
# They can be bank accounts or debit cards as well, and are documented in the links above.
|
11
10
|
#
|
12
11
|
# Related guide: [Bank debits and transfers](https://stripe.com/payments/bank-debits-transfers)
|
@@ -21,8 +20,21 @@ module Stripe
|
|
21
20
|
end
|
22
21
|
|
23
22
|
def verify(params = {}, opts = {})
|
24
|
-
|
25
|
-
|
23
|
+
request_stripe_object(
|
24
|
+
method: :post,
|
25
|
+
path: "#{Customer.resource_url}/#{customer}/sources/#{id}/verify",
|
26
|
+
params: params,
|
27
|
+
opts: opts
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.verify(customer, id, params = {}, opts = {})
|
32
|
+
request_stripe_object(
|
33
|
+
method: :post,
|
34
|
+
path: "#{Customer.resource_url}/#{customer}/sources/#{id}/verify",
|
35
|
+
params: params,
|
36
|
+
opts: opts
|
37
|
+
)
|
26
38
|
end
|
27
39
|
|
28
40
|
def resource_url
|
@@ -52,12 +64,12 @@ module Stripe
|
|
52
64
|
end
|
53
65
|
|
54
66
|
def self.delete(id, params = {}, opts = {})
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
67
|
+
raise NotImplementedError,
|
68
|
+
"Bank accounts cannot be deleted without a customer ID or an " \
|
69
|
+
"account ID. Delete a bank account using " \
|
70
|
+
"`Customer.delete_source('customer_id', 'bank_account_id')` " \
|
71
|
+
"or `Account.delete_external_account('account_id', " \
|
72
|
+
"'bank_account_id')`"
|
61
73
|
end
|
62
74
|
|
63
75
|
def delete(params = {}, opts = {})
|
@@ -70,12 +82,11 @@ module Stripe
|
|
70
82
|
end
|
71
83
|
|
72
84
|
def self.list(filters = {}, opts = {})
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
)
|
85
|
+
raise NotImplementedError,
|
86
|
+
"Bank accounts cannot be listed without a customer ID or an " \
|
87
|
+
"account ID. List bank accounts using " \
|
88
|
+
"`Customer.list_sources('customer_id')` " \
|
89
|
+
"or `Account.list_external_accounts('account_id')`"
|
79
90
|
end
|
80
91
|
end
|
81
92
|
end
|
@@ -42,12 +42,11 @@ module Stripe
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def self.delete(id, params = {}, opts = {})
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
)
|
45
|
+
raise NotImplementedError,
|
46
|
+
"Card cannot be deleted without a customer ID or an account " \
|
47
|
+
"ID. Delete a card using `Customer.delete_source(" \
|
48
|
+
"'customer_id', 'card_id')` or " \
|
49
|
+
"`Account.delete_external_account('account_id', 'card_id')`"
|
51
50
|
end
|
52
51
|
|
53
52
|
def delete(params = {}, opts = {})
|
@@ -60,12 +59,11 @@ module Stripe
|
|
60
59
|
end
|
61
60
|
|
62
61
|
def self.list(filters = {}, opts = {})
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
)
|
62
|
+
raise NotImplementedError,
|
63
|
+
"Cards cannot be listed without a customer ID or an account " \
|
64
|
+
"ID. List cards using `Customer.list_sources(" \
|
65
|
+
"'customer_id')` or " \
|
66
|
+
"`Account.list_external_accounts('account_id')`"
|
69
67
|
end
|
70
68
|
end
|
71
69
|
end
|
@@ -15,7 +15,7 @@ module Stripe
|
|
15
15
|
"climate.order"
|
16
16
|
end
|
17
17
|
|
18
|
-
# Cancels a Climate order. You can cancel an order within
|
18
|
+
# Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
|
19
19
|
# reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier
|
20
20
|
# might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
|
21
21
|
# provides 90 days advance notice and refunds the amount_total.
|
@@ -28,7 +28,7 @@ module Stripe
|
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
|
-
# Cancels a Climate order. You can cancel an order within
|
31
|
+
# Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the
|
32
32
|
# reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier
|
33
33
|
# might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe
|
34
34
|
# provides 90 days advance notice and refunds the amount_total.
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
module Stripe
|
5
|
-
# A
|
6
|
-
# control over a
|
5
|
+
# A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access
|
6
|
+
# control over a Customer.
|
7
7
|
class CustomerSession < APIResource
|
8
8
|
extend Stripe::APIOperations::Create
|
9
9
|
|
@@ -12,7 +12,7 @@ module Stripe
|
|
12
12
|
"customer_session"
|
13
13
|
end
|
14
14
|
|
15
|
-
# Creates a
|
15
|
+
# Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.
|
16
16
|
def self.create(params = {}, opts = {})
|
17
17
|
request_stripe_object(
|
18
18
|
method: :post,
|
@@ -49,6 +49,26 @@ module Stripe
|
|
49
49
|
|
50
50
|
nested_resource_class_methods :line, operations: %i[list]
|
51
51
|
|
52
|
+
# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
|
53
|
+
def add_lines(params = {}, opts = {})
|
54
|
+
request_stripe_object(
|
55
|
+
method: :post,
|
56
|
+
path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(self["id"]) }),
|
57
|
+
params: params,
|
58
|
+
opts: opts
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.
|
63
|
+
def self.add_lines(invoice, params = {}, opts = {})
|
64
|
+
request_stripe_object(
|
65
|
+
method: :post,
|
66
|
+
path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(invoice) }),
|
67
|
+
params: params,
|
68
|
+
opts: opts
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
52
72
|
# This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers.
|
53
73
|
def self.create(params = {}, opts = {})
|
54
74
|
request_stripe_object(method: :post, path: "/v1/invoices", params: params, opts: opts)
|
@@ -165,6 +185,26 @@ module Stripe
|
|
165
185
|
)
|
166
186
|
end
|
167
187
|
|
188
|
+
# Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.
|
189
|
+
def remove_lines(params = {}, opts = {})
|
190
|
+
request_stripe_object(
|
191
|
+
method: :post,
|
192
|
+
path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(self["id"]) }),
|
193
|
+
params: params,
|
194
|
+
opts: opts
|
195
|
+
)
|
196
|
+
end
|
197
|
+
|
198
|
+
# Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.
|
199
|
+
def self.remove_lines(invoice, params = {}, opts = {})
|
200
|
+
request_stripe_object(
|
201
|
+
method: :post,
|
202
|
+
path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(invoice) }),
|
203
|
+
params: params,
|
204
|
+
opts: opts
|
205
|
+
)
|
206
|
+
end
|
207
|
+
|
168
208
|
def self.search(params = {}, opts = {})
|
169
209
|
request_stripe_object(method: :get, path: "/v1/invoices/search", params: params, opts: opts)
|
170
210
|
end
|
@@ -223,6 +263,26 @@ module Stripe
|
|
223
263
|
)
|
224
264
|
end
|
225
265
|
|
266
|
+
# Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.
|
267
|
+
def update_lines(params = {}, opts = {})
|
268
|
+
request_stripe_object(
|
269
|
+
method: :post,
|
270
|
+
path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(self["id"]) }),
|
271
|
+
params: params,
|
272
|
+
opts: opts
|
273
|
+
)
|
274
|
+
end
|
275
|
+
|
276
|
+
# Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.
|
277
|
+
def self.update_lines(invoice, params = {}, opts = {})
|
278
|
+
request_stripe_object(
|
279
|
+
method: :post,
|
280
|
+
path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(invoice) }),
|
281
|
+
params: params,
|
282
|
+
opts: opts
|
283
|
+
)
|
284
|
+
end
|
285
|
+
|
226
286
|
# Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to [deletion](https://stripe.com/docs/api#delete_invoice), however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.
|
227
287
|
#
|
228
288
|
# Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you're doing business in. You might need to [issue another invoice or <a href="#create_credit_note">credit note](https://stripe.com/docs/api#create_invoice) instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.
|
@@ -152,6 +152,26 @@ module Stripe
|
|
152
152
|
)
|
153
153
|
end
|
154
154
|
|
155
|
+
# Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount.
|
156
|
+
def self.finalize_amount(authorization, params = {}, opts = {})
|
157
|
+
request_stripe_object(
|
158
|
+
method: :post,
|
159
|
+
path: format("/v1/test_helpers/issuing/authorizations/%<authorization>s/finalize_amount", { authorization: CGI.escape(authorization) }),
|
160
|
+
params: params,
|
161
|
+
opts: opts
|
162
|
+
)
|
163
|
+
end
|
164
|
+
|
165
|
+
# Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount.
|
166
|
+
def finalize_amount(params = {}, opts = {})
|
167
|
+
@resource.request_stripe_object(
|
168
|
+
method: :post,
|
169
|
+
path: format("/v1/test_helpers/issuing/authorizations/%<authorization>s/finalize_amount", { authorization: CGI.escape(@resource["id"]) }),
|
170
|
+
params: params,
|
171
|
+
opts: opts
|
172
|
+
)
|
173
|
+
end
|
174
|
+
|
155
175
|
# Increment a test-mode Authorization.
|
156
176
|
def self.increment(authorization, params = {}, opts = {})
|
157
177
|
request_stripe_object(
|
@@ -35,7 +35,7 @@ module Stripe
|
|
35
35
|
|
36
36
|
# You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.
|
37
37
|
#
|
38
|
-
# After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error.
|
38
|
+
# After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.
|
39
39
|
def cancel(params = {}, opts = {})
|
40
40
|
request_stripe_object(
|
41
41
|
method: :post,
|
@@ -47,7 +47,7 @@ module Stripe
|
|
47
47
|
|
48
48
|
# You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.
|
49
49
|
#
|
50
|
-
# After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error.
|
50
|
+
# After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.
|
51
51
|
def self.cancel(intent, params = {}, opts = {})
|
52
52
|
request_stripe_object(
|
53
53
|
method: :post,
|
@@ -14,7 +14,7 @@ module Stripe
|
|
14
14
|
"tax.calculation"
|
15
15
|
end
|
16
16
|
|
17
|
-
# Calculates tax based on input and returns a Tax Calculation object.
|
17
|
+
# Calculates tax based on the input and returns a Tax Calculation object.
|
18
18
|
def self.create(params = {}, opts = {})
|
19
19
|
request_stripe_object(
|
20
20
|
method: :post,
|
@@ -24,7 +24,7 @@ module Stripe
|
|
24
24
|
)
|
25
25
|
end
|
26
26
|
|
27
|
-
# Retrieves the line items of a
|
27
|
+
# Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
28
28
|
def list_line_items(params = {}, opts = {})
|
29
29
|
request_stripe_object(
|
30
30
|
method: :get,
|
@@ -34,7 +34,7 @@ module Stripe
|
|
34
34
|
)
|
35
35
|
end
|
36
36
|
|
37
|
-
# Retrieves the line items of a
|
37
|
+
# Retrieves the line items of a tax calculation as a collection, if the calculation hasn't expired.
|
38
38
|
def self.list_line_items(calculation, params = {}, opts = {})
|
39
39
|
request_stripe_object(
|
40
40
|
method: :get,
|
@@ -12,7 +12,7 @@ module Stripe
|
|
12
12
|
"tax.transaction"
|
13
13
|
end
|
14
14
|
|
15
|
-
# Creates a Tax Transaction from a calculation.
|
15
|
+
# Creates a Tax Transaction from a calculation, if that calculation hasn't expired. Calculations expire after 90 days.
|
16
16
|
def self.create_from_calculation(params = {}, opts = {})
|
17
17
|
request_stripe_object(
|
18
18
|
method: :post,
|
data/lib/stripe/stripe_client.rb
CHANGED
@@ -366,7 +366,7 @@ module Stripe
|
|
366
366
|
# garbage in `Thread.current`.
|
367
367
|
attr_accessor :last_responses
|
368
368
|
|
369
|
-
# A map of connection
|
369
|
+
# A map of connection managers for the thread. Normally shared between
|
370
370
|
# all `StripeClient` objects on a particular thread, and created so as to
|
371
371
|
# minimize the number of open connections that an application needs.
|
372
372
|
def default_connection_managers
|
data/lib/stripe/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 12.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Stripe is the easiest way to accept payments online. See https://stripe.com
|
14
14
|
for details.
|