---
title: "Hosted checkout link to upgrade from the free plan (workspace admins). A person pays in the browser."
method: POST
path: "/api/v1/billing/checkout"
tags: ["Plan & billing"]
---

# Hosted checkout link to upgrade from the free plan (workspace admins). A person pays in the browser.

`POST /api/v1/billing/checkout`

## Request

- Base URL: `https://qrlia.dev.castlesoft.eu`
- URL: `https://qrlia.dev.castlesoft.eu/api/v1/billing/checkout`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `qrc_session`

## Request body

- object
  - `planSlug` string, required
  - `cadence` 'monthly' | 'annual'

## Response `201`

Checkout link

- object
  - `checkoutUrl` string, uri, required
  - `planSlug` string, required
  - `cadence` string, required

## Other responses

- `400`: Validation failed
- `401`: Authentication required
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `500`: Internal

---

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