register library
Kopplung und Anmeldung eines Kassengeräts (RKSV-Kasse).
Der Einstieg ist RegisterClient. Diese Aufrufe laufen ohne Anmeldung —
der Kopplungs-Code aus dem Panel bzw. das Gerätegeheimnis ist der Nachweis.
Sie stehen bewusst neben KasseneckApi, die einen api_key braucht.
Classes
- FieldError
-
Ein Feldfehler aus
details.errors[]einervalidation-Antwort. - PairedRegisterDevice
- Ergebnis der Kopplung — der vollständige Ausweis dieses Geräts.
- RegisterCashregisterState
-
Darf die gebundene Kasse Belege erstellen?
ready: falsemit dem Grund (Menschentext) etwa bei fehlender Signaturkarte oder fehlendem Startbeleg. - RegisterClient
- Die anmeldungsfreien Aufrufe rund um Kopplung und Anmeldung.
- RegisterClientInfo
-
Kopplung und Anmeldung eines Kassengeräts — der Zwilling von
register/pairing.tsim JS-Paket@kreiseck/kasseneck-api. - RegisterDeviceUsers
- Antwort von RegisterClient.listRegisterUsersForDevice.
- RegisterErrorDetails
-
Die Angaben einer Abweisung, soweit sie welche trägt. Was fehlt, ist
null; deviceLabel ist auch dannnull, wenn das belegende Gerät keinen Namen hat (die Oberfläche sagt dann „ein anderes Gerät“). - RegisterGeo
- Standort (freiwillig); Grundlage der Standortsperre.
- RegisterPinPolicy
- PIN-Regel des Betriebs — daraus baut die Kasse Kästchen und Tastatur.
- RegisterSession
-
Ergebnis der Anmeldung.
Eine laufende Sitzung an einer Kasse — Zwilling von
RegisterSession(npm). Für den Anmeldebildschirm, wenn alle Lizenzplätze belegt sind: der Kassier sieht, WELCHE Sitzung weichen soll, und gibt ihre id alstakeoverSessionIdmit. - RegisterSessionClient
- Die beiden Aufrufe der laufenden Sitzung.
- RegisterSessionOverview
- Antwort von RegisterClient.listRegisterSessionsForDevice.
- RegisterTransport
- RegisterUser
- Der angemeldete Kassen-Benutzer.
- RegisterUserPerms
- Rechte eines Kassen-Benutzers.
- RegisterUserSession
- RegisterUserSummary
- Ein Kassen-Benutzer, wie ihn der Anmeldebildschirm zeigt.
Enums
- 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
idempotencyKeynur mit demselben Schluessel erneut senden (wirkt genau einmal, ein neuer buchte doppelt); ohne Schluessel erst nachlesen. - RegisterLoginMode
-
Anmeldemodus des Geräts (Draht
select_userbzw.pin); ein unbekannter künftiger Wert gilt als selectUser: das Backend weist eine Anmeldung ohne Auswahl ohnehin mitlogin_mode_select_userab. - RegisterScope
- Reichweite eines Rechts.
- RegisterUserKind
- Art eines Kassen-Benutzers. Ein künftiger, hier unbekannter Wert gilt als person — beim Lesen ist dieses Paket tolerant.
Constants
-
clientErrorCodes
→ const Set<
String> -
Codes, die das Paket selbst vergibt, nicht der Server:
route_missing(HTML statt Backend, der Aufruf kam nie an) undresponse_unreadable(ein signierender Aufruf meldete Erfolg, die Antwort ist aber unlesbar).dialect_mismatchvergibt 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.
- kRegisterBaseUrl → const String
-
Basis-Adresse der Kassen-Aufrufe (Kassenweg, Kanal
app). -
paymentCallRejectedCodes
→ const Set<
String> - Codes, bei denen ein Geldweg sicher abgelehnt ist: sie entstehen, bevor das Backend den Zahlungsanbieter anspricht.
-
registerErrorCodes
→ const List<
String> -
Die Codes der Anmeldung, gleich
registerErrorCodesim Vertrag (surface.json): Fehlerfälle der acht Anmelde-Endpunkte und ihre Handler-Codes, dazu Anmelde- und Randcodes (ohne den Partner-Zugang) und der Paketcoderoute_missing. Ein Code, der hier nicht steht, bleibt über KasseneckApiError.code lesbar; die Kasse braucht dafür einen Rückfallzweig.
Functions
-
errorCodeFrom(
Map envelope) → String? -
Der
codeeiner Antworthuelle — nur ein nicht leerer Text zaehlt, alles andere waere ein geratener Vertrag. -
fieldErrors(
Object? error) → List< FieldError> -
Die Feldfehler einer
validation-Antwort; leer, wenn es keine sind. -
isOutcomeUnknown(
Object? error) → bool -
Ist der Ausgang dieses Fehlers unklar? Dann den Aufruf nicht blind
wiederholen: Belege, Stornos und Zahlungen nachlesen; einen Aufruf mit
idempotencyKeynur mit demselben Schluessel erneut senden; ohne Schluessel erst nachlesen (siehe ErrorOutcome). Gilt fuer jede Fehlerart; nur KasseneckApiError und KasseneckHttpError koennen unklar sein. -
isRegisterError(
Object? error, [String? code]) → bool -
Kurzform für
catch (e) { if (isRegisterError(e, 'cashregister_in_use')) … }. Ohnecode: ist es überhaupt ein Fehler der Kassen-Anmeldung? -
isRegisterErrorCode(
Object? value) → bool -
readSignedResponse<
T> (String functionName, T read(), {String? receiptId()?}) → T -
Liest die Erfolgsantwort eines wirkenden Aufrufs (Beleg, Storno,
Kartenbelastung). Scheitert das Lesen (fehlender Beleg, fehlender Bezug,
unbrauchbares Feld oder ein Laufzeitfehler beim Umwandeln), hat der Server
trotzdem Erfolg gemeldet: der Beleg ist signiert und im DEP, die Karte
belastet. Das darf nie als gewoehnlicher Fehler enden, sonst kassiert die
Kasse ein zweites Mal. Darum wird daraus KasseneckApiError mit Code
response_unreadableund Ausgang unklar (Zwilling vonsigniertGelesenim npm-Paket). -
registerErrorCode(
Object? error) → String? -
Der Code eines geworfenen Fehlers, wenn er einer der Anmeldung ist; sonst
null. -
registerErrorDetails(
Object? error) → RegisterErrorDetails -
registerFieldErrors(
Object? error) → List< FieldError> -
Feldfehler der Anmeldung (Zwilling von
registerFieldErrors). -
stockViewOf(
RegisterUserPerms? perms) → bool -
Darf der Benutzer Standorte und Mengen sehen? Wie im Backend (lager-core):
ohne Schluessel gilt
stockViewals erteilt, nur ein ausdruecklichesfalsesperrt; alle anderen Lager-Rechte gelten ohne Schluessel als verweigert. Ohne Rechte (permsnull) nichts.
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.