---
title: "Subscription state of the caller's workspace"
method: GET
path: "/api/v1/billing/status"
tags: ["Billing"]
---

# Subscription state of the caller's workspace

`GET /api/v1/billing/status`

## Request

- Base URL: `https://api.hub-equity.com`
- URL: `https://api.hub-equity.com/api/v1/billing/status`
- Auth: HTTP bearer

Plan, end of the paid period, whether it renews or stops there, and whether a Stripe subscription backs it. `manageable` is false for a plan provisioned by hand, which has no Customer Portal to open.

## Response `200`

Successful Response

- ApiResponseBillingStatusResponse
  - `success` boolean, required
  - `data` BillingStatusResponse
    - `plan` string, required: The workspace's plan, as its raw plan code.
    - `has_subscription` boolean, required
    - `plan_period_end` string, nullable: End of the paid period, ISO 8601, when known.
    - `manageable` boolean, required: True when a Stripe customer exists, i.e. when the Customer Portal can be opened. False for a plan provisioned by hand.
    - `cancels_at_period_end` boolean, nullable: True when the subscription is set to stop at `plan_period_end` instead of renewing. None when it could not be read from Stripe, and the caller must then say neither 'renews' nor 'ends'.
    - `team_self_service` boolean: True when the Team plan can be bought on Checkout, i.e. when both Team prices are configured on this deployment. The settings page offers Team only on this flag.
    - `withdrawal` WithdrawalState
      - `open_until` string, nullable: End of the withdrawal period, ISO 8601, while it is open.
      - `declared_at` string, nullable: When the withdrawal was declared, ISO 8601, once it has been.
      - `contract` string, required: The contract the withdrawal applies to, as the customer reads it.
      - `acknowledgment_sent` boolean, nullable: Once declared: whether the acknowledgment email went out.
  - `error` ApiError: API error details.
    - `code` string, required
    - `message` string, required
    - `details` object, nullable
  - `meta` ApiMeta: API response metadata. Pagination fields (``page`` / ``per_page`` / ``total``) are populated on collection endpoints only. They are omitted from the payload on single-resource endpoints.
    - `timestamp` string, date-time
    - `request_id` string, nullable
    - `page` integer, nullable
    - `per_page` integer, nullable
    - `total` integer, nullable
  - `links` ApiLinks: HATEOAS-style pagination cursors. Host-relative path + query links for a collection page. Present on collection endpoints, ``null`` fields where a page doesn't exist (``next`` on the last page, ``prev`` on the first). The whole ``links`` object is omitted from single-resource responses (see ``ApiResponse`` serializer).
    - `self` string, nullable
    - `first` string, nullable
    - `prev` string, nullable
    - `next` string, nullable
    - `last` string, nullable

---

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