kasseneck_api library

Classes

CancellationOf
Bezug eines Storno-Belegs auf sein Original (cancellationOf).
CancelReceiptResult
Ergebnis eines Stornos: der neue, signierte Storno-Beleg, der Bezug zum Original und die verbliebenen Restmengen je Position.
HobexCloudPayments
Kartenzahlung ueber die Hobex-Cloud mit geklaertem Ausgang.
HobexCloudResult
Ergebnis einer Cloud-Kartenzahlung. Traegt IMMER die Kennung, damit der Ausgang spaeter noch geklaert werden kann.
HobexReceipt
HpsEvent
Ein Ereignis im Zahlweg. Bewusst schlank und ohne Kartendaten -- was hier hineingegeben wird, landet im Protokoll der App.
KasseneckApi
Client for the Kasseneck RKSV cash-register backend.
KeckPayment
Eine Zahlung am Beleg — Zwilling von ReceiptPayment in @kreiseck/kasseneck-api (models/receipt-payment.ts) und der Eintraege, die functions/gemeinsam/zahlungen-core.js unter payments ablegt.
KeckPaymentInput
Eine Zahlung, wie der Aufrufer sie an sellReceipt/sell/ cancel schickt – Zwilling von ReceiptPaymentInput. id und changeCents vergibt der Server.
KeckReceiptSheetWidget
Das Blatt am Bildschirm -- Zeile fuer Zeile dieselben Zeichen wie am Bon und im PDF (Zwilling von BelegBlattView im npm-Paket). Eine Zeile ist zwei Zeichenbreiten hoch, Logo und QR stehen in ihrem Blattanteil. Die Zeichenbreite wird an der Schrift gemessen, nicht angenommen.
LogoDimensions
LogoRaster
LogReceiptOutputsResult
Antwort von logReceiptOutputs.
Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild aus logoRaster (Zwilling von PrintLogo im npm-Paket).
ReceiptDaySummary
Umsatz eines Tages aus der Tagesstatistik (daySummary).
ReceiptDueBreakdown
Ergebnis von receiptDueBreakdown.
ReceiptDueLine
Eine Position fuer die Rechnung. Anders als KasseneckItem darf die Menge hier ein Bruch sein (0,375 kg) und der Steuersatz jeder Wert, den ein Beleg tragen kann; ReceiptDueLine.of macht aus einer Position eine Zeile.
ReceiptDueTip
Trinkgeld wie tip am Verkauf: Betrag, optional mit Empfaengern samt Inhaber-Kennzeichen (das Kennzeichen kennt nur die Kasse).
ReceiptDueTipShare
Ein Anteil am Trinkgeld samt Inhaber-Kennzeichen des Empfaengers.
ReceiptGrossByRate
Brutto je RKSV-Satzgruppe in ganzen Cent.
ReceiptListEntry
Ein Beleg in listReceipts (view: summary): die Zeile einer Liste, Betraege in ganzen Cent. Fuer Kopf, Layout und Pruefangaben gehoert der Beleg einzeln ueber getReceipt geholt.
ReceiptListPage<T>
Eine Seite von listReceipts: T ist ReceiptListEntry (view: summary) oder KasseneckReceipt (view: full).
ReceiptOperator
Bediener an einem Beleg.
ReceiptOutput
Ein Eintrag aus outputs einer getReceipt-Antwort (/v3), gelesen am Beleg (KasseneckReceipt.outputs). Eine Art oder ein Ergebnis, das dieses Paket noch nicht kennt (neuerer Server), bleibt lesbar stehen; die Kasse zeigt es ohne Beschriftung (receiptOutputLabel gibt dann null).
ReceiptOutputActor
Wer die Ausgabe ausloeste: der Kassen-Benutzer, beim Geraet mit api_key das Konto (name dann null).
ReceiptOutputEntry
Eine Ausgabe, wie die Kasse sie puffert und meldet: ein Druck oder ein Teilen des Belegs. Siehe RegisterReceiptClient.logReceiptOutputs.
ReceiptPrintLayout
Was zum Drucken und Anzeigen eines Belegs aus einer Antwort gilt (Ergebnis von receiptLayoutFromResult).
ReceiptSheet
RegistrationInfo
Registrierdaten fuer den Block „Prüfangaben“ am Nullbeleg (Regelwerk 2): wann die Signaturkarte und wann die Kasse bei FinanzOnline registriert wurden. Zwilling von RegistrationInfo in @kreiseck/kasseneck-api 1.0, Drahtfeld registrationInfo (frueher pruefangaben).
RejectedReceiptOutput
Ein abgelehnter Eintrag: dauerhaft, aus dem Puffer nehmen und nicht noch einmal senden.
SendReceiptEmailResult
Was das Backend ueber einen erfolgten Versand sagt.
SheetBlock
SheetBrandMark
Das Kasseneck-Logo am Belegende, als Rasterbild fest in width x height Druckpunkten -- diese Masse kommen aus brandMarkRasters, nicht aus einem Anteil der Blattbreite: das Raster liegt fertig vor (Vertrag), nur welches der beiden Masse gilt, entscheidet die Papierbreite.
SheetLine
SheetLogoBlock
SheetQr
VoucherDueArticle
Artikel fuer den Verkauf eines Leistungsgutscheins: Preis und Satz wie im Artikelstamm der Kasse.
VoucherDueInfo
Je Einloesung bzw. Auszahlung der neuen Form die gepruefte Sicht des Gutscheins (aus checkVoucher), zugeordnet ueber den Code. Zwilling von VoucherDueInfo im npm-Paket.

