Handle responses and timeouts

Handle every error condition in a response, set the right timeouts, and know what to do when the result is unknown.

Messages used: responses to every request · Login · TransactionStatus

Every response carries a Result. When it is Failure, ErrorCondition and AdditionalResponse (and AeResponseCode in payment responses) say why. Your ECR must handle all error conditions.

Error conditions

Responses can contain an ErrorCondition. Your ECR must be able to handle all of these values.

ErrorConditionMeaningWhat to do
AbortedThe transaction was aborted: Abort from the ECR, STOP on the terminal, or a timeoutDon't retry automatically
BusyThe terminal is busy with another requestTry again later
CancelCancelled by the cashier, for example in voice authorisationDon't retry automatically
LoggedOutThe terminal is connected, but has no session with your ECR, for example after a restartSend Login automatically, then retry the original request
UnavailableDeviceNo terminal with this terminal ID (POIID) is connected to AICIf you're sure the terminal ID is right, retry after a delay. Or look up the connected terminals with GET /poi-list
NotFound, Refusal, UnavailableServiceNo specific guidance yetCheck AeResponseCode and AdditionalResponse

To find the terminal ID, see Find the terminal ID (local integration and cloud integration).

🚧

Not a complete list

These are common failure cases, not all of them. Build the error handling your merchant's use cases and requirements need.

Unknown result

If the connection breaks after you sent a request but before you got the response, the result is unknown. It may have been approved. Never charge twice: see Verify transaction status.

Timeouts

Terminal stepTimeout
Waiting for card45 s
PIN entry45 s
Transaction communication55 s
Transaction communication, BankAxept (planned)17 s
  • Payment requests: give them a long enough timeout in your ECR. On top of the terminal timeouts, customers can be slow to present a card or enter a PIN, or may enter a wrong PIN.
  • Login, TransactionStatus and similar requests are answered by the terminal itself, normally in under a second. A short timeout, for example 5–10 s, is enough.
  • If your ECR times out on a payment, the result is unknown. See Verify transaction status.

BankAxept timeout (planned)

BankAxept requires a 14-second timeout towards Nets. So the terminal will stop waiting for a BankAxept transaction after 17 seconds.

In extremely rare cases (slow connection, slow card read and slow processing together), a BankAxept transaction can still be approved after the terminal has stopped waiting. The terminal's built-in reversal corrects this: it is sent after the terminal has been idle for 2 minutes.



Did this page help you?