Handling timeouts
Terminal is down
The client successfully sends a sale request to CloudLink but the terminal is down. A callback is therefor never delivered to the client.

Callback is down or invalid
The client successfully sends a sale request to CloudLink which delivers the request to the terminal. The terminal then tries to send a SALE_RECEIVED event but can not contact the callback.

CloudLink API is down after successful sale
The client sends a sale request to the terminal and the sale is displayed on the terminal and the cardholder makes the payment. When the terminal then tries to send a SALE_COMPLETED to CloudLink, it can not be contacted.
The terminal voids the previous sale.

Callback is down after successful sale
The client sends a sale request to the terminal and the sale is displayed on the terminal and the cardholder makes the payment. When the terminal then sends a SALE_COMPLETED to CloudLink which will try and contact the callback, but it can not be contacted.
The terminal voids the previous sale.

Terminal busy
A client tries to send a sale to a terminal who is already processing a sale from another client, the terminal sends back an event TERMINAL_BUSY.