Enums

CancellationState
Storno-Stand eines Belegs in der Liste (Drahtfeld cancellationStatus, Katalog STORNO_STAND): none, partial, full. Ein unbekannter kuenftiger Wert kommt als CancellationState.unknown an und nie als none: die Kasse bietet dann keinen Storno an (siehe canCancel), der Server haelt ohnehin die Restmengen.
CardPaymentOutcome
Ausgang eines Kartenzahlvorgangs -- die einzige Frage, die der Aufrufer wirklich hat: darf ich es nochmal versuchen?
ErrorOutcome
Ausgang eines gescheiterten Aufrufs. rejected: nichts geschehen. unknown: der Vorgang kann ausgefuehrt sein (ein Beleg signiert, ein Storno gebucht, Ware gebucht, eine Rechnung ausgestellt); nie blind wiederholen. Belege, Stornos und Zahlungen nachlesen; ein Aufruf mit idempotencyKey nur mit demselben Schluessel erneut senden (wirkt genau einmal, ein neuer buchte doppelt); ohne Schluessel erst nachlesen.
HpsEventKind
Art eines Ereignisses im Zahlweg.
LayoutBannerTone
Ton einer hervorgehobenen Zeile, Drahtwert tone (Katalog LAYOUT_TON): receipt_type fuer die Belegart (STORNOBELEG …), warning fuer TESTKASSE/TESTSIGNATUR und den Ausfall der Signatureinheit.
ReceiptDueTipRecipient
Wer das Trinkgeld ohne recipients bekommt (Kennzeichen des angemeldeten Kassen-Benutzers). Auch die Art einer fertigen Trinkgeld-Position.
ReturnDisposition
Rueckgabe-Wahl als Typ; der Name ist der Wert am Draht (ReturnDisposition.defective.name = 'defective').
SheetLogoSize

Constants

