---
title: "Read the billing state of a room booking installation"
method: GET
path: "/api/apps/room_booking/{installation_id}/billing"
tags: ["Apps - Room Booking"]
---

# Read the billing state of a room booking installation

`GET /api/apps/room_booking/{installation_id}/billing`

## Request

- Base URL: `https://trmnl.com`
- URL: `https://trmnl.com/api/apps/room_booking/{installation_id}/billing`
- Auth: HTTP bearer

Each calendar on a screen is billed monthly or yearly after a trial. Subscribing and managing the subscription happen in the browser on the billing page (checkout_url and portal_url), because each opens a Stripe session for the owner; the API never starts one.

## Response `200`

The billing state

- object
  - `data` RoomBookingBilling
    - `locked` boolean: Changes answer 402 until the subscription is settled
    - `subscription_required` boolean: Calendars reach a screen but nothing is subscribed yet
    - `billable_resource_count` integer: Calendars on a screen, directly or through a collection
    - `amount_in_dollars` object: Per calendar
      - `month` integer
      - `year` integer
    - `trial_days` integer
    - `grace_until` string, date_time, nullable
    - `subscription` object, nullable
      - `id` string
      - `status` string
      - `interval` 'month' | 'year'
      - `billed_quantity` integer
    - `checkout_url` string: The billing page, where the owner subscribes in the browser
    - `portal_url` string, nullable: The billing page, where a subscribed owner opens the Stripe portal

## Other responses

- `401`: Unauthorized
- `404`: Installation belongs to another user

---

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