@kreiseck/kasseneck-api 1.17.0 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ Was vor 0.7.0 geschah, steht in der Commit-Historie (`git log`); ab hier wird
4
4
  es hier geführt. Ein Eintrag nennt die Änderung **und ihren Grund** —
5
5
  nur der Grund überlebt den nächsten Umbau.
6
6
 
7
+ ## 1.17.1 - 2026-10-29
8
+
9
+ - **Contract `v3` gains `fixtures/v3/antworten/berichte.json`** (backend keck#798): `getCashregisterReport` as a binary path, generated from the real handler. A case with `file` is the PDF (HTTP 200, `Content-Type: application/pdf`, the bytes start with `file.startsWith`); every rejection also comes with HTTP 200, as an envelope with a code (`period_not_closed` for the current month and today, `period_in_future`, `invalid_period`). New test `test/v3-berichte-vertrag.test.ts` replays the file through `createBinaryTransport`: the PDF arrives byte for byte, each rejection is a `KasseneckApiError` with the code of the contract and outcome `rejected`. No behaviour change: the binary path always decided on the first bytes. Reason: the Dart twin returned such an envelope as PDF bytes up to 11.8.0 (fixed in 11.8.1); with the case in the contract both packages and the backend are pinned to the same answer, and the Dart twin replays this file too.
10
+ - The other contract files change only `_quelle` (new inputs on the backend side).
11
+
7
12
  ## 1.17.0 - 2026-10-29
8
13
 
9
14
  Vouchers at the register, stage 4b: voucher types (Gutschein-Sorten). A business names any number of voucher types (multi- or single-purpose, free or fixed amount, validity, payout, label template); the register shows one tile per type in a tab "Gutscheine" and sells a value voucher only through a type. Additive for reading, with three behaviour changes for selling (see the items on `typeId` and the due amount).
@@ -1,16 +1,17 @@
1
1
  import { type Receipt, type ReceiptCompany, type ReportMonth } from '../models/index.js';
2
2
  import type { InternerBinaerTransport, InternerTransport } from './aufrufe.js';
3
3
  /**
4
- * Bericht-Downloads — Zwilling von `downloadDailyReport`/`downloadMonthlyReport`
5
- * in kasseneck_api/lib/kasseneck_api.dart (Zeilen 113-128).
4
+ * Bericht-Downloads — Zwilling von `getCashregisterReport`,
5
+ * `downloadDailyReport` und `downloadMonthlyReport` in
6
+ * kasseneck_api/lib/kasseneck_api.dart.
6
7
  *
7
- * **Beide liefern ein PDF, also Binaerdaten.** Das Flutter-Vorbild liest die
8
- * Antwort als Zeichenkette und nimmt davon `codeUnits`; in JavaScript waere das
9
- * schlicht falsch — `response.text()` deutet die Bytes als UTF-8 und ersetzt
10
- * jedes Byte ueber 0x7F durch U+FFFD. Ein so "heruntergeladener" Tagesbericht
11
- * liesse sich in keinem Betrachter oeffnen. Dieses Paket weicht daher bewusst
12
- * ab: es liest `arrayBuffer()` und liefert `Uint8Array` (siehe
13
- * [createBinaryTransport] in transport.ts).
8
+ * **Alle drei liefern ein PDF, also Binaerdaten.** `response.text()` waere hier
9
+ * falsch: es deutet die Bytes als UTF-8 und ersetzt jedes Byte ueber 0x7F
10
+ * durch U+FFFD, ein so "heruntergeladener" Bericht liesse sich in keinem
11
+ * Betrachter oeffnen. Gelesen wird `arrayBuffer()`, geliefert `Uint8Array`;
12
+ * eine Ablehnung mit HTTP 200 und Huelle (`period_not_closed`) wird zum Fehler
13
+ * (siehe [createBinaryTransport] in transport.ts). Der Dart-Zwilling reichte
14
+ * sie bis 11.8.0 als PDF durch und prueft seit 11.8.1 ebenso die ersten Bytes.
14
15
  *
15
16
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Keiner der
16
17
  * beiden Download-Endpunkte setzt `allowRegisterUser`; sie funktionieren nur
@@ -8,16 +8,17 @@ const index_js_1 = require("../models/index.js");
8
8
  const vienna_time_js_1 = require("../vienna-time.js");
9
9
  const errors_js_1 = require("./errors.js");
10
10
  /**
11
- * Bericht-Downloads — Zwilling von `downloadDailyReport`/`downloadMonthlyReport`
12
- * in kasseneck_api/lib/kasseneck_api.dart (Zeilen 113-128).
11
+ * Bericht-Downloads — Zwilling von `getCashregisterReport`,
12
+ * `downloadDailyReport` und `downloadMonthlyReport` in
13
+ * kasseneck_api/lib/kasseneck_api.dart.
13
14
  *
14
- * **Beide liefern ein PDF, also Binaerdaten.** Das Flutter-Vorbild liest die
15
- * Antwort als Zeichenkette und nimmt davon `codeUnits`; in JavaScript waere das
16
- * schlicht falsch — `response.text()` deutet die Bytes als UTF-8 und ersetzt
17
- * jedes Byte ueber 0x7F durch U+FFFD. Ein so "heruntergeladener" Tagesbericht
18
- * liesse sich in keinem Betrachter oeffnen. Dieses Paket weicht daher bewusst
19
- * ab: es liest `arrayBuffer()` und liefert `Uint8Array` (siehe
20
- * [createBinaryTransport] in transport.ts).
15
+ * **Alle drei liefern ein PDF, also Binaerdaten.** `response.text()` waere hier
16
+ * falsch: es deutet die Bytes als UTF-8 und ersetzt jedes Byte ueber 0x7F
17
+ * durch U+FFFD, ein so "heruntergeladener" Bericht liesse sich in keinem
18
+ * Betrachter oeffnen. Gelesen wird `arrayBuffer()`, geliefert `Uint8Array`;
19
+ * eine Ablehnung mit HTTP 200 und Huelle (`period_not_closed`) wird zum Fehler
20
+ * (siehe [createBinaryTransport] in transport.ts). Der Dart-Zwilling reichte
21
+ * sie bis 11.8.0 als PDF durch und prueft seit 11.8.1 ebenso die ersten Bytes.
21
22
  *
22
23
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Keiner der
23
24
  * beiden Download-Endpunkte setzt `allowRegisterUser`; sie funktionieren nur
@@ -4,4 +4,4 @@
4
4
  * Client-Version, Nachtrag §6). Ein Test haelt sie gleich mit `package.json`;
5
5
  * beim Anheben der Version beide Stellen aendern.
6
6
  */
7
- export declare const PACKAGE_VERSION = "1.17.0";
7
+ export declare const PACKAGE_VERSION = "1.17.1";
@@ -7,4 +7,4 @@ exports.PACKAGE_VERSION = void 0;
7
7
  * Client-Version, Nachtrag §6). Ein Test haelt sie gleich mit `package.json`;
