@kreiseck/kasseneck-api 0.27.2 → 0.27.3

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,25 @@ 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
+ ## 0.27.3
8
+
9
+ - **`rechnungSummen` ist als veraltet markiert** (`@deprecated`), das Rechenergebnis bleibt
10
+ unverändert. Grund: seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue Rechnung über den
11
+ exakten Kern (`rechnungRechnen`) aus; `rechnungSummen` rechnet nach Weg 2 und liegt an
12
+ Halbcent-Grenzen einen Cent je Satz daneben (21,35 € netto zu 10 %: 23,48 € statt 23,49 €). Auf
13
+ den Kern umgestellt wird bewusst nicht: der Server schaltet ihn je Konto über `ganzzahlPflicht`,
14
+ Entwürfe außerhalb des Ausstellens rechnet er teils weiter nach Weg 2, und
15
+ `fixtures/rechnung-summen.json` prüfen Backend und Dart-Zwilling. Der Kopfkommentar behauptete
16
+ noch, die Funktion rechne „genau so wie der Server“; das ist berichtigt, README ebenso.
17
+ - **`HpsRefundOptions`, `HpsCancelOptions`, `HpsConnectRefundOptions` und
18
+ `HpsConnectCancelOptions` werden unter `…/payments` exportiert** (nur hinzugefügt). Die Aufrufe
19
+ `refund`/`cancel` gab es dort schon, ihre Optionstypen nicht. Der Kopfkommentar von
20
+ `src/payments/index.ts` sagte noch, Gutschrift und Storno gingen nur über die Flutter-App; das
21
+ gilt seit Connect `/v1/terminal/refund` bzw. `/cancel` nicht mehr.
22
+ - § 131b Abs. 1 Z 3 steht in der **BAO**, nicht im UStG: an `INVOICE_PAYMENT_METHODS` und
23
+ `PaymentInput.onSite` berichtigt (Wortlaut gegen das RIS geprüft). Ein Test hält künftig jede
24
+ Zuordnung von § 131 ff. zum UStG in `src/` fest.
25
+
7
26
  ## 0.27.2
8
27
 
9
28
  - **README auf Englisch** und jede Angabe gegen den Code geprüft. Anfragen kommen inzwischen auch
package/README.md CHANGED
@@ -839,13 +839,14 @@ positive for credit notes too; the sign is in the document type
839
839
  (`docType: 'GU'`). Test cases: `fixtures/rechnung-rechnen.json`,
840
840
  `fixtures/rechnung-rechnen-zufall.json`, `fixtures/position-aus-euro.json`.
841
841
 
842
- **`rechnungSummen` still uses the previous formula.** The older helper in
843
- `…/rechnung` works on `unitPriceCents` lines and does not yet run through the
844
- core. At half-cent boundaries it can differ from an invoice issued today by
845
- one cent per VAT rate, and by a few cents across several rates. Example:
846
- € 21.35 net at 10 % gives € 23.48 gross with `rechnungSummen`, but € 23.49
847
- with the core and on the invoice. Use `rechnungRechnen` or `previewInvoice` in
848
- new code. Test cases for the old formula: `fixtures/rechnung-summen.json`.
842
+ **`rechnungSummen` is deprecated.** The older helper in `…/rechnung` works on
843
+ `unitPriceCents` lines with the previous floating-point formula and does not
844
+ run through the core. At half-cent boundaries it can differ from an invoice
845
+ issued today by one cent per VAT rate, and by a few cents across several
846
+ rates. Example: € 21.35 net at 10 % gives € 23.48 gross with `rechnungSummen`,
847
+ but € 23.49 with the core and on the invoice. It stays unchanged for existing
848
+ callers; use `rechnungRechnen` or `previewInvoice` in new code. Test cases for
849
+ the old formula: `fixtures/rechnung-summen.json`.
849
850
 
850
851
  ## Development
851
852
 
@@ -22,9 +22,10 @@
22
22
  * Terminal spricht. Das ist kein Widerspruch zur Umgebungsgrenze, sondern ein
23
23
  * zweiter, seit `hobex-hps.js` genutzter Weg um sie herum.
24
24
  *
25
- * Wer Gutschrift oder Storno am HPS-Terminal braucht, braucht weiterhin die
26
- * Flutter-App: Connect exponiert dafuer (noch) keinen Endpunkt, siehe
27
- * `hobex-hps/connect-client.ts`.
25
+ * Gutschrift und Storno am HPS-Terminal laufen ebenfalls ueber Connect
26
+ * (`POST /v1/terminal/refund` bzw. `/cancel`): `HpsPayments.refund`/`cancel`
27
+ * mit `HpsRefundOptions`/`HpsCancelOptions`, darunter
28
+ * `HpsConnectClient.refund`/`cancel`, siehe `hobex-hps/connect-client.ts`.
28
29
  *
