Line Display

You can perform a line display operation using the the REST API for Oracle Retail EFTLink as long as the logon request was successfully performed. For more details see the Use Case Logon.

Note:

EFTLink provides a mechanism to allow a client application to drive the state of a transaction. There are three states:

  • Sale Start

  • Sale in progress

  • Sale end

These states are driven by what is called a Sale State Notification. The sale state notification follows the Fire-and-Forget pattern, whereby the client initiates a process, the server receives the message to initiate that process but does not respond to the client. The client has to assume that the request was successful.

The sale state notification states are important as they help EFTLink drive the state of the payment device. The sale start could initialise the process in the payment core to determine whether or not to start a thread to manage the line display of the payment device.

To perform a sale state notification SaleStart request:

URL: wss://localhost:8443/salenotification

Note:

The SaleState key is SaleStart.

Sample request from client:

{
       "SaleState":"SaleStart",
       "ApplicationSender":"XSTORE",
       "WorkstationID":"1",
       "TransactionNumber":"1",
       "StoreID":"101"
}

This request will be converted to the following IFSF XML request and sent over the SSL socket channel 0:

<?xml version="1.0" encoding="UTF-8"?>
<SaleStateNotification TransactionNumber="1" RequestID="3" WorkstationID="1" ApplicationSender="MICROS" SaleState="SaleStart"/>

To perform a sale state notification SaleInProgress request:

URL: wss://localhost:8443/sale_in_progress

Note:

The SaleState key is SaleInProgress, this request will also contain the line items that need to be passed across to the line display.

Example 1:

Sample request from client:

{
       "SaleState":"SaleInProgress",
       "ApplicationSender":"XSTORE",
       "WorkstationID":"1",
       "TransactionNumber":"1",
       "StoreID":"101",
       "RunningTotal":"114.70",
       "RunningTotalTax":"8.50",
       "SaleItem":
       [
                {
                      "ProductCode":"0",
                      "Department":"25005",
                      "Amount":
                      {
                           "OriginalAmount":"118.00",
                           "text":"106.20"
                      },
                      "UnitPrice":"106.20",
                      "Quantity":"1",
                      "TaxCode":"1",
                      "TaxRate":".08",
                      "AdditionalProductCode":"1002",
                      "AdditionalProductInfo":"COTTON JERSEY TIERED DRESS",
                      "ItemID":"_1"
                 }
         ]
}

This request will be converted to the following request sent over the SSL socket channel 0:

<?xml version="1.0" encoding="UTF-8"?>
<SaleStateNotification TransactionNumber="1" RequestID="4" WorkstationID="1" ApplicationSender="MICROS" SaleState="SaleInProgress">
  <SaleItem ItemID="_1">
    <ProductCode>0</ProductCode>
    <Department>25005</Department>
    <Amount>106.20</Amount>
    <UnitPrice>106.20</UnitPrice>
    <Quantity>1</Quantity>
    <TaxCode>1</TaxCode>
    <TaxRate>0.08</TaxRate>
    <AdditionalProductCode>1002</AdditionalProductCode>
    <AdditionalProductInfo>COTTON JERSEY TIERED DRESS</AdditionalProductInfo>
  </SaleItem>
  <RunningTotal>114.70</RunningTotal>
  <RunningTotalTax>8.50</RunningTotalTax>
</SaleStateNotification>

Example 2:

Sample request from client:

{
       "SaleState":"SaleInProgress",
       "ApplicationSender":"XSTORE",
       "WorkstationID":"1",
       "TransactionNumber":"1",
       "StoreID":"101",
       "RunningTotal":"189.76",
       "RunningTotalTax":"14.06",
       "SaleItem":
       [
                 {
                    "ProductCode":"0",
                    "Department":"25005",
                    "Amount":
                    {
                            "OriginalAmount":"118.00",
                            "text":"106.20"
                    },
                    "UnitPrice":"106.20",
                    "Quantity":"1",
                    "TaxCode":"1",
                    "TaxRate":".08",
                    "AdditionalProductCode":"1002",
                    "AdditionalProductInfo":"COTTON JERSEY TIERED DRESS",
                    "ItemID":"_1"
                 },
                 {
                    "ProductCode":"0",
                    "Department":"25099",
                    "Amount":
                    {
                           "OriginalAmount":"69.50",
                           "text":"69.50"
                    },
                    "UnitPrice":"69.50",
                    "Quantity":"1",
                    "TaxCode":"1",
                    "TaxRate":".08",
                    "AdditionalProductCode":"1003",
                    "AdditionalProductInfo":"TIE WAIST SHIRT DRESS",
                    "ItemID":"_2"
                  }
       ]
}

This request will be converted to the following request sent over the SSL socket channel 0:

<?xml version="1.0" encoding="UTF-8"?>
<SaleStateNotification TransactionNumber="1" RequestID="5" WorkstationID="1" ApplicationSender="MICROS" SaleState="SaleInProgress">
  <SaleItem ItemID="_1">
    <ProductCode>0</ProductCode>
    <Department>25005</Department>
    <Amount>106.20</Amount>
    <UnitPrice>106.20</UnitPrice>
    <Quantity>1</Quantity>
    <TaxCode>1</TaxCode>
    <TaxRate>0.08</TaxRate>
    <AdditionalProductCode>1002</AdditionalProductCode>
    <AdditionalProductInfo>COTTON JERSEY TIERED DRESS</AdditionalProductInfo>
  </SaleItem>
  <SaleItem ItemID="_2">
    <ProductCode>0</ProductCode>
    <Department>25099</Department>
    <Amount>69.50</Amount>
    <UnitPrice>69.50</UnitPrice>
    <Quantity>1</Quantity>
    <TaxCode>1</TaxCode>
    <TaxRate>0.08</TaxRate>
    <AdditionalProductCode>1003</AdditionalProductCode>
    <AdditionalProductInfo>TIE WAIST SHIRT DRESS</AdditionalProductInfo>
  </SaleItem>
  <RunningTotal>189.76</RunningTotal>
  <RunningTotalTax>14.06</RunningTotalTax>
</SaleStateNotification>

To perform a sale state notification SaleEnd request:

URL: wss://localhost:8443/sale_in_progress

Note:

The SaleState key is SaleEnd, this request will notify the EFTLink payment Core to clear the line display ready for the next transaction (usually this means the line display will allow retailers to display marketing media and content).

Sample request from client:

{
       "SaleState":"SaleEnd",
       "ApplicationSender":"XSTORE",
       "WorkstationID":"1",
       "TransactionNumber":"1",
       "StoreID":"101"
}

This request will be converted to the following request sent over the SSL socket channel 0:

<?xml version="1.0" encoding="UTF-8"?>
<SaleStateNotification TransactionNumber="1" RequestID="6" WorkstationID="1" ApplicationSender="MICROS" SaleState="SaleEnd"/>