Open a session between the ECR and the terminal. Send it before any other request.
| Message category | Class | Direction |
|---|---|---|
Login | Service | ECR → terminal |
Used in these guidesConnect your ECR · Implement the payment flow · Handle responses and timeouts · Limit which cards can be used · Test and get approved
A login message creates a session between the ECR and the terminal, and allows the ECR and terminal to exchange information about capabilities. Login must be performed before any other requests are sent from ECR.
Example request and response
login
All fields
Example request
{
"SaleToPOIRequest": {
"MessageHeader": {
"ProtocolVersion": "3.1",
"ServiceID": "1",
"MessageClass": "Service",
"MessageCategory": "Login",
"MessageType": "Request",
"SaleID": "ECR123",
"POIID": "AT12345"
},
"LoginRequest": {
"DateTime": "2026-05-28T08:47:49.443Z",
"SaleSoftware": {
"ProviderIdentification": "ECR Provider Inc",
"ApplicationName": "BestECR",
"SoftwareVersion": "1.3.4"
}
}
}
}| Field | Required | Description |
|---|---|---|
LoginRequest | Required | Contains the fields below |
↳ DateTime | Required | Request timestamp |
↳ SaleSoftware | Required | Information about the ECR software. Used for troubleshooting purposes |
↳ ProviderIdentification | Required | Name of ECR provider |
↳ ApplicationName | Required | Name of ECR application |
↳ SoftwareVersion | Required | ECR application version |
Example response
{
"SaleToPOIResponse": {
"MessageHeader": {
"MessageCategory": "Login",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "AT12345",
"ProtocolVersion": "3.1",
"SaleID": "ECR123",
"ServiceID": "1"
},
"LoginResponse": {
"Response": {
"Result": "Success"
},
"AeAllowedPaymentBrand": [
"VISA",
"MASTERCARD",
"MAESTRO",
"BANCONTACT"
],
"AeAllowedPaymentBrandCategory": [
"NORMAL",
"VOUCHER"
],
"POISystemData": {
"DateTime": "2026-05-28T10:47:50.679+02:00",
"POISoftware": {
"ProviderIdentification": "Aera",
"ApplicationName": "Aera Payment App",
"SoftwareVersion": "2026.2.3"
},
"POITerminalData": {
"POISerialNumber": "236TKR500040"
}
}
}
}
}| Field | Required | Description |
|---|---|---|
LoginResponse | Required | Contains the fields below |
↳ Response | Required | Contains the fields below |
↳ Result | Required | Success or Failure |
↳ AeAllowedPaymentBrand | Optional | List of card brands that are enabled locally in the terminal. See Payment methods and card brands |
↳ AeAllowedPaymentBrandCategory | Optional | List of card brand categories configured locally in the terminal. See Payment methods and card brands |
↳ POISystemData | Required | Information about terminal software |
↳ POITerminalData | Required | Contains the fields below |
↳ POISerialNumber | Required | Serial number of terminal |
Example of error response
{
"SaleToPOIResponse": {
"MessageHeader": {
"MessageCategory": "Login",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "AT12345",
"ProtocolVersion": "3.1",
"SaleID": "ECR123",
"ServiceID": "1"
},
"LoginResponse": {
"Response": {
"AdditionalResponse": "'AE123456' not connected.",
"Result": "Failure",
"ErrorCondition": "UnavailableDevice"
}
}
}
}| Field | Required | Description |
|---|---|---|
LoginResponse | Required | Contains the fields below |
↳ Response | Required | Contains the fields below |
↳ Result | Required | Success or Failure |
↳ AdditionalResponse | Optional | TextString. Additional information related to processing status of a message request. |
↳ ErrorCondition | Optional | Enum. Condition that has produced an error on the processing of a message request. See Handle responses and timeouts for general error handling and all the enum values for this field. |
Note: The Response object (Result, ErrorCondition and AdditionalResponse) is the same in every response message. It is described only here, on the Login page.