29
30
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** **Keiner** der
30
31
  * vier Cloud-Zahlungs-Endpunkte (Stripe, Hobex-Cloud) setzt `allowRegisterUser`;
@@ -42,4 +43,4 @@
42
43
  export { StripeLinkMode, type StripeLinkModeKey } from '../enums/index.js';
43
44
  export { type CreateStripeLinkOptions, type StripeCaptureResult, createStripeLink, stripeCaptureIntent, } from './stripe.js';
44
45
  export { type HobexPayOptions, type HobexRefundOptions, type HobexTransactionIdOptions, hobexPay, hobexRefund, newHobexTransactionId, } from './hobex.js';
45
- export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
46
+ export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectCancelOptions, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectRefundOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCancelOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsRefundOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
@@ -23,9 +23,10 @@
23
23
  * Terminal spricht. Das ist kein Widerspruch zur Umgebungsgrenze, sondern ein
24
24
  * zweiter, seit `hobex-hps.js` genutzter Weg um sie herum.
25
25
  *
26
- * Wer Gutschrift oder Storno am HPS-Terminal braucht, braucht weiterhin die
27
- * Flutter-App: Connect exponiert dafuer (noch) keinen Endpunkt, siehe
28
- * `hobex-hps/connect-client.ts`.
26
+ * Gutschrift und Storno am HPS-Terminal laufen ebenfalls ueber Connect
27
+ * (`POST /v1/terminal/refund` bzw. `/cancel`): `HpsPayments.refund`/`cancel`
28
+ * mit `HpsRefundOptions`/`HpsCancelOptions`, darunter
29
+ * `HpsConnectClient.refund`/`cancel`, siehe `hobex-hps/connect-client.ts`.
29
30
  *
30
31
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** **Keiner** der
31
32
  * vier Cloud-Zahlungs-Endpunkte (Stripe, Hobex-Cloud) setzt `allowRegisterUser`;
@@ -1,7 +1,16 @@
1
1
  /**
2
- * Summen einer Rechnung vorab rechnen — genau so, wie der Server sie beim
3
- * Ausstellen rechnet. Fuer Shops, die kassieren, bevor die Rechnung entsteht,
4
- * und denselben Betrag brauchen, den die Rechnung spaeter ausweist.
2
+ * Summen einer Rechnung vorab rechnen, nach der frueheren Formel (Weg 2,
3
+ * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
4
+ *
5
+ * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
6
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
7
+ * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
8
+ * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
9
+ * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
10
+ * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
11
+ * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
12
+ * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
13
+ * nimmt `rechnungRechnen` oder `previewInvoice`.
5
14
  *
6
15
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
7
16
  *
@@ -38,5 +47,11 @@ export interface SummenPosition {
38
47
  * Server einen steuerfreien Fall ab (etwa eine ig. Lieferung), gehoert dieser
39
48
  * Fall hierher — sonst rechnet die Funktion Steuer, die die Rechnung nicht
40
49
  * ausweist.
50
+ *
51
+ * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
52
+ * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
53
+ * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
54
+ * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
55
+ * `positionAusEuro`) oder `previewInvoice` verwenden.
41
56
  */
42
57
  export declare function rechnungSummen(items: readonly SummenPosition[], priceMode: PriceMode, taxScheme?: TaxScheme): InvoiceTotals;
@@ -1,8 +1,17 @@
1
1
  "use strict";
2
2
  /**
3
- * Summen einer Rechnung vorab rechnen — genau so, wie der Server sie beim
4
- * Ausstellen rechnet. Fuer Shops, die kassieren, bevor die Rechnung entsteht,
5
- * und denselben Betrag brauchen, den die Rechnung spaeter ausweist.
3
+ * Summen einer Rechnung vorab rechnen, nach der frueheren Formel (Weg 2,
4
+ * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
5
+ *
6
+ * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
7
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
8
+ * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
9
+ * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
10
+ * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
11
+ * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
12
+ * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
13
+ * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
14
+ * nimmt `rechnungRechnen` oder `previewInvoice`.
6
15
  *
7
16
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
8
17
  *
@@ -42,6 +51,12 @@ function centRund(x) {
42
51
  * Server einen steuerfreien Fall ab (etwa eine ig. Lieferung), gehoert dieser
43
52
  * Fall hierher — sonst rechnet die Funktion Steuer, die die Rechnung nicht
44
53
  * ausweist.
54
+ *
55
+ * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
56
+ * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
57
+ * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
58
+ * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
59
+ * `positionAusEuro`) oder `previewInvoice` verwenden.
45
60
  */
