A Fuel Dispensing Service is responsible for:
- Metering and dispensing fuel based on the local units of measurement.
- Converting volume dispensed to local price unit.
- Displaying and accepting prices of each grade that can be dispensed to the customer prior to dispensing
- Displaying to the customer the volume, price, grade, and amount of fuel that is being dispensed in the locale's units of measurement to meet local weights and measures requirements.
- Providing clients with current state/status.
- Providing clients with real-time money/volume information when needed.
- Providing clients with ability to authorize dispensing of fuel.
- Providing clients with ability to suspend and resume fueling.
- Providing clients with transaction information when fueling is complete; amount, volume, price, grade, price level.
- Providing meter totals to clients on a transaction basis and on demand.
- Supporting multiple price levels.
- Supporting a one-time/dynamic transaction price change.
- Providing fuel delivery service configuration, version, and product identification to clients.
- Providing clients with errors/warning/exceptions.
- Providing clients the ability to preset the fuel delivery service to add constraints to an authorization.
- Terminating a fuel sale if the fuel delivery service is authorized for a period of time and has not started to dispense fuel.
- Accepting configuration parameters from clients.
- Dispensing grades and pulling products from tanks.
- Supporting prepay transactions.
- Supporting the modification of some constraints after authorization.
-
Not supporting the buffering/stacking/queuing of fuel sale transactions; this is responsibility of fuel sale queue.
General documentation for the model goes here.