@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 +19 -0
- package/README.md +8 -7
- package/dist/cjs/payments/index.d.ts +5 -4
- package/dist/cjs/payments/index.js +4 -3
- package/dist/cjs/rechnung/summen.d.ts +18 -3
- package/dist/cjs/rechnung/summen.js +18 -3
- package/dist/cjs/rechnung/typen.d.ts +1 -1
- package/dist/cjs/rechnung/vertrag.d.ts +1 -1
- package/dist/cjs/rechnung/vertrag.js +1 -1
- package/dist/esm/payments/index.d.ts +5 -4
- package/dist/esm/payments/index.js +4 -3
- package/dist/esm/rechnung/summen.d.ts +18 -3
- package/dist/esm/rechnung/summen.js +18 -3
- package/dist/esm/rechnung/typen.d.ts +1 -1
- package/dist/esm/rechnung/vertrag.d.ts +1 -1
- package/dist/esm/rechnung/vertrag.js +1 -1
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/kasse-texte.json +1 -1
- package/fixtures/oberflaeche.json +1 -1
- package/fixtures/rechnung-api.schema.json +1 -1
- package/fixtures/rechnung-texte.json +1 -1
- package/package.json +1 -1
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`
|
|
843
|
-
|
|
844
|
-
core. At half-cent boundaries it can differ from an invoice
|
|
845
|
-
one cent per VAT rate, and by a few cents across several
|
|
846
|
-
€ 21.35 net at 10 % gives € 23.48 gross with `rechnungSummen`,
|
|
847
|
-
with the core and on the invoice.
|
|
848
|
-
new code. Test cases for
|
|
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
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
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
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* `
|
|
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
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
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
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* `
|
|
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
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kreiseck/kasseneck-api",
|
|
3
|
-
"version": "0.27.
|
|
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",
|