46
61
  function rechnungSummen(items, priceMode, taxScheme = 'normal') {
47
62
  const steuerfrei = rechnen_js_1.STEUERFREIE_FAELLE.includes(taxScheme);
@@ -133,7 +133,7 @@ export interface PaymentInput {
133
133
  reference?: string;
134
134
  /**
135
135
  * Die Zahlung erfolgte vor Ort beim Unternehmer (Terminal an der Kasse).
136
- * Dann ist sie ein Barumsatz — auch mit Karte (§ 131b Abs. 1 Z 3 UStG) — und
136
+ * Dann ist sie ein Barumsatz — auch mit Karte (§ 131b Abs. 1 Z 3 BAO) — und
137
137
  * die Antwort traegt den Hinweis `cash_receipt_required`. Zu `transfer`
138
138
  * passt das Kennzeichen nicht und wird abgewiesen.
139
139
  */
@@ -130,7 +130,7 @@ export type InvoiceLanguage = (typeof INVOICE_LANGUAGES)[number];
130
130
  * Wie eine Rechnung bezahlt wurde. Der Vermerk ist Buchhaltung, kein Beleg.
131
131
  *
132
132
  * Ein **Barumsatz** ist nicht nur Bargeld: als Barzahlung gilt auch die Zahlung
133
- * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 UStG), nicht
133
+ * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 BAO), nicht
134
134
  * aber dieselbe Karte im Internet. Weil `card` und `online` beides sein
135
135
  * koennen, sagt das Feld `onSite` es dem Server — und nur dann traegt die
136
136
  * Antwort den Hinweis `cash_receipt_required` (bei `cash` immer).
@@ -147,7 +147,7 @@ exports.INVOICE_LANGUAGES = ['de', 'en'];
147
147
  * Wie eine Rechnung bezahlt wurde. Der Vermerk ist Buchhaltung, kein Beleg.
148
148
  *
149
149
  * Ein **Barumsatz** ist nicht nur Bargeld: als Barzahlung gilt auch die Zahlung
150
- * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 UStG), nicht
150
+ * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 BAO), nicht
151
151
  * aber dieselbe Karte im Internet. Weil `card` und `online` beides sein
152
152
  * koennen, sagt das Feld `onSite` es dem Server — und nur dann traegt die
153
153
  * Antwort den Hinweis `cash_receipt_required` (bei `cash` immer).
@@ -22,9 +22,10 @@
22
22
  * Terminal spricht. Das ist kein Widerspruch zur Umgebungsgrenze, sondern ein
23
23
  * zweiter, seit `hobex-hps.js` genutzter Weg um sie herum.
24
24
  *
25
- * Wer Gutschrift oder Storno am HPS-Terminal braucht, braucht weiterhin die
26
- * Flutter-App: Connect exponiert dafuer (noch) keinen Endpunkt, siehe
27
- * `hobex-hps/connect-client.ts`.
25
+ * Gutschrift und Storno am HPS-Terminal laufen ebenfalls ueber Connect
26
+ * (`POST /v1/terminal/refund` bzw. `/cancel`): `HpsPayments.refund`/`cancel`
27
+ * mit `HpsRefundOptions`/`HpsCancelOptions`, darunter
28
+ * `HpsConnectClient.refund`/`cancel`, siehe `hobex-hps/connect-client.ts`.
28
29
  *
29
30
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** **Keiner** der
30
31
  * vier Cloud-Zahlungs-Endpunkte (Stripe, Hobex-Cloud) setzt `allowRegisterUser`;
@@ -42,4 +43,4 @@
42
43
  export { StripeLinkMode, type StripeLinkModeKey } from '../enums/index.js';
43
44
  export { type CreateStripeLinkOptions, type StripeCaptureResult, createStripeLink, stripeCaptureIntent, } from './stripe.js';
44
45
  export { type HobexPayOptions, type HobexRefundOptions, type HobexTransactionIdOptions, hobexPay, hobexRefund, newHobexTransactionId, } from './hobex.js';
