---
title: "Open the customer portal"
method: POST
path: "/v1/billing/portal"
tags: ["Billing"]
---

# Open the customer portal

`POST /v1/billing/portal`

## Request

- Base URL: `https://api.signvoy.com`
- URL: `https://api.signvoy.com/v1/billing/portal`
- Auth: one of:
  - API key in header `X-Workspace-Id`
  - HTTP bearer

Creates a Stripe-hosted Customer Portal session for managing the payment method, downloading invoices, and cancelling. Plan and seat changes are deliberately not available there — use this API, which checks changes against actual workspace membership.

## Response `200`

Portal URL

- BillingRedirectDto
  - `url` string, required: Stripe-hosted URL to send the browser to

## Other responses

- `403`: Not the workspace owner
- `404`: Account has no billing history yet

---

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