abort method
Aborts an ongoing transaction, as long as it has not passed the point where the terminal can still take it back.
Liefert die volle TransactionResponse -- der responseCode ist die
eigentliche Auskunft, nicht der HTTP-Status.
Am 26.08.2026 an einem hobex-HPS gemessen (TID 3600335, HPS 1.10.0, Firmware 7.3.6):
- laeuft der Kartenfluss noch, antwortet der Abbruch mit
responseCode == '0'und greift; - ist der Vorgang abgeschlossen (genehmigt), antwortet er mit
responseCode == '100010'und greift NICHT -- die genehmigte Zahlung bleibt dabei unangetastet.
Und zwar beides mit HTTP 200. Deshalb reicht es nicht, nur bei
Nicht-2xx zu werfen und sonst die transactionId herauszugeben: ein
gescheiterter Abbruch saehe dann aus wie ein geglueckter, und aus einer
echten Belastung wuerde "nichts belastet".
Der Abbruch ist damit der Diskriminator, den die Statusabfrage nicht liefert: sie antwortet auf jeden nicht genehmigten Vorgang mit TransactionResponse.noStatementCode.
Implementation
Future<TransactionResponse> abort({required String transactionId}) {
_checkTransactionId(transactionId, 'transactionId');
final uri = _uri('api/transaction/abort/$tid/$transactionId', null);
return _sendTransactionUri('POST', uri, null);
}