---
title: "Get Financial Statements Xlsx"
method: GET
path: "/companies/{company_id}/financial-statements/xlsx"
tags: ["reporting"]
---

# Get Financial Statements Xlsx

`GET /companies/{company_id}/financial-statements/xlsx`

## 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}/financial-statements/xlsx`
- Auth: none declared

One statement — balance sheet or P&L — as an ``.xlsx`` (CompanyMember).

``fiscal_year`` is **required**, unlike its JSON sibling, for the reason
``annual_report.py`` gives: the JSON view may fall back to the latest year with data,
but a *document* that silently reports a different year than the reader asked for is a
different kind of mistake.

``month`` narrows the window, and the two statements then report **different** things:
the balance sheet stays cumulative (fiscal-year start → month end) while the P&L covers
that month's flows. The sheet states which on its face, so a month-scoped Bilanz cannot
be read as an annual one.

An unsealed fiscal year is not refused — the year-end path is a review loop and a
fiduciary needs the draft — but the sheet carries an ENTWURF banner.

## Path parameters

- `company_id` string, required

## Query parameters

- `fiscal_year` integer, required: The fiscal year to report on.
- `statement` string, required
- `month` string, nullable

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- unknown

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