This scenario occurs when the cash register looses connection with the Payment terminal, and does not receive the final result for a transaction.
Start 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.
Refresh terminal
- The cash register queries the payment terminal for its 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.
Query the TxStore report
- The Cash register calls the method
GetTxStoreReport
withprovidedtenderReference
. - A
TxStoreReport
callback is returned with the TxStore object which contains the final state of the referenced transaction.
Cancel or refund
If the cash register fails to get final state after these steps:
- 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.