---
title: "Create billing portal"
method: POST
path: "/v1/billing/portal"
tags: ["Accounts"]
---

# Create billing portal

`POST /v1/billing/portal`

## Request

- Base URL: `https://api.tovuk.com`
- URL: `https://api.tovuk.com/v1/billing/portal`
- Auth: HTTP bearer

Creates a hosted billing portal session.

## Response `200`

Billing portal created.

- BillingCheckoutResponse: Billing checkout or portal response.
  - `checkout` BillingCheckout, required: Hosted Stripe checkout or billing portal session.
    - `url` string, uri, required
    - `reason` string, required

## Other responses

- `400`: Bad request.
- `401`: Unauthorized.
- `429`: Too many requests.
- `500`: Internal server error.

## Changes

- **2026-07-02** `024ff3141fd7`: 2 breaking, 1 info
  - removed the required property `ok` from the response with the `200` status
  - removed the required property `portal` from the response with the `200` status
  - added the required property `checkout` to the response with the `200` status
- **2026-06-05** `3985c6090c91`: 17 breaking, 4 warning, 74 info
  - the response property `checkout_url` became nullable for the status `400`
  - the response property `checkout_url` became nullable for the status `401`
  - the response property `checkout_url` became nullable for the status `429`
  - the response property `checkout_url` became nullable for the status `500`
  - …91 more

[Operation history](https://skmtc.dev/tovuk/apis/tovuk-api/changes/v1/billing/portal/post.md)

---

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