---
title: "Create a Stripe Customer Portal session through the legacy alias"
method: POST
path: "/api/v1/portal"
tags: ["Billing", "User"]
deprecated: true
---

# Create a Stripe Customer Portal session through the legacy alias

`POST /api/v1/portal`

> **Deprecated.**

Deprecated alias of `POST /api/v1/billing/portal`. Requires an authenticated browser session and a valid CSRF token supplied either in `X-CSRF-Token` or the form field `csrf`. New clients must use the canonical billing route.

## Headers

- `X-CSRF-Token` string

## Response `200`

Stripe Customer Portal URL

- StripeSessionResponse
  - `url` string, uri, required
  - `session_id` string, required

## Other responses

- `400` — Invalid request
- `401` — Authentication required (no active session)
- `403` — Invalid or missing CSRF token
- `429` — Rate limit exceeded
- `503` — Action-budget storage or Stripe Customer Portal is unavailable

---

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