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

# Create billing portal

`POST /api/v1/billing/portal`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/billing/portal`
- Auth: HTTP bearer

Create a Stripe billing portal session for managing subscriptions.

## Request body

- PortalRequest: Request body for creating a Stripe billing portal session
  - `return_url` string, uri, required

## Response `200`

Portal session created

- PortalResponse: Billing portal session creation response
  - `url` string, uri, required: Stripe Billing Portal URL

## Other responses

- `400`: Validation error
- `403`: `account_key_required` — this API key is bound to one sub-account; account-level changes need an account-wide key or the dashboard.

---

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