---
title: "Start a Premium checkout"
method: POST
path: "/v1/billing/checkout"
tags: ["billing"]
---

# Start a Premium checkout

`POST /v1/billing/checkout`

## Request

- Base URL: `https://api.pomerado.ai`
- URL: `https://api.pomerado.ai/v1/billing/checkout`
- Auth: HTTP bearer

Returns a Stripe Checkout link where the person subscribes their Personal account to Premium, monthly or yearly.

- Premium starts once Stripe confirms payment.
- An account already on Premium gets its Settings page instead, and one with a subscription gets the billing portal.
- An open checkout for the other interval is kept unless replace_existing is true; the link is then a Settings page that asks to replace it.

## Request body

- object
  - `interval` 'monthly' | 'yearly': Default monthly
  - `replace_existing` boolean: Replace an open checkout for the other interval instead of answering a page that asks to (default false)

## Response `200`

The page to open

- BillingLink
  - `url` string, required: The page to open in a browser

## Other responses

- `400`: invalid_request
- `401`: unauthorized, reauthentication_required
- `403`: billing_unavailable, forbidden
- `413`: request_too_large
- `500`: internal_error
- `501`: not_configured
- `503`: temporarily_unavailable

---

[API](https://skmtc.dev/pomerado/apis/pomerado-api.md) · [All operations](https://skmtc.dev/pomerado/apis/pomerado-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pomerado/apis/pomerado-api/revisions/c07cea59691c?raw)