8
8
  * beim Anheben der Version beide Stellen aendern.
9
9
  */
10
- exports.PACKAGE_VERSION = '1.17.0';
10
+ exports.PACKAGE_VERSION = '1.17.1';
@@ -1,16 +1,17 @@
1
1
  import { type Receipt, type ReceiptCompany, type ReportMonth } from '../models/index.js';
2
2
  import type { InternerBinaerTransport, InternerTransport } from './aufrufe.js';
3
3
  /**
4
- * Bericht-Downloads — Zwilling von `downloadDailyReport`/`downloadMonthlyReport`
5
- * in kasseneck_api/lib/kasseneck_api.dart (Zeilen 113-128).
4
+ * Bericht-Downloads — Zwilling von `getCashregisterReport`,
5
+ * `downloadDailyReport` und `downloadMonthlyReport` in
6
+ * kasseneck_api/lib/kasseneck_api.dart.
6
7
  *
7
- * **Beide liefern ein PDF, also Binaerdaten.** Das Flutter-Vorbild liest die
8
- * Antwort als Zeichenkette und nimmt davon `codeUnits`; in JavaScript waere das
9
- * schlicht falsch — `response.text()` deutet die Bytes als UTF-8 und ersetzt
10
- * jedes Byte ueber 0x7F durch U+FFFD. Ein so "heruntergeladener" Tagesbericht
11
- * liesse sich in keinem Betrachter oeffnen. Dieses Paket weicht daher bewusst
12
- * ab: es liest `arrayBuffer()` und liefert `Uint8Array` (siehe
13
- * [createBinaryTransport] in transport.ts).
8
+ * **Alle drei liefern ein PDF, also Binaerdaten.** `response.text()` waere hier
9
+ * falsch: es deutet die Bytes als UTF-8 und ersetzt jedes Byte ueber 0x7F
10
+ * durch U+FFFD, ein so "heruntergeladener" Bericht liesse sich in keinem
11
+ * Betrachter oeffnen. Gelesen wird `arrayBuffer()`, geliefert `Uint8Array`;
12
+ * eine Ablehnung mit HTTP 200 und Huelle (`period_not_closed`) wird zum Fehler
13
+ * (siehe [createBinaryTransport] in transport.ts). Der Dart-Zwilling reichte
14
+ * sie bis 11.8.0 als PDF durch und prueft seit 11.8.1 ebenso die ersten Bytes.
14
15
  *
15
16
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Keiner der
16
17
  * beiden Download-Endpunkte setzt `allowRegisterUser`; sie funktionieren nur
@@ -2,16 +2,17 @@ import { fromReceiptCompanyPayload, fromReceiptPayload, } from '../models/index.
2
2
  import { toViennaWallClock } from '../vienna-time.js';
3
3
  import { KasseneckValidationError } from './errors.js';
4
4
  /**
5
- * Bericht-Downloads — Zwilling von `downloadDailyReport`/`downloadMonthlyReport`
6
- * in kasseneck_api/lib/kasseneck_api.dart (Zeilen 113-128).
5
+ * Bericht-Downloads — Zwilling von `getCashregisterReport`,
6
+ * `downloadDailyReport` und `downloadMonthlyReport` in
7
+ * kasseneck_api/lib/kasseneck_api.dart.
7
8
  *
8
- * **Beide liefern ein PDF, also Binaerdaten.** Das Flutter-Vorbild liest die
9
- * Antwort als Zeichenkette und nimmt davon `codeUnits`; in JavaScript waere das
10
- * schlicht falsch — `response.text()` deutet die Bytes als UTF-8 und ersetzt
11
- * jedes Byte ueber 0x7F durch U+FFFD. Ein so "heruntergeladener" Tagesbericht
12
- * liesse sich in keinem Betrachter oeffnen. Dieses Paket weicht daher bewusst
13
- * ab: es liest `arrayBuffer()` und liefert `Uint8Array` (siehe
14
- * [createBinaryTransport] in transport.ts).
9
+ * **Alle drei liefern ein PDF, also Binaerdaten.** `response.text()` waere hier
10
+ * falsch: es deutet die Bytes als UTF-8 und ersetzt jedes Byte ueber 0x7F
11
+ * durch U+FFFD, ein so "heruntergeladener" Bericht liesse sich in keinem
12
+ * Betrachter oeffnen. Gelesen wird `arrayBuffer()`, geliefert `Uint8Array`;
13
+ * eine Ablehnung mit HTTP 200 und Huelle (`period_not_closed`) wird zum Fehler
14
+ * (siehe [createBinaryTransport] in transport.ts). Der Dart-Zwilling reichte
15
+ * sie bis 11.8.0 als PDF durch und prueft seit 11.8.1 ebenso die ersten Bytes.
15
16
  *
16
17
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Keiner der
17
18
  * beiden Download-Endpunkte setzt `allowRegisterUser`; sie funktionieren nur
@@ -4,4 +4,4 @@
4
4
  * Client-Version, Nachtrag §6). Ein Test haelt sie gleich mit `package.json`;
5
5
  * beim Anheben der Version beide Stellen aendern.
6
6
  */