45
- export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
46
+ export { type CardPaymentOutcome, type HpsConnectClient, type HpsConnectCancelOptions, type HpsConnectClientOptions, type HpsConnectFetch, type HpsConnectFetchResponse, type HpsConnectPaymentOptions, type HpsConnectRefundOptions, type HpsConnectTarget, type HpsConnectTransactionOptions, type HpsCancelOptions, type HpsCode, type HpsCodeEffect, type HpsCodeReason, type HpsCodeSource, type HpsMeasuredCode, type HpsPaymentEvent, type HpsPaymentEventKind, type HpsPaymentObserver, type HpsPaymentOptions, type HpsPayments, type HpsPaymentResult, type HpsPaymentsOptions, type HpsRefundOptions, type HpsTransactionIdGeneratorOptions, type HpsTransactionResponse, ABORTED_CODE, APPROVED_CODE, CARD_NOT_PRESENT_CODE, createHpsConnectClient, createHpsPayments, createHpsTransactionIdGenerator, HPS_CODES, HPS_MEASURED_CODES, HPS_REASON_HINTS, hpsCodeInfo, hpsCodeReason, HpsClarifyTimeoutError, HpsConnectException, HpsConnectTerminalError, HpsConnectTransportError, HpsPreflightError, HpsTransactionIdError, INVALID_TRANSACTION_CODE, isApproved, isConclusive, isConclusiveAsStatus, isHostUncertain, isHostUncertainResult, isInProgress, isNoStatement, isNotAbortable, isTechnicalError, isUnknownCode, isValidHpsTransactionId, mayRetrySafely, MAX_TRANSACTION_ID_LENGTH, newHpsTransactionId, NOT_ABORTABLE_CODE, NO_STATEMENT_CODE, parseHpsTransactionResponse, PREFLIGHT_CONNECT_CODES, TECHNICAL_ERROR_CODE, NOT_FOUND_HTTP_STATUS, TERMINAL_BUSY_HTTP_STATUS, TRANSACTION_CANCELED_CODE, } from './hobex-hps/index.js';
@@ -22,9 +22,10 @@
22
22
  * Terminal spricht. Das ist kein Widerspruch zur Umgebungsgrenze, sondern ein
23
23
  * zweiter, seit `hobex-hps.js` genutzter Weg um sie herum.
24
24
  *
25
- * Wer Gutschrift oder Storno am HPS-Terminal braucht, braucht weiterhin die
26
- * Flutter-App: Connect exponiert dafuer (noch) keinen Endpunkt, siehe
27
- * `hobex-hps/connect-client.ts`.
25
+ * Gutschrift und Storno am HPS-Terminal laufen ebenfalls ueber Connect
26
+ * (`POST /v1/terminal/refund` bzw. `/cancel`): `HpsPayments.refund`/`cancel`
27
+ * mit `HpsRefundOptions`/`HpsCancelOptions`, darunter
28
+ * `HpsConnectClient.refund`/`cancel`, siehe `hobex-hps/connect-client.ts`.
28
29
  *
29
30
  * **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** **Keiner** der
30
31
  * vier Cloud-Zahlungs-Endpunkte (Stripe, Hobex-Cloud) setzt `allowRegisterUser`;
@@ -1,7 +1,16 @@
1
1
  /**
2
- * Summen einer Rechnung vorab rechnen — genau so, wie der Server sie beim
3
- * Ausstellen rechnet. Fuer Shops, die kassieren, bevor die Rechnung entsteht,
4
- * und denselben Betrag brauchen, den die Rechnung spaeter ausweist.
2
+ * Summen einer Rechnung vorab rechnen, nach der frueheren Formel (Weg 2,
3
+ * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
4
+ *
5
+ * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
6
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
7
+ * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
8
+ * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
9
+ * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
10
+ * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
11
+ * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
12
+ * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
13
+ * nimmt `rechnungRechnen` oder `previewInvoice`.
5
14
  *
6
15
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
7
16
  *
@@ -38,5 +47,11 @@ export interface SummenPosition {
38
47
  * Server einen steuerfreien Fall ab (etwa eine ig. Lieferung), gehoert dieser
39
48
  * Fall hierher — sonst rechnet die Funktion Steuer, die die Rechnung nicht
40
49
  * ausweist.
50
+ *
51
+ * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
52
+ * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
53
+ * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
54
+ * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
55
+ * `positionAusEuro`) oder `previewInvoice` verwenden.
41
56
  */
42
57
  export declare function rechnungSummen(items: readonly SummenPosition[], priceMode: PriceMode, taxScheme?: TaxScheme): InvoiceTotals;
