Cancellation
The POS may have a "cancel" button which can be pressed to try to abort a transaction that has been started unintentionally or that is taking too long. This is done by the POS sending an AbortRequest, which in turn is passed to the core as abort(). This should be interpreted as a request not a command - if it is possible to cleanly close the active transaction, then this should be done, but if not, the request ban be ignored.