cancellationReasons → const Map<String, String>
Die Gründe, die das Backend annimmt – Codes wie unter /v3 (Katalog STORNO_GRUND), Beschriftung für den Bildschirm und den Bon (bleibt deutsch, sie steht so am Beleg). Reihenfolge wie im Katalog des Backends.
cancellationStatuses → const List<String>
Stornostand eines Belegs in der Belegliste (Katalog STORNO_STAND).
clientErrorCodes → const Set<String>
Codes, die das Paket selbst vergibt, nicht der Server: route_missing (HTML statt Backend, der Aufruf kam nie an) und response_unreadable (ein signierender Aufruf meldete Erfolg, die Antwort ist aber unlesbar). dialect_mismatch vergibt das Paket ebenfalls, der Code gehoert aber zum Rand des Servers.
kPosBaseUrl → const String
Basis des Kassenwegs (Kanal app). Die Web-Kasse ruft denselben Weg im gleichen Ursprung als /api/v3.
kPublicBaseUrl → const String
Basis der oeffentlichen API.
maxPayments → const int
Hoechstzahl der Zahlungen je Beleg (Backend: MAX_ZAHLUNGEN).
receiptDueErrorCode → const String
Stabiler Code von ReceiptDueError, gleich fuer jede Ursache.
receiptDueErrorReasons → const List<String>
Warum sich der Zahlbetrag nicht rechnen laesst (ReceiptDueError.reason). Fest wie ein Backend-Code; dieselbe Liste im npm-Paket (RECEIPT_DUE_ERROR_REASONS) und in receipt-due-errors.json.
receiptEmailSendErrorCodes → const List<String>
Die fachlichen Codes von sendReceiptEmail (ohne Anmeldung und Rand).
receiptEmailVias → const List<String>
Versandwege einer Belegmail (Katalog MAILWEG): Postfach des Betriebs, Plattform, Plattform nach gescheitertem eigenen Postfach.
receiptListDaysMax → const int
Laengster Zeitraum in Kalendertagen (Wanduhr, nicht 31 x 24 Stunden).
receiptListErrorCodes → const Set<String>
Stabile Fehlercodes von listReceipts unter /v3. Sie kommen als KasseneckApiError.code an; die Eingabefehler darunter faengt das Paket schon vor dem Senden ab (KasseneckValidationError, kind: request), ankommen koennen sie trotzdem (ein Cursor einer anderen Abfrage: invalid_cursor). Dahinter die Codes von Anmeldung und Rand.
receiptListLimitMax → const int
Groesste Seite, die der Server liefert (Vorgabe 100).
receiptListOrders → const Set<String>
Werte von order: desc (neueste zuerst, Vorgabe des Servers) und asc.
receiptListPagesMax → const int
Hoechstens so viele Seiten holt listAllReceipts, dann bricht es mit einem Fehler ab. Mit 500 je Seite sind das 50.000 Belege in einem Fenster; mehr deutet auf eine Schleife, nicht auf eine Kasse.
receiptOutputEntriesMax → const int
Hoechstens so viele Eintraege je Aufruf von logReceiptOutputs.
receiptOutputEntryErrorCodes → const List<String>
Codes je Eintrag in rejected[].code einer Antwort von logReceiptOutputs: der Eintrag ist dauerhaft abgelehnt (aus dem Puffer nehmen, nicht noch einmal senden). validation heisst hier: ein Druck ohne oder mit unbekanntem Ergebnis.
receiptOutputKinds → const List<String>
Arten einer Ausgabe des Belegs (Katalog AUSGABE_ART): print Erstdruck, reprint Duplikat, email Belegmail, link_shared Link geteilt, pdf_shared PDF geteilt, opened vom Kunden geoeffnet (Abrufe je Stunde). Zwilling von RECEIPT_OUTPUT_KINDS.
receiptOutputLogKinds → const List<String>
Die Arten, die eine Kasse selbst meldet (RECEIPT_OUTPUT_LOG_KINDS). email und opened schreibt das Backend selbst; meldet eine Kasse sie, lehnt der Server genau diesen Eintrag ab (invalid_output_kind).
receiptOutputResults → const List<String>
Ergebnis einer Ausgabe (Katalog AUSGABE_ERGEBNIS); Mail und Abruf sind immer ok. Zwilling von RECEIPT_OUTPUT_RESULTS.
returnDispositions → const List<String>
Die Werte der Rueckgabe-Wahl, englisch wie am Draht, in der Reihenfolge des Vertrags.
voucherZeroRateBucketFrom → const String
Stichtag des 0-%-Topfs fuer Mehrzweck-Verkaeufe (Backend gutschein-core.NULLTOPF_AB). Solange er in der Zukunft liegt, zaehlt ein Mehrzweck-Verkauf als Fluss; ab dem Tag als Position im 0-%-Satz. Der Zahlbetrag bleibt gleich, Toepfe und Fluss verschieben sich.

Properties

cancellationErrorCodes → List<String>
Codes von cancelReceipt (Formfehler an payments stehen in paymentErrorCodes).
final
paymentErrorCodes → List<String>
Codes rund um payments an createReceipt und cancelReceipt.
final
receiptEmailErrorCodes → List<String>
Codes von sendReceiptEmail.
final
receiptErrorCodes → List<String>
Codes von createReceipt und getReceipt (ohne die Zahlungscodes, die stehen in paymentErrorCodes). receipt_outcome_unknown heisst: der Beleg ist moeglicherweise signiert, nachlesen statt wiederholen.
final
receiptOutputErrorCodes → List<String>
Codes von logReceiptOutputs, wenn die ganze Anfrage scheitert (Vokabular errorCodes.registerHandlersByEndpoint.logReceiptOutputs), dahinter Anmeldung und Rand, zuletzt route_missing. Zwilling von RECEIPT_OUTPUT_ERROR_CODES.
final

