@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
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* Aus dieser Datei entstehen drei Dinge, damit sie nicht auseinanderlaufen
|
|
6
6
|
* koennen:
|
|
7
7
|
*
|
|
8
|
-
* 1. `fixtures/
|
|
8
|
+
* 1. `fixtures/invoice-api.schema.json` (`npm run fixtures:rechnung`) — das
|
|
9
9
|
* Backend liest es aus dem vendorierten Paket und vergleicht es in beide
|
|
10
10
|
* Richtungen mit seiner eigenen Pruefung; der Dart-Zwilling zieht es byteweise.
|
|
11
|
-
* 2. Die Listen unter `rechnung` in `fixtures/
|
|
11
|
+
* 2. Die Listen unter `rechnung` in `fixtures/surface.json` (Codes, Gruende,
|
|
12
12
|
* Enums) — ueber denselben Namensraum-Scan wie der Partner-Teil.
|
|
13
13
|
* 3. Die TypeScript-Typen in `typen.ts`.
|
|
14
14
|
*
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
* Nummer, Summen — ist bewusst **nicht** setzbar.
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.
|
|
23
|
-
exports.
|
|
24
|
-
exports.
|
|
22
|
+
exports.INVOICE_AT_LEAST_ONE = exports.INVOICE_EXACTLY_ONE = exports.INVOICE_REQUESTS = exports.PAYMENT_FIELDS = exports.ITEM_PRICE_EXACTLY_ONE = exports.ITEM_FIELDS = exports.CUSTOMER_FIELDS = exports.INVOICE_SETUP_REQUIREMENTS = exports.INVOICE_UNIT_CODES = exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.WRITE_OFF_REASON_CODES = exports.EINVOICE_MISSING_CODES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.ITEM_KINDS = exports.REVERSE_CHARGE_REASONS = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_REQUEST_ERROR_CODES = exports.INVOICE_ERROR_CODES = exports.INVOICE_ENDPOINTS = exports.INVOICE_CONTRACT_VERSION = void 0;
|
|
23
|
+
exports.INVOICE_CONTRACT_VERSION = 2;
|
|
24
|
+
exports.INVOICE_ENDPOINTS = [
|
|
25
25
|
'createCustomer',
|
|
26
26
|
'getCustomer',
|
|
27
27
|
'updateCustomer',
|
|
@@ -72,6 +72,38 @@ exports.INVOICE_ERROR_CODES = [
|
|
|
72
72
|
'einvoice_unavailable', // zu dieser Rechnung entsteht keine E-Rechnung, Grund in `reason`
|
|
73
73
|
'amount_too_large', // Betrag ueber der Grenze des Ganzzahlkerns; erst ab dessen Umstieg gesendet
|
|
74
74
|
];
|
|
75
|
+
/**
|
|
76
|
+
* Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
|
|
77
|
+
* soweit sie nicht schon in [INVOICE_ERROR_CODES] stehen: `errorCodes.auth`
|
|
78
|
+
* ohne die sieben des Partner-Zugangs, `errorCodes.edge` (sortiert) und
|
|
79
|
+
* zuletzt `route_missing` (Code des Pakets). [INVOICE_ERROR_CODES] bleibt
|
|
80
|
+
* genau der Katalog des Servers (das Backend vergleicht ihn mit dem Schema);
|
|
81
|
+
* die Helfer in `./invoice` erkennen beide Listen.
|
|
82
|
+
*/
|
|
83
|
+
exports.INVOICE_REQUEST_ERROR_CODES = [
|
|
84
|
+
'account_not_found',
|
|
85
|
+
'admin_required',
|
|
86
|
+
'cashregister_not_assigned',
|
|
87
|
+
'cashregister_not_found',
|
|
88
|
+
'cashregister_token_invalid',
|
|
89
|
+
'cashregister_token_missing',
|
|
90
|
+
'dialect_mismatch',
|
|
91
|
+
'internal_translation_error',
|
|
92
|
+
'live_not_enabled',
|
|
93
|
+
'method_not_allowed',
|
|
94
|
+
'mfa_required',
|
|
95
|
+
'not_found',
|
|
96
|
+
'register_user_no_business',
|
|
97
|
+
'register_user_not_allowed',
|
|
98
|
+
'register_user_not_found',
|
|
99
|
+
'response_translation_failed',
|
|
100
|
+
'session_expired',
|
|
101
|
+
'session_other_cashregister',
|
|
102
|
+
'unauthorized',
|
|
103
|
+
'user_disabled',
|
|
104
|
+
'user_verification_failed',
|
|
105
|
+
'route_missing',
|
|
106
|
+
];
|
|
75
107
|
/** Gruende einer Gutschrift. Der Server druckt den deutschen Anzeigetext. */
|
|
76
108
|
exports.CREDIT_NOTE_REASONS = [
|
|
77
109
|
'cancellation',
|
|
@@ -84,12 +116,13 @@ exports.CREDIT_NOTE_REASONS = [
|
|
|
84
116
|
* Der Steuerfall einer Rechnung. Er wird vom Server **abgeleitet** (Kundenland,
|
|
85
117
|
* Kundenart, UID, Ware oder Leistung); eine mitgeschickte Angabe muss dazu
|
|
86
118
|
* passen, sonst `tax_scheme_mismatch`. Neue Faelle stehen hinten, damit
|
|
87
|
-
* gespeicherte Reihenfolgen gueltig bleiben.
|
|
119
|
+
* gespeicherte Reihenfolgen gueltig bleiben. Unter `/v1` hiess `intraCommunitySupply` noch
|
|
120
|
+
* `igLieferung`; unter `/v3` weist der Server den alten Namen mit `validation` ab.
|
|
88
121
|
*
|
|
89
122
|
* - `normal` oesterreichische Umsatzsteuer
|
|
90
123
|
* - `smallBusiness` Kleinunternehmer (§ 6 Abs. 1 Z 27 UStG)
|
|
91
124
|
* - `reverseCharge` Leistung an ein Unternehmen in der EU (Art. 196 MwSt-RL)
|
|
92
|
-
* - `
|
|
125
|
+
* - `intraCommunitySupply` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
|
|
93
126
|
* - `exportThirdCountry` Ware ins Drittland (§ 6 Abs. 1 Z 1 UStG)
|
|
94
127
|
* - `domesticReverseCharge` Uebergang der Steuerschuld im Inland, Grund aus `REVERSE_CHARGE_REASONS`
|
|
95
128
|
* - `oss` B2C in der EU ueber den One-Stop-Shop, Satz des Ziellandes
|
|
@@ -99,7 +132,7 @@ exports.TAX_SCHEMES = [
|
|
|
99
132
|
'normal',
|
|
100
133
|
'smallBusiness',
|
|
101
134
|
'reverseCharge',
|
|
102
|
-
'
|
|
135
|
+
'intraCommunitySupply',
|
|
103
136
|
'exportThirdCountry',
|
|
104
137
|
'domesticReverseCharge',
|
|
105
138
|
'oss',
|
|
@@ -110,23 +143,23 @@ exports.TAX_SCHEMES = [
|
|
|
110
143
|
* kein `domesticReverseCharge`: die Bedingungen sind je Fall verschieden, und
|
|
111
144
|
* keine davon laesst sich aus Betrag und Land erraten.
|
|
112
145
|
*
|
|
113
|
-
* `
|
|
146
|
+
* `thresholdCents` ist das Entgelt, ab dem der Fall greift – maßgeblich ist das
|
|
114
147
|
* **in der Rechnung ausgewiesene** Entgelt, nicht der Einzelpreis; ein
|
|
115
148
|
* einheitlicher Liefervorgang darf dafuer nicht auf mehrere Rechnungen
|
|
116
149
|
* aufgeteilt werden (UStR Rz 2605d).
|
|
117
150
|
*/
|
|
118
151
|
exports.REVERSE_CHARGE_REASONS = Object.freeze({
|
|
119
|
-
construction: {
|
|
120
|
-
scrap: {
|
|
121
|
-
mobile_devices: {
|
|
122
|
-
it_devices: {
|
|
123
|
-
metals: {
|
|
124
|
-
emission_certificates: {
|
|
125
|
-
gas_electricity: {
|
|
126
|
-
energy_certificates: {
|
|
127
|
-
investment_gold: {
|
|
128
|
-
security_transfer: {
|
|
129
|
-
foreign_supplier: {
|
|
152
|
+
construction: { legalBasis: '§ 19 Abs. 1a UStG', thresholdCents: null },
|
|
153
|
+
scrap: { legalBasis: 'Schrott-UStV, BGBl. II Nr. 129/2007', thresholdCents: null },
|
|
154
|
+
mobile_devices: { legalBasis: '§ 19 Abs. 1e lit. b UStG', thresholdCents: 500_000 },
|
|
155
|
+
it_devices: { legalBasis: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', thresholdCents: 500_000 },
|
|
156
|
+
metals: { legalBasis: '§ 2 Z 4 UStBBKV', thresholdCents: null },
|
|
157
|
+
emission_certificates: { legalBasis: '§ 19 Abs. 1e lit. a UStG', thresholdCents: null },
|
|
158
|
+
gas_electricity: { legalBasis: '§ 2 Z 2 UStBBKV', thresholdCents: null },
|
|
159
|
+
energy_certificates: { legalBasis: '§ 2 Z 3 UStBBKV', thresholdCents: null },
|
|
160
|
+
investment_gold: { legalBasis: '§ 2 Z 5 UStBBKV', thresholdCents: null },
|
|
161
|
+
security_transfer: { legalBasis: '§ 19 Abs. 1b UStG', thresholdCents: null },
|
|
162
|
+
foreign_supplier: { legalBasis: '§ 19 Abs. 1 zweiter Satz UStG', thresholdCents: null },
|
|
130
163
|
});
|
|
131
164
|
/** Ware oder Leistung — ohne das laesst sich ig. Lieferung nicht von Reverse Charge trennen. */
|
|
132
165
|
exports.ITEM_KINDS = ['goods', 'service'];
|
|
@@ -134,8 +167,37 @@ exports.PRICE_MODES = ['net', 'gross'];
|
|
|
134
167
|
exports.VAT_RATES = [0, 10, 13, 20];
|
|
135
168
|
exports.CUSTOMER_TYPES = ['private', 'company'];
|
|
136
169
|
exports.INVOICE_LIST_STATUS = ['final', 'paid', 'cancelled', 'open', 'overdue'];
|
|
137
|
-
|
|
170
|
+
/**
|
|
171
|
+
* Belegart: Rechnung oder Gutschrift (unter `/v1` `RE` bzw. `GU`). Das Vorzeichen
|
|
172
|
+
* steht in der Belegart, nie im Betrag.
|
|
173
|
+
*/
|
|
174
|
+
exports.DOC_TYPES = ['invoice', 'credit_note'];
|
|
138
175
|
exports.EINVOICE_FORMATS = ['ubl', 'cii'];
|
|
176
|
+
/**
|
|
177
|
+
* Was einer EN-16931-konformen E-Rechnung fehlt: `einvoice.missing` jeder
|
|
178
|
+
* Rechnungssicht und `data.missing` bei `einvoice_incomplete` bzw.
|
|
179
|
+
* `invoice_requirements_missing`. Unter `/v1` standen hier deutsche Woerter
|
|
180
|
+
* (`Straße`, `PLZ`, …).
|
|
181
|
+
*/
|
|
182
|
+
exports.EINVOICE_MISSING_CODES = [
|
|
183
|
+
'name',
|
|
184
|
+
'street',
|
|
185
|
+
'zip',
|
|
186
|
+
'city',
|
|
187
|
+
'country',
|
|
188
|
+
'vat_id',
|
|
189
|
+
'order_reference',
|
|
190
|
+
'order_reference_format',
|
|
191
|
+
];
|
|
192
|
+
/** Warum eine Rechnung abgeschrieben wurde (`writeOffReasonCode` in `getInvoice`). */
|
|
193
|
+
exports.WRITE_OFF_REASON_CODES = [
|
|
194
|
+
'uncollectible',
|
|
195
|
+
'time_barred',
|
|
196
|
+
'waived',
|
|
197
|
+
'disputed',
|
|
198
|
+
'settled_externally',
|
|
199
|
+
'other',
|
|
200
|
+
];
|
|
139
201
|
/**
|
|
140
202
|
* Sprachen einer Rechnung. Die Sprache wird beim Festschreiben eingefroren;
|
|
141
203
|
* fehlt sie an Kunde oder Rechnung, gilt `de`. Behoerden bekommen immer `de`
|
|
@@ -168,9 +230,9 @@ exports.INVOICE_NOTICE_CODES = [
|
|
|
168
230
|
];
|
|
169
231
|
/**
|
|
170
232
|
* Einheiten einer Position. Die API nimmt nur diese Schluessel an; gedruckt
|
|
171
|
-
* wird das Kuerzel in der Sprache der Rechnung (`
|
|
172
|
-
* `
|
|
173
|
-
* (`
|
|
233
|
+
* wird das Kuerzel in der Sprache der Rechnung (`INVOICE_TEXTS`,
|
|
234
|
+
* `unit_symbol.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
|
|
235
|
+
* (`INVOICE_UNIT_CODES`). Ohne Angabe gilt `piece`.
|
|
174
236
|
*/
|
|
175
237
|
exports.INVOICE_UNITS = [
|
|
176
238
|
'piece',
|
|
@@ -229,7 +291,7 @@ exports.INVOICE_UNITS = [
|
|
|
229
291
|
* Laufmeter; Lizenz, Benutzer, Geraet als Stueck). Die Validatoren der
|
|
230
292
|
* E-Rechnung pruefen jeden Code im Backend (Beispiel `api-einheiten`).
|
|
231
293
|
*/
|
|
232
|
-
exports.
|
|
294
|
+
exports.INVOICE_UNIT_CODES = Object.freeze({
|
|
233
295
|
piece: 'C62',
|
|
234
296
|
pair: 'PR',
|
|
235
297
|
set: 'SET',
|
|
@@ -306,16 +368,16 @@ exports.INVOICE_SETUP_REQUIREMENTS = [
|
|
|
306
368
|
'bank_account',
|
|
307
369
|
'number_format',
|
|
308
370
|
];
|
|
309
|
-
const text = (max,
|
|
310
|
-
const idempotencyKey = (
|
|
311
|
-
const id = {
|
|
312
|
-
const idPflicht = {
|
|
313
|
-
const datum = (
|
|
314
|
-
const limit = {
|
|
315
|
-
const cursor = {
|
|
371
|
+
const text = (max, required = false, extra = {}) => ({ type: 'string', required, max, ...(required && extra.min === undefined ? { min: 1 } : {}), ...extra });
|
|
372
|
+
const idempotencyKey = (required) => ({ type: 'string', required, min: 1, max: 120 });
|
|
373
|
+
const id = { type: 'string', required: false, min: 1, max: 128 };
|
|
374
|
+
const idPflicht = { type: 'string', required: true, min: 1, max: 128 };
|
|
375
|
+
const datum = (required = false) => ({ type: 'string', required, min: 10, max: 10, format: 'date' });
|
|
376
|
+
const limit = { type: 'integer', required: false, min: 1, max: 100 };
|
|
377
|
+
const cursor = { type: 'string', required: false, min: 1, max: 500 };
|
|
316
378
|
/** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
|
|
317
|
-
exports.
|
|
318
|
-
type: {
|
|
379
|
+
exports.CUSTOMER_FIELDS = Object.freeze({
|
|
380
|
+
type: { type: 'enum', required: true, values: exports.CUSTOMER_TYPES },
|
|
319
381
|
name: text(200, true),
|
|
320
382
|
legalForm: text(40),
|
|
321
383
|
email: text(254, false, { format: 'email' }),
|
|
@@ -327,14 +389,14 @@ exports.KUNDE_FELDER = Object.freeze({
|
|
|
327
389
|
country: text(2, true, { min: 2, format: 'country' }),
|
|
328
390
|
vatId: text(20, false, { format: 'vatId' }),
|
|
329
391
|
shortCode: text(8, false, { format: 'shortCode' }),
|
|
330
|
-
isAuthority: {
|
|
392
|
+
isAuthority: { type: 'boolean', required: false },
|
|
331
393
|
note: text(1000),
|
|
332
|
-
externalId: {
|
|
394
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
333
395
|
/** Sprache der Rechnungen an diesen Kunden; fehlt = `de`. */
|
|
334
|
-
language: {
|
|
396
|
+
language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
|
|
335
397
|
});
|
|
336
398
|
/** Beim Aendern ist jedes Kundenfeld optional. */
|
|
337
|
-
const
|
|
399
|
+
const CUSTOMER_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.CUSTOMER_FIELDS).map(([name, feld]) => [name, { ...feld, required: false }])));
|
|
338
400
|
/**
|
|
339
401
|
* Eine Rechnungs- oder Gutschriftsposition.
|
|
340
402
|
*
|
|
@@ -345,33 +407,33 @@ const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.KUND
|
|
|
345
407
|
* unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
|
|
346
408
|
* die bisher gerundet eingereicht werden mussten.
|
|
347
409
|
*/
|
|
348
|
-
exports.
|
|
410
|
+
exports.ITEM_FIELDS = Object.freeze({
|
|
349
411
|
description: text(300, true),
|
|
350
412
|
subtitle: text(1000),
|
|
351
|
-
quantity: {
|
|
413
|
+
quantity: { type: 'number', required: true, min: 0, exclusiveMin: true, max: 1_000_000_000, decimals: 3 },
|
|
352
414
|
/** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
|
|
353
|
-
unit: {
|
|
415
|
+
unit: { type: 'enum', required: false, values: exports.INVOICE_UNITS },
|
|
354
416
|
/** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
|
|
355
|
-
kind: {
|
|
417
|
+
kind: { type: 'enum', required: false, values: exports.ITEM_KINDS },
|
|
356
418
|
/** Einzelpreis in ganzen Cent. Alternative zu `unitPriceMicros`. */
|
|
357
|
-
unitPriceCents: {
|
|
419
|
+
unitPriceCents: { type: 'integer', required: false, min: 0, max: 100_000_000 },
|
|
358
420
|
/** Einzelpreis in Mikro-Euro (10⁻⁶ €). Alternative zu `unitPriceCents`. */
|
|
359
|
-
unitPriceMicros: {
|
|
360
|
-
vatRate: {
|
|
361
|
-
discountPct: {
|
|
421
|
+
unitPriceMicros: { type: 'integer', required: false, min: 0, max: 1_000_000_000_000 },
|
|
422
|
+
vatRate: { type: 'enum', required: true, values: exports.VAT_RATES },
|
|
423
|
+
discountPct: { type: 'number', required: false, min: 0, max: 100, decimals: 2 },
|
|
362
424
|
});
|
|
363
425
|
/** Genau einer der beiden Preise je Position (§ 9.1). */
|
|
364
|
-
exports.
|
|
426
|
+
exports.ITEM_PRICE_EXACTLY_ONE = Object.freeze([
|
|
365
427
|
Object.freeze(['unitPriceCents']),
|
|
366
428
|
Object.freeze(['unitPriceMicros']),
|
|
367
429
|
]);
|
|
368
430
|
const positionen = {
|
|
369
|
-
|
|
370
|
-
|
|
431
|
+
type: 'list',
|
|
432
|
+
required: true,
|
|
371
433
|
min: 1,
|
|
372
434
|
max: 500,
|
|
373
|
-
|
|
374
|
-
|
|
435
|
+
item: {
|
|
436
|
+
type: 'object', required: true, fields: exports.ITEM_FIELDS, exactlyOne: exports.ITEM_PRICE_EXACTLY_ONE,
|
|
375
437
|
},
|
|
376
438
|
};
|
|
377
439
|
/**
|
|
@@ -381,9 +443,9 @@ const positionen = {
|
|
|
381
443
|
* aber **nicht gedruckt**: die Rechnung wird aufbewahrt und vervielfaeltigt,
|
|
382
444
|
* und dem Empfaenger nuetzt sie nichts.
|
|
383
445
|
*/
|
|
384
|
-
exports.
|
|
385
|
-
method: {
|
|
386
|
-
amountCents: {
|
|
446
|
+
exports.PAYMENT_FIELDS = Object.freeze({
|
|
447
|
+
method: { type: 'enum', required: true, values: exports.INVOICE_PAYMENT_METHODS },
|
|
448
|
+
amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
|
|
387
449
|
paidAt: datum(),
|
|
388
450
|
reference: text(100),
|
|
389
451
|
/**
|
|
@@ -391,23 +453,23 @@ exports.PAYMENT_FELDER = Object.freeze({
|
|
|
391
453
|
* Zahlung per App am Tresen). Dann ist sie ein Barumsatz. Zu `transfer` passt
|
|
392
454
|
* das nicht — eine Ueberweisung erfolgt nie vor Ort — und wird abgewiesen.
|
|
393
455
|
*/
|
|
394
|
-
onSite: {
|
|
456
|
+
onSite: { type: 'boolean', required: false },
|
|
395
457
|
});
|
|
396
|
-
exports.
|
|
458
|
+
exports.INVOICE_REQUESTS = Object.freeze({
|
|
397
459
|
createCustomer: {
|
|
398
|
-
customer: {
|
|
460
|
+
customer: { type: 'object', required: true, fields: exports.CUSTOMER_FIELDS },
|
|
399
461
|
idempotencyKey: idempotencyKey(false),
|
|
400
462
|
},
|
|
401
463
|
getCustomer: {
|
|
402
464
|
customerId: id,
|
|
403
|
-
externalId: {
|
|
465
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
404
466
|
},
|
|
405
467
|
updateCustomer: {
|
|
406
468
|
customerId: idPflicht,
|
|
407
|
-
customer: {
|
|
469
|
+
customer: { type: 'object', required: true, fields: CUSTOMER_PATCH },
|
|
408
470
|
},
|
|
409
471
|
searchCustomers: {
|
|
410
|
-
externalId: {
|
|
472
|
+
externalId: { type: 'string', required: false, min: 1, max: 120 },
|
|
411
473
|
vatId: text(20),
|
|
412
474
|
email: text(254),
|
|
413
475
|
name: text(200),
|
|
@@ -422,23 +484,23 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
422
484
|
* muss passen (`tax_scheme_mismatch`) — so faellt eine falsche Zuordnung
|
|
423
485
|
* im Fremdsystem auf, statt eine falsche Rechnung zu erzeugen.
|
|
424
486
|
*/
|
|
425
|
-
taxScheme: {
|
|
487
|
+
taxScheme: { type: 'enum', required: false, values: exports.TAX_SCHEMES },
|
|
426
488
|
/** Pflicht bei `domesticReverseCharge`, sonst nicht erlaubt. */
|
|
427
|
-
reverseChargeReason: {
|
|
428
|
-
priceMode: {
|
|
489
|
+
reverseChargeReason: { type: 'enum', required: false, values: Object.keys(exports.REVERSE_CHARGE_REASONS) },
|
|
490
|
+
priceMode: { type: 'enum', required: true, values: exports.PRICE_MODES },
|
|
429
491
|
serviceStart: datum(true),
|
|
430
492
|
serviceEnd: datum(),
|
|
431
|
-
paymentTermDays: {
|
|
493
|
+
paymentTermDays: { type: 'integer', required: false, min: 0, max: 365 },
|
|
432
494
|
orderReference: text(200),
|
|
433
495
|
intro: text(2000),
|
|
434
496
|
note: text(2000),
|
|
435
497
|
paymentReference: text(140),
|
|
436
|
-
girocode: {
|
|
437
|
-
tracking: {
|
|
498
|
+
girocode: { type: 'boolean', required: false },
|
|
499
|
+
tracking: { type: 'boolean', required: false },
|
|
438
500
|
items: positionen,
|
|
439
|
-
metadata: {
|
|
501
|
+
metadata: { type: 'map', required: false, maxKeys: 20, keyPattern: '^[a-zA-Z0-9_]{1,40}$', valueMax: 500 },
|
|
440
502
|
/** Sprache dieser Rechnung; sonst die des Kunden, sonst `de`. */
|
|
441
|
-
language: {
|
|
503
|
+
language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
|
|
442
504
|
/** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
|
|
443
505
|
brandId: id,
|
|
444
506
|
/**
|
|
@@ -446,36 +508,36 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
446
508
|
* Festschreiben. Sonst gaebe es einen Moment, in dem die Rechnung offen ist
|
|
447
509
|
* und ein sofort geholtes PDF Zahlungsinformationen traegt.
|
|
448
510
|
*/
|
|
449
|
-
payment: {
|
|
511
|
+
payment: { type: 'object', required: false, fields: exports.PAYMENT_FIELDS },
|
|
450
512
|
/**
|
|
451
513
|
* Probelauf: alles pruefen und rechnen wie beim Ausstellen, aber nichts
|
|
452
514
|
* festschreiben — keine Nummer, kein Dokument, keine Zahlung, kein
|
|
453
515
|
* Idempotenz-Eintrag. Die Antwort traegt `preview` statt `invoice`.
|
|
454
516
|
*/
|
|
455
|
-
dryRun: {
|
|
517
|
+
dryRun: { type: 'boolean', required: false },
|
|
456
518
|
},
|
|
457
519
|
cancelInvoice: {
|
|
458
520
|
idempotencyKey: idempotencyKey(true),
|
|
459
521
|
invoiceId: idPflicht,
|
|
460
|
-
reason: {
|
|
522
|
+
reason: { type: 'enum', required: true, values: exports.CREDIT_NOTE_REASONS },
|
|
461
523
|
note: text(2000),
|
|
462
524
|
},
|
|
463
525
|
createCreditNote: {
|
|
464
526
|
idempotencyKey: idempotencyKey(true),
|
|
465
527
|
invoiceId: idPflicht,
|
|
466
|
-
reason: {
|
|
528
|
+
reason: { type: 'enum', required: true, values: exports.CREDIT_NOTE_REASONS },
|
|
467
529
|
note: text(2000),
|
|
468
530
|
items: positionen,
|
|
469
531
|
},
|
|
470
532
|
getInvoice: {
|
|
471
533
|
invoiceId: id,
|
|
472
|
-
number: {
|
|
534
|
+
number: { type: 'string', required: false, min: 1, max: 100 },
|
|
473
535
|
},
|
|
474
536
|
listInvoices: {
|
|
475
537
|
from: datum(),
|
|
476
538
|
to: datum(),
|
|
477
|
-
status: {
|
|
478
|
-
docType: {
|
|
539
|
+
status: { type: 'enum', required: false, values: exports.INVOICE_LIST_STATUS },
|
|
540
|
+
docType: { type: 'enum', required: false, values: exports.DOC_TYPES },
|
|
479
541
|
customerId: id,
|
|
480
542
|
limit,
|
|
481
543
|
cursor,
|
|
@@ -483,30 +545,30 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
483
545
|
getInvoicePdf: {
|
|
484
546
|
invoiceId: idPflicht,
|
|
485
547
|
/** Andere Sprache als die der Rechnung: gekennzeichnete Uebersetzungskopie, keine eigene Rechnung. */
|
|
486
|
-
language: {
|
|
548
|
+
language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
|
|
487
549
|
},
|
|
488
550
|
getInvoiceXml: {
|
|
489
551
|
invoiceId: idPflicht,
|
|
490
|
-
format: {
|
|
552
|
+
format: { type: 'enum', required: false, values: exports.EINVOICE_FORMATS },
|
|
491
553
|
},
|
|
492
554
|
getInvoiceSetupStatus: {},
|
|
493
555
|
listBrands: {},
|
|
494
556
|
recordInvoicePayment: {
|
|
495
557
|
idempotencyKey: idempotencyKey(true),
|
|
496
558
|
invoiceId: idPflicht,
|
|
497
|
-
method: {
|
|
498
|
-
amountCents: {
|
|
559
|
+
method: { type: 'enum', required: true, values: exports.INVOICE_PAYMENT_METHODS },
|
|
560
|
+
amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
|
|
499
561
|
paidAt: datum(),
|
|
500
562
|
reference: text(100),
|
|
501
|
-
onSite: {
|
|
563
|
+
onSite: { type: 'boolean', required: false },
|
|
502
564
|
},
|
|
503
565
|
});
|
|
504
566
|
/** Genau eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
|
|
505
|
-
exports.
|
|
567
|
+
exports.INVOICE_EXACTLY_ONE = Object.freeze({
|
|
506
568
|
getCustomer: [['customerId', 'externalId']],
|
|
507
569
|
getInvoice: [['invoiceId', 'number']],
|
|
508
570
|
});
|
|
509
571
|
/** Mindestens eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
|
|
510
|
-
exports.
|
|
572
|
+
exports.INVOICE_AT_LEAST_ONE = Object.freeze({
|
|
511
573
|
searchCustomers: [['externalId', 'vatId', 'email', 'name']],
|
|
512
574
|
});
|
|
@@ -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[];
|