This scenario occurs when the cash register looses connection with the Payment terminal, and does not receive the final result for a transaction.
The cash register starts a transaction.
The create tender callback is returned and provides the tender reference.
If the connection with the Payment terminal is lost, the library fires the PED Exception callback with tender state: Unknown.
The cash register queries the payment terminal for it's state.
The terminal returns the PedStateChange callback to provide its latest state.
If the payment terminal returns ped_state_undetected or ped_state_not_ready , a message "Check the payment terminal " should be presented on the Cash register. The payment terminal may be busy with: rebooting, downloading a config, operating in the admin menu, etc. The cashier can decide to retry to get the final state or to cancel the transaction.
If the payment terminal sends back ped_state_ready_for_transaction; the cash register checks the final result of the transaction in the TxStore report.
The Cash register calls the method GetTxStoreReport with providedtenderReference.
A TxStoreReport callback is returned with the TxStore object which contains the final state of the referenced transaction.
Initiate a CancelOrRefund call to the Adyen backend.
The final status of this request for a refund will be reported by Adyen's notifications directly to the Merchant's backend.