During a transaction or 'tender', Adyen terminals generate display notifications. These can be presented on your cash register to keep your store staff up-to-date on the progress of the transaction.
If your integration uses cloud communications with an asynchronous result, you need to integrate display notifications to receive the result of your transactions.
Here we describe how you expose an endpoint on your server, and set up display notifications. Your server will then receive webhooks that include an event
. This can indicate how the shopper is interacting with the terminal, or the result of the transaction. Use these to present a message on your cash register.
We also provide a list of possible event
values, and examples of each.
Set up display notifications
Step 1: Expose an endpoint on your server
Display notifications are sent as HTTP callbacks (webhooks) to an endpoint on your server. To receive notifications, you need a server that has:
- An endpoint that can receive a JSON call.
- For live environments: An open TCP port for HTTPS traffic (443, 8443, or 8843) with TLS 1.2.
- For testing environments: An open TCP port for HTTP traffic (80, 8080, or 8888) or HTTPS traffic (448, 8443, or 8843) with TLS 1.2.
- A username and password for basic authentication.
Next, enter the details of this endpoint in your Customer Area.
Step 2: Set up notifications in your Customer Area
Enter your server's details, and select additional information that you want to receive in notifications. You can configure notifications either at company or merchant account level.
- Log in to your Customer Area. To configure notifications at merchant level, switch to your merchant account.
- Go to Account > Server communication.
- Next to Terminal API Notification, select Add.
- Under Transport, enter your server's:
- URL. Make sure that this is a public URL.
- SSL (TLS) Version.
- Select the Active check box.
- In the Authentication section, enter your server's username and password for basic authentication.
We include these details in the header of the notification request to authenticate with your server. - Under Additional settings:
- Turn on Display notification.
- Select Test Configuration, to test whether the notification was received at your endpoint.
- If your endpoint received the notification, select Save Configuration.
Display notifications will now be sent to the endpoint you specified.
Step 3: Accept notifications
To ensure that your server is properly accepting notifications, we require you to acknowledge every notification of any type with an [accepted]
response.
If we don't receive this response within 10 seconds, for example because your server is down, all notifications to your endpoint will be queued and retried. For more information, refer to Queued notifications.
When your server receives a notification:
- Store the notification in your database.
- Acknowledge the notification with the following response:
[accepted]
- Apply your business logic.
Make sure that you acknowledge the notification before applying any business logic, because a breakage in your business logic could otherwise prevent important updates from reaching your system.
Display notification types
When you receive a display notification, the type of notification is indicated by the event
specified in the ReferenceID
field. Use the event
to present a message to your store staff, informing them of the progress of the transaction.
The main display notification types are:
Event | Description |
---|---|
TENDER_CREATED |
The tender was successfully created. In addition to the For an example of this notification, see |
CARD_DETAILS_PROVIDED |
The card details have been entered. |
CARD_INSERTED |
The shopper has inserted their card into the terminal. For an example of this notification, see |
CARD_PRESENTED |
The shopper has presented the card to the terminal's contactless reader. |
CARD_SWIPED |
The shopper has swiped their card. For an example of this notification, see |
WAIT_FOR_APP_SELECTION |
The terminal is waiting for the shopper to select a payment application. For an example of this notification, see |
APPLICATION_SELECTED |
The shopper has selected their preferred payment application. For an example of this notification, see |
ASK_SIGNATURE |
The terminal has requested a signature from the shopper. |
WAIT_FOR_PIN |
The terminal is waiting for the shopper to enter their PIN. For an example of this notification, see |
CHECK_SIGNATURE |
The signature is ready to be checked by store staff. |
PIN_DIGIT_ENTERED |
The shopper has entered a digit of their PIN. For an example of this notification, see |
PIN_ENTERED |
The shopper has finished entering their PIN. For an example of this notification, see |
SIGNATURE_CHECKED |
The signature has been checked by store staff. |
PRINT_RECEIPT |
The terminal is printing the receipt. For an example of this notification, see |
RECEIPT_PRINTED |
The terminal has finished printing the receipt. |
CARD_REMOVED |
The shopper has removed their card from the terminal. For an example of this notification, see |
TENDER_FINAL |
The tender was finished (the shopper either completed or abandoned the transaction). In addition to the For an example of this notification, see |
ASK_DCC |
The terminal is asking whether the shopper requires dynamic currency conversion. |
ASK_GRATUITY |
The terminal is waiting for a possible gratuity. |
BALANCE_QUERY_COMPLETED |
Balance query completed on the terminal. |
BALANCE_QUERY_STARTED |
Balance query started on the terminal. For an example of this notification, see |
DCC_ACCEPTED |
The shopper accepted the dynamic currency conversion request. |
DCC_REJECTED |
The shopper rejected the dynamic currency conversion request. |
GRATUITY_ENTERED |
The shopper has entered a gratuity on the terminal. For an example of this notification, see |
LOAD_STARTED |
Gift card load has been initiated. For an example of this notification, see |
LOAD_COMPLETED |
Gift card load has been completed. |
PROVIDE_CARD_DETAILS |
The terminal is waiting for card details to be entered manually. For an example of this notification, see |
Examples of display notifications are provided below.
Examples
TENDER_CREATED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"TransactionID=oLkO001517998574000&TimeStamp=2018-02-07T10%3a16%3a14.000Z&event=TENDER_CREATED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998562"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("TransactionID=oLkO001517998574000&TimeStamp=2018-02-07T10%3a16%3a14.000Z&event=TENDER_CREATED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998562");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
CARD_INSERTED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=CARD_INSERTED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998563"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=CARD_INSERTED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998563");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
CARD_SWIPED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"event=CARD_SWIPED"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=CARD_SWIPED");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
WAIT_FOR_APP_SELECTION
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=WAIT_FOR_APP_SELECTION"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998564"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=WAIT_FOR_APP_SELECTION");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998564");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
APPLICATION_SELECTED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=APPLICATION_SELECTED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998565"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=APPLICATION_SELECTED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998565");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
WAIT_FOR_PIN
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=WAIT_FOR_PIN"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998566"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=WAIT_FOR_PIN");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998566");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
PIN_DIGIT_ENTERED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PIN_DIGIT_ENTERED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998569"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=PIN_DIGIT_ENTERED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998569");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
PIN_ENTERED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PIN_ENTERED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998571"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=PIN_ENTERED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998571");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
PRINT_RECEIPT
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PRINT_RECEIPT"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998572"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=PRINT_RECEIPT");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998572");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
CARD_REMOVED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=CARD_REMOVED"
}
},
"InfoQualify":"Status",
"Device":"CashierDisplay",
"ResponseRequiredFlag":false
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=CARD_REMOVED");
outputContent.setPredefinedContent(predefinedContent);
displayOutput.setOutputContent(outputContent);
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
TENDER_FINAL
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"Result=Success&TimeStamp=2018-09-27T14:40:18.000Z&TransactionID=faQm001538059218000.8815380592267566&event=TENDER_FINAL"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("Result=Success&TimeStamp=2018-09-27T14:40:18.000Z&TransactionID=faQm001538059218000.8815380592267566&event=TENDER_FINAL");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
BALANCE_QUERY_STARTED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"event=BALANCE_QUERY_STARTED"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"Ray",
"MessageClass":"Device",
"MessageCategory":"Display",
"ServiceID":"S34",
"POIID":"V400m-324688179",
"MessageType":"Request",
"DeviceID":"39288033"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
String POIID = "YOUR_TERMINAL_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=BALANCE_QUERY_STARTED");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setServiceID(serviceID);
messageHeader.setPOIID(POIID);
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setDeviceID("39288033");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
GRATUITY_ENTERED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"event=GRATUITY_ENTERED"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=GRATUITY_ENTERED");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
LOAD_STARTED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"event=LOAD_STARTED"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=LOAD_STARTED");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
PROVIDE_CARD_DETAILS
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"ResponseRequiredFlag":false,
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"PredefinedContent":{
"ReferenceID":"event=PROVIDE_CARD_DETAILS"
},
"OutputFormat":"MessageRef"
}
}
]
},
"MessageHeader":{
"SaleID":"POSSystemID12345",
"ProtocolVersion":"3.0",
"MessageType":"Request",
"POIID":"V400m-324688179",
"ServiceID":"0207111617",
"MessageClass":"Device",
"MessageCategory":"Display",
"DeviceID":"1517998573"
}
}
}
String saleID = "YOUR_CASH_REGISTER_ID";
String POIID = "YOUR_TERMINAL_ID";
String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
DisplayRequest displayRequest = new DisplayRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setResponseRequiredFlag( Boolean.FALSE );
displayOutput.setDevice( DeviceType.CASHIER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.STATUS );
OutputContent outputContent = new OutputContent();
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("event=PROVIDE_CARD_DETAILS");
outputContent.setPredefinedContent(predefinedContent);
outputContent.setOutputFormat( OutputFormatType.MESSAGE_REF );
displayOutput.setOutputContent(outputContent);
displayRequest.setDisplayOutput(displayOutput);
saleToPOIRequest.setDisplayRequest(displayRequest);
MessageHeader messageHeader = new MessageHeader();
messageHeader.setSaleID(saleID);
messageHeader.setProtocolVersion("3.0");
messageHeader.setMessageType( MessageType.REQUEST );
messageHeader.setPOIID(POIID);
messageHeader.setServiceID(serviceID);
messageHeader.setMessageClass( MessageClassType.DEVICE );
messageHeader.setMessageCategory( MessageCategoryType.DISPLAY );
messageHeader.setDeviceID("1517998573");
saleToPOIRequest.setMessageHeader(messageHeader);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);