transactionStatus method
Queries the status of a transaction (v2). Useful to recover the result after a connection dropped mid-payment.
Achtung, am 26.08.2026 gemessen: diese Abfrage unterscheidet WENIGER, als
ihr Name nahelegt. Sie antwortet nur fuer eine genehmigte Zahlung mit
'0'; auf alles andere -- laufender Kartenfluss, Karte nicht aufgelegt,
abgebrochen, Kennung nie gesehen -- antwortet sie einheitlich mit
TransactionResponse.noStatementCode (9027, "Original Tx not found").
Nach einer Aufhebung antwortet sie auf die Kennung der Originalzahlung
mit TransactionResponse.transactionCanceledCode (9011).
9027 ist deshalb KEIN Ergebnis, sondern ein Grund, weiterzufragen --
siehe TransactionResponse.isConclusive. Wer einen laufenden Vorgang
vom abgebrochenen trennen will, braucht abort, nicht diese Abfrage.
TransactionResponse.isInProgress (responseCode == null) wurde auf
dieser Firmware nie beobachtet, bleibt aber ebenfalls eine Nicht-Aussage.
Eine dritte Nicht-Aussage, am 27.08.2026 gemessen: fragt man eine nicht
rein numerische Kennung ab, antwortet diese Abfrage DAUERHAFT mit
TransactionResponse.technicalErrorCode (9900, "Technical Error
Database") -- unabhaengig davon, ob unter der Kennung tatsaechlich Geld
floss. _checkTransactionId verhindert das fuer jede Kennung, die
dieser Client selbst erzeugt oder entgegennimmt; unangetastet bleibt
eine Kennung, die vor dieser Pruefung entstanden ist.
Implementation
Future<TransactionResponse> transactionStatus({
required String transactionId,
}) {
_checkTransactionId(transactionId, 'transactionId');
final uri = _uri('api/v2/transactions/$tid/$transactionId', null);
return _sendTransactionUri('GET', uri, null);
}