---
title: "Subscribe to a plan through Stripe Checkout."
method: POST
path: "/v1/account/plan/checkout"
tags: ["billing"]
---

# Subscribe to a plan through Stripe Checkout.

`POST /v1/account/plan/checkout`

## Request

- Base URL: `https://api.smolmachines.com`
- URL: `https://api.smolmachines.com/v1/account/plan/checkout`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/smolmachines/apis/smolfleet-api/docs/v1/account/plan/checkout/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns a Stripe-hosted page that shows the plan and its monthly price, takes a card and collects the first month. Once Stripe confirms the payment the account moves onto the plan and keeps the card for later charges. For an account with no card on file; with one, change plan directly. Requires the `billing:write` scope.

## Request body

- ChangePlanRequest: Ask to move this tenant onto a different plan. Only plans whose `self_serve` flag is set may be chosen; operator tiers are assigned by an admin.
  - `planId` string, required: Plan id to move onto, e.g. `plan-startup-paid`.

## Response `200`

Returns {"url": <stripe-hosted url>} for a Stripe Checkout in subscription mode; the browser comes back to the console's billing page.

## Other responses

- `401`: Missing or invalid API key
- `403`: Key lacks the required scope
- `409`: The account is already on that plan, or already pays a plan fee
- `422`: That plan is not self-serve, or has no monthly fee
- `429`: Rate limited; retry after the Retry-After header
- `500`: Internal error
- `503`: Paid plans are not enabled on this deployment

## Changes

- **2026-10-16** `bc31fc04a568`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smolmachines/apis/smolfleet-api/changes/v1/account/plan/checkout/post.md)

---

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