Stripe Checkout on the Server Create a checkout session on the server

This lesson is available for PRO members or as a single course purchase. Sign-in and choose a plan below.
Get Unlimited PRO Access


*Enrollment provides full access to this course (and updates) for life.

Stripe Checkout on the Server

file_type_typescript checkout.ts
import { stripe } from './';
import Stripe from 'stripe';

 * Creates a Stripe Checkout session with line items
export async function createStripeCheckoutSession(
  line_items: Stripe.Checkout.SessionCreateParams.LineItem[]
) {

  const url = 'http://localhost:3000'; //process.env.WEBAPP_URL;

  const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    success_url: `${url}/success?session_id={CHECKOUT_SESSION_ID}`,
    cancel_url: `${url}/failed`,

  return session;

API Endpoint

file_type_typescript api.ts
 * Catch async errors when awaiting promises 
function runAsync(callback: Function) {
  return (req: Request, res: Response, next: NextFunction) => {
    callback(req, res, next).catch(next);

 * Checkouts
  runAsync(async ({ body }: Request, res: Response) => {
    res.send(await createStripeCheckoutSession(body.line_items));


Ask questions via GitHub below OR chat on Slack #questions