---
title: "Open the owner's Stripe billing portal"
method: POST
path: "/v1/organizations/{organization_id}/billing/portal"
---

# Open the owner's Stripe billing portal

`POST /v1/organizations/{organization_id}/billing/portal`

## Request

- Base URL: `https://app.ohmyho.st`
- URL: `https://app.ohmyho.st/v1/organizations/{organization_id}/billing/portal`
- Auth: HTTP bearer

Creates a short-lived human URL for invoices, payment method updates and cancellation at period end. Does not charge or change the subscription itself. Customer and return URL are server-selected. Request a fresh URL if the portal has expired. Works at zero credits.

## Path parameters

- `organization_id` string, required

## Headers

- `X-Request-Id` string

## Request body

- object

## Response `200`

Short-lived portal URL; do not log it or commit it as evidence.

- BillingPortal
  - `organization_id` string, required
  - `url` string, uri, required
  - `created_at` string, date-time, required

## Other responses

- `400`: The request failed.
- `401`: The request failed.
- `404`: The resource does not exist or is not visible to the authenticated principal.
- `409`: The request failed.
- `413`: The request failed.
- `429`: The request failed.
- `503`: The request failed.

---

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