---
title: "Create Portal Session"
method: POST
path: "/billing/portal"
---

# Create Portal Session

`POST /billing/portal`

Open a Stripe Billing Portal session for the logged-in customer.

Used by the account page so paid customers can upgrade / downgrade
between Casual / Pro / Business, update card details, and cancel
in-app rather than emailing support. The portal's Stripe-side
configuration determines exactly which actions are allowed; this
endpoint just creates the session URL.

Free users are rejected with 403 — they have no active
subscription to manage. The pricing page is the right place to
drive an upgrade. The account page surfaces an "Upgrade" CTA
instead of a "Manage subscription" button for free users so the
403 path should never normally be hit by the UI.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.net/fastdol/apis/fastdol-api.md) · [All operations](https://skmtc.net/fastdol/apis/fastdol-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fastdol/fastdol-api/revisions/f5a72ed18934/schema)
