hobex_hps library
hobex Payment Service (HPS) — typed client for the terminal's local REST
API (http://127.0.0.1:8080 when the app runs on the terminal).
Bewusst getrennt vom alten, cloud-basierten Hobex (KasseneckApi.hobexPay /
hobexRefund, die ueber Kasseneck-Cloud-Endpunkte gehen). Eigener Import,
damit alt und neu sauber nebeneinander leben:
import 'package:kasseneck_api/hobex_hps.dart';
final payments = HpsPayments(HpsClient(tid: '3600335'));
final res = await payments.pay(
amount: 1.00,
transactionId: HpsClient.newTransactionId(),
);
// res.outcome: approved | declined | unresolved
// Geldregel: nur declined heisst "nichts belastet, Wiederholung
// gefahrlos". unresolved darf NIE erneut belastet werden -- warnen und
// ueber res.transactionId klaeren.
Fuer eine Zahlung immer HpsPayments, nicht HpsClient.payment direkt:
dort steht die Kennung erst mit der Antwort fest, und isApproved == false
wirft "abgelehnt" mit "laeuft noch" in einen Topf. Genau daraus entstand am
24.08.2026 eine Doppelbelastung. HpsClient bleibt oeffentlich fuer alles
Uebrige (Diagnose, Batch, Statusabfrage).
Classes
- Diagnosis
-
Result of
GET /api/terminals/{tid}/diagnosis— a health snapshot of the terminal and its connection to the hobex host. - DiscoveredHpsTerminal
- Ein gefundenes Terminal: Adresse plus die Kennungen, die es selbst nennt.
- HobexReceipt
- HpsClient
- Client for the local hobex Payment Service (HPS) REST API.
- HpsCode
- Ein Ergebniscode, dessen Bedeutung feststeht.
- HpsCodes
- Die Tabelle selbst und die Abfrage darauf.
- HpsDiscoveryResult
- Ergebnis der Suche: Treffer plus die abgesuchten Netze.
- HpsEvent
- Ein Ereignis im Zahlweg. Bewusst schlank und ohne Kartendaten -- was hier hineingegeben wird, landet im Protokoll der App.
- HpsPayments
- Kartenzahlung, deren Ausgang immer bekannt ist.
- HpsResult
- Ergebnis eines Zahlvorgangs samt Kennung und Klaerungsverlauf.
- LocalIpv4
- Eine IPv4-Adresse dieses Geraets auf einer Schnittstelle.
- ScannedHpsSubnet
- Ein abgesuchtes Netz -- fuer die Anzeige in der Kasse und die Fehlersuche.
- TerminalInfo
-
A terminal entry returned by
GET /api/terminals. - TransactionResponse
- Result of a transaction request (payment, refund, pre-auth, capture, void, AVT) or of a transaction-status (v2) query.
Enums
- CardPaymentOutcome
- Ausgang eines Kartenzahlvorgangs -- die einzige Frage, die der Aufrufer wirklich hat: darf ich es nochmal versuchen?
- Cvm
- Cardholder Verification Method.
- HpsCodeEffect
- Wie ein Ergebniscode den Ausgang eines Vorgangs bestimmt.
- HpsCodeReason
- Worauf eine Kasse reagiert -- der Grund hinter einem Ergebniscode.
- HpsCodeSource
- Woher die Bedeutung eines Codes stammt.
- HpsEventKind
- Art eines Ereignisses im Zahlweg.
- HpsTransactionType
-
Numeric transaction type as sent in the request body of the
/api/transaction/paymentroute.
Constants
- hpsDefaultPort → const int
- Standard-Port der HPS-Schnittstelle am Terminal.
- hpsScanBudget → const Duration
- Zeitbudget der ganzen Suche, ueber alle Netze zusammen.
Functions
-
discoverHpsTerminals(
{int port = hpsDefaultPort, Duration budget = hpsScanBudget, Duration probeTimeout = hpsProbeTimeout, Duration verifyTimeout = hpsVerifyTimeout, int concurrency = hpsScanConcurrency, bool stopAtFirst = false, Future< List< interfaces()?, HpsTcpProbe probe = hpsTcpReachable, Client? httpClient}) → Future<LocalIpv4> >HpsDiscoveryResult> - Sucht hobex-HPS-Terminals im lokalen Netz.
Typedefs
- HpsObserver = void Function(HpsEvent event)
- Empfaenger der Ereignisse. Die App legt ihn typischerweise auf ihr Absturzprotokoll.
Exceptions / Errors
- HpsConnectionException
- Thrown when the HPS could not be reached at all (socket error, timeout, connection refused, …).
- HpsException
- Base class for all errors thrown by this package.
- HpsHttpException
- Thrown when the HPS responds with a non-2xx HTTP status code.