# `GET /misc/getSteuer` Protected. Requires a valid session cookie (`credentials: 'include'`). Returns tax classes and their rates from JTL-Wawi (`tSteuerklasse` + `tSteuersatz`, domestic zone `kSteuerzone = 1`). ## Response `200` ```json { "steuerklassen": [ { "kSteuerklasse": 1, "cName": "Normaler Steuersatz", "nStandard": 1, "fSteuersatz": 19 }, { "kSteuerklasse": 2, "cName": "Ermäßigter Steuersatz", "nStandard": 0, "fSteuersatz": 7 } ] } ``` | Field | Description | |-------|-------------| | `kSteuerklasse` | Tax class ID (used on articles as `kSteuerklasse`) | | `cName` | Display name | | `nStandard` | `1` if this is the default tax class | | `fSteuersatz` | VAT rate in percent | ### Brutto calculation Look up the article's `kSteuerklasse` in `steuerklassen`, then: ```js function getBrutto(netto, kSteuerklasse, steuerklassen) { const row = steuerklassen.find((s) => s.kSteuerklasse === kSteuerklasse); if (!row) return null; return netto * (1 + row.fSteuersatz / 100); } ``` Load once on app init and reuse for search results and article detail. ## Errors | Status | Body | |--------|------| | 401 | `{ "error": "Unauthorized" }` | | 500 | `{ "error": "..." }` | ## Example ```js const res = await fetch('http://localhost:4208/api/misc/getSteuer', { credentials: 'include', }); const { steuerklassen } = await res.json(); ```