---
title: "Open the billing portal"
description: "The link where the plan is changed or cancelled."
url: "https://openemail.uk/docs/api/billing/portal"
area: "API"
category: "Mailbox"
---

# Open the billing portal

The link where the plan is changed or cancelled.

`POST /billing/portal`

## POST /billing/portal

The link where the plan is changed or cancelled.

## Example

Needs `billing:write`. It is Manage on Plans & Billing: on the portal the person changes or cancels the plan, updates the card and downloads past invoices. The body is optional, and `theme` and `locale` style the page.

**curl**

```
curl -X POST "$OE/billing/portal" -H "$AUTH" -H 'content-type: application/json' \
  -d '{ "theme": "dark" }'
```

**Response**

```
{ "object": "billing_portal", "url": "https://billing.example.com/portal/s/Qm4vT8" }
```

> Nothing is paid through the API. The link opens the billing provider’s page, where the person pays, changes the card or cancels, as they do from the app.

> An OAuth access token needs a verification code for this call. Until the app has verified one in the last 60 minutes, the call answers `403` `step_up_required` and changes nothing. An API key is never asked. The Authentication page shows how to ask for a code and verify it.

## Reference

- [`POST /billing/portal`](https://openemail.uk/docs/api/reference/billing#post-billing-portal): full reference