7
- export declare const PACKAGE_VERSION = "1.17.0";
7
+ export declare const PACKAGE_VERSION = "1.17.1";
@@ -4,4 +4,4 @@
4
4
  * Client-Version, Nachtrag §6). Ein Test haelt sie gleich mit `package.json`;
5
5
  * beim Anheben der Version beide Stellen aendern.
6
6
  */
7
- export const PACKAGE_VERSION = '1.17.0';
7
+ export const PACKAGE_VERSION = '1.17.1';
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.17.0",
2
+ "version": "1.17.1",
3
3
  "measuredOn": {
4
4
  "tid": "3600335",
5
5
  "hpsVersion": "1.10.0",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "title": "Kasseneck Rechnungs-API",
4
4
  "version": 2,
5
- "package": "1.17.0",
5
+ "package": "1.17.1",
6
6
  "endpoints": {
7
7
  "createCustomer": {
8
8
  "request": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.17.0",
2
+ "version": "1.17.1",
3
3
  "languages": [
4
4
  "de",
5
5
  "en"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.17.0",
2
+ "version": "1.17.1",
3
3
  "messages": {
4
4
  "network.no_connection": {
5
5
  "text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.17.0",
2
+ "version": "1.17.1",
3
3
  "baseUrls": {
4
4
  "public": "https://api.kasseneck.at/v3",
5
5
  "pos": "https://kasse.kasseneck.at/api/v3"
@@ -14,7 +14,7 @@ Erzeugt von Jest-Tests in zwei Codebases (jede übersetzt mit ihrem eigenen Rand
14
14
 
15
15
  | Test | schreibt |
16
16
  | --- | --- |
17
- | `functions/test/unit/v3-vertrag-export.test.js` | `v3-vokabular.json`, `antworten/belege.json`, `antworten/kasse-belege.json`, `antworten/storno.json`, `antworten/belegmail.json`, `antworten/rechnungen.json`, `stored/belege.json`, `stored/rechnungen.json`, `zahlbetrag-faelle.json` |
17
+ | `functions/test/unit/v3-vertrag-export.test.js` | `v3-vokabular.json`, `antworten/belege.json`, `antworten/kasse-belege.json`, `antworten/storno.json`, `antworten/belegmail.json`, `antworten/rechnungen.json`, `antworten/berichte.json`, `stored/belege.json`, `stored/rechnungen.json`, `zahlbetrag-faelle.json` |
18
18
  | `functions/test/unit/v3-vertrag-export-kassenweg.test.js` | Teil `default` von `antworten/kasse.json` und `stored/kasse.json` (6 Beleg-Endpunkte der Kasse) |
19
19
  | `functions-kasse/test/unit/v3-vertrag-export.test.js` | Teil `kasse` derselben zwei Dateien (die übrigen 19 Kassen-Endpunkte) |
20
20
  | `functions-kasse/test/unit/v3-vertrag-export-lager.test.js` | `antworten/lager.json` (Lager-API, Stufe 5a) |
@@ -109,6 +109,13 @@ Code-Änderung zusammen einchecken.
109
109
  `platform_fallback`, Fehler).
110
110
  - **`antworten/rechnungen.json`**: Rechnungs-API (Probelauf, Festschreiben, Lesen,
111
111
  Liste, Storno, Gutschrift, Zahlung, Fehler).
112
+ - **`antworten/berichte.json`**: `getCashregisterReport` unter `/v3` (Kanal `api`), der
113
+ Binärweg. Ein Fall mit `file` ist die Datei: HTTP 200, `Content-Type: application/pdf`,
114
+ die Bytes beginnen mit `file.startsWith` (`%PDF-`); mehr vom PDF steht hier nicht, der
115
+ Rest hängt an Schrift und Satz. Jede Ablehnung kommt ebenfalls mit HTTP 200, als Hülle
116
+ mit Code (`period_not_closed` für den laufenden Monat und heute, `period_in_future`,
117
+ `invalid_period`). Ein Paket entscheidet an den ersten Bytes, nicht am Inhaltstyp, und
118
+ wirft die Hülle wie auf dem JSON-Weg.
112
119
  - **`antworten/kasse.json`**: alle 25 Kassen-Endpunkte unter `/api/v3`, je Fall
113
120
  (englischer Name) Methode, Aufrufer, Parameter, HTTP-Status, Kopfzeilen und Antwort.
114
121
  - **`antworten/lager.json`**: Lager-API unter `/v3` (Kanal `api`) in Ablaufreihenfolge an
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "34ee7654a5df2ecf75982d65af731b9a501d978b4ef7fae041817cb2d4915343",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "265bcf3e14cdea33ec3c4df399eb487d40c0d7793ee23d2ee12bcf664bcad550",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -0,0 +1,151 @@
1
+ {
2
+ "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
+ "_quelle": {
4
+ "sha256": "497fe59db3414bf3143c0102eedfd371e165ad2f1878e74a9e1e31bd9413f1b0",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
+ "inputs": [
8
+ "docs/api/fehlercodes.json",
9
+ "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
+ "functions/aktivierung-api-core.js",
11
+ "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
13
+ "functions/gemeinsam/api-rand.js",
14
+ "functions/gemeinsam/api-vokabular-v3.js",
15
+ "functions/gemeinsam/beleg-toepfe.js",
16
+ "functions/gemeinsam/gutschein-beleg.js",
17
+ "functions/gemeinsam/storno-core.js",
18
+ "functions/gemeinsam/tip-core.js",
19
+ "functions/gemeinsam/vat-buckets.js",
20
+ "functions/gemeinsam/zahlungen-core.js",
21
+ "functions/invoice-api-core.js",
22
+ "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
25
+ "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
26
+ "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
27
+ "functions/test/unit/fixtures/vertrag-v3/ablage.js",
28
+ "functions/test/unit/fixtures/vertrag-v3/gutschein-belege.js",
29
+ "functions/test/unit/fixtures/vertrag-v3/vokabular.js",
30
+ "functions/test/unit/fixtures/vertrag-v3/zahlbetrag.js",
31
+ "functions/test/unit/helpers/kassen-fehlerstellen.js",
32
+ "functions/test/unit/v3-vertrag-export.test.js"
33
+ ]
34
+ },
35
+ "channel": "api",
36
+ "note": "Binaerweg: ein Fall mit file ist die Datei (HTTP 200, Content-Type application/pdf, die Bytes beginnen mit file.startsWith), ein Fall mit response die Ablehnung als Huelle, ebenfalls mit HTTP 200. Entschieden wird an den ersten Bytes, nicht am Inhaltstyp.",
37
+ "cases": [
38
+ {
39
+ "name": "report_closed_day",
40
+ "endpoint": "getCashregisterReport",
41
+ "path": "/v3/getCashregisterReport",
42
+ "params": {
43
+ "year": 2026,
44
+ "month": 9,
45
+ "day": 25
46
+ },
47
+ "httpStatus": 200,
48
+ "headers": {
49
+ "Kasseneck-Api-Version": "v3",
50
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version",
51
+ "Content-Type": "application/pdf",
52
+ "Content-Disposition": "attachment; filename=daily-report_KECK-1_2026-09-25.pdf"
53
+ },
54
+ "file": {
55
+ "startsWith": "%PDF-"
56
+ }
57
+ },
58
+ {
59
+ "name": "error_period_not_closed",
60
+ "endpoint": "getCashregisterReport",
61
+ "path": "/v3/getCashregisterReport",
62
+ "params": {
63
+ "year": 2026,
64
+ "month": 9
65
+ },
66
+ "httpStatus": 200,
67
+ "headers": {
68
+ "Kasseneck-Api-Version": "v3",
69
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
70
+ },
71
+ "response": {
72
+ "status": "error",
73
+ "message": "Ungültige Daten: Der Monat ist noch nicht abgeschlossen – Monatsbericht erst ab dem Folgemonat.",
74
+ "data": {
75
+ "code": "period_not_closed"
76
+ },
77
+ "code": "period_not_closed"
78
+ }
79
+ },
80
+ {
81
+ "name": "error_period_not_closed_today",
82
+ "endpoint": "getCashregisterReport",
83
+ "path": "/v3/getCashregisterReport",
84
+ "params": {
85
+ "year": 2026,
86
+ "month": 9,
87
+ "day": 26
88
+ },
89
+ "httpStatus": 200,
90
+ "headers": {
91
+ "Kasseneck-Api-Version": "v3",
92
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
93
+ },
94
+ "response": {
95
+ "status": "error",
96
+ "message": "Der Tag ist noch nicht abgeschlossen – der Tagesbericht ist ab morgen verfügbar.",
97
+ "data": {
98
+ "code": "period_not_closed"
99
+ },
100
+ "code": "period_not_closed"
101
+ }
102
+ },
103
+ {
104
+ "name": "error_period_in_future",
105
+ "endpoint": "getCashregisterReport",
106
+ "path": "/v3/getCashregisterReport",
107
+ "params": {
108
+ "year": 2026,
109
+ "month": 9,
110
+ "day": 27
111
+ },
112
+ "httpStatus": 200,
113
+ "headers": {
114
+ "Kasseneck-Api-Version": "v3",
115
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
116
+ },
117
+ "response": {
118
+ "status": "error",
119
+ "message": "Ungültige Daten: day liegt in der Zukunft.",
120
+ "data": {
121
+ "code": "period_in_future"
122
+ },
123
+ "code": "period_in_future"
124
+ }
125
+ },
126
+ {
127
+ "name": "error_invalid_period",
128
+ "endpoint": "getCashregisterReport",
129
+ "path": "/v3/getCashregisterReport",
130
+ "params": {
131
+ "year": 2026,
132
+ "month": 9,
133
+ "start": "2026-09-01",
134
+ "end": "2026-09-15"
135
+ },
136
+ "httpStatus": 200,
137
+ "headers": {
138
+ "Kasseneck-Api-Version": "v3",
139
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
140
+ },
141
+ "response": {
142
+ "status": "error",
143
+ "message": "Ungültige Daten: genau eine Form – year+month(, day) oder start+end.",
144
+ "data": {
145
+ "code": "invalid_period"
146
+ },
147
+ "code": "invalid_period"
148
+ }
149
+ }
150
+ ]
151
+ }
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "3c75e607989f9f116b6c93de52fe8b48bc29103422f4bb8698baed64f89cc9b0",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,7 +2,7 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "6d19c6313438a44d5f522bcaf248de293c6e285dd891185a773e05e9eef6f45b",
5
- "inputsSha256": "407c79805f7927a0335eecff1888408b6153f5a38d8b85e7d57e004eb4832ad9",
5
+ "inputsSha256": "5e85d2e9034321bb04772561daaa798e26650a1209390ebb4471747aa11d658c",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.14.0",
7
7
  "inputs": [
8
8
  "functions-kasse/article-endpoints.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "a5d2e578f0ee866e539320866624dc9337459479bfcdcb955c8c3b821cd1c689",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "53bacb07e03ff6e46d2d78d0aed71daa450dde715a9f79c927f6953f76f81997",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "2781c0716b6ba63ef2c14eb5a3e6abab37adf42af72c9aee60bbbb1ebd716cf1",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "8ab1b71c62ba07684e9ef254a7434be434247afdb1ac9947e083b4b0af5f3c04",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "3088cb472f3fef3ed4ff969bf0d37d051363714096616a9263270c58266bde14",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
@@ -2,13 +2,14 @@
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
4
  "sha256": "c9779c167da78af095a7a45a25d7cd69a1c31041adb99347e14dd2f7779a621c",
5
- "inputsSha256": "2fc82d7d936fbb7e239ae5ce0eb3166a12034a6dc6f3d94482b33ef92068be26",
5
+ "inputsSha256": "931df962ad989229c326fa42dbfda9a5535c23bdd9a52425f19d53dfaa2d6abc",
6
6
  "backendPackage": "@kreiseck/kasseneck-api@0.35.0",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
10
  "functions/aktivierung-api-core.js",
11
11
  "functions/beleg-mail-core.js",
12
+ "functions/bericht-v2-liefern.js",
12
13
  "functions/gemeinsam/api-rand.js",
13
14
  "functions/gemeinsam/api-vokabular-v3.js",
14
15
  "functions/gemeinsam/beleg-toepfe.js",
@@ -19,6 +20,8 @@
19
20
  "functions/gemeinsam/zahlungen-core.js",
20
21
  "functions/invoice-api-core.js",
21
22
  "functions/invoice-api-endpoints.js",
23
+ "functions/report-endpoints.js",
24
+ "functions/report-v2.js",
22
25
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
23
26
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kreiseck/kasseneck-api",
3
- "version": "1.17.0",
3
+ "version": "1.17.1",
4
4
  "description": "Austrian fiscal cash register (RKSV) client for JavaScript and TypeScript: signed receipts, cancellations, card payments, receipt printing (ESC/POS), invoices, inventory. RKSV-Registrierkasse für JavaScript und TypeScript.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Kreiseck",