Use case: Automatic recovery

 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

  1. The cash register starts a transaction.
  2. The create tender callback is returned and  provides the tender reference.
  3. If the connection with the Payment terminal is lost, the library fires the PED Exception callback with tender state: Unknown.

Refresh terminal

  1.  The cash register queries the payment terminal for it’s state.
  2. The terminal returns the PedStateChange callback to provide its latest state.
    1. 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.
    2. 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

  1. The Cash register calls the method GetTxStoreReport with providedtenderReference.
  2. 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:

  1. Initiate a CancelOrRefund call to the Adyen backend.
  2. The final status of this request for a refund will be reported by Adyen’s notifications directly to the Merchant’s backend.