During a transaction or tender, the payment terminal generates display notifications. You can show these on your cash register to keep your staff up-to-date on the progress of the tender. For example, whether the customer has selected Dynamic Currency Conversion, or finished entering their PIN.
Here we describe how to set up display notifications. You then receive webhooks that include a Terminal API DisplayRequest
from the terminal. This has an event
indicating the progress of the transaction, or the result
of the transaction. You can use this information to show a message on your cash register.
We also provide an overview of display notification types, and examples of each.
Set up display notifications
To get display notifications, you need to make sure you can receive HTTP callbacks (webhooks) on a specific endpoint. Then you need to provide the URL to that endpoint in your Customer Area.
-
Prepare your system. It needs to have:
- An endpoint that can receive JSON messages.
- For the test environment: an open TCP port for HTTPS traffic (443, 8443, or 8843) with TLSv1.2.
-
For the live environment: an open TCP port for HTTPS traffic (443, 8443, or 8843) with TLSv1.2, or an open TCP port for HTTP traffic (80, 8080, 8888).
-
Log in to your Customer Area
-
For a local integration, proceed as follows:
-
Switch to the merchant account, store, or terminal that you want to set up notifications for.
-
Go to Point of sale > Terminal settings > Integrations.
-
In the Terminal API section, under Display URLs, select Add new.
If Add new doesn't show, select the pencil icon .
-
Enter the URL of the endpoint where you want to receive display notifications.
-
Select Save.
-
-
For a cloud integration, proceed as follows:
-
Switch to the merchant account that you want to set up notifications for.
-
Go to Developers > Webhooks and select the button to add a webhook.
-
At Terminal API details, select Add.
-
Select View classic page.
-
Complete the details:
Section Instructions Transport Enter the URL of the endpoint where you want to receive display notifications.
In the SSL Version list, select TLSv1.2.
Select the Active checkbox.Authentication Enter the username and password for basic authentication, if applicable. We include these details in the header of the notification request to authenticate with your server. Network Configuration Select Public Network. Additional Settings Select Display. - Select Save Configuration.
-
Display notifications will now be sent to the endpoint you specified.
Display notification types
A display notification is a DisplayRequest
sent from the terminal. It includes a ReferenceID
field with either:
event
: the interaction between the terminal and the customer.Result
: the outcome of the transaction.
Use the ReferenceID
to show a message to your staff, informing them of the progress of the transaction.
The main display notification types are:
Event | Description |
---|---|
TENDER_CREATED |
The tender has started. The |
CARD_INSERTED |
The shopper has inserted their card into the terminal. |
CARD_PRESENTED |
The shopper has presented the card to the terminal's contactless reader. |
CARD_SWIPED |
The shopper has swiped their card. |
WAIT_FOR APP_SELECTION |
The terminal is waiting for the shopper to select a payment application. |
APPLICATION_SELECTED |
The shopper has selected their preferred payment application. |
ASK_SIGNATURE |
The terminal has prompted the shopper to provide their signature. |
CHECK_SIGNATURE |
The signature is ready to be checked by store staff. |
SIGNATURE_CHECKED |
The signature has been checked by store staff. |
WAIT_FOR_PIN |
The terminal is waiting for the shopper to enter their PIN. |
PIN_DIGIT_ENTERED |
The shopper has entered a digit of their PIN. |
PIN_ENTERED |
The shopper has finished entering their PIN. |
PRINT_RECEIPT |
The terminal is printing the receipt. |
RECEIPT_PRINTED |
The terminal has finished printing the receipt. |
CARD_REMOVED |
The shopper has removed their card from the terminal. |
TENDER_FINAL |
The tender was finished; the shopper either completed or abandoned the transaction. The |
ASK_DCC |
The terminal is asking if the shopper requires dynamic currency conversion. |
DCC_ACCEPTED |
The shopper accepted the dynamic currency conversion request. |
DCC_REJECTED |
The shopper rejected the dynamic currency conversion request. |
ASK_GRATUITY |
The terminal is waiting for a possible tip. |
GRATUITY_ENTERED |
The shopper has entered a gratuity on the terminal. |
BALANCE_QUERY_STARTED |
Balance check started on the terminal. |
BALANCE_QUERY_COMPLETED |
Balance check completed on the terminal. |
LOAD_STARTED |
Gift card load has been initiated. |
LOAD_COMPLETED |
Gift card load has been completed. |
PROVIDE_CARD_DETAILS |
The terminal is waiting for card details to be entered manually. |
CARD_DETAILS_PROVIDED |
The card details have been entered. |
Examples of display notifications are provided below.
Examples
TENDER_CREATED
{
"SaleToPOIRequest":{
"DisplayRequest":{
"DisplayOutput":[
{
"Device": "CashierDisplay",
"InfoQualify": "Status",
"OutputContent": {
"OutputFormat": "MessageRef",
"PredefinedContent": {
"ReferenceID": "TransactionID=oLkO001517998574000&TimeStamp=2018-02-07T10%3a16%3a14.000Z&event=TENDER_CREATED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=CARD_INSERTED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=CARD_SWIPED"
}
},
"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();
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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=WAIT_FOR_APP_SELECTION"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=APPLICATION_SELECTED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=WAIT_FOR_PIN"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PIN_DIGIT_ENTERED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PIN_ENTERED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PRINT_RECEIPT"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=CARD_REMOVED"
}
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"Result=Success&TimeStamp=2018-09-27T14:40:18.000Z&TransactionID=faQm001538059218000.NC6HT9CRT65ZGN82&event=TENDER_FINAL"
}
},
"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();
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.NC6HT9CRT65ZGN82&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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=BALANCE_QUERY_STARTED"
}
},
"ResponseRequiredFlag":false
}
]
},
"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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=GRATUITY_ENTERED"
}
},
"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();
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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=LOAD_STARTED"
}
},
"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();
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":[
{
"Device":"CashierDisplay",
"InfoQualify":"Status",
"OutputContent":{
"OutputFormat":"MessageRef",
"PredefinedContent":{
"ReferenceID":"event=PROVIDE_CARD_DETAILS"
}
},
"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();
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);