---
title: "Chart Template"
method: GET
path: "/onboarding/chart-template"
tags: ["onboarding"]
---

# Chart Template

`GET /onboarding/chart-template`

## 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/onboarding/chart-template`
- Auth: none declared

Return the bundled Swiss-KMU template chart for ``industry`` (eligible).

Stateless and DB-free: resolves the frozen in-code catalog
(``invoiage_core.accounting.gl.chart_templates``, base chart + industry overlay).
``industry`` is the accountant-catalog key stored on ``Company.industry``; omitted
or unknown keys resolve to the base chart — never an error. The wizard proposes
the result when the extracted chart is absent or thin; nothing is persisted until
the atomic create.

## Query parameters

- `industry` string, nullable

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Response `200`

Successful Response

- ChartTemplateResponse: ``GET /onboarding/chart-template`` → the bundled template-chart proposal. Stateless and DB-free: the frozen in-code catalog (``invoiage_core.accounting.gl.chart_templates``) resolved for the requested industry (``Company.industry`` accountant-catalog key); ``None``/unknown keys resolve to the base chart (``template_key == "base"``) — never an error.
  - `template_key` string, required
  - `label` string, required
  - `catalog_version` string, required
  - `accounts` OnboardingChartAccountIn[]
    - `account_number` string, required
    - `account_name` string, nullable
    - `category` 'asset' | 'liability' | 'equity' | 'income' | 'expense' | 'tax' | 'other' | 'unknown': 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.
    - `is_profit_loss` boolean
    - `is_contra` boolean
    - `is_intentional` boolean
    - `account_number_guess` string, nullable
    - `journal_usage_count` integer
    - `prior_year_turnover_cents` integer, nullable
    - `prior_year_turnover_fiscal_year` integer, 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)
