---
title: "Portal"
method: POST
path: "/api/v1/billing/portal"
tags: ["billing"]
---

# Portal

`POST /api/v1/billing/portal`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/billing/portal`
- Auth: HTTP bearer

Create a Stripe Billing Portal session and return its hosted ``url`` so
the client can update their card, download invoices, switch plan, or cancel.

In STRIPE_MODE=mock there's no portal — we return the billing page URL so the
dev/test flow still resolves. Real mode requires the Billing Portal to be
configured once in the Stripe dashboard.

## Response `200`

Successful Response

- object

---

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