Functions

brandMarkImage(KeckPaperSize paperSize) → LogoRaster
Die Marke als Rasterbild fuer diese Papierbreite.
cardRefundReference(KasseneckReceipt receipt, String paymentId) → String
Kennung der Originalzahlung fuer die Rueckbuchung am Terminal (Hobex originalTransactionId, SumUp-Transaktion …): providerPaymentId der Zahlung paymentId des Originals. Die liefert nur der Kassenweg (kasse.kasseneck.at/api/v3, Kanal app); am oeffentlichen Weg fehlt sie, und dann wirft dieser Aufruf, statt null an ein Terminal weiterzugeben. Zwilling von cardRefundReference im npm-Paket.
isCancellationErrorCode(Object? value) → bool
Stabile Fehlercodes von cancelReceipt unter /v3 – Zwilling von CANCELLATION_ERROR_CODES in @kreiseck/kasseneck-api 1.0, in derselben Reihenfolge (siehe receipt/codes.dart). Das Backend legt sie als code neben die Meldung; sie kommen als KasseneckApiError.code an. Entscheide am Code, nie am Text. Formfehler an payments selbst melden die Codes aus paymentErrorCodes. cancellation_outcome_unknown heisst: der Storno ist moeglicherweise gebucht; nie wiederholen, sondern das Original nachlesen. Ist value ein Code aus cancellationErrorCodes? Ein Anzeigetext ist keiner, ein alter deutscher oder grosser Code aus /v1 auch nicht.
isOutcomeUnknown(Object? error) → bool
Ist der Ausgang dieses Fehlers unklar? Dann den Aufruf nicht blind wiederholen: Belege, Stornos und Zahlungen nachlesen; einen Aufruf mit idempotencyKey nur mit demselben Schluessel erneut senden; ohne Schluessel erst nachlesen (siehe ErrorOutcome). Gilt fuer jede Fehlerart; nur KasseneckApiError und KasseneckHttpError koennen unklar sein.
isPaymentErrorCode(Object? value) → bool
Die Codes, gleiche Reihenfolge wie PAYMENT_ERROR_CODES. Ist value ein Code aus paymentErrorCodes? Exakt, wie unter /v3 (klein); ein grosser Code aus /v1 ist keiner. Ein Anzeigetext auch nicht.
isReceiptDueError(Object? error) → bool
Ist error ein ReceiptDueError?
isReceiptEmailErrorCode(Object? value) → bool
Stabile Fehlercodes von sendReceiptEmail unter /v3 – Zwilling von RECEIPT_EMAIL_ERROR_CODES (siehe receipt/codes.dart). Sie kommen als KasseneckApiError.code an – entscheide am Code, nie am Text, der deutsche Satz darf sich jederzeit aendern.
isReceiptErrorCode(Object? value) → bool
Ist value ein Code aus receiptErrorCodes?
isReceiptOutputError(Object? error, [String? code]) → bool
Ohne code: traegt der Fehler ueberhaupt einen Code aus receiptOutputErrorCodes?
isReceiptOutputErrorCode(Object? value) → bool
Ist value ein Code aus receiptOutputErrorCodes?
isReturnDisposition(Object? value) → bool
Ist value eine Rueckgabe-Wahl aus returnDispositions? Der innere deutsche Wert (lager, defekt, entsorgt) ist keine.
Laedt das Logo unter url und rastert es in die Groesse, die das Blatt size und paper geben (logoDimensions/logoRaster) -- null ohne Adresse oder bei jedem Fehler (Netz, Decode, Pixelmass). pixel ersetzt den Standardweg ueber LogoService/decodePng (Tests, andere Quellen).
logoDimensions(int chars) → LogoDimensions
Ins Kaestchen der Stufe eingepasst, nie hochgerechnet (1 Bildpixel hoechstens 1 Druckpunkt).
logoRaster(Uint8List rgba, int pixelWidth, int pixelHeight, LogoDimensions dimensions, int chars) → LogoRaster
logoRasterSize(LogoDimensions dimensions, int chars) → ({int height, int width})
markAsDuplicate(ReceiptLayout layout, {required DateTime printedAt}) → ReceiptLayout
Kennzeichnet einen Nachdruck als Belegduplikat (Zwilling von markAsDuplicate in @kreiseck/kasseneck-api/receipt). Registrierkassen-Erlass BMF-AV Nr. 2/2026, Abschnitt 4.5.6: „Ein Belegduplikat ist als solches zu bezeichnen, nicht nochmals zu signieren, nicht neuerlich im Datenerfassungsprotokoll aufzunehmen und darf zu keiner Veränderung des Umsatzzählers führen.“ Signatur, DEP und Zähler bleiben ohnehin unberührt, weil ein Nachdruck den gespeicherten Beleg druckt; diese Funktion liefert die Bezeichnung.
migrateStoredReceiptJson(Map<String, dynamic> stored) → Map<String, dynamic>
Bringt einen Beleg in der gespeicherten Form von 9.x (toJson mit 0.x- Namen: uid, taxnr, logo_skala, testCashregister, testSignatur, kopfId, Layout mit regelwerk/ton; an Storno-Zeilen und in cancellations[] rueckgabe statt returnDisposition, dazu lagerStandortId, das wegfaellt) in die Form von /v3, die KasseneckReceipt.fromJson liest. Fuer lokale Ablagen, die das Update ueberleben muessen: gelesen wird migriert, verworfen wird nichts. Schon englische Schluessel bleiben, wie sie sind; ein englischer Schluessel gewinnt immer gegen seinen deutschen Vorgaenger. stored bleibt unberuehrt.
paymentsError(List<KeckPaymentInput> payments, {required bool cancellation, bool payout = false, bool payoutCancellation = false}) → String?
Was an der Zahlungsliste nicht stimmt -- null, wenn die Form passt.
paymentsExpectedCents(Object? error) → int?
Der Zahlbetrag des Servers aus einem payments_sum_mismatch (details.expectedCents), sonst null. Das Paket wiederholt nie selbst mit diesem Betrag: eine Kartenzahlung ist schon belastet. Die Kasse entscheidet (Differenz nachkassieren oder erstatten) und schickt dann einen neuen Verkauf. Zwilling von paymentsExpectedCents im npm-Paket.
qrSheetWidthFraction(String payload, KeckPaperSize paper, {QrModuleSize moduleSize = QrModuleSize.auto}) → double
Anteil der Blattbreite, den der QR am Drucker einnimmt (nativ, sonst Bildweg).
receiptDueBreakdown(List<KasseneckItem> items, List<KeckVoucher> vouchers, ReceiptType receiptType, {ReceiptDueTip? tip, List<KeckPaymentInput>? payments, ReceiptDueTipRecipient? tipRecipient, List<VoucherDueInfo>? voucherInfo, PosVoucherSettings? voucherSettings, List<VoucherDueArticle>? voucherArticles, bool smallBusiness = false, String? zeroRateBucketFrom, String? today}) → ReceiptDueBreakdown
Wie receiptDueCents, dazu Zaehler-Delta, Wertgutschein-Anteil und Toepfe.
receiptDueBreakdownForLines(List<ReceiptDueLine> lines, List<KeckVoucher> vouchers, ReceiptType receiptType, {ReceiptDueTip? tip, List<KeckPaymentInput>? payments, ReceiptDueTipRecipient? tipRecipient, List<VoucherDueInfo>? voucherInfo, PosVoucherSettings? voucherSettings, List<VoucherDueArticle>? voucherArticles, bool smallBusiness = false, String? zeroRateBucketFrom, String? today}) → ReceiptDueBreakdown
Wie receiptDueBreakdown, mit Zeilen statt Positionen (Bruchmengen).
receiptDueCents(List<KasseneckItem> items, List<KeckVoucher> vouchers, ReceiptType receiptType, {ReceiptDueTip? tip, List<KeckPaymentInput>? payments, ReceiptDueTipRecipient? tipRecipient, List<VoucherDueInfo>? voucherInfo, PosVoucherSettings? voucherSettings, List<VoucherDueArticle>? voucherArticles, bool smallBusiness = false, String? zeroRateBucketFrom, String? today}) → int
Zahlbetrag in Cent, siehe Bibliothekskommentar.
receiptLayoutFromResult(KasseneckReceipt receipt, {KeckPaperSize fallbackPaperSize = KeckPaperSize.mm58}) → ReceiptPrintLayout
Das Zeilenmodell zum Drucken und Anzeigen eines Belegs aus einer Antwort (Zwilling von receiptLayoutFromResult im npm-Paket).
receiptOutputErrorCode(Object? error) → String?
Der Code eines geworfenen Fehlers, wenn er in receiptOutputErrorCodes steht; sonst null.
receiptOutputFieldErrors(Object? error) → List<FieldError>
Die Feldfehler einer validation-Antwort von logReceiptOutputs; leer, wenn es keine sind.
receiptSheet(ReceiptLayout layout, {int? charsPerLine, bool brandMark = false, QrModuleSize qrModuleSize = QrModuleSize.auto}) → ReceiptSheet
storedLayoutJson(Object? stored) → Map<String, dynamic>?
Ein gespeichertes Zeilenmodell (layout) in der Form von /v3, wie ReceiptLayout.fromJson es liest. Zwilling von fromStoredLayout im npm-Paket: nimmt die Form von 0.x bzw. 9.x (regelwerk, Bannerzeilen mit ton belegart/warnung) und die Form 1.0 (ruleset, tone receipt_type/warning); ein unbekannter Ton geht woertlich durch. Die Schluessel werden an ihrer Stelle umbenannt, die Reihenfolge bleibt; traegt ein Objekt beide Namen, gewinnt der englische.
voucherRedeemMaxCents(List<KasseneckItem> items, VoucherCheck voucher, {List<KeckVoucher> vouchers = const [], ReceiptDueTip? tip, List<KeckPaymentInput>? payments, ReceiptDueTipRecipient? tipRecipient, List<VoucherDueInfo>? voucherInfo, PosVoucherSettings? voucherSettings, List<VoucherDueArticle>? voucherArticles, bool smallBusiness = false, String? zeroRateBucketFrom, String? today}) → int
Hoechstbetrag zum Vorbelegen einer Einloesung an der Kasse, in Cent, nie negativ: der groesste Betrag, den der Server fuer diesen Gutschein annimmt.
voucherRedeemMaxCentsForLines(List<ReceiptDueLine> lines, VoucherCheck voucher, {List<KeckVoucher> vouchers = const [], ReceiptDueTip? tip, List<KeckPaymentInput>? payments, ReceiptDueTipRecipient? tipRecipient, List<VoucherDueInfo>? voucherInfo, PosVoucherSettings? voucherSettings, List<VoucherDueArticle>? voucherArticles, bool smallBusiness = false, String? zeroRateBucketFrom, String? today}) → int
Wie voucherRedeemMaxCents, mit Zeilen statt Positionen (Bruchmengen).

