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)

  1. Send a Login request.
  2. Read POISerialNumber in the response (inside POISystemData → POITerminalData).
  3. The first time, save it as the expected serial number for this checkout.
  4. At every new login or reconnect, compare the serial number with the saved one.
  5. 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

  1. The first time, read the serial number from the Login response and save it.
  2. At later logins, send the expected serial number in the Login request.
  3. The terminal compares it with its own serial number:
    • Same: the login succeeds (Result Success).
    • Different: the login fails (Result Failure).
  4. 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.

Did this page help you?