---
title: "Create Website Checkout"
method: POST
path: "/api/billing/website/checkout"
tags: ["Stripe (public)"]
---

# Create Website Checkout

`POST /api/billing/website/checkout`

Anonymous Stripe Checkout. No auth header required.

Returns a Stripe-hosted checkout URL the frontend redirects to.
Stripe collects the email at the checkout form. On success the user
lands on /thank-you?session_id=cs_xxx which decides whether to show
a sign-in or a create-account flow.

## Request body

- CheckoutIn
  - `subscription_type` integer, required — 1=PRO, 2=CREATOR, 4=PODCAST, 5=CREDITS
  - `billing` string — 'monthly' or 'annual'. Only applies to subscription_type 1 and 2.
  - `prefill_email` string, email, nullable
  - `cancel_url` string, nullable — Where Stripe sends the visitor after a cancel.
  - `success_url` string, nullable — Where Stripe sends the visitor after success. May contain {CHECKOUT_SESSION_ID}.

## Response `201`

Successful Response

- CheckoutOut
  - `url` string, required
  - `session_id` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/premierecopilot/apis/premierecopilot-api.md) · [All operations](https://skmtc.dev/premierecopilot/apis/premierecopilot-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/premierecopilot/premierecopilot-api/revisions/fa72d3c14142/schema)
