abort method

Future<TransactionResponse> abort({
  1. required String transactionId,
})

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);
}