Skip to content

Checkout Sessions ​

A Checkout Session represents your customer’s session as they pay for one-time purchases or subscriptions through Checkout or Payment Links. We recommend creating a new Session each time your customer attempts to pay.

Once payment is successful, the Checkout Session will contain a reference to the Customer, and either the successful PaymentIntent or an active Subscription.

You can create a Checkout Session on your server and redirect to its URL to begin Checkout.

Related guide: Checkout quickstart

Endpoints ​

Create a Checkout Session ​

  • POST /v1/checkout/sessions

Update a Checkout Session ​

  • POST /v1/checkout/sessions/:id

Retrieve a Checkout Session ​

  • GET /v1/checkout/sessions/:id

Retrieve a Checkout Session's line items ​

  • GET /v1/checkout/sessions/:id/line_items

List all Checkout Sessions ​

  • GET /v1/checkout/sessions

Expire a Checkout Session ​

  • POST /v1/checkout/sessions/:id/expire

Events ​

  • checkout.session.async_payment_failed Occurs when a payment intent using a delayed payment method fails.

  • checkout.session.async_payment_succeeded Occurs when a payment intent using a delayed payment method finally succeeds.

  • checkout.session.completed Occurs when a Checkout Session has been successfully completed.

  • checkout.session.expired Occurs when a Checkout Session is expired.

Stripe API Reference - Self-contained docs reference, refreshed 2026-05-18