---
title: "Checkout link"
method: POST
path: "/checkout-links"
tags: ["Billing"]
---

# Checkout link

`POST /checkout-links`

## Request

- Base URL: `https://api.onelence.com/v1`
- URL: `https://api.onelence.com/v1/checkout-links`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://api.onelence.com/oauth/authorize`, token URL `https://api.onelence.com/oauth/token`, scopes: `billing:subscribe`)
  - HTTP bearer

A OneLence billing link with the chosen plan highlighted. The user reviews and checks out in OneLence; nothing is charged here. Owners and admins only.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `plan` string, required: Plan id from the plans list.
  - `interval` 'month' | 'year': Billing interval (default month).

## Response `201`

Success.

- object
  - `object` 'checkout_link', required
  - `url` string, required
  - `plan` string, required
  - `interval` 'month' | 'year', required
  - `note` string, required

## Other responses

- `400`: Invalid input; `error.param` names the field.
- `401`: Missing, expired or revoked token. WWW-Authenticate points to the resource metadata.
- `402`: subscription_required or upgrade_required; the error carries billing_url.
- `403`: insufficient_scope or admin_required.
- `404`: Unknown endpoint, site, source or record.
- `409`: A request with this Idempotency-Key is still running.
- `422`: This Idempotency-Key was already used for a different request.
- `429`: Rate limited. Retry after Retry-After seconds.
- `500`: OneLence could not complete the request.

---

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