---
title: "Change plan screens"
method: PUT
path: "/v1/account/brix-plan/screens"
tags: ["account"]
---

# Change plan screens

`PUT /v1/account/brix-plan/screens`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/account/brix-plan/screens`
- Auth: HTTP bearer

Sets the screen count of the plan. More screens are invoiced now, prorated to the days left in the period, and charged to the saved card. Fewer screens start at the next period and nothing is refunded. The count cannot go below the screens that are running.

**Notes.**
- More screens are charged now, prorated to the days left in the period. Fewer screens start at the next period; nothing is refunded.

## Request body

- object
  - `screens` integer, required

## Response `200`

Success.

- object
  - `data` object, required
    - `ok` true, required
    - `effect` 'now' | 'renewal' | 'unchanged', required
    - `contract` BillingTerm, required: An agreed billing term (a fixed number of screens at a fixed rate for a fixed period).
      - `id` string, required
      - `status` 'active' | 'cancelled' | 'awaiting_payment' | 'ended', required
      - `rail` 'chargebee' | 'brix', required: Who invoices the term: `brix` (Brix invoices) or `chargebee` (the card subscription).
      - `activateOn` 'now' | 'paid', required
      - `poNumber` string, nullable, required
      - `invoiceNumber` string, nullable, required
      - `invoicePaid` boolean, nullable, required
      - `activatedAt` string, nullable, required: ISO-8601 timestamp (UTC).
      - `screens` integer, required
      - `rateCentsPerScreenMonth` integer, required
      - `termMonths` integer, required
      - `schedule` 'upfront' | 'monthly' | 'annual', required
      - `collect` 'card' | 'invoice', required
      - `currency` string, required
      - `startsAt` string, required: Date (YYYY-MM-DD).
      - `endsAt` string, required: Date (YYYY-MM-DD).
      - `totalCents` integer, required
      - `monthlyCents` integer, required
      - `termLabel` string, required
      - `scheduleLabel` string, required
      - `invoiceId` string, nullable, required
      - `notes` string, nullable, required
      - `createdBy` string, nullable, required
      - `prior` object, nullable, required: The plan before the term started.
        - `quantity` integer, required
        - `unitPriceCents` integer, nullable, required
      - `createdAt` string, required: ISO-8601 timestamp (UTC).
      - `endedAt` string, nullable, required: ISO-8601 timestamp (UTC).
      - `renewal` 'renew' | 'non_renewing', required
      - `renewalInvoiceId` string, nullable, required
      - `origin` 'staff' | 'self_serve', required: `self_serve` — the customer chose this plan on the Billing page; `staff` — an agreed term set by Brix.
      - `next` object, nullable, required: What the next period starts with, when the customer asked for a change at renewal.
        - `screens` integer, nullable, required
        - `termMonths` integer, nullable, required
        - `rateCentsPerScreenMonth` integer, nullable, required
    - `chargedCents` integer
    - `invoiceNumber` string, nullable
    - `audit` string

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `402`: `card_declined` — the extra screens were not added.
- `403`: You do not hold the permission for the whole workspace (a grant at one location is not enough).
- `404`: A workspace billed by a partner.
- `409`: `not_brix_billed`, `no_plan`, `below_running`, `card_required`, `payment_pending`, or `payment_required`.
- `422`: Bad `screens`.
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

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