---
title: "Switch sub-account billing mode"
method: POST
path: "/v1/reseller/accounts/{id}/billing-mode"
tags: ["Reseller"]
---

# Switch sub-account billing mode

`POST /v1/reseller/accounts/{id}/billing-mode`

## Request

- Base URL: `https://api.winnr.app`
- URL: `https://api.winnr.app/v1/reseller/accounts/{id}/billing-mode`
- Auth: HTTP bearer

Switch a sub-account between self-serve billing (customer subscribes via the reseller's Stripe Connected Account) and external billing (reseller invoices the customer out-of-band; the account becomes billing_exempt on-platform). Switching to external cancels the sub-account's active Connected-Account subscriptions and voids open invoices; limits, domains, and warming are preserved. If the account was domain-disabled by past-due enforcement, the daily billing cron re-enables it within 24h.

## Path parameters

- `id` string, required

## Request body

- object
  - `mode` 'external' | 'self_serve', required

## Response `200`

Billing mode updated; returns account, cancelled_subscriptions, voided_invoices

## Other responses

- `400`: Invalid mode or deleted account
- `403`: Not a reseller or doesn't own account

---

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