Part327 FDCPOSStandardInterfaceV1.01
Part327 FDCPOSStandardInterfaceV1.01
Part327 FDCPOSStandardInterfaceV1.01
PART 3-27
The content (content being images, text or any other medium contained within this document
which is eligible of copyright protection) is Copyright © IFSF Ltd 2011. All rights expressly
reserved.
You may print or download to a local hard disk extracts for your own business use.
Any other redistribution or reproduction of part or all of the contents in any form is
prohibited.
You may not, except with our express written permission, distribute to any third party.
You agree to abide by all copyright notices and restrictions attached to the content and not to
remove or alter any such notice or restriction.
Subject to the following paragraph, you may design, develop and offer for sale products
which embody the functionality described in this document.
No part of the content of this document may be claimed as the Intellectual property of any
organisation other than IFSF Ltd, and you specifically agree not to claim patent rights or other
IPR protection that relates to:
any design or part thereof that embodies the content of this document whether in whole or
part.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 3
_____________________________________________________________________________________________
Volker Schulz Scheidt & Bachmann GmbH +49 2166 266 569
Their contact details and the latest revision of this document can be found on the
Internet at the following address:
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 4
___________________________________________________________________________________
Contents
1 Document History ..............................................................................................7
2 References ..........................................................................................................7
3 Definitions .........................................................................................................8
4 Introduction ........................................................................................................9
5 Objectives ..........................................................................................................9
6 System Architecture ...........................................................................................9
6.1 POS Application ...........................................................................................9
6.2 FDC Application ........................................................................................10
7 Implementation Concept...................................................................................11
7.1 Communication Interface ...........................................................................12
7.1.1 IFSF Interface ....................................................................................13
7.1.2 IFSF Heartbeat Proxy ........................................................................13
7.1.3 LNA to IP mapping Table ..................................................................15
7.1.4 System Services Table .......................................................................15
7.1.5 Exemplary Description of FDC Server Start-up .................................15
7.1.6 Offline Detection ...............................................................................16
7.1.7 Application Ready .............................................................................17
7.1.8 Authentication ...................................................................................17
7.1.9 Frame Format ....................................................................................18
8 Device Classes .................................................................................................18
9 Device Hierarchy .............................................................................................18
9.1 Dispenser Hierarchy ...................................................................................19
9.2 Tank Level Gauge Hierarchy ......................................................................19
9.3 Price Pole Hierarchy ...................................................................................20
10 FDC Configuration Data ..................................................................................21
11 Message Control and Synchronisation ..............................................................21
12 FDC Business Logic .........................................................................................22
13 Device Requests and Responses (Overview) ....................................................23
13.1 Common Request / Response Attributes and Elements ...............................23
13.2 Requests POS to FDC ................................................................................23
13.3 Unsolicited Messages FDC to POS.............................................................25
13.4 FDC Overall Results to the POS request .....................................................26
13.4.1 Use of “OverallResult”. .....................................................................26
13.5 Error Codes ................................................................................................27
13.5.1 Use of “ErrorCode”. ..........................................................................29
13.6 Logical Device States .................................................................................30
14 Requests POS to FDC (Detail Description) ......................................................31
14.1 LogOn ........................................................................................................31
14.2 LogOff .......................................................................................................32
14.3 VersionInfo ................................................................................................33
14.4 GetCountrySettings ....................................................................................34
14.5 GetProductTable.........................................................................................35
14.6 GetModeTable............................................................................................36
14.7 GetDSPConfiguration.................................................................................37
14.8 GetTLGConfiguration ................................................................................38
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 5
_____________________________________________________________________________________________
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 6
___________________________________________________________________________________
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 7
_____________________________________________________________________________________________
1 Document History
2 References
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 8
___________________________________________________________________________________
3 Definitions
Name Description
ACK Positive Acknowledge
ARTS Association for Retail Technology Standards
CD Controller Device also called FDC, Forecourt Device
Controller
CWU Carwash Unit
CWP Carwash Point
DeviceClass Collection of properties of a specific forecourt device like
DSP, FP, OPT, PSN, TLG, TP etc.
DSP Fuel Dispenser
FDC Forecourt Device Controller also called CD, Controller
Device
FP Fuelling Point
IANA Internet Assigned Number Authority
IX-Retail IXRetail Release XML Price and Digital Receipt Schemas
for Retail Industry
LAN Local Area Network
LON Local Operating Network
NACK Negative Acknowledge or disconnected message
NACS National Association of Convenience Stores
Nozzle Part of a fuelling point, a spout at the end of a hose by
which a stream of petrol can be controlled.
OPT Outdoor Payment Terminal
PCATS Petroleum Convenience Alliance for Technology
Standards
ProductNo Item number of a pure fuel product
ProductModeCode Combination of fuel product number and fuel mode with
an assigned fuel price
PP Price Pole
TLG Tank Level Gauge
TP Tank Probe
UnitNo Unique unit number for a device in a given device class.
The number is static in a current forecourt configuration.
XML Extensible Markup Language
XSD XML Schema Definition, describes the structure of an
XML document
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 9
_____________________________________________________________________________________________
4 Introduction
A Forecourt Controller Device (FDC) is a software application that controls the
various forecourt devices of a petrol station using a physical LON or LAN network.
Primarily it is focused on physical and logical device control. It controls the device
states and makes sure, non unauthorised state changes are held and processes follow
given IFSF regulations.
A Forecourt Device Controller also manages individual business processes on petrol
stations. That includes fuel sales under consideration of given business rules and
country specific requirements. Sales transactions are sent to POS systems from the
FDC. The POS can also be used to enter pre-payments, price changes for fuel items
and release pumps on demand.
Making the Forecourt Controller Device flexible, so it can support POS systems from
different suppliers requires a detailed description of the commands and information
flow interchanged between Forecourt Controller Device and POS. A standard
interface between POS and Forecourt Controller Device must also simplify the
complexity of the FDC commands for the POS system. The FDC-POS standard
interface offers only a subset of the whole FDC IFSF commands between FDC and
POS and hides the complexity of forecourt control from the POS application.
However, the POS must be able to fulfil the required business processes on the petrol
station with the given commands.
5 Objectives
The purpose of this document is to describe the necessary logically commands to
communicate between an IFSF Forecourt Controller Device and one or more POS
systems. It describes the contents of the data interchanged between POS and FDC.
The target is to achieve the most common acceptance of the data and command
descriptions by different FDC and POS suppliers.
The whole interface will be described and created as an XML interface.
6 System Architecture
The following chapter describes the main functions of the POS application and the
role of the Forecourt Device Controller application.
The most important functions supported by the POS are the following:
Performing the sales process, e.g. scanning shop items, calculating discounts,
getting input for card payment and printing the customer receipt.
Release of pumps, in case of manual release using the FDC to forecourt
interface (standard IFSF LON/LAN based interface).
Visualisation of fuelling points (Volume, Value and Device status).
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 10
___________________________________________________________________________________
Transaction payment with credit and debit cards. Black and white lists for
cards.
Electronic journal for all transactions and payments.
Tank Level Gauge management including alarms.
Fuel deliveries and transfers.
Shop and fuel price maintenance.
Shift management and day end reconciliation.
Internationalisation and legal requirements.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 11
_____________________________________________________________________________________________
7 Implementation Concept
The following picture indicates where the FDC – POS standard interface is located.
This picture shows the FDC software and POS software running in one PC system,
e.g. a POS. Communication between FDC application and POS application is using
TCP/IP via sockets. This kind of communication is sometimes called Client-Server
communication, where one application is called the server and the other one is called
the client application. It is usually arbitrary and not important which application is
called the client or the server, because there is an interchange of information in both
directions.
It is important to remember, the IFSF FDC application software is able to run on the
same computer as the POS software. If the IFSF FDC software is running on a
separate computer, the POS software communicates through a LAN to process FDC
commands and interchange data. In this way, several POS systems can communicate
with one Forecourt Device Controller application at the same time.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 12
___________________________________________________________________________________
The communication between a separate IFSF FDC-PC and the POS-PC software
makes use of TCP/IP and socket communication. This technology is supported by
many operating systems and allows program to program communication in one
computer or via LAN.
The communication interface between the Forecourt Device Control Server (FDC)
and its client (e.g. POS) is based on the following principles:
Only one socket per application for request, response and unsolicited messages
Independent configuration for server and clients
Heartbeat management via existing IFSF components
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 13
_____________________________________________________________________________________________
By the way this communication model is usable in the same way for the POSToEPS
specification.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 14
___________________________________________________________________________________
IFSF interface. The proxy will also send the heartbeats it receives from a local
device to other locally hosted devices.
An IFSF heartbeat contains the LNA and a device status bit. To be effective
on the IP network this message needs to have augmented to it the IP address
of the host of the local IFSF application and the port number on the local host
that a remote device uses to connect to the local IFSF application. When a
remote device receives this message it will strip off the IP and port number
information, record the LNA of the sending device, and pass the IFSF
heartbeat message on to the IFSF application in the standard IFSF protocol
format. The remote device will take the data from the received message and
make an entry in a table that maps the IP and port address to the LNA of a
device that has announced itself to the network, which we will call the LNA to
IP mapping table.
Each time a heartbeat message is received by the IIPC it will reset a timer for
that remote device. The purpose of the timer is to notify the IIPC when a
heartbeat has not been received for a period of time. When the IIPC gets that
notice it assumes the remote device has gone off-line and removes it from the
LNA to IP mapping table, sends a connection closed message to the remote
device, and closes any local connections associated with the device other
than the main service connection. The next time a heartbeat or TCP
connection request comes in from the remote device then a new entry will be
made in the LNA to IP mapping table and the timer is started again.”
FDC application sends a heartbeat to the POS and vice versa, POS sends heartbeat to
FDC. The heartbeat interval is by default set to ten seconds.
In applications, using the IFSF/IP standard, there must be means to distinguish from
FDC and standard IFSF heartbeats. Both are using the same IP port and identical UDP
messages, without taking care FDC and IFSF LNA/IP mapping will be mixed.
The standard IFSF heartbeat is formatted like this:
IFSF Heartbeat
HOST IP 4 byte
Port 2 bytes
LNAO 2 bytes
IFSF_MC 1 byte
STATUS 1 byte
For IFSF Heartbeat communication the IFSF_MC is defined as 1. Other IFSF_MC are
0 and 2. Using different content for LNAO and message code allow a simple
separation from IFSF Heartbeat and FDC Heartbeat. The FDC Heartbeat uses a
LNAO (e.g. FDC LNAO could be 1B01) and a message code that is defined as 3.
FDC Heartbeat
HOST IP 4 byte
Port 2 bytes
LNAO 2 bytes
FDC_MC 1 byte = 3
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 15
_____________________________________________________________________________________________
STATUS 1 byte
UDP and application Heartbeats are mandatory. If either Heartbeat disappears the
device/ application is off-line.
to this file.
Port numbers:
1234: Server port of the FDC Server
9876: Server port of the EPS Server
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 16
___________________________________________________________________________________
When starting the FDC server evaluates the defined port number from the services
table (=1234) and establishes a welcome socket on this port. After successful creation
of the socket the server signals his readiness by sending a broadcast message in the
IFSF network by means of the local IFSF Heartbeat Proxy. The FDC server only must
send an internal message to the heartbeat proxy to tell that the server now is ready for
operation. Then the proxy now is sending the IFS formatted heartbeat message via the
UDP port 3486 that is reserved for this purpose for all IFSF complient devices by
IANA. This heartbeat message contains all information needed by clients to establish
a connection to the server process. The structure of the message from the FDC server
to the IFSF heartbeat proxy is free for a given implementation and not in the scope of
this document. On the way back the heartbeat proxy is routing heartbeats from LAN
connected IFSF devices and other high-level applications (e.g. EPS server) to the
forecourt device controller.
When starting, the POS establishes a local connection to its IFSF Interface and IFSF
Heartbeat Proxy and starts sending of heartbeat messages. Now the POS application is
ready to receive heartbeats from any server. All incoming and outgoing heartbeat
messages are routed through the IFSF Heartbeat Proxy and the IFSF Interface.
We assume that the POS application has received a heartbeat message from the FDC
Server. This message contains the port number of the welcome socket of the server
(1234) and the IP address of the Server Workstation. Now the POS application can
establish a connection to the server which is in general accepted. From the subnet type
received with the heartbeat message the POS application knows that all messages
send to and received from the FDC Server are XML based and defined with the IFSF
EPSToPOS interface specification. From now on the POS application is able to send a
request of type Login to the server. This request contains the identification data of the
application. The FDC server adds the POS application to its client table and sends
finally a Login response to the POS application. The connection between FDC Server
and POS Application is established.
The standard IFSF procedure is used to detect offline situations. A given server
application is set to offline status if no application heartbeat message was received for
the interval as defined in the IFSF communication specification (e.g. 3 times 10
seconds). As already mentioned the heartbeat messages are send via UDP
(broadcast!). If this feature is used each application is getting rid of the task to send
individual heartbeat messages to each of its connected clients.
The FDC will log off all POS automatically in case of an offline detection. When a
POS logs on to the FDC, the FDC stores the IP address of the POS together with the
ApplicationSender ID and Workstation ID from the LogOn Request. If the FDC
detects an offline condition by the IFSF heartbeat, which is just related to an IP
address, all FDC clients from this IP address, e.g. POS applications, are logged off.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 17
_____________________________________________________________________________________________
Because the IFSF heartbeat may be send from a different application than POS or
FDC application and IFSF heartbeat is using just UDP not TCP, an additional life
check method on TCP level is needed. It is common practise in TCP/IP application to
exchange a kind of empty application message to figure out dead applications or so
called half dead TCP/IP sockets. For this purpose unsolicited messages, named
FDCReady and POSReady (link to chapter) are defined. Both, FDC and POS must
send these messages regularly. If these messages are not received in a given interval,
the sender is assumed to be dead or the connection is broken. The FDC will
automatically log off a POS in this case. Interval and numbers of repeats can be
parameterized and must be consistent on the forecourt. The standard interval is 10
seconds, number of repeats 3 times. With this standard a broken connection is
determined after 30 seconds.
7.1.8 Authentication
Hash Algorithm
ID Type
0 No authentication
1 MD5 128bit
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 18
___________________________________________________________________________________
8 Device Classes
A device class describes a specific forecourt device and associated properties and
events. Properties and events are defined by the IFSF standard regulations. The
following classes are relevant for a standard interface definition of a forecourt device
controller:
COM - Communication entry point for each physical device; database for
communication parameters.
Fuel Dispenser (DSP)
Fuelling Point (FP), sub device of DSP. One or more fuelling points are
controlled by the same fuel dispenser.
Tank Level Gauge (TLG), has sub devices of type TP, common database for
all sub-ordinated tank probes.
Tank Probe (TP); sub device of TLG.
Price Pole (PP).
Price Pole Point (PPP).
Outdoor Payment Terminal (OPT)
Car Wash (CW), sub device is CWP (Car Wash Point).
Code Generating Device (CGD).
9 Device Hierarchy
Forecourt configuration information is stored in the configuration file(s) of the FDC
application for each forecourt device. The forecourt controller divides forecourt
devices in device classes. Not all classes are relevant for the POS. The following
device classes are required in the POS: Dispenser (DSP), Fuel Points (FP), Tank
Level Gauges (TLG), Tank Probes (TP), Price Poles (PP) and Price Pole Points (PPP).
The FDC sends the essential information for each device class to the POS.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 19
_____________________________________________________________________________________________
Devices are identified by a device ID. The device ID will be created, when the
controller device starts. The Device ID is by device type across the whole forecourt.
A dispenser device (DSP) controls fuelling points (FP). Each fuelling point has
nozzles with a pure fuel product or a fuel product mix.
The XML structure for DSP, FP‟s and NZ‟s corresponds to the logical structure as
following:
The structure will be repeated for each new dispenser. The pump number in a FP
structure could be used to number FP‟s consecutively.
The fuel grade and possible fuel mix per nozzle is defined in the DSP meter ratio in
the forecourt configuration file. The unique identifier for a FP is the Unit Number.
The following example shows Device ID numbering for two dispensers and fuelling
points.
Dispenser 1 Dispenser 2
Device ID “1” Device ID “2”
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 20
___________________________________________________________________________________
A Tank Level Gauge connects to one or more (maximum 31) Tank Probes. A Tank
Probe is the item of forecourt equipment which is capable of measuring the level of
product in a tank and hence volume can be calculated.
Each Tank Probe (TP) represents a tank. The unique identifier is the Unit Number.
There are real tank probes and virtual tank probes. A virtual tank probe describes a
tank without a physical probe installed.
Parent device of a TP device is a TLG.
The XML structure for a TLG and TP‟s‟ corresponds to the logical structure as
following:
The structure will be repeated for each new tank level gauge. The tank number in a TP
structure could be used to number TP‟s consecutively.
The following example shows Device ID numbering for two Tank Level Gauges and
Tank Probes.
Very few sites have more than one Tank Level Gauge, nevertheless the above
diagram shows the structure for two Tank Level Gauges.
A Price Pole connects to one or more (maximum 4) Price Pole Points. A Price Pole is
a large display device which advertises product, services, goods, prices or general
information.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 21
_____________________________________________________________________________________________
The XML structure for PP‟s‟ and PPP‟s corresponds to the logical structure as
following:
PP
The following example shows Device ID numbering for two Price Poles and Price
Pole Points.
Very few sites have more than one Price Pole, nevertheless the above diagram shows
the structure for two Price Poles.
FDC configuration data is stored in an IFSF XML Site Configuration file. When the
FDC starts it reads the config file and the POS sends a GetConfigurationData.
Between the FDC application and the POS program information is interchanged.
Requests are sent from the POS to the FDC application. The FDC application sends
responses and unsolicited messages to the POS client.
The minimum a request consists of is the name of the request type, the application
sender, a workstation ID and a request ID. Additioally, a timestamp has to be sent by
the requestor. The request ID is a consecutive number inserted by the requestor.
The FDC application repeats the information received from the requestor and adds the
desired information.
The requestor is responsible for synchronisation of the required data, the FDC
application does not take care of message control and synchronisation of requests.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 22
___________________________________________________________________________________
It is possible to query at the same time all devices of a given device class by using “*”
(an asterisk) in the DeviceID attribute. In this case the response message will have a
“<DeviceClass>” section for each DeviceID.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 23
_____________________________________________________________________________________________
Before a request or response will sent a four byte message length information must
sent. The message length information must be stored in binary net byte order format.
Request Elements:
Name Type Use
POSdata Complex required
POSTimeStamp String required
Request Attributes:
Name Type Use
RequestType RequestType required
ApplicationSender Application Type required
WorkstationID Workstation Type required
RequestID Request Type required
Response Elements:
Name Type Use
FDCdata Complex required
FDCTimeStamp String required
Response Attributes:
Name Type Use
ResponseType ResponseType required
ApplicationSender Application Type required
WorkstationID Workstation Type required
ResponseID Request Type required
OverallResults Result Type required
POS request for service to FDC. Possible requests are identified by the XML attribute
RequestType.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 24
___________________________________________________________________________________
The “OverallResult” is used to report format errors in the request message or reasons
why the request could not be executed. It is not used to report the out come of
executing the request by the FDC. The result of executing a request by the FDC is
reported in element “ErrorCode”.
OverallResult Remark
Success Complete Success.
PartialFailure The request could not be executed completely.
Failure Complete failure.
TimeOut Complete failure. No response from FDC
FormatError Complete failure. The request cannot process or is
wrong formatted.
ParsingError Complete failure. XML is not well formed.
ValidationError Complete failure. XML is not validated against the
defined schema.
MissingMandatoryData Complete failure. Mandatory data are missing in the
request.
WrongConfiguration FDC has detected a wrong forecourt configuration.
NoLogon The client has not performed log-on or log-on fails
AuthentificationError Authentification error detected
MandatoryConfigurationD Data missing that is needed before sales can be made
ataMissing e.g. one product must be defined.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 27
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="Rubbish" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOn_Request.xsd " >
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="Rubbish" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="FormatError"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOn_Response.xsd " >
</ServiceResponse>
The FDC application provides error codes to give more detailed information to the
POS application. The element “ErrorCode” is used to report whether the request
message is valid and the out come of executing a request message by the FDC.
Sending a request message can result in one of two out comes. These are, the FDC
sends a response message only or the FDC sends a response message followed at
some time by an unsolicited message. An unsolicited message is sent, whenever a
request makes or attempts to make a change to a forecourt device.
If the FDC responds with only a response message the element “ErrorCode” is used to
report whether the request message is valid (understood/ can be executed) and the out
come of executing the request.
If the FDC responds with a response and unsolicited message the element
“ErrorCode” in the response message is used to report whether the request message is
valid (understood/ can be executed). The element “ErrorCode” in the unsolicited
message is used to report the out come of executing the request.
An “Unsolicited” message alone is sent, when there has been a change in the
configuration or state of a device.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 28
___________________________________________________________________________________
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 29
_____________________________________________________________________________________________
If the “ErrorCode” is not “ERRCD_OK” then an error has been found in the
execution of the “Request” or there is no data to return.
Case 1
The following example shows an invalid “Type”.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FFP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 30
___________________________________________________________________________________
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Response.xsd">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FFP" DeviceID="1" >
<ErrorCode>ERRCD_BADTYPE</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Case 2
The following example shows an invalid “Device Id”. “Device Id” 45 does not exist.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="45"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="45" >
<ErrorCode>ERRCD_BADDEVICEID</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
The FDC application must provide some logical device states to inform the POS
application about the current device condition. Some device states are common for all
forecourt devices. Logical device states depend on the forecourt device type. Fuel
dispensers provide other states than price pole or tank probes. The following list gives
an overview about logical device states.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 31
_____________________________________________________________________________________________
Some Logical Device States are common to a number of devices e.g. FDC_READY,
these common Logical Device State are listed under each device.
Where the message format in both request and response messages allows multiple
elements to be sent, applications must support this functionality.
14.1 LogOn
Description:
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 32
___________________________________________________________________________________
Each POS that wants to use the FDC application must itself log-on before being able
to perform any operation. Additionally, log-on initiates the application heartbeat
between FDC and POS.
The POS application first must open the TCP/IP connection for the static and dynamic
channel. The connection must be held open by the POS until the LogOff command is
sent by the POS or if the POS detects, it is offline to the FDC service.
Furthermore, the connection has to be closed, if the POS receives an FDCStopped
message from the FDC application or get a socket closed error from the operating
system.
A second log-on without a prior log-off is accepted every time (e.g. POS crashes and
starts again).
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="LogOn" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOn_Request.xsd " >
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<InterfaceVersion>1.0</InterfaceVersion>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="LogOn" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOn_Response.xsd " >
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<InterfaceVersion>1.0</InterfaceVersion>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
14.2 LogOff
Description:
The request log-off disconnects a POS system from the FDC application. Used to
terminate operations between the FDC and POS e.g. in case of configuration,
administration, shut down, reconciliation etc.
A second log-off without a prior log-on is accepted every time.
Request FDC_LogOff_Request.xsd
Response FDC_LogOff_Response.xsd
Unsolicited n/a
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="LogOff" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOff_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="LogOff" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LogOff_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
14.3 VersionInfo
Description
The POS asks for the current installed FDC software version.
If the request from the POS to the FDC application is successful, the FDC application
process sends the response elements supplier, release, version and hot fix together
with the common response information to the POS application.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="VersionInfo" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_VersionInfo_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 34
___________________________________________________________________________________
14.4 GetCountrySettings
For country codes, currency codes, measurement units etc. common definitions by
W3C or IFSF have to be used.
Description
The POS asks for the country settings of the FDC application. Country settings are
configuration parameter of the forecourt controller device. They are used inside the
Forecourt Device Controller to define country code, currency code, calculation
factors, comma separator, measurement units etc.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetCountrySettings" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetCountrySettings_Request.xsd">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetCountrySettings" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetCountrySettings_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<VolumeUnit>Litres</VolumeUnit>
<CurrencyCode>EUR</CurrencyCode>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 35
_____________________________________________________________________________________________
<LevelUnit>mm</LevelUnit>
<TemperatureUnit>Cel</TemperatureUnit>
<CountryCode>0044</CountryCode>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
14.5 GetProductTable
Description:
The POS requests the pure fuel products used in the dispensers, fuelling points and
tanks. The product number and name of a fuel product is described in the
configuration files of the FDC application.
It is possible to mix fuel products in a fuelling point. The mix ratio is described in the
DSP configuration parameters.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetProductTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetProductTable_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetProductTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01423" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetProductTable_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<FuelProducts>
<Product ProductNo="1000" ProductName="Super 98" />
<Product ProductNo="2000" ProductName="Diesel" />
<Product ProductNo="3000" ProductName="Normal" />
<Product ProductNo="4000" ProductName="Super Mix96" />
</FuelProducts>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
The following example shows a request for a product table with no entries.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 36
___________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetProductTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetProductTable_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetProductTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01423"
OverallResult="MandatoryConfigurationDataMissing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetProductTable_Response.xsd ">
14.6 GetModeTable
Description
The POS requests the fuel mode table from the FDC configuration data. Fuel modes
are self service or full service, for example. A fuel price is related to a fuel product
and a fuel mode; there may be different prices for a fuel product if the product is sold
in different modes. The POS application usually creates its own item numbers for
product/mode relations and assigns prices.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetModeTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetModeTable_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetModeTable" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetModeTable_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 37
_____________________________________________________________________________________________
14.7 GetDSPConfiguration
Description
The POS requests the Dispenser configuration using the message
“GetDSPConfiguration”.
The IFSF standard provides fuel blending properties in the form of volume of product
one and volume of product two. Some pump suppliers do not support this description
but support a blend ration, two product numbers and a total volume. The blend ratio
describes the relation between product one and two. A blended fuel sale will be
mapped to a BlendProductNo. A blend product number has a description and price
available.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetDSPConfiguration" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetDSPConfiguration_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetDSPConfiguration" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetDSPConfiguration_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="DSP" DeviceID="1">
<Product ProductNo="1000" ProductName="Normal">
<FuelPrice ModeNo="1">1.999</FuelPrice>
<FuelPrice ModeNo="2">1.995</FuelPrice>
</Product>
<Product ProductNo="2000" ProductName="GasOil">
<FuelPrice ModeNo="1">1.799</FuelPrice>
<FuelPrice ModeNo="2">1.775</FuelPrice>
</Product>
<Product ProductNo="3000" ProductName="Super98">
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 38
___________________________________________________________________________________
<FuelPrice ModeNo="1">1.569</FuelPrice>
<FuelPrice ModeNo="2">1.549</FuelPrice>
</Product>
<Product ProductNo="4000" ProductName="SuperPlus">
<FuelPrice ModeNo="1">1.445</FuelPrice>
</Product>
<Product ProductNo="7000" ProductName="Mix95">
<FuelPrice ModeNo="1">1.659</FuelPrice>
</Product>
<DeviceClass Type="FP" DeviceID="1" PumpNo="1">
<Nozzle NozzleNo="1">
<ProductID ProductNo="1000" TankN1o="1"/>
</Nozzle>
<Nozzle NozzleNo="2">
<ProductID ProductNo="2000" TankNo1="2"/>
</Nozzle>
<Nozzle NozzleNo="3">
<ProductID ProductNo="3000" TankNo1="3"/>
</Nozzle>
<Nozzle NozzleNo="4">
<ProductID ProductNo="4000" TankNo1="4"/>
</Nozzle>
<Nozzle NozzleNo="5">
<ProductID ProductNo="7000" TankNo1="2" TankNo2="3" BlendRatio="50"/>
</Nozzle>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Should it be necessary to define the length of time for a fuelling process, before the
dispenser motor is stopped this element will be part of the FDC configuration. If
different timeouts are required, then different Fuel Modes should be used.
14.8 GetTLGConfiguration
Description
The POS requests the Tank Level Gauge configuration using the
message“GetTLGConfiguration”.
Because it is possible that a tank is not equipped with a TP an additional property
ManualMode was inserted. ManualMode=”false” means there is a tank probe
installed, “true” means there is no tank probe available. To achieve tank data if there
is no tank probe installed manual dipping is necessary.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 39
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetTLGConfiguration" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTLGConfiguration_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetTLGConfiguration" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTLGConfiguration_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TLG" DeviceID="1">
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 40
___________________________________________________________________________________
<ShellCapacity>0</ShellCapacity>
<MaxSafeFillCap>14500</MaxSafeFillCap>
<LowCapacity>0</LowCapacity>
<MinOperatingCapacity>0</MinOperatingCapacity>
<TankManifoldPartners>
<TankNo>4</TankNo>
</TankManifoldPartners>
<SetPoints>
<HiHiLevel>0</HiHiLevel>
<HiLevel>0</HiLevel>
<LoLevel>0</LoLevel>
<LoLoLevel>0</LoLoLevel>
<HiWater>25</HiWater>
</SetPoints>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.9 GetPPConfiguration
Description
The POS requests the Price Pole configuration using the message
“GetPPConfigurations”.
Request:
<?xml version="1.0" encoding="utf-8" ?>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 41
_____________________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="GetPPConfiguration" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetPPConfiguration_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="PP" DeviceID="1">
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.10 GetDSPLimits
Description
The POS requests the configured limits for each DSP (for all Fuel Points) There are
volume limits, value limits and time limits. It is important for the POS application to
know the adjusted limits in the FDC configuration to avoid wrong device requests,
e.g. for pre-payment.
Request consists of the DeviceID alternatively set to „*‟ for all devices. Money setting
must have two digits and volume three digits.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 42
___________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetDSPLimits" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetDSPLimits_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="DSP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetDSPLimits" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetDSPLimits_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="DSP" DeviceID="1">
<Product ProductNo="1000">
<FuelMode ModeNo="1">
<MaxTrxAmount>150.00</MaxTrxAmount>
<MaxTrxVolume>80.000</MaxTrxVolume>
</FuelMode>
<FuelMode NodeNo="2">
<MaxTrxAmount>150.00</MaxTrxAmount>
<MaxTrxVolume>80.000</MaxTrxVolume>
</FuelMode>
</Product>
<Product ProductNo="2000">
<FuelMode ModeNo="1">
<MaxTrxAmount>120.00</MaxTrxAmount>
<MaxTrxVolume>70.000</MaxTrxVolume>
</FuelMode>
<FuelMode NodeNo="2">
<MaxTrxAmount>100.00</MaxTrxAmount>
<MaxTrxVolume>60.000</MaxTrxVolume>
</FuelMode>
</Product>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.11 ChangeDSPLimits
Description:
The POS wants to change the current limit values in a DSP database for a given
product number and fuel mode.
Use (*) for all DSP in the same Request. Max money property must have two digits,
max volume three digits.
The values of maximum amount and volume can be changed at any time. The new
values will be applied to all new transactions.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 43
_____________________________________________________________________________________________
In a multi POS configuration this will alert other POS‟s‟ to the change.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ChangeDSPLimits" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeDSPLimits_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="DSP" DeviceID="1">
<Product ProductNo=”1000”>
<FuelMode ModeNo= “1”>
<MaxTrxAmount>180.00</MaxTrxAmount>
<MaxTrxVolume>120.000</MaxTrxVolume>
</FuelMode>
</Product>
</DeviceClass>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="ChangeDSPLimits" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeDSPLimits_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="DSP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.12 ChangeFuelPrice
Description
The POS demands a fuel price change for a given fuel product and fuel mode.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 44
___________________________________________________________________________________
A price change could be performed by date and time or immediately. Price changes
will performed at once if the DateTime tag is empty. Fuel Price changes with
DateTime in the past will be executed immediately
The FDC application makes sure that all connected price poles will be adjusted,
following the legal regulations and all connected dispensers will be updated. If a
dispenser is disconnected, the FDC application does the update later. The POS
application must not supervise this process if it receives positive response from the
FDC.
An unsolicited “FuelPriceChange” message will be sent by the FDC when the price
change is complete or when the Price cannot be changed, thus confirming the request
has been executed.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ChangeFuelPrice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeFuelPrice_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<Product ProductNo=”1000”>
<FuelMode ModeNo=”1”>
<PriceNew>1.039</PriceNew>
<EffectiveDateTime>2009-11-20T17:30:50</EffectiveDateTime>
</FuelMode>
</Product>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="ChangeFuelPrice" ApplicationSender=" POSsell1"
WorkstationID="CD-01" RequestID="073322" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeFuelPrice_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
14.13 GetFPFuelMode
Description
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 45
_____________________________________________________________________________________________
This request returns current fuel mode for selected fuelling point.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetFPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFPFuelMode_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetFPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFPFuelMode_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" PumpNo="1">
<FuelMode ModeNo=”1”/>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.14 GetPPPFuelMode
Description
This request returns current fuel mode for selected price pole point.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetPPPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 46
___________________________________________________________________________________
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetPPPFuelMode_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="PPP" DeviceID="1" SegmentNo="3" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetPPPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetPPPFuelMode_Response.xsd">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="PPP" DeviceID="1" SegmentNo="3" SignNo="1">
<FuelMode ModeNo="1"/>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.15 ChangeFPFuelMode
Description
The POS demands a fuel mode change for a selected fuelling point (FP). The
requested fuel mode must be known by the FDC and configured in the configuration
procedure. If the requested mode does not exist, an error will be send to the POS
application in the unsolicited. Fuel mode changes will be activated immediately or on
completion of the current fuelling.
An unsolicited “FPModeChange” message will be sent by the FDC when the fuel
mode has changed, thus confirming the request has been executed executed or when
the fuel mode cannot be changed.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ChangeFPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeFPFuelMode_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 47
_____________________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="ChangeFPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangeFPFuelMode_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.16 ChangePPPFuelMode
Description
The POS demands a fuel mode change for a selected price pole point (PPP). The
requested fuel mode must be known by the FDC and configured in the configuration
procedure. If the requested mode does not exist, an error will be send to the POS
application in the unsolicited message.
Use “*” to change all PPP‟s. The “SegmentNo” should also be set to “*”.
An unsolicited “PPPModeChange” message will be sent by the FDC when the fuel
mode has changed, thus confirming the request has been executed or when the fuel
mode cannot be changed.
Request:
<?xml version="1.0" encoding="utf-8"?>
<ServiceRequest RequestType="ChangePPPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=“FDC_ChangePPPFuelMode_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="PPP" DeviceID="1" SegmentNo="3">
<FuelMode ModeNo="1"/>
</DeviceClass>
</POSdata>
</ServiceRequest>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 48
___________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8"?>
<ServiceResponse RequestType="ChangePPPFuelMode" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ChangePPPFuelMode_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="PPP" DeviceID="1" SegmentNo="3" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.17 LockFuelSaleTrx
Description
The payable fuel transactions will be send immedataly from the FDC application to
the POS application through the dynamic communication channel.
The fuel transaction contains the necessary information for the POS (see Non
Requested Messages FDC to POS – FuelSaleTrx).
The POS can reserve a desired fuel sales transaction for further processing. The
assigned transaction number must be declared. The transaction will be locked for
access by other POS systems. Next step is usually, the POS sets the transaction status
to „clear‟ or it unlocks the reserved transaction for use by another POS. Typically this
happens when the wrong transaction was selected. Another POS can then reserve the
fuel transaction.
If the transaction was paid by the POS it will be cleared in the dispenser database.
A Fuel transaction can be automatically locked, if that option was specified in
AuthoriseFuelPoint command.
As long as the locking POS sends Heartbeats a locked transaction must not be
unlocked or assigned to another POS.
When the locking POS stops sending Heartbeats the FDC must unlock the locked
transactions and send an unsolicited message with the new transaction state (Cleared)
to all POS „s‟, but not the off-line POS.
An unsolicited “FuelSaleTrx” message will be sent by the FDC when the state of the
transaction has been changed or whenever the state cannot be changed following a
request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="LockFuelSaleTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 49
_____________________________________________________________________________________________
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockFuelSaleTrx_Request.xsd">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="LockFuelSaleTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockFuelSaleTrx_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Unsolicited:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FuelSaleTrx" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FuelSaleTrx_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" NozzleNo="1"
TransactionSeqNo="120301" >
<State>Locked</State>
<ReleaseToken></ReleaseToken>
<FuelMode ModeNo=”2”></FuelMode>
<Amount>76.96</Amount>
<Volume>38.521</Volume>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 50
___________________________________________________________________________________
<UnitPrice>1.999</UnitPrice>
<VolumeProduct1>38.52</VolumeProduct1>
<VolumeProduct2></VolumeProduct2>
<ProductNo1>1000</ProductNo1>
<ProductNo2></ProductNo2>
<BlendRatio>100</BlendRatio>
<LockingApplicationSender>POSsell1</ LockingApplicationSender>
<AuthorisationApplicationSender>POSsell1</ AuthorisationApplicationSender>
<DSPFields>Field1 Field2 …Fieldn CheckSum</DSPFields>
<CRCMode>ProcedureNo="1"</CRCMode>
<ErrorCode>ERRCD_NOTPOSSIBLE</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
The following example shows a request to “Lock” a transaction that does not exist.
Description
The POS unlocks a previously reserved fuel sales transaction. This makes the
transaction accessible to other POS systems again. A dispenser holds a number of
transactions as long as they are not set to the status „clear‟. Non paid transactions can
block a corresponding fuelling point.
A transaction can be unlocked by POS that initially locked it unless it is offline, in
which case any node can unlock a transaction.
An unsolicited “FuelSaleTrx” message will be sent by the FDC when the state of the
transaction has been changed or whenever the state cannot be changed following a
request to change state.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 51
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="UnlockFuelSalesTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockFuelSaleTrx_Request.xsd">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="UnlockFuelSaleTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockFuelSaleTrx_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301">
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.19 ClearFuelSaleTrx
Description
The POS sets a fuel sales transaction to „clear‟. The selected DSP transaction buffer
will be cleared for a new transaction. The corresponding FP becomes able to process
new fuel sales if the number of transactions is set to one.
An unsolicited “FuelSaleTrx” message will be sent by the FDC when the state of the
transaction has been changed or whenever the state cannot be changed following a
request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ClearFuelSaleTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ClearFuelSaleTrx_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301" />
</POSdata>
</ServiceRequest>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 52
___________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="ClearFuelSaleTrx" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ClearFuelSaleTrx_Response.xsd">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="120301">
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.20 GetAvailableFuelSaleTrxs
Description
POS asks for all payable or locked fuel sales transactions.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetAvailableFuelSaleTrxs" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetAvailableFuelSaleTrxs_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetAvailableFuelSaleTrxs" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetAvailableFuelSaleTrxs_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" TransactionSeqNo="120301" >
<State>Locked</State>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" TransactionSeqNo="120303" >
<State>Payable</State>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 53
_____________________________________________________________________________________________
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
The following example shows a response for all transactions on a fuelling point that
has no transactions.
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetAvailableFuelSaleTrxs" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetAvailableFuelSaleTrxs_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1">
<ErrorCode>ERRCD_NOTRANS</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.21 GetFuelSalesTrxDetails
Description
The POS asks for details of transactions. This can be for a single transaction or all
transactions on a fuelling point
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetFuelSaleTrxDetails" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFuelSalesTrxDetails_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23" TransactionSeqNo="*" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetFuelSaleTrxDetails" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFuelSalesTrxDetails_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 54
___________________________________________________________________________________
Note: The CRC is not part of implementation and CRC implementation is country
specific.
The dispenser configuration (data id “ZeroTR_Mode”) will determine whether or not
zero value transactions are created. The FDC must make zero value transactions
available to the POS.
The following example shows a response to a request for all transactions when there
are none.
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetFuelSaleTrxDetails" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFuelSalesTrxDetails_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" >
<ErrorCode> ERRCD_NOTRANS </ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.22 SuspendFuelling
Description
The POS requests an interruption of a running filling. The FDC stops the
corresponding fuelling point and sends a response message to the POS application.
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 55
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="SuspendFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_SuspendFuelling_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="SuspendFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_SuspendFuelling_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="SuspendFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_SuspendFuelling_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="SuspendFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_SuspendFuelling_Response.xsd ">
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 56
___________________________________________________________________________________
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Unsolicited:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FPStateChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FPStateChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp> 2009-11-20T17:30:50 </FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" PumpNo="1">
<DeviceState>FDC_READY</DeviceState>
<LockingApplicationSender></ LockingApplicationSender>
<Nozzle NozzleNo=”1”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”2”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”3”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”4”>>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<ErrorCode>ERRCD_NOTPOSSIBLE</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
14.23 ResumeFuelling
Description
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 57
_____________________________________________________________________________________________
The POS requests a restart of a suspended filling. The FDC tries to resume a
suspended fuelling and sends a response with OverallResult „Success‟ or an error
code to the POS application if the command fails.
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ResumeFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ResumeFuelling_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="ResumeFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ResumeFuelling_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.24 TerminateFuelling
Description
The POS requests a stop of a running filling for the selected fuelling point. If a wrong
device ID was selected an error message is sent to the POS application. If there is no
running fuelling at the selected FP no action will be taken.
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 58
___________________________________________________________________________________
Request FDC_TerminateFuelling_Request.xsd
Response FDC_TerminateFuelling_Response.xsd
Unsolicited FDC_FPStateChange_Unsolicited.xsd
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="TerminateFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_TerminateFuelling_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="TerminateFuelling" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_TerminateFuelling_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.25 GetCurrentFuellingStatus
Description
The POS requests intermediate values for transaction currently in progress.
Authorisation Application Sender is similar to Release Control Id.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetCurrentFuellingStatus" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetCurrentFuellingStatus_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23"/>
</POSdata>
</ServiceRequest>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 59
_____________________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetCurrentFuellingStatus"
ApplicationSender="POSsell1" WorkstationID="POS01" RequestID="01254"
OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetCurrentFuellingStatus_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" TransactionSeqNo="120305">
<CurrentAmount>76.96</CurrentAmount>
<CurrentVolume>38.521</CurrentVolume>
<CurrentNozzle>1</CurrentNozzle>
<CurrentUnitPrice>1.999</CurrentUnitPrice>
<ReleaseToken></ReleaseToken>
<AuthorisationApplicationSender> POSsell1</ AuthorisationApplicationSender>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.26 AuthoriseFuelPoint
Description
The POS releases a fuelling point controlled in manual mode. This command serves
for all type of authorisations (postpay, prepay, OPT sale). The element
„ReleaseToken‟ is used to link the authorisation command to the related transaction
data that will be sent with the FuelSaleTrx message (see FuelSaleTrx).
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="AuthoriseFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_AuthoriseFuelPoint_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1">
<MaxTrxAmount>50.00</MaxTrxAmount>
<MaxTrxVolume></MaxTrxVolume>
<FuelMode ModeNo="1"/>
<ReleasedProducts>
<Product ProductNo="1000"/>
<Product ProductNo="4000"/>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 60
___________________________________________________________________________________
</ReleasedProducts>
<ReleaseToken>01</ReleaseToken>
<LockFuelSaleTrx>true</LockFuelSaleTrx>
</DeviceClass>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="AuthoriseFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_AuthoriseFuelPoint_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.27 StopForecourt
Description
The POS requests all forecourt devices to be closed.
Running fuellings will not be interrupted unless “Emergency Stop” is true, in which
case running fuellings will be stopped and it is not possible to continue (resume) the
transaction.
After a “Stop Forecourt” the FDC cannot open devices, until it has received a “Start
Forecourt”.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="StopForecourt" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_StopForecourt_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<EmergencyStop>false</EmergencyStop>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 61
_____________________________________________________________________________________________
14.28 StartForecourt
Description
The POS requests all closed devices to be opened. Devices already open will not
change.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="StartForecourt" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_StartForecourt_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="StartForecourt" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_StartForecourt_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</ServiceResponse>
14.29 LockNozzle
Description:
The POS requests a lock for a selected nozzle at a fuelling point.The nozzle is no
longer available for operation. If the nozzle is locked already, the request will be
refused and an error message will be reported.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 62
___________________________________________________________________________________
An unsolicited “FPStateChange” message will be sent by the FDC when the nozzle
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="LockNozzle" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockNozzle_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1" NozzleNo="3"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="LockNozzle" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockNozzle_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" NozzleNo="3">
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.30 UnlockNozzle
Description:
The POS requests an unlock of a previously locked nozzle at a fuelling point. If the
selected nozzle is not locked, no action is taken but an error will be reported to the
POS.
An unsolicited “FPStateChange” message will be sent by the FDC when the nozzle
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 63
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="UnlockNozzle" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockNozzle_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1" NozzleNo="3"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="UnlockNozzle" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockNozzle_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" NozzleNo="3">
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.31 LockTank
Automatic tank data reading requires a tank probe installed in a tank. A tank probe
can be direct linked to the IFSF network or each probe is connected to a tank level
gauge (TLG).
The picture above shows an IFSF tank gauging system configuration were each tank
probe (TP) is linked to the IFSF network.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 64
___________________________________________________________________________________
Description
The POS requests a lock for a selected tank. If the tank is locked already, the request
will be refused with an error message. Locking a tank locks all dispenser nozzles
linked to that tank.
An unsolicited “TPStateChange” message will be sent by the FDC when the tank
probe changes state, thus confirming the request has been executed or whenever the
state cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="LockTank" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockTank_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="TP" DeviceID="1" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="LockTank" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_LockTank_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.32 UnlockTank
Description
The POS requests unlock of a previously locked tank. If the selected tank is not
locked, no action will be taken but an error will be reported to the POS.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 65
_____________________________________________________________________________________________
An unsolicited “TPStateChange” message will be sent by the FDC when the tank
probe changes state, thus confirming the request has been executed or whenever the
state cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="UnlockTank" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockTank_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="TP" DeviceID="1" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="UnlockTank" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_UnlockTank_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.33 GetTankData
Description
The POS requests the tank probe (TP) data for a selected tank. The FDC application
provides the physical tank data from the FDC configuration file. If the TP is a real TP
device and the FDC application can read the current measurement data from the TP,
the read data will be sent in the XML tag <MeasuredData>. The device status will be
set to “ERRCD_OK” if the data could be provided successful. A device error will be
reported in the ErrorCode if the FDC service cannot reach the TP device.
The measured data provided by the TP varies from model to model.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 66
___________________________________________________________________________________
Unsolicited n/a
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetTankData" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTankData_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="TP" DeviceID="1" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="GetTankData" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3_u111 ?rg/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTankData_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TP" DeviceID ="1" TankNo="1" ManualMode="False">
<MeasurementData>
<ProductLevel>1243</ProductLevel>
<TotalObservedVolume></TotalObservedVolume>
<GrossStandardVolume></GrossStandardVolume>
<AverageTemp></AverageTemp>
<WaterLevel></WaterLevel>
<ObservedDensity></ObservedDensity>
</MeasurementData>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
The following example shows a request for all tank probe data, but one tank cannot be
reached.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetTankData" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTankData_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="TP" DeviceID="*" />
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 67
_____________________________________________________________________________________________
</FDCdata>
</ServiceResponse>
14.34 ReserveFuelPoint
Description
A POS can lock (assign) a fuel point to itself to make sure no one else can authorise it.
A “ReserveFuelPoint” can be sent to the FDC at any time.
As long as the POS that reserved the Fuel Point sends Heartbeats no other POS can
authorise that Fuelling Point.
When the POS stops sending Heartbeats the FDC must free the Fuelling Point from
the assignment.
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 68
___________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="ReserveFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ReserveFuelPoint_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="23"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="ReserveFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_ReserveFuelPoint_Response.xsd">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.35 FreeFuelPoint
Description
POS frees fuelling point. Any other POS can now authorise it. . A “FreeFuelPoint”
can be sent to the FDC at any time. An automatic FreeFuelPoint is issued by the FDC
if it is detected that the POS was down.
An unsolicited “FPStateChange” message will be sent by the FDC when the device
changes state, thus confirming the request has been executed or whenever the state
cannot be changed following a request to change state.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="FreeFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FreeFuelPoint_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 69
_____________________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="FreeFuelPoint" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FreeFuelPoint_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="2" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.36 GetFPState
Description
The POS asks for the current state of a fuelling point e.g. after a reboot of a POS or
any other complication the POS is able to synchronize to FDC as soon as possible.
Otherwise the POS has to wait for the next unsolicited state-message.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetFPState" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFPState_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="2"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType=" GetFPState " ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetFPState_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="2" >
<DeviceState>FDC_READY</DeviceState>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 70
___________________________________________________________________________________
<Nozzle NozzleNo=”1”>
<LogicalNozzle>NozzleUp</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
</ Nozzle>
<Nozzle NozzleNo=”2”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
</ Nozzle>
<Nozzle NozzleNo=”3”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
</ Nozzle>
<Nozzle NozzleNo=”4”>>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
</ Nozzle>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.37 GetTPState
Description
The POS asks for the current state of a tank probe e.g. after a reboot of a POS or any
other complication the POS is able to synchronize to FDC as soon as possible.
Otherwise the POS has to wait for the next unsolicited state-message.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetTPState" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTPState_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="TP" DeviceID="2"/>
</POSdata>
</ServiceRequest>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 71
_____________________________________________________________________________________________
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType=" GetTPState " ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTPState_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TP" DeviceID="2" />
<DeviceState>FDC_READY</DeviceState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.38 GetPPState
Description
The POS asks for the current state of a price pole e.g. after a reboot of a POS or any
other complication the POS is able to synchronize to FDC as soon as possible.
Otherwise the POS has to wait for the next unsolicited state-message.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetPPState" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetPPState_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="PP" DeviceID="2"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType=" GetPPState " ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetPPState_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="PP" DeviceID="2" >
<DeviceState>FDC_READY</DeviceState>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 72
___________________________________________________________________________________
</FDCdata>
</ServiceResponse>
14.39 GetTotals
Description
The POS asks for totals e.g. pump totals/ accumulators.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="GetTotals" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTotals_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1" NozzleNo="3"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType=" GetTotals" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_GetTotals_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" PumpNo="1" NozzleNo="3">
<Amount>76.96</Amount>
<Volume>38.521</Volume>
<VolumeProduct1>1.999</VolumeProduct1>
<VolumeProduct2>1.999</VolumeProduct2>
<ProductNo1>1.999</ProductNo1>
<ProductNo2>1.999</ProductNo2>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
14.40 OpenDevice
Description
The POS can “Open” a device.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 73
_____________________________________________________________________________________________
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
The following example shows the response to “Open” a device that is in the “Open”
state.
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="OpenDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_OpenDevice_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 74
___________________________________________________________________________________
</ServiceResponse>
Unsolicited:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FPStateChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FPStateChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp> 2009-11-20T17:30:50 </FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" PumpNo="1">
<DeviceState>FDC_READY</DeviceState>
<LockingApplicationSender> POSsell1</ LockingApplicationSender>
<Nozzle NozzleNo=”1”>
<LogicalNozzle>NozzleUp</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”2”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”3”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”4”>>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
14.41 CloseDevice
Description
The POS can “Close” a device.
Request:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceRequest RequestType="CloseDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_CloseDevice_Request.xsd ">
<POSdata>
<POSTimeStamp>2009-11-20T17:30:50</POSTimeStamp>
<DeviceClass Type="FP" DeviceID="1"/>
</POSdata>
</ServiceRequest>
Response:
<?xml version="1.0" encoding="utf-8" ?>
<ServiceResponse RequestType="CloseDevice" ApplicationSender="POSsell1"
WorkstationID="POS01" RequestID="01254" OverallResult="Success"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_CloseDevice_Response.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="1" >
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</ServiceResponse>
Description
The FDC application sends a “Ready” message to the POS and vice versa to verify
socket is open and working in both directions. The “Ready” message interval is by
default set to ten seconds.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 76
___________________________________________________________________________________
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FDCReady" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322">
xmlns="http://www.nrf-arts.org/IXRetail/namespace"
xmlns:IFSF="http://www.ifsf.org/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="FDC_FDC_Ready_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2004-20-12 08:39:09</FDCTimeStamp>
</FDCdata>
</FDCMessage>
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="POSReady" ApplicationSender="POSsel1"
WorkstationID="POS-01" MessageID="073322">
xmlns="http://www.nrf-arts.org/IXRetail/namespace"
xmlns:IFSF="http://www.ifsf.org/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="FDC_POS_Ready_Unsolicited.xsd ">
<POSdata>
<POSTimeStamp>2004-20-12 08:39:09</POSTimeStamp>
</POSdata>
</FDCMessage>
15.2 DSPLimitsChange
Description
The FDC application has changed the DSP Limits. This means, the POS must request
the new limits data and update the forecourt device information held in the POS.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="DSPLimitsChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_DSPLimitsChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="DSP" DeviceID="1">
<Product ProductNo=”1000”>
<FuelMode ModeNo= “1”>
<MaxTrxAmount>180.00</MaxTrxAmount>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 77
_____________________________________________________________________________________________
<MaxTrxVolume>120.000</MaxTrxVolume>
</FuelMode>
</Product>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.3 FuelSaleTrx
Description
The FDC application sends a new fuel sale transaction to all connected and logged on
POS systems. The element „ReleaseToken‟ links the sale transaction data to the
command that authorised it (see message AuthoriseFuelPoint).
The FDC application sends a FuelSaleTrx unsolicited message to all connected and
logged on POS systems, when the state (Payable, Locked or Cleared) of a transaction
changes or whenever the state cannot be changed following a request to change state.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FuelSaleTrx" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FuelSaleTrx_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" NozzleNo="1"
TransactionSeqNo="120301" >
<State>Locked</State>
<ReleaseToken></ReleaseToken>
<FuelMode ModeNo=”2”></FuelMode>
<Amount>76.96</Amount>
<Volume>38.521</Volume>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 78
___________________________________________________________________________________
<UnitPrice>1.999</UnitPrice>
<VolumeProduct1>38.52</VolumeProduct1>
<VolumeProduct2></VolumeProduct2>
<ProductNo1>1000</ProductNo1>
<ProductNo2></ProductNo2>
<BlendRatio>100</BlendRatio>
<LockingApplicationSender>POSsell1</ LockingApplicationSender>
<AuthorisationApplicationSender>POSsell1</ AuthorisationApplicationSender>
<DSPFields>Field1 Field2 …Fieldn CheckSum</DSPFields>
<CRCMode>ProcedureNo="1"</CRCMode>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.4 FPStateChange
Description
The FDC application sends a device status change for a specific fuelling point.
Only the nozzle state for existing nozzles is returned.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FPStateChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FPStateChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp> 2009-11-20T17:30:50 </FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1">
<DeviceState>FDC_READY</DeviceState>
<LockingApplicationSender> POSsell1</ LockingApplicationSender>
<Nozzle NozzleNo=”1”>
<LogicalNozzle>NozzleUp</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”2”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<Nozzle NozzleNo=”3”>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 79
_____________________________________________________________________________________________
</ Nozzle>
<Nozzle NozzleNo=”4”>>
<LogicalNozzle>NozzleDown</ LogicalNozzle>
<LogicalState>Unlocked</LogicalState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</ Nozzle>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.5 TPStateChange
Description
The FDC application sends a device status change for a specific tank probe.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="TPStateChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_TPStateChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp> 2009-11-20T17:30:50 </FDCTimeStamp>
<DeviceClass Type="TP" DeviceID="1" TankNo="1"/>
<DeviceState>FDC_READY</DeviceState>
<TankLogicalState>Unlocked</TankLogicalState>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.6 PPStateChange
Description
The FDC application sends a device status change for a specific price pole.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="PPStateChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_PPStateChange_Unsolicited.xsd ">
<FDCdata>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 80
___________________________________________________________________________________
Note: Price Pole state is at Price Pole level, not Price Pole Point level. See Price Pole
standard.
15.7 FuelPriceChange
Description
The FDC application informs the POS application that a fuel price change was
performed.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FuelPriceChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FuelPriceChange_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<Product ProductNo=”1000” >
< FuelMode ModeNo=”1”>
<NewPrice>1.039</NewPrice>
<OldPrice>1.022</OldPrice>
<EffectiveDateTime>2009-11-20T17:30:50</EffectiveDateTime>
</FuelMode>
</Product>
<ErrorCode>ERRCD_OK</ErrorCode>
</FDCdata>
</FDCMessage>
15.8 FPModeChange
Description
The FDC application informs the POS application that a fuelling point fuel mode
change was performed.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FPModeChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 81
_____________________________________________________________________________________________
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FPModeChange_Unsolicited.xsd ">
<FDCdata>
< FDCTimeStamp>2009-11-20T17:30:50</ FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1">
<FuelMode ModeNo=”1”>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.9 PPPModeChange
Description
The FDC application informs the POS application that a price pole point fuel mode
change was performed.
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="PPPModeChange" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_PPPModeChange_Unsolicited.xsd ">
<FDCdata>
< FDCTimeStamp>2009-11-20T17:30:50</ FDCTimeStamp>
<DeviceClass Type="PPP" DeviceID="23" SignNo="1" SegmentNo="3">
<FuelMode ModeNo=”1”>
<ErrorCode>ERRCD_OK</ErrorCode>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.10 DeviceAlarm
Description
The FDC application informs the POS application that an alarm was raised. An
unsolicited message is sent whenever there is a change in state of an alarm. This
means an unsolicited message is sent when an alarm is cleared.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 82
___________________________________________________________________________________
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_DeviceAlarm_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="TP" DeviceID="1">
<AlarmMsg Number="2" Text="Overfill"></AlarmMsg>
<AlarmMsg Number="5" Text="High-High Level"></AlarmMsg>
</DeviceClass>
</FDCdata>
</FDCMessage>
15.11 FDCException
Description
The FDC application informs the POS application that an exception event has
occurred. Exceptions can be used to handle special system events in the POS system.
Typical exceptions are for example:
Pump meter has been changed
Pump has been operated in authark??? mode
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="FDCException" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FDCException_Unsolicited.xsd ">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<ExceptionNo>0001</ExceptionNo>
<Description></Description>
</FDCdata>
</FDCMessage>
At present it is not possible to define the exception events. To allow for standarisation
at a later date “Exception Numbers” 0001 to 0500 are reserved for IFSF use.
15.12 FuelPointCurrentFuellingStatus
Description
For transaction in progress FDC will keep sending these unsolicited messages with
current volume and amount.
To avoid this facility over loading the network, there will be a repetition timer
element in the FDC configuration that controls the frequency of unsolicited messages.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 83
_____________________________________________________________________________________________
XML Data:
<?xml version="1.0" encoding="utf-8" ?>
<FDCMessage MessageType="CurrentFuellingStatus" ApplicationSender="CD001"
WorkstationID="CD-01" MessageID="073322"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="FDC_FuelPointCurrentFuellingStatus_Unsolicited.
xsd">
<FDCdata>
<FDCTimeStamp>2009-11-20T17:30:50</FDCTimeStamp>
<DeviceClass Type="FP" DeviceID="23" PumpNo="1" NozzleNo="1"
TransactionSeqNo="120301" >
<ReleaseToken></ReleaseToken>
<FuelMode ModeNo=”2”></FuelMode>
<Amount>76.96</Amount>
<Volume>38.521</Volume>
<UnitPrice>1.999</UnitPrice>
<VolumeProduct1>38.52</VolumeProduct1>
<VolumeProduct2></VolumeProduct2>
<ProductNo1>1000</ProductNo1>
<ProductNo2></ProductNo2>
<BlendRatio>100</BlendRatio>
</DeviceClass>
</FDCdata>
</FDCMessage>
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 84
___________________________________________________________________________________
16 Use cases
This section describes command flow for different types of fuelling.
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 85
_____________________________________________________________________________________________
17 State Diagrams
This section contains the State Diagrams for a Fuelling Point, Tank Probe and Price
Pole presented by the FDC to the POS.
Closed
Terminate Fuelling
Calling Authorised
*1 Invalid Nozzle Up
Nozzle Down
Authorise Fuel Point
Valid Nozzle Up
Suspend Fuelling
Suspended Started
Started
Resume Fuelling
Suspended Fuelling
Fuelling
Resume Fuelling
*1 Nozzle Down only moves to the Authorised state when Authorised state is allowed by configuration ,
otherwise it moves to Ready.
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 86
___________________________________________________________________________________
Closed
Ready
Closed
Ready
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 87
_____________________________________________________________________________________________
18 Appendix
FDC
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 88
___________________________________________________________________________________
Dispenser
Price Pole
The Dispenser alarm messages are to be found in the Dispenser standard (version 2.32
January 2009 section 3.7 Data_ID 80).
The Tank Level Gauge alarm messages are to be found in the Tank Level Gauge
standard (version 1.29 March 2008 section 3.5.1 Data_ID 33).
The Price Pole alarm messages are to be found in the Price Pole standard (version
1.23 July 2008 section 3.3 Data_ID 80).
The Dispenser error states are to be found in the Dispenser standard (version 2.32
January 2009 section 3.10).
_____________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011
Page: 90
___________________________________________________________________________________
The Tank Level Gauge error states are to be found in the Tank Level Gauge standard
(version 1.29 March 2008 section 3.6).
The Price Pole error states are to be found in the Price Pole standard (version 1.23
July 2008 section 3.8).
_______________________________________________________________________________________________________
Dec 2011 IFSF – STANDARD FORECOURT PROTOCOL Version 01.01
FDC POS Standard Interface
Copyright © IFSF Ltd 2011