---
title: "Set contract auto-renewal"
method: PATCH
path: "/v1/account/contract/renewal"
tags: ["account"]
---

# Set contract auto-renewal

`PATCH /v1/account/contract/renewal`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/account/contract/renewal`
- Auth: HTTP bearer

Sets whether the workspace's current contract term renews automatically or ends at term expiry. Choosing not to renew voids any unpaid renewal invoice; choosing to renew allows Brix to invoice the next term automatically. Returns 409 if the workspace has no fixed term, and 404 for white-label workspaces, where this setting does not apply.

**Notes.**
- Turning auto-renew off voids an unpaid renewal invoice.

## Request body

- object
  - `renewal` 'renew' | 'non_renewing', required

## Response `200`

Success.

- object
  - `data` object, required
    - `ok` true, 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
    - `changed` boolean, required

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `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`: `no_term` (no agreed term), or a term that cannot change here.
- `422`: `renewal` is not `renew` or `non_renewing`.
- `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)
