---
title: "Refresh the plan from the billing provider"
method: POST
path: "/v1/billing/sync"
tags: ["billing"]
---

# Refresh the plan from the billing provider

`POST /v1/billing/sync`

## Request

- Base URL: `https://botmail.pro`
- URL: `https://botmail.pro/v1/billing/sync`
- Auth: API key in cookie `bm_session`

Signed-in human only. Call after returning from checkout.

## Response `200`

Current plan and storage.

- object
  - `plan` 'free' | 'pro' | 'team' | 'scale', required
  - `extra_storage_bytes` integer, required
  - `quota_bytes` integer, required

## Other responses

- `401`: Missing or invalid credentials (`unauthorized`, `invalid_token`).
- `403`: The credential can't do this (`forbidden`, `csrf`, `account_inactive`, …). Missing scopes are listed in `details.required_scope`; pending keys get a hint to wait for the claim.

---

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