@@ -1,7 +1,16 @@
1
1
  /**
2
- * Summen einer Rechnung vorab rechnen — genau so, wie der Server sie beim
3
- * Ausstellen rechnet. Fuer Shops, die kassieren, bevor die Rechnung entsteht,
4
- * und denselben Betrag brauchen, den die Rechnung spaeter ausweist.
2
+ * Summen einer Rechnung vorab rechnen, nach der frueheren Formel (Weg 2,
3
+ * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
4
+ *
5
+ * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
6
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
7
+ * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
8
+ * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
9
+ * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
10
+ * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
11
+ * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
12
+ * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
13
+ * nimmt `rechnungRechnen` oder `previewInvoice`.
5
14
  *
6
15
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
7
16
  *
@@ -39,6 +48,12 @@ function centRund(x) {
39
48
  * Server einen steuerfreien Fall ab (etwa eine ig. Lieferung), gehoert dieser
40
49
  * Fall hierher — sonst rechnet die Funktion Steuer, die die Rechnung nicht
41
50
  * ausweist.
51
+ *
52
+ * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
53
+ * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
54
+ * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
55
+ * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
56
+ * `positionAusEuro`) oder `previewInvoice` verwenden.
42
57
  */
43
58
  export function rechnungSummen(items, priceMode, taxScheme = 'normal') {
44
59
  const steuerfrei = STEUERFREIE_FAELLE.includes(taxScheme);
@@ -133,7 +133,7 @@ export interface PaymentInput {
133
133
  reference?: string;
134
134
  /**
135
135
  * Die Zahlung erfolgte vor Ort beim Unternehmer (Terminal an der Kasse).
136
- * Dann ist sie ein Barumsatz — auch mit Karte (§ 131b Abs. 1 Z 3 UStG) — und
136
+ * Dann ist sie ein Barumsatz — auch mit Karte (§ 131b Abs. 1 Z 3 BAO) — und
137
137
  * die Antwort traegt den Hinweis `cash_receipt_required`. Zu `transfer`
138
138
  * passt das Kennzeichen nicht und wird abgewiesen.
139
139
  */
@@ -130,7 +130,7 @@ export type InvoiceLanguage = (typeof INVOICE_LANGUAGES)[number];
130
130
  * Wie eine Rechnung bezahlt wurde. Der Vermerk ist Buchhaltung, kein Beleg.
131
131
  *
132
132
  * Ein **Barumsatz** ist nicht nur Bargeld: als Barzahlung gilt auch die Zahlung
133
- * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 UStG), nicht
133
+ * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 BAO), nicht
134
134
  * aber dieselbe Karte im Internet. Weil `card` und `online` beides sein
135
135
  * koennen, sagt das Feld `onSite` es dem Server — und nur dann traegt die
136
136
  * Antwort den Hinweis `cash_receipt_required` (bei `cash` immer).
@@ -144,7 +144,7 @@ export const INVOICE_LANGUAGES = ['de', 'en'];
144
144
  * Wie eine Rechnung bezahlt wurde. Der Vermerk ist Buchhaltung, kein Beleg.
145
145
  *
146
146
  * Ein **Barumsatz** ist nicht nur Bargeld: als Barzahlung gilt auch die Zahlung
147
- * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 UStG), nicht
147
+ * mit Bankomat- oder Kreditkarte **vor Ort** (§ 131b Abs. 1 Z 3 BAO), nicht
148
148
  * aber dieselbe Karte im Internet. Weil `card` und `online` beides sein
149
149
  * koennen, sagt das Feld `onSite` es dem Server — und nur dann traegt die
150
150
  * Antwort den Hinweis `cash_receipt_required` (bei `cash` immer).
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.27.2",
2
+ "version": "0.27.3",
3
3
  "gemessenAn": {
4
4
  "tid": "3600335",
5
5
  "hpsVersion": "1.10.0",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.27.2",
2
+ "version": "0.27.3",
3
3
  "meldungen": {
4
4
  "netz.keine_verbindung": {
5
5
  "text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.27.2",
2
+ "version": "0.27.3",
3
3
  "aufrufe": [
4
4
  "activateCashregister",
5
5
  "cancelInvoice",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "title": "Kasseneck Rechnungs-API",
4
4
  "version": 1,
5
- "paket": "0.27.2",
5
+ "paket": "0.27.3",
6
6
  "aufrufe": {
7
7
  "createCustomer": {
8
8
  "anfrage": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.27.2",
2
+ "version": "0.27.3",
3
3
  "sprachen": [
4
4
  "de",
5
5
  "en"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kreiseck/kasseneck-api",
3
- "version": "0.27.2",
3
+ "version": "0.27.3",
4
4
  "description": "Austrian fiscal cash register (RKSV) client for JavaScript and TypeScript: signed receipts, cancellations, card payments, receipt printing (ESC/POS), invoices. RKSV-Registrierkasse für JavaScript und TypeScript.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Kreiseck",