diff --git a/lib/stripe/resources/checkout/session.rb b/lib/stripe/resources/checkout/session.rb index f2d15de4..4c60bcc0 100644 --- a/lib/stripe/resources/checkout/session.rb +++ b/lib/stripe/resources/checkout/session.rb @@ -10,7 +10,18 @@ module Stripe OBJECT_NAME = "checkout.session" + custom_method :expire, http_verb: :post + nested_resource_class_methods :line_item, operations: %i[list] + + def expire(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: resource_url + "/expire", + params: params, + opts: opts + ) + end end end end diff --git a/test/stripe/generated_examples_test.rb b/test/stripe/generated_examples_test.rb index 0b768ee9..80ced4d8 100644 --- a/test/stripe/generated_examples_test.rb +++ b/test/stripe/generated_examples_test.rb @@ -1269,6 +1269,12 @@ module Stripe assert_requested :post, "#{Stripe.api_base}/v1/billing_portal/sessions" end end + context "Session.expire" do + should "support requests with args: session" do + Stripe::Checkout::Session.expire("sess_xyz") + assert_requested :post, "#{Stripe.api_base}/v1/checkout/sessions/sess_xyz/expire?" + end + end context "Session.list" do should "support requests with args: limit" do Stripe::Checkout::Session.list(limit: 3)