---
title: "Start a Stripe Checkout Session for a paid tier"
method: POST
path: "/v1/checkout"
---

# Start a Stripe Checkout Session for a paid tier

`POST /v1/checkout`

## Request

- Base URL: `https://api.hlaverify.com`
- URL: `https://api.hlaverify.com/v1/checkout`
- Auth: one of:
  - none
  - API key in header `X-API-Key`

Creates a subscription-mode Stripe Checkout Session for the named tier at its current Stripe price and returns the hosted url to send the buyer to. metadata.tier is set on the session from the price's own tier metadata, which is what the webhook reads to issue the key. Promotion codes are accepted on Stripe's page; pass promotion_code to pre-apply one. Not billable against the daily quota, but rate limited like every other /v1/ route (60 requests/minute per IP without a key). 503 when self-serve checkout is not configured on the deployment or the tier has no live price — email hello@hlaverify.com in that case.

## Request body

- object
  - `tier` 'starter' | 'lab' | 'scale': Which plan to buy.
  - `price` string: A specific active Stripe price id, instead of (or as a cross-check on) tier.
  - `promotion_code` string: A customer-facing promotion code to pre-apply, for example a launch discount.

## Response `200`

checkout session created

- object
  - `url` string, required: Hosted Stripe Checkout url; send the buyer here.
  - `session_id` string
  - `tier` string, required
  - `price` string
  - `amount` integer: Unit amount in the currency's minor unit, as Stripe holds it.
  - `currency` string
  - `interval` string
  - `promotion_code_applied` boolean

## Other responses

- `422`: unknown or missing tier, or a price that is not an active plan
- `429`: rate limited (60 req/min per IP; /v1/checkout does not consume daily quota)
- `502`: Stripe rejected the session or was unreachable
- `503`: self-serve checkout is not configured, or that tier is not on sale

---

[API](https://skmtc.dev/hlaverify/apis/hla-verify.md) · [All operations](https://skmtc.dev/hlaverify/apis/hla-verify/llms.txt) · [OpenAPI document](https://skmtc.dev/hlaverify/apis/hla-verify/revisions/40cd5e7d134d?raw)
