@kreiseck/kasseneck-api 0.31.0 → 1.0.0-rc.2
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 +317 -0
- package/README.de.md +11 -7
- package/README.md +509 -126
- package/dist/cjs/client/api.d.ts +7 -6
- package/dist/cjs/client/api.js +2 -2
- package/dist/cjs/client/aufrufe.d.ts +29 -5
- package/dist/cjs/client/aufrufe.js +114 -2
- package/dist/cjs/client/auth.d.ts +2 -0
- package/dist/cjs/client/auth.js +17 -1
- package/dist/cjs/client/cashregisters.d.ts +1 -1
- package/dist/cjs/client/cashregisters.js +2 -2
- package/dist/cjs/client/errors.d.ts +94 -19
- package/dist/cjs/client/errors.js +132 -28
- package/dist/cjs/client/fehlercodes.d.ts +9 -0
- package/dist/cjs/client/fehlercodes.js +36 -0
- package/dist/cjs/client/index.d.ts +5 -5
- package/dist/cjs/client/index.js +11 -3
- package/dist/cjs/client/receipts.d.ts +131 -124
- package/dist/cjs/client/receipts.js +196 -137
- package/dist/cjs/client/reports.d.ts +26 -4
- package/dist/cjs/client/reports.js +37 -4
- package/dist/cjs/client/status.d.ts +3 -3
- package/dist/cjs/client/status.js +7 -7
- package/dist/cjs/client/transport.d.ts +56 -4
- package/dist/cjs/client/transport.js +234 -25
- package/dist/cjs/enums/vat-rate.d.ts +2 -2
- package/dist/cjs/enums/vat-rate.js +1 -1
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +42 -13
- package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
- package/dist/cjs/{rechnung → invoice}/api.js +6 -6
- package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
- package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
- package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
- package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
- package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
- package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/cjs/invoice/fehler.d.ts +31 -0
- package/dist/cjs/invoice/fehler.js +39 -0
- package/dist/cjs/invoice/index.d.ts +21 -0
- package/dist/cjs/invoice/index.js +86 -0
- package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
- package/dist/cjs/invoice/texte.d.ts +224 -0
- package/dist/cjs/invoice/texte.js +425 -0
- package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
- package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
- package/dist/cjs/models/cancellation.d.ts +43 -24
- package/dist/cjs/models/cancellation.js +94 -46
- package/dist/cjs/models/hobex-receipt.d.ts +3 -3
- package/dist/cjs/models/hobex-receipt.js +35 -35
- package/dist/cjs/models/index.d.ts +6 -5
- package/dist/cjs/models/index.js +22 -2
- package/dist/cjs/models/payment-errors.d.ts +32 -15
- package/dist/cjs/models/payment-errors.js +80 -32
- package/dist/cjs/models/receipt-company.d.ts +6 -5
- package/dist/cjs/models/receipt-company.js +4 -4
- package/dist/cjs/models/receipt-email.d.ts +32 -18
- package/dist/cjs/models/receipt-email.js +69 -24
- package/dist/cjs/models/receipt-errors.d.ts +39 -0
- package/dist/cjs/models/receipt-errors.js +94 -0
- package/dist/cjs/models/receipt-item.d.ts +9 -1
- package/dist/cjs/models/receipt-item.js +3 -0
- package/dist/cjs/models/receipt-summary.d.ts +10 -4
- package/dist/cjs/models/receipt-summary.js +10 -4
- package/dist/cjs/models/receipt.d.ts +31 -2
- package/dist/cjs/models/receipt.js +12 -1
- package/dist/cjs/models/voucher.d.ts +7 -6
- package/dist/cjs/models/voucher.js +2 -7
- package/dist/cjs/partner/ablauf.d.ts +10 -10
- package/dist/cjs/partner/ablauf.js +29 -29
- package/dist/cjs/partner/api.d.ts +26 -23
- package/dist/cjs/partner/api.js +11 -13
- package/dist/cjs/partner/auth.d.ts +1 -1
- package/dist/cjs/partner/auth.js +2 -2
- package/dist/cjs/partner/betrieb.d.ts +7 -7
- package/dist/cjs/partner/betrieb.js +10 -10
- package/dist/cjs/partner/endpunkte.d.ts +27 -14
- package/dist/cjs/partner/endpunkte.js +80 -39
- package/dist/cjs/partner/fehler.d.ts +60 -30
- package/dist/cjs/partner/fehler.js +99 -43
- package/dist/cjs/partner/index.d.ts +13 -12
- package/dist/cjs/partner/index.js +35 -22
- package/dist/cjs/partner/secret.d.ts +3 -3
- package/dist/cjs/partner/secret.js +6 -6
- package/dist/cjs/partner/typen.d.ts +129 -71
- package/dist/cjs/partner/typen.js +76 -3
- package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
- package/dist/cjs/partner/webhook-signatur.js +12 -12
- package/dist/cjs/partner/webhooks.d.ts +60 -32
- package/dist/cjs/partner/webhooks.js +40 -34
- package/dist/cjs/payments/hobex.d.ts +11 -3
- package/dist/cjs/payments/hobex.js +17 -5
- package/dist/cjs/payments/stripe.d.ts +5 -2
- package/dist/cjs/payments/stripe.js +10 -5
- package/dist/cjs/pos/artikel.d.ts +90 -0
- package/dist/cjs/pos/artikel.js +89 -0
- package/dist/cjs/pos/client.d.ts +27 -0
- package/dist/cjs/pos/client.js +144 -0
- package/dist/cjs/pos/drucker.d.ts +86 -0
- package/dist/cjs/pos/drucker.js +78 -0
- package/dist/cjs/pos/errors.d.ts +36 -0
- package/dist/cjs/pos/errors.js +95 -0
- package/dist/cjs/pos/index.d.ts +15 -0
- package/dist/cjs/pos/index.js +102 -0
- package/dist/cjs/pos/settings.d.ts +313 -0
- package/dist/cjs/pos/settings.js +376 -0
- package/dist/cjs/pos/texte.d.ts +883 -0
- package/dist/cjs/pos/texte.js +489 -0
- package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/cjs/printing/escpos.d.ts +29 -29
- package/dist/cjs/printing/escpos.js +61 -61
- package/dist/cjs/printing/index.d.ts +2 -2
- package/dist/cjs/printing/index.js +17 -17
- package/dist/cjs/printing/qr-groesse.d.ts +38 -38
- package/dist/cjs/printing/qr-groesse.js +47 -47
- package/dist/cjs/printing/webusb.d.ts +2 -2
- package/dist/cjs/printing/webusb.js +4 -4
- package/dist/cjs/react/index.d.ts +21 -21
- package/dist/cjs/react/index.js +40 -30
- package/dist/cjs/receipt/bild.d.ts +4 -4
- package/dist/cjs/receipt/bild.js +11 -11
- package/dist/cjs/receipt/blatt.d.ts +46 -46
- package/dist/cjs/receipt/blatt.js +59 -59
- package/dist/cjs/receipt/discount.d.ts +1 -1
- package/dist/cjs/receipt/discount.js +8 -8
- package/dist/cjs/receipt/due.d.ts +86 -0
- package/dist/cjs/receipt/due.js +261 -0
- package/dist/cjs/receipt/epos.d.ts +22 -22
- package/dist/cjs/receipt/epos.js +45 -45
- package/dist/cjs/receipt/grid.d.ts +10 -10
- package/dist/cjs/receipt/grid.js +20 -20
- package/dist/cjs/receipt/index.d.ts +9 -8
- package/dist/cjs/receipt/index.js +26 -23
- package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
- package/dist/cjs/receipt/layout-escpos.js +49 -49
- package/dist/cjs/receipt/layout.d.ts +28 -23
- package/dist/cjs/receipt/layout.js +45 -21
- package/dist/cjs/receipt/marke-daten.d.ts +8 -8
- package/dist/cjs/receipt/marke-daten.js +8 -8
- package/dist/cjs/receipt/marke.d.ts +7 -7
- package/dist/cjs/receipt/marke.js +10 -10
- package/dist/cjs/register/errors.d.ts +61 -0
- package/dist/cjs/register/errors.js +112 -0
- package/dist/cjs/register/index.d.ts +14 -1
- package/dist/cjs/register/index.js +20 -1
- package/dist/cjs/register/pairing.d.ts +55 -36
- package/dist/cjs/register/pairing.js +33 -29
- package/dist/cjs/register/session.d.ts +5 -5
- package/dist/cjs/register/session.js +7 -7
- package/dist/cjs/stored/draht.d.ts +45 -0
- package/dist/cjs/stored/draht.js +220 -0
- package/dist/cjs/stored/einstellungen.d.ts +23 -0
- package/dist/cjs/stored/einstellungen.js +200 -0
- package/dist/cjs/stored/index.d.ts +109 -0
- package/dist/cjs/stored/index.js +225 -0
- package/dist/cjs/stored/vokabular.d.ts +18 -0
- package/dist/cjs/stored/vokabular.js +389 -0
- package/dist/cjs/version.d.ts +7 -0
- package/dist/cjs/version.js +10 -0
- package/dist/cjs/vienna-time.d.ts +1 -1
- package/dist/cjs/vienna-time.js +2 -2
- package/dist/esm/client/api.d.ts +7 -6
- package/dist/esm/client/api.js +4 -4
- package/dist/esm/client/aufrufe.d.ts +29 -5
- package/dist/esm/client/aufrufe.js +111 -1
- package/dist/esm/client/auth.d.ts +2 -0
- package/dist/esm/client/auth.js +16 -1
- package/dist/esm/client/cashregisters.d.ts +1 -1
- package/dist/esm/client/cashregisters.js +2 -2
- package/dist/esm/client/errors.d.ts +94 -19
- package/dist/esm/client/errors.js +129 -27
- package/dist/esm/client/fehlercodes.d.ts +9 -0
- package/dist/esm/client/fehlercodes.js +32 -0
- package/dist/esm/client/index.d.ts +5 -5
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/receipts.d.ts +131 -124
- package/dist/esm/client/receipts.js +195 -140
- package/dist/esm/client/reports.d.ts +26 -4
- package/dist/esm/client/reports.js +36 -4
- package/dist/esm/client/status.d.ts +3 -3
- package/dist/esm/client/status.js +7 -7
- package/dist/esm/client/transport.d.ts +56 -4
- package/dist/esm/client/transport.js +233 -24
- package/dist/esm/enums/vat-rate.d.ts +2 -2
- package/dist/esm/enums/vat-rate.js +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
- package/dist/esm/{rechnung → invoice}/api.js +6 -6
- package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
- package/dist/esm/{rechnung → invoice}/auth.js +4 -4
- package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
- package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
- package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
- package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/esm/invoice/fehler.d.ts +31 -0
- package/dist/esm/invoice/fehler.js +33 -0
- package/dist/esm/invoice/index.d.ts +21 -0
- package/dist/esm/invoice/index.js +20 -0
- package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/esm/{rechnung → invoice}/summen.js +12 -12
- package/dist/esm/invoice/texte.d.ts +224 -0
- package/dist/esm/invoice/texte.js +421 -0
- package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
- package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
- package/dist/esm/models/cancellation.d.ts +43 -24
- package/dist/esm/models/cancellation.js +90 -45
- package/dist/esm/models/hobex-receipt.d.ts +3 -3
- package/dist/esm/models/hobex-receipt.js +35 -35
- package/dist/esm/models/index.d.ts +6 -5
- package/dist/esm/models/index.js +6 -5
- package/dist/esm/models/payment-errors.d.ts +32 -15
- package/dist/esm/models/payment-errors.js +77 -32
- package/dist/esm/models/receipt-company.d.ts +6 -5
- package/dist/esm/models/receipt-company.js +4 -4
- package/dist/esm/models/receipt-email.d.ts +32 -18
- package/dist/esm/models/receipt-email.js +65 -23
- package/dist/esm/models/receipt-errors.d.ts +39 -0
- package/dist/esm/models/receipt-errors.js +87 -0
- package/dist/esm/models/receipt-item.d.ts +9 -1
- package/dist/esm/models/receipt-item.js +3 -0
- package/dist/esm/models/receipt-summary.d.ts +10 -4
- package/dist/esm/models/receipt-summary.js +9 -3
- package/dist/esm/models/receipt.d.ts +31 -2
- package/dist/esm/models/receipt.js +12 -2
- package/dist/esm/models/voucher.d.ts +7 -6
- package/dist/esm/models/voucher.js +2 -7
- package/dist/esm/partner/ablauf.d.ts +10 -10
- package/dist/esm/partner/ablauf.js +27 -27
- package/dist/esm/partner/api.d.ts +26 -23
- package/dist/esm/partner/api.js +13 -15
- package/dist/esm/partner/auth.d.ts +1 -1
- package/dist/esm/partner/auth.js +2 -2
- package/dist/esm/partner/betrieb.d.ts +7 -7
- package/dist/esm/partner/betrieb.js +8 -8
- package/dist/esm/partner/endpunkte.d.ts +27 -14
- package/dist/esm/partner/endpunkte.js +79 -39
- package/dist/esm/partner/fehler.d.ts +60 -30
- package/dist/esm/partner/fehler.js +91 -35
- package/dist/esm/partner/index.d.ts +13 -12
- package/dist/esm/partner/index.js +12 -11
- package/dist/esm/partner/secret.d.ts +3 -3
- package/dist/esm/partner/secret.js +5 -5
- package/dist/esm/partner/typen.d.ts +129 -71
- package/dist/esm/partner/typen.js +75 -2
- package/dist/esm/partner/webhook-signatur.d.ts +2 -2
- package/dist/esm/partner/webhook-signatur.js +12 -12
- package/dist/esm/partner/webhooks.d.ts +60 -32
- package/dist/esm/partner/webhooks.js +38 -32
- package/dist/esm/payments/hobex.d.ts +11 -3
- package/dist/esm/payments/hobex.js +18 -6
- package/dist/esm/payments/stripe.d.ts +5 -2
- package/dist/esm/payments/stripe.js +11 -6
- package/dist/esm/pos/artikel.d.ts +90 -0
- package/dist/esm/pos/artikel.js +79 -0
- package/dist/esm/pos/client.d.ts +27 -0
- package/dist/esm/pos/client.js +137 -0
- package/dist/esm/pos/drucker.d.ts +86 -0
- package/dist/esm/pos/drucker.js +71 -0
- package/dist/esm/pos/errors.d.ts +36 -0
- package/dist/esm/pos/errors.js +88 -0
- package/dist/esm/pos/index.d.ts +15 -0
- package/dist/esm/pos/index.js +20 -0
- package/dist/esm/pos/settings.d.ts +313 -0
- package/dist/esm/pos/settings.js +367 -0
- package/dist/esm/pos/texte.d.ts +883 -0
- package/dist/esm/pos/texte.js +481 -0
- package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/esm/printing/escpos.d.ts +29 -29
- package/dist/esm/printing/escpos.js +56 -56
- package/dist/esm/printing/index.d.ts +2 -2
- package/dist/esm/printing/index.js +2 -2
- package/dist/esm/printing/qr-groesse.d.ts +38 -38
- package/dist/esm/printing/qr-groesse.js +42 -42
- package/dist/esm/printing/webusb.d.ts +2 -2
- package/dist/esm/printing/webusb.js +4 -4
- package/dist/esm/react/index.d.ts +21 -21
- package/dist/esm/react/index.js +39 -29
- package/dist/esm/receipt/bild.d.ts +4 -4
- package/dist/esm/receipt/bild.js +11 -11
- package/dist/esm/receipt/blatt.d.ts +46 -46
- package/dist/esm/receipt/blatt.js +55 -55
- package/dist/esm/receipt/discount.d.ts +1 -1
- package/dist/esm/receipt/discount.js +7 -7
- package/dist/esm/receipt/due.d.ts +86 -0
- package/dist/esm/receipt/due.js +257 -0
- package/dist/esm/receipt/epos.d.ts +22 -22
- package/dist/esm/receipt/epos.js +47 -47
- package/dist/esm/receipt/grid.d.ts +10 -10
- package/dist/esm/receipt/grid.js +18 -18
- package/dist/esm/receipt/index.d.ts +9 -8
- package/dist/esm/receipt/index.js +9 -8
- package/dist/esm/receipt/layout-escpos.d.ts +24 -24
- package/dist/esm/receipt/layout-escpos.js +51 -51
- package/dist/esm/receipt/layout.d.ts +28 -23
- package/dist/esm/receipt/layout.js +44 -20
- package/dist/esm/receipt/marke-daten.d.ts +8 -8
- package/dist/esm/receipt/marke-daten.js +7 -7
- package/dist/esm/receipt/marke.d.ts +7 -7
- package/dist/esm/receipt/marke.js +10 -10
- package/dist/esm/register/errors.d.ts +61 -0
- package/dist/esm/register/errors.js +104 -0
- package/dist/esm/register/index.d.ts +14 -1
- package/dist/esm/register/index.js +13 -0
- package/dist/esm/register/pairing.d.ts +55 -36
- package/dist/esm/register/pairing.js +33 -29
- package/dist/esm/register/session.d.ts +5 -5
- package/dist/esm/register/session.js +7 -7
- package/dist/esm/stored/draht.d.ts +45 -0
- package/dist/esm/stored/draht.js +208 -0
- package/dist/esm/stored/einstellungen.d.ts +23 -0
- package/dist/esm/stored/einstellungen.js +196 -0
- package/dist/esm/stored/index.d.ts +109 -0
- package/dist/esm/stored/index.js +217 -0
- package/dist/esm/stored/vokabular.d.ts +18 -0
- package/dist/esm/stored/vokabular.js +386 -0
- package/dist/esm/version.d.ts +7 -0
- package/dist/esm/version.js +7 -0
- package/dist/esm/vienna-time.d.ts +1 -1
- package/dist/esm/vienna-time.js +2 -2
- package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
- package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
- package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
- package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-full.sheet32.json +218 -0
- package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
- package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
- package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
- package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
- package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
- package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
- package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
- package/fixtures/expected/card-custom.sheet32.json +158 -0
- package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
- package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
- package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
- package/fixtures/expected/card-gptom.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
- package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
- package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
- package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
- package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
- package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
- package/fixtures/expected/card-mypos.sheet32.json +254 -0
- package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
- package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
- package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
- package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
- package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
- package/fixtures/expected/card-stripe.sheet32.json +212 -0
- package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
- package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
- package/fixtures/expected/card-sumup.sheet32.json +218 -0
- package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
- package/fixtures/expected/discount-lines.sheet32.json +200 -0
- package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
- package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
- package/fixtures/expected/discount-simple.sheet32.json +182 -0
- package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
- package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
- package/fixtures/expected/discount-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
- package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
- package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
- package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
- package/fixtures/expected/long-item-name.sheet32.json +176 -0
- package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
- package/fixtures/expected/sale-card.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
- package/fixtures/expected/sale-cash.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
- package/fixtures/expected/sale-small-business.sheet32.json +182 -0
- package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
- package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
- package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
- package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
- package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
- package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
- package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
- package/fixtures/expected/split-cash-change.sheet32.json +194 -0
- package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
- package/fixtures/expected/split-long-amount.sheet32.json +266 -0
- package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
- package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
- package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
- package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
- package/fixtures/expected/split-tip-card.sheet32.json +272 -0
- package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
- package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
- package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
- package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
- package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
- package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
- package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet → expected}/training.lines.json +2 -2
- package/fixtures/expected/training.sheet32.json +236 -0
- package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
- package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
- package/fixtures/expected/zero-annual.sheet32.json +212 -0
- package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
- package/fixtures/expected/zero-final.sheet32.json +206 -0
- package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
- package/fixtures/expected/zero-manual.sheet32.json +206 -0
- package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
- package/fixtures/expected/zero-monthly.sheet32.json +206 -0
- package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
- package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
- package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
- package/fixtures/expected/zero-start.sheet32.json +206 -0
- package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
- package/fixtures/hobex-hps-codes.json +12 -12
- package/fixtures/invoice-api-examples/brands-ok.json +8 -0
- package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
- package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
- package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
- package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
- package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
- package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
- package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
- package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
- package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
- package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
- package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
- package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
- package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
- package/fixtures/invoice-texts.json +464 -0
- package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
- package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
- package/fixtures/manifest.json +252 -252
- package/fixtures/pos-message-cases.json +32 -0
- package/fixtures/pos-settings-defaults.json +149 -0
- package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
- package/fixtures/receipt-due-generated.json +1218 -0
- package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
- package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
- package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
- package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
- package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
- package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
- package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
- package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
- package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
- package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
- package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
- package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
- package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
- package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
- package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
- package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
- package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
- package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
- package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
- package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
- package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
- package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
- package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
- package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
- package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
- package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
- package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
- package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
- package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
- package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
- package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
- package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
- package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
- package/fixtures/{belege → receipts}/training.json +2 -2
- package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
- package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
- package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
- package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
- package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
- package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
- package/fixtures/renames-1.0.json +1490 -0
- package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
- package/fixtures/surface.json +877 -0
- package/fixtures/v3/README.md +125 -0
- package/fixtures/v3/antworten/belege.json +4738 -0
- package/fixtures/v3/antworten/belegmail.json +154 -0
- package/fixtures/v3/antworten/kasse-belege.json +4304 -0
- package/fixtures/v3/antworten/kasse.json +12716 -0
- package/fixtures/v3/antworten/rechnungen.json +1712 -0
- package/fixtures/v3/antworten/storno.json +737 -0
- package/fixtures/v3/stored/belege.json +502 -0
- package/fixtures/v3/stored/kasse.json +3461 -0
- package/fixtures/v3/stored/rechnungen.json +750 -0
- package/fixtures/v3/v3-vokabular.json +3375 -0
- package/fixtures/v3/zahlbetrag-faelle.json +794 -0
- package/package.json +32 -18
- package/dist/cjs/kasse/artikel.d.ts +0 -83
- package/dist/cjs/kasse/artikel.js +0 -79
- package/dist/cjs/kasse/client.d.ts +0 -10
- package/dist/cjs/kasse/client.js +0 -38
- package/dist/cjs/kasse/drucker.d.ts +0 -59
- package/dist/cjs/kasse/drucker.js +0 -50
- package/dist/cjs/kasse/index.d.ts +0 -13
- package/dist/cjs/kasse/index.js +0 -83
- package/dist/cjs/kasse/settings.d.ts +0 -229
- package/dist/cjs/kasse/settings.js +0 -172
- package/dist/cjs/kasse/texte.d.ts +0 -868
- package/dist/cjs/kasse/texte.js +0 -474
- package/dist/cjs/rechnung/fehler.d.ts +0 -21
- package/dist/cjs/rechnung/fehler.js +0 -44
- package/dist/cjs/rechnung/index.d.ts +0 -21
- package/dist/cjs/rechnung/index.js +0 -82
- package/dist/cjs/rechnung/texte.d.ts +0 -222
- package/dist/cjs/rechnung/texte.js +0 -425
- package/dist/esm/kasse/artikel.d.ts +0 -83
- package/dist/esm/kasse/artikel.js +0 -70
- package/dist/esm/kasse/client.d.ts +0 -10
- package/dist/esm/kasse/client.js +0 -33
- package/dist/esm/kasse/drucker.d.ts +0 -59
- package/dist/esm/kasse/drucker.js +0 -45
- package/dist/esm/kasse/index.d.ts +0 -13
- package/dist/esm/kasse/index.js +0 -18
- package/dist/esm/kasse/settings.d.ts +0 -229
- package/dist/esm/kasse/settings.js +0 -168
- package/dist/esm/kasse/texte.d.ts +0 -868
- package/dist/esm/kasse/texte.js +0 -466
- package/dist/esm/rechnung/fehler.d.ts +0 -21
- package/dist/esm/rechnung/fehler.js +0 -39
- package/dist/esm/rechnung/index.d.ts +0 -21
- package/dist/esm/rechnung/index.js +0 -20
- package/dist/esm/rechnung/texte.d.ts +0 -222
- package/dist/esm/rechnung/texte.js +0 -421
- package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
- package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
- package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
- package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
- package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
- package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
- package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
- package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
- package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
- package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
- package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
- package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
- package/fixtures/erwartet/null-monat.blatt32.json +0 -206
- package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
- package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
- package/fixtures/erwartet/null-start.blatt32.json +0 -206
- package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
- package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
- package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
- package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
- package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
- package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
- package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
- package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
- package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
- package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
- package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
- package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
- package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
- package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
- package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
- package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
- package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
- package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
- package/fixtures/erwartet/training.blatt32.json +0 -236
- package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
- package/fixtures/kasse-meldungen-faelle.json +0 -32
- package/fixtures/oberflaeche.json +0 -558
- package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
- package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
- package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
- package/fixtures/rechnung-texte.json +0 -464
- /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
- /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
- /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
- /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Aus dieser Datei entstehen drei Dinge, damit sie nicht auseinanderlaufen
|
|
5
5
|
* koennen:
|
|
6
6
|
*
|
|
7
|
-
* 1. `fixtures/
|
|
7
|
+
* 1. `fixtures/invoice-api.schema.json` (`npm run fixtures:rechnung`) — das
|
|
8
8
|
* Backend liest es aus dem vendorierten Paket und vergleicht es in beide
|
|
9
9
|
* Richtungen mit seiner eigenen Pruefung; der Dart-Zwilling zieht es byteweise.
|
|
10
|
-
* 2. Die Listen unter `rechnung` in `fixtures/
|
|
10
|
+
* 2. Die Listen unter `rechnung` in `fixtures/surface.json` (Codes, Gruende,
|
|
11
11
|
* Enums) — ueber denselben Namensraum-Scan wie der Partner-Teil.
|
|
12
12
|
* 3. Die TypeScript-Typen in `typen.ts`.
|
|
13
13
|
*
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* Beschrieben wird die Anfrage. Was der Server daraus macht — Rechnungsdatum,
|
|
18
18
|
* Nummer, Summen — ist bewusst **nicht** setzbar.
|
|
19
19
|
*/
|
|
20
|
-
export const
|
|
21
|
-
export const
|
|
20
|
+
export const INVOICE_CONTRACT_VERSION = 2;
|
|
21
|
+
export const INVOICE_ENDPOINTS = [
|
|
22
22
|
'createCustomer',
|
|
23
23
|
'getCustomer',
|
|
24
24
|
'updateCustomer',
|
|
@@ -69,6 +69,38 @@ export const INVOICE_ERROR_CODES = [
|
|
|
69
69
|
'einvoice_unavailable', // zu dieser Rechnung entsteht keine E-Rechnung, Grund in `reason`
|
|
70
70
|
'amount_too_large', // Betrag ueber der Grenze des Ganzzahlkerns; erst ab dessen Umstieg gesendet
|
|
71
71
|
];
|
|
72
|
+
/**
|
|
73
|
+
* Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
|
|
74
|
+
* soweit sie nicht schon in [INVOICE_ERROR_CODES] stehen: `errorCodes.auth`
|
|
75
|
+
* ohne die sieben des Partner-Zugangs, `errorCodes.edge` (sortiert) und
|
|
76
|
+
* zuletzt `route_missing` (Code des Pakets). [INVOICE_ERROR_CODES] bleibt
|
|
77
|
+
* genau der Katalog des Servers (das Backend vergleicht ihn mit dem Schema);
|
|
78
|
+
* die Helfer in `./invoice` erkennen beide Listen.
|
|
79
|
+
*/
|
|
80
|
+
export const INVOICE_REQUEST_ERROR_CODES = [
|
|
81
|
+
'account_not_found',
|
|
82
|
+
'admin_required',
|
|
83
|
+
'cashregister_not_assigned',
|
|
84
|
+
'cashregister_not_found',
|
|
85
|
+
'cashregister_token_invalid',
|
|
86
|
+
'cashregister_token_missing',
|
|
87
|
+
'dialect_mismatch',
|
|
88
|
+
'internal_translation_error',
|
|
89
|
+
'live_not_enabled',
|
|
90
|
+
'method_not_allowed',
|
|
91
|
+
'mfa_required',
|
|
92
|
+
'not_found',
|
|
93
|
+
'register_user_no_business',
|
|
94
|
+
'register_user_not_allowed',
|
|
95
|
+
'register_user_not_found',
|
|
96
|
+
'response_translation_failed',
|
|
97
|
+
'session_expired',
|
|
98
|
+
'session_other_cashregister',
|
|
99
|
+
'unauthorized',
|
|
100
|
+
'user_disabled',
|
|
101
|
+
'user_verification_failed',
|
|
102
|
+
'route_missing',
|
|
103
|
+
];
|
|
72
104
|
/** Gruende einer Gutschrift. Der Server druckt den deutschen Anzeigetext. */
|
|
73
105
|
export const CREDIT_NOTE_REASONS = [
|
|
74
106
|
'cancellation',
|
|
@@ -81,12 +113,13 @@ export const CREDIT_NOTE_REASONS = [
|
|
|
81
113
|
* Der Steuerfall einer Rechnung. Er wird vom Server **abgeleitet** (Kundenland,
|
|
82
114
|
* Kundenart, UID, Ware oder Leistung); eine mitgeschickte Angabe muss dazu
|
|
83
115
|
* passen, sonst `tax_scheme_mismatch`. Neue Faelle stehen hinten, damit
|
|
84
|
-
* gespeicherte Reihenfolgen gueltig bleiben.
|
|
116
|
+
* gespeicherte Reihenfolgen gueltig bleiben. Unter `/v1` hiess `intraCommunitySupply` noch
|
|
117
|
+
* `igLieferung`; unter `/v3` weist der Server den alten Namen mit `validation` ab.
|
|
85
118
|
*
|
|
86
119
|
* - `normal` oesterreichische Umsatzsteuer
|
|
87
120
|
* - `smallBusiness` Kleinunternehmer (§ 6 Abs. 1 Z 27 UStG)
|
|
88
121
|
* - `reverseCharge` Leistung an ein Unternehmen in der EU (Art. 196 MwSt-RL)
|
|
89
|
-
* - `
|
|
122
|
+
* - `intraCommunitySupply` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
|
|
90
123
|
* - `exportThirdCountry` Ware ins Drittland (§ 6 Abs. 1 Z 1 UStG)
|
|
91
124
|
* - `domesticReverseCharge` Uebergang der Steuerschuld im Inland, Grund aus `REVERSE_CHARGE_REASONS`
|
|
92
125
|
* - `oss` B2C in der EU ueber den One-Stop-Shop, Satz des Ziellandes
|
|
@@ -96,7 +129,7 @@ export const TAX_SCHEMES = [
|
|
|
96
129
|
'normal',
|
|
97
130
|
'smallBusiness',
|
|
98
131
|
'reverseCharge',
|
|
99
|
-
'
|
|
132
|
+
'intraCommunitySupply',
|
|
100
133
|
'exportThirdCountry',
|
|
101
134
|
'domesticReverseCharge',
|
|
102
135
|
'oss',
|
|
@@ -107,23 +140,23 @@ export const TAX_SCHEMES = [
|
|
|
107
140
|
* kein `domesticReverseCharge`: die Bedingungen sind je Fall verschieden, und
|
|
108
141
|
* keine davon laesst sich aus Betrag und Land erraten.
|
|
109
142
|
*
|
|
110
|
-
* `
|
|
143
|
+
* `thresholdCents` ist das Entgelt, ab dem der Fall greift – maßgeblich ist das
|
|
111
144
|
* **in der Rechnung ausgewiesene** Entgelt, nicht der Einzelpreis; ein
|
|
112
145
|
* einheitlicher Liefervorgang darf dafuer nicht auf mehrere Rechnungen
|
|
113
146
|
* aufgeteilt werden (UStR Rz 2605d).
|
|
114
147
|
*/
|
|
115
148
|
export const REVERSE_CHARGE_REASONS = Object.freeze({
|
|
116
|
-
construction: {
|
|
117
|
-
scrap: {
|
|
118
|
-
mobile_devices: {
|
|
119
|
-
it_devices: {
|
|
120
|
-
metals: {
|
|
121
|
-
emission_certificates: {
|
|
122
|
-
gas_electricity: {
|
|
123
|
-
energy_certificates: {
|
|
124
|
-
investment_gold: {
|
|
125
|
-
security_transfer: {
|
|
126
|
-
foreign_supplier: {
|
|
149
|
+
construction: { legalBasis: '§ 19 Abs. 1a UStG', thresholdCents: null },
|
|
150
|
+
scrap: { legalBasis: 'Schrott-UStV, BGBl. II Nr. 129/2007', thresholdCents: null },
|
|
151
|
+
mobile_devices: { legalBasis: '§ 19 Abs. 1e lit. b UStG', thresholdCents: 500_000 },
|
|
152
|
+
it_devices: { legalBasis: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', thresholdCents: 500_000 },
|
|
153
|
+
metals: { legalBasis: '§ 2 Z 4 UStBBKV', thresholdCents: null },
|
|
154
|
+
emission_certificates: { legalBasis: '§ 19 Abs. 1e lit. a UStG', thresholdCents: null },
|
|
155
|
+
gas_electricity: { legalBasis: '§ 2 Z 2 UStBBKV', thresholdCents: null },
|
|
156
|
+
energy_certificates: { legalBasis: '§ 2 Z 3 UStBBKV', thresholdCents: null },
|
|
157
|
+
investment_gold: { legalBasis: '§ 2 Z 5 UStBBKV', thresholdCents: null },
|
|
158
|
+
security_transfer: { legalBasis: '§ 19 Abs. 1b UStG', thresholdCents: null },
|
|
159
|
+
foreign_supplier: { legalBasis: '§ 19 Abs. 1 zweiter Satz UStG', thresholdCents: null },
|
|
127
160
|
});
|
|
128
161
|
/** Ware oder Leistung — ohne das laesst sich ig. Lieferung nicht von Reverse Charge trennen. */
|
|
129
162
|
export const ITEM_KINDS = ['goods', 'service'];
|
|
@@ -131,8 +164,37 @@ export const PRICE_MODES = ['net', 'gross'];
|
|
|
131
164
|
export const VAT_RATES = [0, 10, 13, 20];
|
|
132
165
|
export const CUSTOMER_TYPES = ['private', 'company'];
|
|
133
166
|
export const INVOICE_LIST_STATUS = ['final', 'paid', 'cancelled', 'open', 'overdue'];
|
|
134
|
-
|
|
167
|
+
/**
|
|
168
|
+
* Belegart: Rechnung oder Gutschrift (unter `/v1` `RE` bzw. `GU`). Das Vorzeichen
|
|
169
|
+
* steht in der Belegart, nie im Betrag.
|
|
170
|
+
*/
|
|
171
|
+
export const DOC_TYPES = ['invoice', 'credit_note'];
|
|
135
172
|
export const EINVOICE_FORMATS = ['ubl', 'cii'];
|
|
173
|
+
/**
|
|
174
|
+
* Was einer EN-16931-konformen E-Rechnung fehlt: `einvoice.missing` jeder
|
|
175
|
+
* Rechnungssicht und `data.missing` bei `einvoice_incomplete` bzw.
|
|
176
|
+
* `invoice_requirements_missing`. Unter `/v1` standen hier deutsche Woerter
|
|
177
|
+
* (`Straße`, `PLZ`, …).
|
|
178
|
+
*/
|
|
179
|
+
export const EINVOICE_MISSING_CODES = [
|
|
180
|
+
'name',
|
|
181
|
+
'street',
|
|
182
|
+
'zip',
|
|
183
|
+
'city',
|
|
184
|
+
'country',
|
|
185
|
+
'vat_id',
|
|
186
|
+
'order_reference',
|
|
187
|
+
'order_reference_format',
|
|
188
|
+
];
|
|
189
|
+
/** Warum eine Rechnung abgeschrieben wurde (`writeOffReasonCode` in `getInvoice`). */
|
|
190
|
+
export const WRITE_OFF_REASON_CODES = [
|
|
191
|
+
'uncollectible',
|
|
192
|
+
'time_barred',
|
|
193
|
+
'waived',
|
|
194
|
+
'disputed',
|
|
195
|
+
'settled_externally',
|
|
196
|
+
'other',
|
|
197
|
+
];
|
|
136
198
|
/**
|
|
137
199
|
* Sprachen einer Rechnung. Die Sprache wird beim Festschreiben eingefroren;
|
|
138
200
|
* fehlt sie an Kunde oder Rechnung, gilt `de`. Behoerden bekommen immer `de`
|
|
@@ -165,9 +227,9 @@ export const INVOICE_NOTICE_CODES = [
|
|
|
165
227
|
];
|
|
166
228
|
/**
|
|
167
229
|
* Einheiten einer Position. Die API nimmt nur diese Schluessel an; gedruckt
|
|
168
|
-
* wird das Kuerzel in der Sprache der Rechnung (`
|
|
169
|
-
* `
|
|
170
|
-
* (`
|
|
230
|
+
* wird das Kuerzel in der Sprache der Rechnung (`INVOICE_TEXTS`,
|
|
231
|
+
* `unit_symbol.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
|
|
232
|
+
* (`INVOICE_UNIT_CODES`). Ohne Angabe gilt `piece`.
|
|
171
233
|
*/
|
|
172
234
|
export const INVOICE_UNITS = [
|
|
173
235
|
'piece',
|
|
@@ -226,7 +288,7 @@ export const INVOICE_UNITS = [
|
|
|
226
288
|
* Laufmeter; Lizenz, Benutzer, Geraet als Stueck). Die Validatoren der
|
|
227
289
|
* E-Rechnung pruefen jeden Code im Backend (Beispiel `api-einheiten`).
|
|
228
290
|
*/
|
|
229
|
-
export const
|
|
291
|
+
export const INVOICE_UNIT_CODES = Object.freeze({
|
|
230
292
|
piece: 'C62',
|
|
231
293
|
pair: 'PR',
|
|
232
294
|
set: 'SET',
|
|
@@ -303,16 +365,16 @@ export const INVOICE_SETUP_REQUIREMENTS = [
|
|
|
303
365
|
'bank_account',
|
|
304
366
|
'number_format',
|
|
305
367
|
];
|
|
306
|
-
const text = (max,
|
|
307
|
-
const idempotencyKey = (
|
|
308
|
-
const id = {
|
|
309
|
-
const idPflicht = {
|
|
310
|
-
const datum = (
|
|
311
|
-
const limit = {
|
|
312
|
-
const cursor = {
|
|
368
|
+
const text = (max, required = false, extra = {}) => ({ type: 'string', required, max, ...(required && extra.min === undefined ? { min: 1 } : {}), ...extra });
|
|
369
|
+
const idempotencyKey = (required) => ({ type: 'string', required, min: 1, max: 120 });
|
|
370
|
+
const id = { type: 'string', required: false, min: 1, max: 128 };
|
|
371
|
+
const idPflicht = { type: 'string', required: true, min: 1, max: 128 };
|
|
372
|
+
const datum = (required = false) => ({ type: 'string', required, min: 10, max: 10, format: 'date' });
|
|
373
|
+
const limit = { type: 'integer', required: false, min: 1, max: 100 };
|
|
374
|
+
const cursor = { type: 'string', required: false, min: 1, max: 500 };
|
|
313
375
|
/** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
|
|
314
|
-
export const
|
|
315
|
-
type: {
|
|
376
|
+
export const CUSTOMER_FIELDS = Object.freeze({
|
|
377
|
+
type: { type: 'enum', required: true, values: CUSTOMER_TYPES },
|
|
316
378
|
name: text(200, true),
|
|
317
379
|
legalForm: text(40),
|
|
318
380
|
email: text(254, false, { format: 'email' }),
|
|
@@ -324,14 +386,14 @@ export const KUNDE_FELDER = Object.freeze({
|
|
|
324
386
|
country: text(2, true, { min: 2, format: 'country' }),
|
|
325
387
|
vatId: text(20, false, { format: 'vatId' }),
|
|
326
388
|
shortCode: text(8, false, { format: 'shortCode' }),
|
|
327
|
-
isAuthority: {
|
|
389
|
+
isAuthority: { type: 'boolean', required: false },
|
|
328
390
|
note: text(1000),
|
|
329
|
-
externalId: {
|
|
391
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
330
392
|
/** Sprache der Rechnungen an diesen Kunden; fehlt = `de`. */
|
|
331
|
-
language: {
|
|
393
|
+
language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
|
|
332
394
|
});
|
|
333
395
|
/** Beim Aendern ist jedes Kundenfeld optional. */
|
|
334
|
-
const
|
|
396
|
+
const CUSTOMER_PATCH = Object.freeze(Object.fromEntries(Object.entries(CUSTOMER_FIELDS).map(([name, feld]) => [name, { ...feld, required: false }])));
|
|
335
397
|
/**
|
|
336
398
|
* Eine Rechnungs- oder Gutschriftsposition.
|
|
337
399
|
*
|
|
@@ -342,33 +404,33 @@ const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(KUNDE_FELDER
|
|
|
342
404
|
* unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
|
|
343
405
|
* die bisher gerundet eingereicht werden mussten.
|
|
344
406
|
*/
|
|
345
|
-
export const
|
|
407
|
+
export const ITEM_FIELDS = Object.freeze({
|
|
346
408
|
description: text(300, true),
|
|
347
409
|
subtitle: text(1000),
|
|
348
|
-
quantity: {
|
|
410
|
+
quantity: { type: 'number', required: true, min: 0, exclusiveMin: true, max: 1_000_000_000, decimals: 3 },
|
|
349
411
|
/** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
|
|
350
|
-
unit: {
|
|
412
|
+
unit: { type: 'enum', required: false, values: INVOICE_UNITS },
|
|
351
413
|
/** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
|
|
352
|
-
kind: {
|
|
414
|
+
kind: { type: 'enum', required: false, values: ITEM_KINDS },
|
|
353
415
|
/** Einzelpreis in ganzen Cent. Alternative zu `unitPriceMicros`. */
|
|
354
|
-
unitPriceCents: {
|
|
416
|
+
unitPriceCents: { type: 'integer', required: false, min: 0, max: 100_000_000 },
|
|
355
417
|
/** Einzelpreis in Mikro-Euro (10⁻⁶ €). Alternative zu `unitPriceCents`. */
|
|
356
|
-
unitPriceMicros: {
|
|
357
|
-
vatRate: {
|
|
358
|
-
discountPct: {
|
|
418
|
+
unitPriceMicros: { type: 'integer', required: false, min: 0, max: 1_000_000_000_000 },
|
|
419
|
+
vatRate: { type: 'enum', required: true, values: VAT_RATES },
|
|
420
|
+
discountPct: { type: 'number', required: false, min: 0, max: 100, decimals: 2 },
|
|
359
421
|
});
|
|
360
422
|
/** Genau einer der beiden Preise je Position (§ 9.1). */
|
|
361
|
-
export const
|
|
423
|
+
export const ITEM_PRICE_EXACTLY_ONE = Object.freeze([
|
|
362
424
|
Object.freeze(['unitPriceCents']),
|
|
363
425
|
Object.freeze(['unitPriceMicros']),
|
|
364
426
|
]);
|
|
365
427
|
const positionen = {
|
|
366
|
-
|
|
367
|
-
|
|
428
|
+
type: 'list',
|
|
429
|
+
required: true,
|
|
368
430
|
min: 1,
|
|
369
431
|
max: 500,
|
|
370
|
-
|
|
371
|
-
|
|
432
|
+
item: {
|
|
433
|
+
type: 'object', required: true, fields: ITEM_FIELDS, exactlyOne: ITEM_PRICE_EXACTLY_ONE,
|
|
372
434
|
},
|
|
373
435
|
};
|
|
374
436
|
/**
|
|
@@ -378,9 +440,9 @@ const positionen = {
|
|
|
378
440
|
* aber **nicht gedruckt**: die Rechnung wird aufbewahrt und vervielfaeltigt,
|
|
379
441
|
* und dem Empfaenger nuetzt sie nichts.
|
|
380
442
|
*/
|
|
381
|
-
export const
|
|
382
|
-
method: {
|
|
383
|
-
amountCents: {
|
|
443
|
+
export const PAYMENT_FIELDS = Object.freeze({
|
|
444
|
+
method: { type: 'enum', required: true, values: INVOICE_PAYMENT_METHODS },
|
|
445
|
+
amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
|
|
384
446
|
paidAt: datum(),
|
|
385
447
|
reference: text(100),
|
|
386
448
|
/**
|
|
@@ -388,23 +450,23 @@ export const PAYMENT_FELDER = Object.freeze({
|
|
|
388
450
|
* Zahlung per App am Tresen). Dann ist sie ein Barumsatz. Zu `transfer` passt
|
|
389
451
|
* das nicht — eine Ueberweisung erfolgt nie vor Ort — und wird abgewiesen.
|
|
390
452
|
*/
|
|
391
|
-
onSite: {
|
|
453
|
+
onSite: { type: 'boolean', required: false },
|
|
392
454
|
});
|
|
393
|
-
export const
|
|
455
|
+
export const INVOICE_REQUESTS = Object.freeze({
|
|
394
456
|
createCustomer: {
|
|
395
|
-
customer: {
|
|
457
|
+
customer: { type: 'object', required: true, fields: CUSTOMER_FIELDS },
|
|
396
458
|
idempotencyKey: idempotencyKey(false),
|
|
397
459
|
},
|
|
398
460
|
getCustomer: {
|
|
399
461
|
customerId: id,
|
|
400
|
-
externalId: {
|
|
462
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
401
463
|
},
|
|
402
464
|
updateCustomer: {
|
|
403
465
|
customerId: idPflicht,
|
|
404
|
-
customer: {
|
|
466
|
+
customer: { type: 'object', required: true, fields: CUSTOMER_PATCH },
|
|
405
467
|
},
|
|
406
468
|
searchCustomers: {
|
|
407
|
-
externalId: {
|
|
469
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
408
470
|
vatId: text(20),
|
|
409
471
|
email: text(254),
|
|
410
472
|
name: text(200),
|
|
@@ -419,23 +481,23 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
419
481
|
* muss passen (`tax_scheme_mismatch`) — so faellt eine falsche Zuordnung
|
|
420
482
|
* im Fremdsystem auf, statt eine falsche Rechnung zu erzeugen.
|
|
421
483
|
*/
|
|
422
|
-
taxScheme: {
|
|
484
|
+
taxScheme: { type: 'enum', required: false, values: TAX_SCHEMES },
|
|
423
485
|
/** Pflicht bei `domesticReverseCharge`, sonst nicht erlaubt. */
|
|
424
|
-
reverseChargeReason: {
|
|
425
|
-
priceMode: {
|
|
486
|
+
reverseChargeReason: { type: 'enum', required: false, values: Object.keys(REVERSE_CHARGE_REASONS) },
|
|
487
|
+
priceMode: { type: 'enum', required: true, values: PRICE_MODES },
|
|
426
488
|
serviceStart: datum(true),
|
|
427
489
|
serviceEnd: datum(),
|
|
428
|
-
paymentTermDays: {
|
|
490
|
+
paymentTermDays: { type: 'integer', required: false, min: 0, max: 365 },
|
|
429
491
|
orderReference: text(200),
|
|
430
492
|
intro: text(2000),
|
|
431
493
|
note: text(2000),
|
|
432
494
|
paymentReference: text(140),
|
|
433
|
-
girocode: {
|
|
434
|
-
tracking: {
|
|
495
|
+
girocode: { type: 'boolean', required: false },
|
|
496
|
+
tracking: { type: 'boolean', required: false },
|
|
435
497
|
items: positionen,
|
|
436
|
-
metadata: {
|
|
498
|
+
metadata: { type: 'map', required: false, maxKeys: 20, keyPattern: '^[a-zA-Z0-9_]{1,40}$', valueMax: 500 },
|
|
437
499
|
/** Sprache dieser Rechnung; sonst die des Kunden, sonst `de`. */
|
|
438
|
-
language: {
|
|
500
|
+
language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
|
|
439
501
|
/** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
|
|
440
502
|
brandId: id,
|
|
441
503
|
/**
|
|
@@ -443,36 +505,36 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
443
505
|
* Festschreiben. Sonst gaebe es einen Moment, in dem die Rechnung offen ist
|
|
444
506
|
* und ein sofort geholtes PDF Zahlungsinformationen traegt.
|
|
445
507
|
*/
|
|
446
|
-
payment: {
|
|
508
|
+
payment: { type: 'object', required: false, fields: PAYMENT_FIELDS },
|
|
447
509
|
/**
|
|
448
510
|
* Probelauf: alles pruefen und rechnen wie beim Ausstellen, aber nichts
|
|
449
511
|
* festschreiben — keine Nummer, kein Dokument, keine Zahlung, kein
|
|
450
512
|
* Idempotenz-Eintrag. Die Antwort traegt `preview` statt `invoice`.
|
|
451
513
|
*/
|
|
452
|
-
dryRun: {
|
|
514
|
+
dryRun: { type: 'boolean', required: false },
|
|
453
515
|
},
|
|
454
516
|
cancelInvoice: {
|
|
455
517
|
idempotencyKey: idempotencyKey(true),
|
|
456
518
|
invoiceId: idPflicht,
|
|
457
|
-
reason: {
|
|
519
|
+
reason: { type: 'enum', required: true, values: CREDIT_NOTE_REASONS },
|
|
458
520
|
note: text(2000),
|
|
459
521
|
},
|
|
460
522
|
createCreditNote: {
|
|
461
523
|
idempotencyKey: idempotencyKey(true),
|
|
462
524
|
invoiceId: idPflicht,
|
|
463
|
-
reason: {
|
|
525
|
+
reason: { type: 'enum', required: true, values: CREDIT_NOTE_REASONS },
|
|
464
526
|
note: text(2000),
|
|
465
527
|
items: positionen,
|
|
466
528
|
},
|
|
467
529
|
getInvoice: {
|
|
468
530
|
invoiceId: id,
|
|
469
|
-
number: {
|
|
531
|
+
number: { type: 'string', required: false, min: 1, max: 100 },
|
|
470
532
|
},
|
|
471
533
|
listInvoices: {
|
|
472
534
|
from: datum(),
|
|
473
535
|
to: datum(),
|
|
474
|
-
status: {
|
|
475
|
-
docType: {
|
|
536
|
+
status: { type: 'enum', required: false, values: INVOICE_LIST_STATUS },
|
|
537
|
+
docType: { type: 'enum', required: false, values: DOC_TYPES },
|
|
476
538
|
customerId: id,
|
|
477
539
|
limit,
|
|
478
540
|
cursor,
|
|
@@ -480,30 +542,30 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
480
542
|
getInvoicePdf: {
|
|
481
543
|
invoiceId: idPflicht,
|
|
482
544
|
/** Andere Sprache als die der Rechnung: gekennzeichnete Uebersetzungskopie, keine eigene Rechnung. */
|
|
483
|
-
language: {
|
|
545
|
+
language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
|
|
484
546
|
},
|
|
485
547
|
getInvoiceXml: {
|
|
486
548
|
invoiceId: idPflicht,
|
|
487
|
-
format: {
|
|
549
|
+
format: { type: 'enum', required: false, values: EINVOICE_FORMATS },
|
|
488
550
|
},
|
|
489
551
|
getInvoiceSetupStatus: {},
|
|
490
552
|
listBrands: {},
|
|
491
553
|
recordInvoicePayment: {
|
|
492
554
|
idempotencyKey: idempotencyKey(true),
|
|
493
555
|
invoiceId: idPflicht,
|
|
494
|
-
method: {
|
|
495
|
-
amountCents: {
|
|
556
|
+
method: { type: 'enum', required: true, values: INVOICE_PAYMENT_METHODS },
|
|
557
|
+
amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
|
|
496
558
|
paidAt: datum(),
|
|
497
559
|
reference: text(100),
|
|
498
|
-
onSite: {
|
|
560
|
+
onSite: { type: 'boolean', required: false },
|
|
499
561
|
},
|
|
500
562
|
});
|
|
501
563
|
/** Genau eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
|
|
502
|
-
export const
|
|
564
|
+
export const INVOICE_EXACTLY_ONE = Object.freeze({
|
|
503
565
|
getCustomer: [['customerId', 'externalId']],
|
|
504
566
|
getInvoice: [['invoiceId', 'number']],
|
|
505
567
|
});
|
|
506
568
|
/** Mindestens eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
|
|
507
|
-
export const
|
|
569
|
+
export const INVOICE_AT_LEAST_ONE = Object.freeze({
|
|
508
570
|
searchCustomers: [['externalId', 'vatId', 'email', 'name']],
|
|
509
571
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { KasseneckApiError } from '../client/errors.js';
|
|
1
2
|
import type { Receipt } from './receipt.js';
|
|
2
3
|
/**
|
|
3
4
|
* Storno-Metadaten — Zwilling von `functions/storno-core.js`.
|
|
@@ -8,42 +9,53 @@ import type { Receipt } from './receipt.js';
|
|
|
8
9
|
* Storno-Beleg) und die Liste der Stornos am Original (`cancellations`), aus
|
|
9
10
|
* der sich die Restmengen ergeben.
|
|
10
11
|
*/
|
|
11
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Grund-Katalog: Codes wie unter `/v3` (Katalog `STORNO_GRUND` des
|
|
14
|
+
* Backends), Anzeigetext fuer Bon und Bedienung. Der Anzeigetext bleibt
|
|
15
|
+
* deutsch, er steht so am Beleg.
|
|
16
|
+
*/
|
|
12
17
|
export declare const CANCELLATION_REASONS: Readonly<{
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
+
readonly input_error: "Fehleingabe";
|
|
19
|
+
readonly customer_cancelled: "Kunde hat storniert";
|
|
20
|
+
readonly wrong_payment_method: "Falsche Zahlart";
|
|
21
|
+
readonly duplicate: "Doppelt erfasst";
|
|
22
|
+
readonly other: "Sonstiges";
|
|
18
23
|
}>;
|
|
19
24
|
export type CancellationReason = keyof typeof CANCELLATION_REASONS;
|
|
20
25
|
export declare function isCancellationReason(value: unknown): value is CancellationReason;
|
|
21
26
|
/**
|
|
22
|
-
* Stabile Fehlercodes von `cancelReceipt`
|
|
23
|
-
* `
|
|
27
|
+
* Stabile Fehlercodes von `cancelReceipt` unter `/v3` (Vokabular
|
|
28
|
+
* `errorCodes.cancellation`, gleiche Reihenfolge). Das Backend legt sie bei
|
|
24
29
|
* jedem fachlichen Fehler als `code` neben die Meldung; das Paket reicht sie
|
|
25
|
-
* als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text
|
|
30
|
+
* als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text:**
|
|
26
31
|
* die deutsche Meldung darf sich aendern, der Code nicht.
|
|
27
32
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* Rueckzahlung je Zahlung (mehrere Zahlungen je Beleg); Formfehler an
|
|
33
|
-
* `payments` selbst melden die Codes aus [PAYMENT_ERROR_CODES].
|
|
34
|
-
* `STORNO_OUTCOME_UNKNOWN` heisst: der Storno-Beleg kann schon signiert sein,
|
|
35
|
-
* die Reservierung bleibt offen – nicht erneut stornieren, die Belegliste
|
|
36
|
-
* nach ein paar Minuten neu laden (unter `/v3`: `cancellation_outcome_unknown`).
|
|
33
|
+
* Formfehler an `payments` selbst melden die Codes aus
|
|
34
|
+
* [PAYMENT_ERROR_CODES]. `cancellation_outcome_unknown` heisst: der Storno
|
|
35
|
+
* ist moeglicherweise gebucht (`outcome: 'unknown'`). Nie wiederholen,
|
|
36
|
+
* sondern das Original nachlesen (`getReceipt`, `cancellations[]`).
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* `
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
39
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
40
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
41
|
+
* ...), zuletzt die Codes des Pakets (`route_missing`, `response_unreadable`).
|
|
42
|
+
* Die Zahlungscodes (`payment_method_not_supported` ...) stehen in
|
|
43
|
+
* [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
|
|
44
|
+
* `KasseneckApiError.code` lesbar.
|
|
43
45
|
*/
|
|
44
|
-
export declare const CANCELLATION_ERROR_CODES: readonly ["
|
|
46
|
+
export declare const CANCELLATION_ERROR_CODES: readonly ["receipt_not_found", "receipt_type_not_cancellable", "training_receipt", "already_cancelled", "invalid_line", "quantity_exceeds_remaining", "unknown_reason", "note_too_long", "invalid_items", "cashregister_not_assigned", "not_permitted", "own_receipts_only", "cashregister_incomplete", "cancellation_failed", "cancellation_payments_required", "cancellation_refund_exceeds_payment", "cancellation_refund_reference_required", "cancellation_refund_reference_unknown", "cancellation_outcome_unknown", "account_not_found", "admin_required", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing", "response_unreadable"];
|
|
45
47
|
export type CancellationErrorCode = (typeof CANCELLATION_ERROR_CODES)[number];
|
|
46
48
|
export declare function isCancellationErrorCode(value: unknown): value is CancellationErrorCode;
|
|
49
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [CANCELLATION_ERROR_CODES] steht; sonst `undefined`. */
|
|
50
|
+
export declare function cancellationErrorCode(error: unknown): CancellationErrorCode | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Kurzform fuer `catch (e) { if (isCancellationError(e, 'already_cancelled')) … }`.
|
|
53
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [CANCELLATION_ERROR_CODES]?
|
|
54
|
+
*/
|
|
55
|
+
export declare function isCancellationError(error: unknown, code?: CancellationErrorCode): error is KasseneckApiError;
|
|
56
|
+
/** Stornostand eines Belegs in der Belegliste (Katalog `STORNO_STAND`). */
|
|
57
|
+
export declare const CANCELLATION_STATUSES: readonly ["none", "partial", "full"];
|
|
58
|
+
export type CancellationStatus = (typeof CANCELLATION_STATUSES)[number];
|
|
47
59
|
/** Bezug eines Storno-Belegs auf sein Original. */
|
|
48
60
|
export interface CancellationOf {
|
|
49
61
|
receiptId: string;
|
|
@@ -100,3 +112,10 @@ export declare const CANCELLATION_RESERVATION_MS = 120000;
|
|
|
100
112
|
* (Reste anzeigen, bevor der Server gefragt wird). Die Wahrheit hat der Server.
|
|
101
113
|
*/
|
|
102
114
|
export declare function remainingQuantities(receipt: Receipt, nowMs?: number): number[];
|
|
115
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `cancelReceipt`. */
|
|
116
|
+
export interface CancellationFieldError {
|
|
117
|
+
field: string;
|
|
118
|
+
message: string;
|
|
119
|
+
}
|
|
120
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
121
|
+
export declare function cancellationFieldErrors(error: unknown): CancellationFieldError[];
|