Endpoint
O URL utilizado para enviar mensagens da API de terminais depende do seu tipo de implementação. Para obter mais informações sobre as arquiteturas disponíveis, consulte a Visão geral da API de terminais.
Solicitação de login
Para uma lista de campos LoginRequest
, consulte campos LoginRequest. Os elementos de uma solicitação de login estão envoltos em um envelope LoginRequest
.
O SaleID
e o ServiceID
no MessageHeader
devem ser únicos. Combinações SaleID
e ServiceID
são rejeitadas se usadas recentemente, dentro de 48 horas.
Os campos descritos abaixo são aqueles que você especifica ao fazer uma chamada LoginRequest
para a Terminal API.
{
"SaleToPOIRequest":{
"MessageHeader":{
"ProtocolVersion":"3.0",
"MessageClass":"Service",
"MessageCategory":"Login",
"MessageType":"Request",
"ServiceID":"0403105031",
"SaleID":"POSSystemID12345",
"POIID":"P400Plus-275008565"
},
"LoginRequest":{
"DateTime":"2018-04-03T08:50:31+00:00",
"SaleSoftware":{
"ManufacturerID":"Adyen",
"ApplicationName":"TestScripts",
"SoftwareVersion":"1.0",
"CertificationCode":""
},
"SaleTerminalData":{
"TotalsGroupID":"GroupA"
},
"OperatorLanguage":"en",
"OperatorID":"John"
}
}
}
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
MessageHeader messageHeader = new MessageHeader();
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageClass( MessageClassType.SERVICE );
messageHeader.setMessageCategory( MessageCategoryType.LOGIN );
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setServiceID(serviceID);
messageHeader.setSaleID(saleID);
messageHeader.setPOIID(POIID);
saleToPOIRequest.setMessageHeader(messageHeader);
LoginRequest loginRequest = new LoginRequest();
loginRequest.setDateTime("2018-04-03T08:50:31+00:00");
SaleSoftware saleSoftware = new SaleSoftware();
saleSoftware.setManufacturerID("Adyen");
saleSoftware.setApplicationName("TestScripts");
saleSoftware.setSoftwareVersion("1.0");
saleSoftware.setCertificationCode("");
loginRequest.setSaleSoftware(saleSoftware);
SaleTerminalData saleTerminalData = new SaleTerminalData();
saleTerminalData.setTotalsGroupID("GroupA");
loginRequest.setSaleTerminalData(saleTerminalData);
loginRequest.setOperatorLanguage("en");
loginRequest.setOperatorID("John");
saleToPOIRequest.setLoginRequest(loginRequest);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
Resposta
Para uma lista de campos LoginResponse
, consulte campos LoginResponse.
A resposta de login contém informações sobre o status do terminal nos seguintes campos:
{
"SaleToPOIResponse":{
"LoginResponse":{
"POISystemData":{
"POISoftware":{
"CertificationCode":"",
"SoftwareVersion":"adyen_423314",
"ManufacturerID":"Adyen",
"ApplicationName":"Nexo"
},
"DateTime":"2018-04-03T08:50:23.000Z",
"POIStatus":{
"CommunicationOKFlag":true,
"GlobalStatus":"OK"
}
},
"Response":{
"Result":"Success"
}
},
"MessageHeader":{
"ProtocolVersion":"3.0",
"SaleID":"POSSystemID12345",
"MessageClass":"Service",
"MessageCategory":"Login",
"ServiceID":"0403105031",
"POIID":"P400Plus-275008565",
"MessageType":"Response"
}
}
}
Após uma solicitação de login bem-sucedida, o terminal salvará os valores fornecidos no armazenamento persistente. Os valores permanecerão em vigor até que uma nova solicitação de login seja processada ou até que uma solicitação de logout seja concluída.
Solicitação de logout
Para obter uma lista de campos LogoutRequest
, consulte campos LogoutRequest.
Os elementos de uma solicitação de logout são agrupados em um envelope LogoutRequest.
O LogoutRequest
apagará os dados persistentes armazenados pelo LoginRequest
.
Os campos descritos abaixo são os campos básicos de pagamento que você especifica ao fazer uma chamada LogoutRequest
para a Terminal API.
{
"SaleToPOIRequest":{
"MessageHeader":{
"ProtocolVersion":"3.0",
"MessageClass":"Service",
"MessageCategory":"Logout",
"MessageType":"Request",
"ServiceID":"0403105613",
"SaleID":"POSSystemID12345",
"POIID":"P400Plus-275008565"
},
"LogoutRequest":{
}
}
}
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
MessageHeader messageHeader = new MessageHeader();
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageClass( MessageClassType.SERVICE );
messageHeader.setMessageCategory( MessageCategoryType.LOGOUT );
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setServiceID(serviceID);
messageHeader.setSaleID(saleID);
messageHeader.setPOIID(POIID);
saleToPOIRequest.setMessageHeader(messageHeader);
LogoutRequest logoutRequest = new LogoutRequest();
saleToPOIRequest.setLogoutRequest(logoutRequest);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
Para obter uma lista de campos LogoutResponse
, consulte campos LogoutResponse. Você receberá uma resposta contendo os seguintes campos:
{
"SaleToPOIResponse":{
"LogoutResponse":{
"Response":{
"Result":"Success"
}
},
"MessageHeader":{
"ProtocolVersion":"3.0",
"SaleID":"POSSystemID12345",
"MessageClass":"Service",
"MessageCategory":"Logout",
"ServiceID":"0403105613",
"POIID":"P400Plus-275008565",
"MessageType":"Response"
}
}
}