---
title: "Gl Balance Sheet"
method: GET
path: "/companies/{company_id}/gl/reports/balance-sheet"
tags: ["gl"]
---

# Gl Balance Sheet

`GET /companies/{company_id}/gl/reports/balance-sheet`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/gl/reports/balance-sheet`
- Auth: none declared

Assets vs liabilities + equity for one fiscal year, signed by natural side.

Window rules as the trial balance (``fiscal_year`` defaults to the latest posted
year; no all-years mode, ZET-155). With ``period_id`` this is a *movements*
aggregate over that period, not a position.

⚠️ Balances as ``assets == liabilities_and_equity``, NOT ``liabilities + equity``:
the GL has no P&L→equity closing entry, so ``equity`` is the equity accounts alone
and ``net_result`` is folded into ``liabilities_and_equity``. It is a *position*
only for a year whose book carries its opening batch; otherwise it is that year's
movements and equity is empty.

Cut by the stamped ``fiscal_year_id``, not posting date (``fiscal_year_cut``,
ZET-166).

## Path parameters

- `company_id` string, required

## Query parameters

- `period_id` string, nullable
- `fiscal_year` integer, nullable

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- BalanceSheetOut
  - `assets` string, required
  - `liabilities` string, required
  - `equity` string, required
  - `liabilities_and_equity` string, required
  - `net_result` string, required
  - `fiscal_year` integer, nullable
  - `fiscal_year_cut` FiscalYearCutOut: How a statement decided which journal lines belong to the fiscal year (ZET-166). Two statement families cut the year differently, and a response must say which cut produced it — for an ordinary calendar-year book the two agree, but they diverge for a short/long fiscal year, after a ``fiscal_year_start_month`` change, or for any line dated outside the year it is stamped to: - ``"fiscal_year_id"`` (``/gl/reports/trial-balance`` / ``profit-and-loss`` / ``balance-sheet``) — a line is included because its **stamped** ``fiscal_year_id`` FK points at this fiscal year. ``date_from``/``date_to`` are that year's *calendar bounds*, informational only: a line dated outside them is still included when it is stamped to the year. ``period_id`` non-``None`` means the figures are further narrowed to that one fiscal period of the year, whose own bounds are ``period_date_from``.. ``period_date_to``. On these routes the descriptor is ``None`` for a company that has posted nothing (no year resolved, no cut applied). - ``"posting_date_window"`` (``GET /companies/{id}/financial-statements``) — a line is included because its ``posting_date`` falls inside a window derived **at read time** from the company's ``fiscal_year_start_month`` setting; ``date_from``/``date_to`` are that derived window and the descriptor is always present (the window resolves with or without data). A month-scoped read (``?month=``) aggregates the narrower ``period_start``..``period_end`` echoed beside this object (the balance sheet staying cumulative from ``date_from``).
    - `method` 'fiscal_year_id' | 'posting_date_window', required
    - `date_from` string, date, nullable
    - `date_to` string, date, nullable
    - `period_id` string, nullable
    - `period_date_from` string, date, nullable
    - `period_date_to` string, date, nullable

## Other responses

- `422`: Validation Error

---

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