---
title: "List Balance Sheets"
method: GET
path: "/companies/{company_id}/balance-sheets"
tags: ["accounting-settings"]
---

# List Balance Sheets

`GET /companies/{company_id}/balance-sheets`

## 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}/balance-sheets`
- Auth: none declared

List a company's balance-sheet snapshots + their lines (CompanyMember).

Optional ``fiscal_year`` / ``status`` filters; newest fiscal year first.

## Path parameters

- `company_id` string, required

## Query parameters

- `fiscal_year` integer, nullable
- `status` 'accepted' | 'proposed' | 'superseded' | 'founding': Lifecycle of a balance-sheet snapshot. ``accepted`` is the single live snapshot per (company, fiscal_year); ``proposed`` is a consent-gated replacement awaiting the user's decision; ``superseded`` is a retired snapshot (replaced by a newer accepted one, or a discarded proposal). ``founding`` (ZCT-843) is a different KIND of sheet, not a lifecycle stage of a closing sheet: the founding balance sheet (Gründungsbilanz) a newly founded company's FIRST fiscal year opens from, filed under that year. It is deliberately a status value: every reader of "the accepted sheet of year N" — the consent lifecycle, the one-accepted-per-year index, the next year's opening, reconciliation, staleness — filters ``accepted``/``proposed``, so none of them can ever take a founding sheet for a closing one. At most one is live per company; a replacement marks it ``superseded``.

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- BalanceSheetsResponse: List envelope for ``GET /companies/{id}/balance-sheets``.
  - `balance_sheets` BalanceSheetSnapshotOut[], required
    - `id` string, required
    - `company_id` string, required
    - `fiscal_year` integer, required
    - `as_of_date` string, date, nullable
    - `currency` string, required
    - `status` 'accepted' | 'proposed' | 'superseded' | 'founding', required: Lifecycle of a balance-sheet snapshot. ``accepted`` is the single live snapshot per (company, fiscal_year); ``proposed`` is a consent-gated replacement awaiting the user's decision; ``superseded`` is a retired snapshot (replaced by a newer accepted one, or a discarded proposal). ``founding`` (ZCT-843) is a different KIND of sheet, not a lifecycle stage of a closing sheet: the founding balance sheet (Gründungsbilanz) a newly founded company's FIRST fiscal year opens from, filed under that year. It is deliberately a status value: every reader of "the accepted sheet of year N" — the consent lifecycle, the one-accepted-per-year index, the next year's opening, reconciliation, staleness — filters ``accepted``/``proposed``, so none of them can ever take a founding sheet for a closing one. At most one is live per company; a replacement marks it ``superseded``.
    - `source` string, required
    - `source_document_id` string, nullable
    - `totals` object
    - `snapshot_hash` string, required
    - `created_at` string, date-time, required
    - `superseded_at` string, date-time, nullable
    - `resolution_json` object, nullable
    - `equity_roles` object, nullable
    - `lines` BalanceSheetLineOut[]
      - `id` string, required
      - `snapshot_id` string, required
      - `account_number` string, required
      - `account_name` string, nullable
      - `category` 'asset' | 'liability' | 'equity' | 'income' | 'expense' | 'tax' | 'other' | 'unknown', required: The account-type axis of a ledger account (Swiss-KMU chart of accounts). Distinct from — but derived from — ``LineRole`` (the journal-line semantic role). ``unknown`` is the conservative default when classification can't decide; ``other`` covers genuinely ambiguous / closing (9xxx) accounts.
      - `amount_cents` integer, required
      - `sign_display` string, nullable
      - `side` 'credit' | 'debit', required
      - `is_contra` boolean
      - `needs_review` boolean, required
      - `created_at` string, date-time, required

## 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)
