Check the terminal's serial number
Make sure your ECR is connected to the right terminal, using the serial number the terminal sends at login.
Every terminal has a unique serial number. The terminal sends it in the Login response, so your ECR can check that it's talking to the terminal it expects. This matters most in stores with several terminals.
There are two ways to check it. Both happen at login, and login always comes before any other request.
Option 1: Check it in the ECR (recommended)
- Send a Login request.
- Read
POISerialNumberin the response (insidePOISystemData→POITerminalData). - The first time, save it as the expected serial number for this checkout.
- At every new login or reconnect, compare the serial number with the saved one.
- If they differ, don't send any payments. Alert the cashier or store IT.
This is the recommended way: it is stable, no requests are rejected, and error handling stays simple.
sequenceDiagram
participant E as Your ECR
participant T as Terminal
E->>T: Login request
T-->>E: Login response with POISerialNumber
Note over E: Compare with the saved serial number
alt Same serial number
E->>T: Payment and other requests
else Different serial number
Note over E: Stop and alert the cashier
end
Example Login response with the serial number
{
"SaleToPOIResponse": {
"MessageHeader": {
"ProtocolVersion": "3.1",
"MessageClass": "Service",
"MessageCategory": "Login",
"MessageType": "Response",
"ServiceID": "5",
"SaleID": "ECR123",
"POIID": "AT12345"
},
"LoginResponse": {
"Response": {
"Result": "Success"
},
"AeAllowedPaymentBrand": ["VISA", "MASTERCARD", "BANKAXEPT"],
"AeAllowedPaymentBrandCategory": ["NORMAL"],
"POISystemData": {
"DateTime": "2026-07-02T11:36:42.453+02:00",
"POISoftware": {
"ProviderIdentification": "Aera",
"ApplicationName": "Aera Payment App",
"SoftwareVersion": "2026.3.4"
},
"POITerminalData": {
"POISerialNumber": "236TKR512345"
}
}
}
}
}Option 2: Let the terminal check it
- The first time, read the serial number from the Login response and save it.
- At later logins, send the expected serial number in the Login request.
- The terminal compares it with its own serial number:
- Same: the login succeeds (
ResultSuccess). - Different: the login fails (
ResultFailure).
- Same: the login succeeds (
- If the login fails, check that the ECR is connected to the right terminal, then log in again.
sequenceDiagram
participant E as Your ECR
participant T as Terminal
E->>T: Login request with the expected serial number
Note over T: Compare with its own serial number
alt Same serial number
T-->>E: Login response: Success
else Different serial number
T-->>E: Login response: Failure
end
Good to know
- The serial number is only in the Login messages, not in any other message.
- A replaced terminal has a new serial number. Update the saved value after a terminal swap.
Updated 10 days ago
Did this page help you?