Typedefs

CancellationItem = ({int index, int quantity})
Eine Position, die storniert werden soll.
HpsObserver = void Function(HpsEvent event)
Empfaenger der Ereignisse. Die App legt ihn typischerweise auf ihr Absturzprotokoll.

Exceptions / Errors

KasseneckApiError
Fachlicher Fehler des Backends (PIN falsch, Kasse belegt, Geraet gesperrt …).
KasseneckHttpError
Die Antwort war keine brauchbare Huelle {status, data} oder der HTTP-Weg scheiterte. Traegt bewusst nichts aus dem Rumpf: dort koennten Werte stehen, die wir gerade nicht ins Protokoll lassen wollen.
KasseneckReceiptFormatError
Ein Beleg kam an, liess sich aber nicht lesen — ein Pflichtfeld fehlt oder hat den falschen Typ.
KasseneckValidationError
Der Aufrufer hat etwas nicht mitgegeben, oder die Antwort trug nicht, was der Aufruf zusagt. Die Meldung nennt immer nur das Feld, nie seinen Wert — sonst stuende ein Geraetegeheimnis im Protokoll.
ReceiptDueError
Der Zahlbetrag laesst sich aus dieser Eingabe nicht rechnen, etwa Trinkgeld mit Betrag ohne Ware (reason tip_without_goods). Zwilling von ReceiptDueError im npm-Paket.