---
title: "Create Portal Session"
method: POST
path: "/api/stripe/portal"
tags: ["stripe"]
---

# Create Portal Session

`POST /api/stripe/portal`

## Request

- Base URL: `https://api.equity-rank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.equity-rank.com/api/stripe/portal`
- Auth: HTTP bearer

Creates a Stripe Customer Portal session for self-serve billing management.

- Requires an active subscription (402 if none).
- Looks up stripe_customer_id from public.subscriptions.
- Returns {url: 'https://billing.stripe.com/...'} for frontend redirect.

## Request body

- PortalRequest
  - `return_url` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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