using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace UnifiedPOS.FiscalPrinter.V1_4
{
    [ServiceContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public interface FiscalPrinter
    {
        #region Version 1.1

        //
        // Common Properties
        //

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAutoDisableResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // bool GetAutoDisable(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAutoDisable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAutoDisableResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // void SetAutoDisable(string ConsumerID, bool AutoDisable);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapCompareFirmwareVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPowerReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPowerReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        PowerReporting GetCapPowerReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapStatisticsReporting", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapStatisticsReportingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapStatisticsReporting(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapUpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapUpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapUpdateFirmware(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapUpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapUpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapUpdateStatistics(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCheckHealthText", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCheckHealthTextResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetCheckHealthText(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetClaimed", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetClaimedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetClaimed(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDataCount", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDataCountResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // int GetDataCount(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDataEventEnabledResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // bool GetDataEventEnabled(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDataEventEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDataEventEnabledResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // void SetDataEventEnabled(string ConsumerID, bool DataEventEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetDeviceEnabled(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDeviceEnabled", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDeviceEnabledResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetDeviceEnabled(string ConsumerID, bool DeviceEnabled);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetFreezeEvents(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFreezeEvents", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFreezeEventsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetFreezeEvents(string ConsumerID, bool FreezeEvents);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetOutputID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetOutputIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetOutputID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        PowerNotification GetPowerNotify(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPowerNotify", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPowerNotifyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetPowerNotify(string ConsumerID, PowerNotification PowerNotify);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPowerState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPowerStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        PowerState GetPowerState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        ControlState GetState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceControlDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceControlDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetDeviceControlDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceControlVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceControlVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        UposVersion GetDeviceControlVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceServiceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceServiceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetDeviceServiceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceServiceVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDeviceServiceVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        UposVersion GetDeviceServiceVersion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPhysicalDeviceDescription", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPhysicalDeviceDescriptionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetPhysicalDeviceDescription(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPhysicalDeviceName", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPhysicalDeviceNameResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetPhysicalDeviceName(string ConsumerID);

        //
        // Specific Properties
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalHeader", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalHeaderResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapAdditionalHeader(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapAdditionalLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalTrailer", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAdditionalTrailerResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapAdditionalTrailer(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAmountAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapAmountAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapAmountAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapChangeDue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapChangeDueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapChangeDue(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCheckTotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCheckTotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapCheckTotal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCoverSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapCoverSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapCoverSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapDoubleWidth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapDoubleWidthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapDoubleWidth(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapDuplicateReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapDuplicateReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapDuplicateReceipt(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapEmptyReceiptIsVoidable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapEmptyReceiptIsVoidableResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapEmptyReceiptIsVoidable(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFiscalReceiptStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFiscalReceiptStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapFiscalReceiptStation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFiscalReceiptType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFiscalReceiptTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapFiscalReceiptType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFixedOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapFixedOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapFixedOutput(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapHasVatTable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapHasVatTableResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapHasVatTable(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapIndependentHeader", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapIndependentHeaderResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapIndependentHeader(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapItemList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapItemListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapItemList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapJrnEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapJrnNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapJrnPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapJrnPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapMultiContractor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapMultiContractorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapMultiContractor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapNonFiscalMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapNonFiscalModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapNonFiscalMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapOnlyVoidLastItem", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapOnlyVoidLastItemResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapOnlyVoidLastItem(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapOrderAdjustmentFirst", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapOrderAdjustmentFirstResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapOrderAdjustmentFirst(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPackageAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPackageAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPackageAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPercentAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPercentAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPercentAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPositiveAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPositiveAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPositiveAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPositiveSubtotalAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPositiveSubtotalAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPositiveSubtotalAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPostPreLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPostPreLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPostPreLine(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPowerLossReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPowerLossReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPowerLossReport(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPredefinedPaymentLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapPredefinedPaymentLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapPredefinedPaymentLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapReceiptNotPaid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapReceiptNotPaidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapReceiptNotPaid(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapRecEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapRecNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRecPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapRecPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRemainingFiscalMemory", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapRemainingFiscalMemoryResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapRemainingFiscalMemory(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapReservedWord", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapReservedWordResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapReservedWord(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetCurrency", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetCurrencyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetCurrency(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetHeader", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetHeaderResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetHeader(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetPOSID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetPOSIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetPOSID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetStoreFiscalID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetStoreFiscalIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetStoreFiscalID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetTrailer", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetTrailerResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetTrailer(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetVatTable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSetVatTableResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSetVatTable(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpEmptySensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpEmptySensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpEmptySensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpFiscalDocument", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpFiscalDocumentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpFiscalDocument(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpFullSlip", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpFullSlipResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpFullSlip(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpNearEndSensor", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpNearEndSensorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpNearEndSensor(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpPresent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpPresentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpPresent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpValidation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSlpValidationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSlpValidation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubAmountAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubAmountAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSubAmountAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubPercentAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubPercentAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSubPercentAdjustment(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubtotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapSubtotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapSubtotal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapTotalizerType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapTotalizerTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapTotalizerType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapTrainingMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapTrainingModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapTrainingMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapValidateJournal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapValidateJournalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapValidateJournal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapXReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCapXReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCapXReport(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetActualCurrency", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetActualCurrencyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalCurrency GetActualCurrency(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAdditionalHeader", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAdditionalHeaderResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetAdditionalHeader(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAdditionalHeader", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAdditionalHeaderResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetAdditionalHeader(string ConsumerID, string AdditionalHeader);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAdditionalTrailer", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAdditionalTrailerResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetAdditionalTrailer(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAdditionalTrailer", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAdditionalTrailerResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetAdditionalTrailer(string ConsumerID, string AdditionalTrailer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAmountDecimalPlaces", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAmountDecimalPlacesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetAmountDecimalPlaces(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAsyncMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetAsyncModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetAsyncMode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAsyncMode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetAsyncModeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetAsyncMode(string ConsumerID, bool AsyncMode);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetChangeDue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetChangeDueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetChangeDue(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetChangeDue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetChangeDueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetChangeDue(string ConsumerID, string ChangeDue);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCheckTotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCheckTotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCheckTotal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetCheckTotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetCheckTotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetCheckTotal(string ConsumerID, bool CheckTotal);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetContractorID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetContractorIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalContractorID GetContractorID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetContractorID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetContractorIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetContractorID(string ConsumerID, FiscalContractorID ContractorID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCountryCode", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCountryCodeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetCountryCode(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCoverOpen", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetCoverOpenResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetCoverOpen(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDateType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDateTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalDateType GetDateType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDateType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDateTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetDateType(string ConsumerID, FiscalDateType DateType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDayOpened", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDayOpenedResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetDayOpened(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDescriptionLength", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDescriptionLengthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetDescriptionLength(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDuplicateReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDuplicateReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetDuplicateReceipt(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDuplicateReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDuplicateReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetDuplicateReceipt(string ConsumerID, bool DuplicateReceipt);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorLevel", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorLevelResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalErrorLevel GetErrorLevel(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorOutID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorOutIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetErrorOutID(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalPrinterState GetErrorState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalPrinterStations GetErrorStation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorString", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetErrorStringResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetErrorString(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFiscalReceiptStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFiscalReceiptStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalReceiptStation GetFiscalReceiptStation(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFiscalReceiptStation", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFiscalReceiptStationResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetFiscalReceiptStation(string ConsumerID, FiscalReceiptStation FiscalReceiptStation);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFiscalReceiptType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFiscalReceiptTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalReceiptType GetFiscalReceiptType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFiscalReceiptType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFiscalReceiptTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetFiscalReceiptType(string ConsumerID, FiscalReceiptType FiscalReceiptType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFlagWhenIdle", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetFlagWhenIdleResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetFlagWhenIdle(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFlagWhenIdle", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetFlagWhenIdleResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetFlagWhenIdle(string ConsumerID, bool FlagWhenIdle);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetJrnEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetJrnEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetJrnEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetJrnNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetJrnNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetJrnNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetMessageLength", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetMessageLengthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetMessageLength(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetMessageType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetMessageTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalMessageType GetMessageType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetMessageType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetMessageTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetMessageType(string ConsumerID, FiscalMessageType MessageType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumHeaderLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumHeaderLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetNumHeaderLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumTrailerLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumTrailerLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetNumTrailerLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumVatRates", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetNumVatRatesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetNumVatRates(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPostLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPostLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetPostLine(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPostLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPostLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetPostLine(string ConsumerID, string PostLine);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPredefinedPaymentLines", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPredefinedPaymentLinesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        PaymentLinesList GetPredefinedPaymentLines(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPreLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPreLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetPreLine(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPreLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPreLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetPreLine(string ConsumerID, string PreLine);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPrinterState", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetPrinterStateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalPrinterState GetPrinterState(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetQuantityDecimalPlaces", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetQuantityDecimalPlacesResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetQuantityDecimalPlaces(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetQuantityLength", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetQuantityLengthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetQuantityLength(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRecEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRecEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetRecEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRecNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRecNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetRecNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRemainingFiscalMemory", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetRemainingFiscalMemoryResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetRemainingFiscalMemory(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetReservedWord", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetReservedWordResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetReservedWord(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlpEmpty", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlpEmptyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetSlpEmpty(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlpNearEnd", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlpNearEndResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetSlpNearEnd(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlipSelection", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetSlipSelectionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalSlipSelection GetSlipSelection(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetSlipSelection", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetSlipSelectionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetSlipSelection(string ConsumerID, FiscalSlipSelection SlipSelection);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTotalizerType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTotalizerTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalTotalizerType GetTotalizerType(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetTotalizerType", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetTotalizerTypeResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetTotalizerType(string ConsumerID, FiscalTotalizerType TotalizerType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTrainingModeActive", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTrainingModeActiveResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        bool GetTrainingModeActive(string ConsumerID);

        //
        // Common Methods
        //

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/Open", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/OpenResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        //void Open(string ConsumerID, string EndpointAddress);

        //[OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/Close", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CloseResponse")]
        //[FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        //void Close(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/Claim", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClaimResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void Claim(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/Release", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ReleaseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void Release(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CheckHealth", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CheckHealthResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void CheckHealth(string ConsumerID, HealthCheckLevel Level);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearInput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearInputResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // void ClearInput(string ConsumerID);

        // [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearInputProperties", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearInputPropertiesResponse")]
        // [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        // void ClearInputProperties(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void ClearOutput(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/DirectIO", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/DirectIOResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        DirectIOData DirectIO(string ConsumerID, int Command, int Data, object Obj);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CompareFirmwareVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CompareFirmwareVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        CompareFirmwareResult CompareFirmwareVersion(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ResetStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ResetStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void ResetStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/RetrieveStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/RetrieveStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string RetrieveStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UpdateFirmware", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UpdateFirmwareResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void UpdateFirmware(string ConsumerID, string FirmwareFileName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UpdateStatistics", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UpdateStatisticsResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void UpdateStatistics(string ConsumerID, StatisticList StatisticsBuffer);

        //
        // Specific Methods
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetCurrency", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetCurrencyResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetCurrency(string ConsumerID, FiscalCurrency NewCurrency);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetDateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetDate(string ConsumerID, DateTime Date);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetHeaderLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetHeaderLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetHeaderLine(string ConsumerID, int LineNumber, string Text, bool DoubleWidth);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPOSID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetPOSIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetPOSID(string ConsumerID, string POSID, string CashierID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetStoreFiscalID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetStoreFiscalIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetStoreFiscalID(string ConsumerID, string ID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetTrailerLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetTrailerLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetTrailerLine(string ConsumerID, int LineNumber, string Text, bool DoubleWidth);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetVatTable", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetVatTableResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetVatTable(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetVatValue", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetVatValueResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetVatValue(string ConsumerID, int VatID, string VatValue);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFiscalReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFiscalReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginFiscalReceipt(string ConsumerID, bool PrintHeader);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFiscalReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFiscalReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndFiscalReceipt(string ConsumerID, bool PrintHeader);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintDuplicateReceipt", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintDuplicateReceiptResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintDuplicateReceipt(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecCash", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecCashResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecCash(string ConsumerID, decimal Amount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItem", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItem(string ConsumerID, string Description, decimal Price, int Quantity, int VatInfo, decimal UnitPrice, string UnitName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemVoid(string ConsumerID, string Description, decimal Price, int Quantity, int VatInfo, decimal UnitPrice, string UnitName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemAdjustment(string ConsumerID, FiscalAdjustment AdjustmentType, string Description, decimal Amount, int VatInfo);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemAdjustmentVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemAdjustmentVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemAdjustmentVoid(string ConsumerID, FiscalAdjustment AdjustmentType, string Description, decimal Amount, int VatInfo);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemFuel", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemFuelResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemFuel(string ConsumerID, string Description, decimal Price, int Quantity, int VatInfo, decimal UnitPrice, string UnitName, decimal SpecialTax, string SpecialTaxName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemFuelVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemFuelVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemFuelVoid(string ConsumerID, string Description, decimal Price, int VatInfo, decimal SpecialTax);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemRefund", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemRefundResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemRefund(string ConsumerID, string Description, decimal Amount, int Quantity, int VatInfo, decimal UnitAmount, string UnitName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemRefundVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecItemRefundVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecItemRefundVoid(string ConsumerID, string Description, decimal Amount, int Quantity, int VatInfo, decimal UnitAmount, string UnitName);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecMessage", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecMessageResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecMessage(string ConsumerID, string Message);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecNotPaid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecNotPaidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecNotPaid(string ConsumerID, string Description, decimal Amount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecPackageAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecPackageAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecPackageAdjustment(string ConsumerID, FiscalAdjustmentType AdjustmentType, string Description, VatInfoList VatAdjustments);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecPackageAdjustVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecPackageAdjustVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecPackageAdjustVoid(string ConsumerID, FiscalAdjustmentType AdjustmentType, VatInfoList VatAdjustments);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecRefund", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecRefundResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecRefund(string ConsumerID, string Description, decimal Amount, int VatInfo);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecRefundVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecRefundVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecRefundVoid(string ConsumerID, string Description, decimal Amount, int VatInfo);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecSubtotal(string ConsumerID, decimal Amount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotalAdjustment", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotalAdjustmentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecSubtotalAdjustment(string ConsumerID, FiscalAdjustment AdjustmentType, string Description, decimal Amount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotalAdjustVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecSubtotalAdjustVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecSubtotalAdjustVoid(string ConsumerID, FiscalAdjustment AdjustmentType, decimal Amount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecTaxID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecTaxIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecTaxID(string ConsumerID, string TaxID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecTotal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecTotalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecTotal(string ConsumerID, decimal Total, decimal Payment, string Description);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecVoid", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintRecVoidResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintRecVoid(string ConsumerID, string Description);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFiscalDocument", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFiscalDocumentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginFiscalDocument(string ConsumerID, int DocumentAmount);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFiscalDocument", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFiscalDocumentResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndFiscalDocument(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintFiscalDocumentLine", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintFiscalDocumentLineResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintFiscalDocumentLine(string ConsumerID, string DocumentLine);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginItemList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginItemListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginItemList(string ConsumerID, int VatID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndItemList", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndItemListResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndItemList(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/VerifyItem", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/VerifyItemResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void VerifyItem(string ConsumerID, string ItemName, int VatID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintPeriodicTotalsReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintPeriodicTotalsReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintPeriodicTotalsReport(string ConsumerID, DateTime Date1, DateTime Date2);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintPowerLossReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintPowerLossReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintPowerLossReport(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintReport(string ConsumerID, ReportType ReportType, string StartNum, string EndNum);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintXReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintXReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintXReport(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintZReport", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintZReportResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintZReport(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginInsertion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginInsertionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginInsertion(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginRemoval", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginRemovalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginRemoval(string ConsumerID, int Timeout);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndInsertion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndInsertionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndInsertion(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndRemoval", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndRemovalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndRemoval(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFixedOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginFixedOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginFixedOutput(string ConsumerID, FiscalReceiptStation Station, int DocumentType);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginNonFiscal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginNonFiscalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginNonFiscal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginTraining", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/BeginTrainingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void BeginTraining(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFixedOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndFixedOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndFixedOutput(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndNonFiscal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndNonFiscalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndNonFiscal(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndTraining", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/EndTrainingResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void EndTraining(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintFixedOutput", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintFixedOutputResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintFixedOutput(string ConsumerID, int DocumentType, int LineNumber, string Data);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintNormal", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PrintNormalResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void PrintNormal(string ConsumerID, FiscalPrinterStations Station, string Data);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetData", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDataResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalDataItem GetData(string ConsumerID, FiscalData DataItem, int OptArgs);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDate", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetDateResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        DateTime GetDate(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTotalizer", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetTotalizerResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetTotalizer(string ConsumerID, int VatID, FiscalTotalizer OptArgs);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetVatEntry", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetVatEntryResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetVatEntry(string ConsumerID, int VatID, int OptArgs);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearError", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ClearErrorResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void ClearError(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ResetPrinter", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/ResetPrinterResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void ResetPrinter(string ConsumerID);

        #endregion

        #region Version 1.2

        //
        // Session Management
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetWSPOSVersion", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetWSPOSVersionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        UposVersion GetWSPOSVersion();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GenerateConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GenerateConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GenerateConsumerID();

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/OpenSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/OpenSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void OpenSession(string ConsumerID, string EndpointAddress);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CloseSession", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CloseSessionResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void CloseSession(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetProviderSessionTimeout", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetProviderSessionTimeoutResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        int GetProviderSessionTimeout(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/KeepAlive", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/KeepAliveResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void KeepAlive(string ConsumerID);

        //
        // Device Control
        // 

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/OpenDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/OpenDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void OpenDevice(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CloseDevice", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/CloseDeviceResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void CloseDevice(string ConsumerID);

        //
        // Event Polling
        //

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PollForUPOSEvent", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/PollForUPOSEventResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        FiscalPrinterEvent PollForUPOSEvent(string ConsumerID);

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetEventResponse", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/SetEventResponseResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        void SetEventResponse(string ConsumerID, FiscalPrinterEventResponse EventResponse);

        #endregion

        #region Version 1.3

        [OperationContract(Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetEncryptedClaimedConsumerID", ReplyAction = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/GetEncryptedClaimedConsumerIDResponse")]
        [FaultContract(typeof(UposException), Action = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/UposException", Name = "UposException")]
        string GetEncryptedClaimedConsumerID();

        #endregion
    }

    #region Version 1.1

    //
    // Common Data Types
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class DirectIOData
    {
        [DataMember]
        public int Data { get; set; }
        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class UposException
    {
        [DataMember]
        public ErrorCode ErrorCode { get; set; }
        [DataMember]
        public int ErrorCodeExtended { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class UposVersion
    {
        [DataMember]
        public int Major { get; set; }
        [DataMember]
        public int Minor { get; set; }
        [DataMember]
        public int Build { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class Statistic
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Value { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/", ItemName = "Statistic")]
    public class StatisticList : List<Statistic>
    {
    }

    //
    // Common Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum CompareFirmwareResult
    {
        [EnumMember]
        CFV_FIRMWARE_OLDER,
        [EnumMember]
        CFV_FIRMWARE_SAME,
        [EnumMember]
        CFV_FIRMWARE_NEWER,
        [EnumMember]
        CFV_FIRMWARE_DIFFERENT,
        [EnumMember]
        CFV_FIRMWARE_UNKNOWN,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum ControlState
    {
        [EnumMember]
        S_CLOSED,
        [EnumMember]
        S_IDLE,
        [EnumMember]
        S_BUSY,
        [EnumMember]
        S_ERROR,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum ErrorCode
    {
        [EnumMember]
        E_CLOSED,
        [EnumMember]
        E_CLAIMED,
        [EnumMember]
        E_NOTCLAIMED,
        [EnumMember]
        E_NOSERVICE,
        [EnumMember]
        E_DISABLED,
        [EnumMember]
        E_ILLEGAL,
        [EnumMember]
        E_NOHARDWARE,
        [EnumMember]
        E_OFFLINE,
        [EnumMember]
        E_NOEXIST,
        [EnumMember]
        E_EXISTS,
        [EnumMember]
        E_FAILURE,
        [EnumMember]
        E_TIMEOUT,
        [EnumMember]
        E_BUSY,
        [EnumMember]
        E_EXTENDED,
        [EnumMember]
        E_DEPRECATED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum HealthCheckLevel
    {
        [EnumMember]
        CH_INTERNAL,
        [EnumMember]
        CH_EXTERNAL,
        [EnumMember]
        CH_INTERACTIVE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum PowerNotification
    {
        [EnumMember]
        PN_DISABLED,
        [EnumMember]
        PN_ENABLED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum PowerReporting
    {
        [EnumMember]
        PR_NONE,
        [EnumMember]
        PR_STANDARD,
        [EnumMember]
        PR_ADVANCED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum PowerState
    {
        [EnumMember]
        PS_UNKNOWN,
        [EnumMember]
        PS_ONLINE,
        [EnumMember]
        PS_OFF,
        [EnumMember]
        PS_OFFLINE,
        [EnumMember]
        PS_OFF_OFFLINE,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum StatisticCategories
    {
        [EnumMember]
        All,
        [EnumMember]
        Manufacturer,
        [EnumMember]
        Upos,
    }
    */
    public class StatisticCategories
    {
        public const string All = "";
        public const string Manufacturer = "M_";
        public const string Upos = "U_";
    }

    //
    // Specific Data Types
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class FiscalDataItem
    {
        [DataMember]
        public string Data { get; set; }
        [DataMember]
        public int ItemOption { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class VatInfo
    {
        [DataMember]
        public decimal Amount { get; set; }
        [DataMember]
        public int ID { get; set; }
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/", ItemName = "PaymentLines")]
    public class PaymentLinesList : List<string>
    {
    }

    [CollectionDataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/", ItemName = "VatInfo")]
    public class VatInfoList : List<VatInfo>
    {
    }

    //
    // Specific Enumerations
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalCurrency
    {
        [EnumMember]
        BrazilianCruceiro,
        [EnumMember]
        BulgarianLev,
        [EnumMember]
        CzechianKoruna,
        [EnumMember]
        Euro,
        [EnumMember]
        GreekDrachma,
        [EnumMember]
        HungarianForint,
        [EnumMember]
        ItalianLira,
        [EnumMember]
        Other,
        [EnumMember]
        PolishZloty,
        [EnumMember]
        RomanianLeu,
        [EnumMember]
        RussianRouble,
        [EnumMember]
        SwedishKrona,
        [EnumMember]
        TurkishLira,
        [EnumMember]
        UkrainianHryvnia,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalContractorID
    {
        [EnumMember]
        FPTR_CID_FIRST,
        [EnumMember]
        FPTR_CID_SECOND,
        [EnumMember]
        FPTR_CID_SINGLE,
    }

    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalCountryCodes
    {
        [EnumMember]
        Brazil,
        [EnumMember]
        Bulgaria,
        [EnumMember]
        CzechRepublic,
        [EnumMember]
        Greece,
        [EnumMember]
        Hungary,
        [EnumMember]
        Italy,
        [EnumMember]
        Other,
        [EnumMember]
        Poland,
        [EnumMember]
        Romania,
        [EnumMember]
        Russia,
        [EnumMember]
        Sweden,
        [EnumMember]
        Turkey,
        [EnumMember]
        Ukraine,
    }
    */
    public class FiscalCountryCodes
    {
        public const int FPTR_CC_BRAZIL = 1;
        public const int FPTR_CC_BULGARIA = 128;
        public const int FPTR_CC_CZECH_REPUBLIC = 512;
        public const int FPTR_CC_GREECE = 2;
        public const int FPTR_CC_HUNGARY = 4;
        public const int FPTR_CC_ITALY = 8;
        public const int FPTR_CC_POLAND = 16;
        public const int FPTR_CC_ROMANIA = 256;
        public const int FPTR_CC_RUSSIA = 64;
        public const int FPTR_CC_SWEDEN = 2048;
        public const int FPTR_CC_TURKEY = 32;
        public const int FPTR_CC_UKRAINE = 1024;
        public const int FPTR_CC_GERMANY = 4096;
        public const int FPTR_CC_OTHER = 1073741824;
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalDateType
    {
        [EnumMember]
        FPTR_DT_CONF,
        [EnumMember]
        FPTR_DT_EOD,
        [EnumMember]
        FPTR_DT_RESET,
        [EnumMember]
        FPTR_DT_RTC,
        [EnumMember]
        FPTR_DT_VAT,
        [EnumMember]
        FPTR_DT_START,
        [EnumMember]
        FPTR_DT_TICKET_START,
        [EnumMember]
        FPTR_DT_TICKET_END,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalErrorLevel
    {
        [EnumMember]
        FPTR_EL_NONE,
        [EnumMember]
        FPTR_EL_RECOVERABLE,
        [EnumMember]
        FPTR_EL_FATAL,
        [EnumMember]
        FPTR_EL_BLOCKED,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalPrinterState
    {
        [EnumMember]
        FPTR_PS_MONITOR,
        [EnumMember]
        FPTR_PS_FISCAL_RECEIPT,
        [EnumMember]
        FPTR_PS_FISCAL_RECEIPT_TOTAL,
        [EnumMember]
        FPTR_PS_FISCAL_RECEIPT_ENDING,
        [EnumMember]
        FPTR_PS_FISCAL_DOCUMENT,
        [EnumMember]
        FPTR_PS_FIXED_OUTPUT,
        [EnumMember]
        FPTR_PS_ITEM_LIST,
        [EnumMember]
        FPTR_PS_NONFISCAL,
        [EnumMember]
        FPTR_PS_LOCKED,
        [EnumMember]
        FPTR_PS_REPORT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalPrinterStations
    {
        [EnumMember]
        FPTR_S_JOURNAL,
        [EnumMember]
        FPTR_S_RECEIPT,
        [EnumMember]
        FPTR_S_SLIP,
        [EnumMember]
        FPTR_S_JOURNAL_RECEIPT,
        [EnumMember]
        FPTR_S_JOURNAL_SLIP,
        [EnumMember]
        FPTR_S_RECEIPT_SLIP,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalReceiptStation
    {
        [EnumMember]
        FPTR_RS_RECEIPT,
        [EnumMember]
        FPTR_RS_SLIP,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalReceiptType
    {
        [EnumMember]
        FPTR_RT_CASH_IN,
        [EnumMember]
        FPTR_RT_CASH_OUT,
        [EnumMember]
        FPTR_RT_GENERIC,
        [EnumMember]
        FPTR_RT_SALES,
        [EnumMember]
        FPTR_RT_SERVICE,
        [EnumMember]
        FPTR_RT_SIMPLE_INVOICE,
        [EnumMember]
        FPTR_RT_REFUND,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalMessageType
    {
        [EnumMember]
        FPTR_MT_ADVANCE,
        [EnumMember]
        FPTR_MT_ADVANCE_PAID,
        [EnumMember]
        FPTR_MT_AMOUNT_TO_BE_PAID,
        [EnumMember]
        FPTR_MT_AMOUNT_TO_BE_PAID_BACK,
        [EnumMember]
        FPTR_MT_CARD,
        [EnumMember]
        FPTR_MT_CARD_NUMBER,
        [EnumMember]
        FPTR_MT_CARD_TYPE,
        [EnumMember]
        FPTR_MT_CASH,
        [EnumMember]
        FPTR_MT_CASHIER,
        [EnumMember]
        FPTR_MT_CASH_REGISTER_NUMBER,
        [EnumMember]
        FPTR_MT_CHANGE,
        [EnumMember]
        FPTR_MT_CHEQUE,
        [EnumMember]
        FPTR_MT_CLIENT_NUMBER,
        [EnumMember]
        FPTR_MT_CLIENT_SIGNATURE,
        [EnumMember]
        FPTR_MT_COUNTER_STATE,
        [EnumMember]
        FPTR_MT_CREDIT_CARD,
        [EnumMember]
        FPTR_MT_CURRENCY,
        [EnumMember]
        FPTR_MT_CURRENCY_VALUE,
        [EnumMember]
        FPTR_MT_DEPOSIT,
        [EnumMember]
        FPTR_MT_DEPOSIT_RETURNED,
        [EnumMember]
        FPTR_MT_DOT_LINE,
        [EnumMember]
        FPTR_MT_DRIVER_NUMB,
        [EnumMember]
        FPTR_MT_EMPTY_LINE,
        [EnumMember]
        FPTR_MT_FREE_TEXT,
        [EnumMember]
        FPTR_MT_FREE_TEXT_WITH_DAY_LIMIT,
        [EnumMember]
        FPTR_MT_GIVEN_DISCOUNT,
        [EnumMember]
        FPTR_MT_LOCAL_CREDIT,
        [EnumMember]
        FPTR_MT_MILEAGE_KM,
        [EnumMember]
        FPTR_MT_NOTE,
        [EnumMember]
        FPTR_MT_PAID,
        [EnumMember]
        FPTR_MT_PAY_IN,
        [EnumMember]
        FPTR_MT_POINT_GRANTED,
        [EnumMember]
        FPTR_MT_POINTS_BONUS,
        [EnumMember]
        FPTR_MT_POINTS_RECEIPT,
        [EnumMember]
        FPTR_MT_POINTS_TOTAL,
        [EnumMember]
        FPTR_MT_PROFITED,
        [EnumMember]
        FPTR_MT_RATE,
        [EnumMember]
        FPTR_MT_REGISTER_NUMB,
        [EnumMember]
        FPTR_MT_SHIFT_NUMBER,
        [EnumMember]
        FPTR_MT_STATE_OF_AN_ACCOUNT,
        [EnumMember]
        FPTR_MT_SUBSCRIPTION,
        [EnumMember]
        FPTR_MT_TABLE,
        [EnumMember]
        FPTR_MT_THANK_YOU_FOR_LOYALTY,
        [EnumMember]
        FPTR_MT_TRANSACTION_NUMB,
        [EnumMember]
        FPTR_MT_VALID_TO,
        [EnumMember]
        FPTR_MT_VOUCHER,
        [EnumMember]
        FPTR_MT_VOUCHER_PAID,
        [EnumMember]
        FPTR_MT_VOUCHER_VALUE,
        [EnumMember]
        FPTR_MT_WITH_DISCOUNT,
        [EnumMember]
        FPTR_MT_WITHOUT_UPLIFT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalSlipSelection
    {
        [EnumMember]
        FPTR_SS_FULL_LENGTH,
        [EnumMember]
        FPTR_SS_VALIDATION,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalTotalizerType
    {
        [EnumMember]
        FPTR_TT_DOCUMENT,
        [EnumMember]
        FPTR_TT_DAY,
        [EnumMember]
        FPTR_TT_RECEIPT,
        [EnumMember]
        FPTR_TT_GRAND,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalAdjustment
    {
        [EnumMember]
        FPTR_AT_AMOUNT_DISCOUNT,
        [EnumMember]
        FPTR_AT_AMOUNT_SURCHARGE,
        [EnumMember]
        FPTR_AT_COUPON_AMOUNT_DISCOUNT,
        [EnumMember]
        FPTR_AT_COUPON_AMOUNT_PERCENTAGE_DISCOUNT,
        [EnumMember]
        FPTR_AT_PERCENTAGE_DISCOUNT,
        [EnumMember]
        FPTR_AT_PERCENTAGE_SURCHARGE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalAdjustmentType
    {
        [EnumMember]
        FPTR_AT_DISCOUNT,
        [EnumMember]
        FPTR_AT_SURCHARGE,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum ReportType
    {
        [EnumMember]
        FPTR_RT_ORDINAL,
        [EnumMember]
        FPTR_RT_DATE,
        [EnumMember]
        FPTR_RT_EOD_ORDINAL,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalData
    {
        [EnumMember]
        FPTR_GD_FIRMWARE,
        [EnumMember]
        FPTR_GD_PRINTER_ID,
        [EnumMember]
        FPTR_GD_CURRENT_TOTAL,
        [EnumMember]
        FPTR_GD_DAILY_TOTAL,
        [EnumMember]
        FPTR_GD_GRAND_TOTAL,
        [EnumMember]
        FPTR_GD_MID_VOID,
        [EnumMember]
        FPTR_GD_NOT_PAID,
        [EnumMember]
        FPTR_GD_RECEIPT_NUMBER,
        [EnumMember]
        FPTR_GD_REFUND,
        [EnumMember]
        FPTR_GD_REFUND_VOID,
        [EnumMember]
        FPTR_GD_NUMB_CONFIG_BLOCK,
        [EnumMember]
        FPTR_GD_NUMB_CURRENCY_BLOCK,
        [EnumMember]
        FPTR_GD_NUMB_HDR_BLOCK,
        [EnumMember]
        FPTR_GD_NUMB_RESET_BLOCK,
        [EnumMember]
        FPTR_GD_NUMB_VAT_BLOCK,
        [EnumMember]
        FPTR_GD_FISCAL_DOC,
        [EnumMember]
        FPTR_GD_FISCAL_DOC_VOID,
        [EnumMember]
        FPTR_GD_FISCAL_REC,
        [EnumMember]
        FPTR_GD_FISCAL_REC_VOID,
        [EnumMember]
        FPTR_GD_NONFISCAL_DOC,
        [EnumMember]
        FPTR_GD_NONFISCAL_DOC_VOID,
        [EnumMember]
        FPTR_GD_NONFISCAL_REC,
        [EnumMember]
        FPTR_GD_RESTART,
        [EnumMember]
        FPTR_GD_SIMP_INVOICE,
        [EnumMember]
        FPTR_GD_Z_REPORT,
        [EnumMember]
        FPTR_GD_TENDER,
        [EnumMember]
        FPTR_GD_LINECOUNT,
        [EnumMember]
        FPTR_GD_DESCRIPTION_LENGTH,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum FiscalTotalizer
    {
        [EnumMember]
        FPTR_GT_GROSS,
        [EnumMember]
        FPTR_GT_NET,
        [EnumMember]
        FPTR_GT_DISCOUNT,
        [EnumMember]
        FPTR_GT_DISCOUNT_VOID,
        [EnumMember]
        FPTR_GT_ITEM,
        [EnumMember]
        FPTR_GT_ITEM_VOID,
        [EnumMember]
        FPTR_GT_NOT_PAID,
        [EnumMember]
        FPTR_GT_REFUND,
        [EnumMember]
        FPTR_GT_REFUND_VOID,
        [EnumMember]
        FPTR_GT_SUBTOTAL_DISCOUNT,
        [EnumMember]
        FPTR_GT_SUBTOTAL_DISCOUNT_VOID,
        [EnumMember]
        FPTR_GT_SUBTOTAL_SURCHARGES,
        [EnumMember]
        FPTR_GT_SUBTOTAL_SURCHARGES_VOID,
        [EnumMember]
        FPTR_GT_SURCHARGE,
        [EnumMember]
        FPTR_GT_SURCHARGE_VOID,
        [EnumMember]
        FPTR_GT_VAT,
        [EnumMember]
        FPTR_GT_VAT_CATEGORY,
    }

    //
    // Constants
    //

    /*
    public class Constants
    {
        public const int CurrencyEuro = 1;
        public const int DescriptionLengthItem = 1;
        public const int DescriptionLengthItemAdjustment = 2;
        public const int DescriptionLengthItemFuel = 3;
        public const int DescriptionLengthItemFuelVoid = 4;
        public const int DescriptionLengthNotPaid = 5;
        public const int DescriptionLengthPackageAdjustment = 6;
        public const int DescriptionLengthRefund = 7;
        public const int DescriptionLengthRefundVoid = 8;
        public const int DescriptionLengthSubtotalAdjustment = 9;
        public const int DescriptionLengthTotal = 10;
        public const int DescriptionLengthVoid = 11;
        public const int DescriptionLengthVoidItem = 12;
        public const int ExtendedErrorBadDate = 219;
        public const int ExtendedErrorBadItemAmount = 214;
        public const int ExtendedErrorBadItemDescription = 215;
        public const int ExtendedErrorBadItemQuantity = 213
        public const int ExtendedErrorBadLength = 222;
        public const int ExtendedErrorBadPrice = 218;
        public const int ExtendedErrorBadVat = 217;
        public const int ExtendedErrorClockError = 209;
        public const int ExtendedErrorCoverOpen = 201;
        public const int ExtendedErrorDayEndRequired = 224;
        public const int ExtendedErrorFirmwareBadFile = 281;
        public const int ExtendedErrorJournalEmpty = 202;
        public const int ExtendedErrorMemoryDisconnected = 211;
        public const int ExtendedErrorMemoryFull = 210;
        public const int ExtendedErrorMissingDevices = 206;
        public const int ExtendedErrorMissingSetCurrency = 223;
        public const int ExtendedErrorNegativeTotal = 220;
        public const int ExtendedErrorReceiptEmpty = 203;
        public const int ExtendedErrorReceiptTotalOverflow = 216;
        public const int ExtendedErrorSlipEmpty = 204;
        public const int ExtendedErrorSlipForm = 205;
        public const int ExtendedErrorStatistics = 280;
        public const int ExtendedErrorStatisticsDependency = 282;
        public const int ExtendedErrorTechnicalAssistance = 208;
        public const int ExtendedErrorTotalsError = 212;
        public const int ExtendedErrorWordNotAllowed = 221;
        public const int ExtendedErrorWrongState = 207;
        public const int LineCountComment = 13;
        public const int LineCountDiscount = 3;
        public const int LineCountDiscountVoid = 4;
        public const int LineCountItem = 1;
        public const int LineCountItemVoid = 2;
        public const int LineCountRefund = 7;
        public const int LineCountRefundVoid = 8;
        public const int LineCountSubtotal = 14;
        public const int LineCountSubtotalDiscount = 9;
        public const int LineCountSubtotalDiscountVoid = 10;
        public const int LineCountSubtotalSurcharge = 11;
        public const int LineCountSubtotalSurchargeVoid = 12;
        public const int LineCountSurcharge = 5;
        public const int LineCountSurchargeVoid = 6;
        public const int LineCountTotal = 15;
        public const int PaymentDescriptionCash = 1;
        public const int PaymentDescriptionCheque = 2;
        public const int PaymentDescriptionChitty = 3;
        public const int PaymentDescriptionCoupon = 4;
        public const int PaymentDescriptionCurrency = 5;
        public const int PaymentDescriptionDrivenOff = 6;
        public const int PaymentDescriptionEftImprinter = 7;
        public const int PaymentDescriptionEftTerminal = 8;
        public const int PaymentDescriptionFreeGift = 10;
        public const int PaymentDescriptionGiro = 11;
        public const int PaymentDescriptionHome = 12;
        public const int PaymentDescriptionImprinterWithIssuer = 13;
        public const int PaymentDescriptionLocalAccount = 14;
        public const int PaymentDescriptionLocalAccountCard = 15;
        public const int PaymentDescriptionPayCard = 16;
        public const int PaymentDescriptionPayCardManual = 17;
        public const int PaymentDescriptionPrepay = 18;
        public const int PaymentDescriptionPumpTest = 19;
        public const int PaymentDescriptionShortCredit = 20;
        public const int PaymentDescriptionStaff = 21;
        public const int PaymentDescriptionTerminalImprinter = 9;
        public const int PaymentDescriptionVoucher = 22;
        public const string StatisticCommunicationErrorCount = "CommunicationErrorCount";
        public const string StatisticDeviceCategory = "DeviceCategory";
        public const string StatisticFirmwareRevision = "FirmwareRevision";
        public const string StatisticHoursPoweredCount = "HoursPoweredCount";
        public const string StatisticInstallationDate = "InstallationDate";
        public const string StatisticInterface = "Interface";
        public const string StatisticManufactureDate = "ManufactureDate";
        public const string StatisticManufacturerName = "ManufacturerName";
        public const string StatisticMechanicalRevision = "MechanicalRevision";
        public const string StatisticModelName = "ModelName";
        public const string StatisticSerialNumber = "SerialNumber";
        public const string StatisticUnifiedPOSVersion = "UnifiedPOSVersion";
        public const int StatusCoverOK = 12;
        public const int StatusCoverOpen = 11;
        public const int StatusIdle = 1001;
        public const int StatusJournalCoverOK = 61;
        public const int StatusJournalCoverOpen = 60;
        public const int StatusJournalEmpty = 21;
        public const int StatusJournalNearEmpty = 22;
        public const int StatusJournalPaperOK = 23;
        public const int StatusPowerOff = 2002;
        public const int StatusPowerOffline = 2003;
        public const int StatusPowerOffOffline = 2004;
        public const int StatusPowerOnline = 2001;
        public const int StatusReceiptCoverOK = 63;
        public const int StatusReceiptCoverOpen = 62;
        public const int StatusReceiptEmpty = 24;
        public const int StatusReceiptNearEmpty = 25;
        public const int StatusReceiptPaperOK = 26;
        public const int StatusSlipCoverOK = 65;
        public const int StatusSlipCoverOpen = 64;
        public const int StatusSlipEmpty = 27;
        public const int StatusSlipNearEmpty = 28;
        public const int StatusSlipPaperOK = 29;
        public const int StatusUpdateFirmwareComplete = 2200;
        public const int StatusUpdateFirmwareCompleteDeviceNotRestored = 2205;
        public const int StatusUpdateFirmwareFailedDeviceNeedsFirmware = 2203;
        public const int StatusUpdateFirmwareFailedDeviceOk = 2201;
        public const int StatusUpdateFirmwareFailedDeviceUnknown = 2204;
        public const int StatusUpdateFirmwareFailedDeviceUnrecoverable = 2202;
        public const int StatusUpdateFirmwareProgress = 2100;
        public const int WaitForever = -1;
    }
    */

    public class Currency
    {
        public const int FPTR_SC_EURO = 1;
    }

    public class DescriptionLength
    {
        public const int FPTR_DL_ITEM = 1;
        public const int FPTR_DL_ITEM_ADJUSTMENT = 2;
        public const int FPTR_DL_ITEM_FUEL = 3;
        public const int FPTR_DL_ITEM_FUEL_VOID = 4;
        public const int FPTR_DL_NOT_PAID = 5;
        public const int FPTR_DL_PACKAGE_ADJUSTMENT = 6;
        public const int FPTR_DL_REFUND = 7;
        public const int FPTR_DL_REFUND_VOID = 8;
        public const int FPTR_DL_SUBTOTAL_ADJUSTMENT = 9;
        public const int FPTR_DL_TOTAL = 10;
        public const int FPTR_DL_VOID = 11;
        public const int FPTR_DL_VOID_ITEM = 12;
    }

    public class ExtendedError
    {
        public const int EFPTR_COVER_OPEN = 201;
        public const int EFPTR_JRN_EMPTY = 202;
        public const int EFPTR_REC_EMPTY = 203;
        public const int EFPTR_SLP_EMPTY = 204;
        public const int EFPTR_SLP_FORM = 205;
        public const int EFPTR_MISSING_DEVICES = 206;
        public const int EFPTR_WRONG_STATE = 207;
        public const int EFPTR_TECHNICAL_ASSISTANCE = 208;
        public const int EFPTR_CLOCK_ERROR = 209;
        public const int EFPTR_FISCAL_MEMORY_FULL = 210;
        public const int EFPTR_FISCAL_MEMORY_DISCONNECTED = 211;
        public const int EFPTR_FISCAL_TOTALS_ERROR = 212;
        public const int EFPTR_BAD_ITEM_QUANTITY = 215;
        public const int EFPTR_BAD_ITEM_AMOUNT = 214;
        public const int EFPTR_BAD_ITEM_DESCRIPTION = 213;
        public const int EFPTR_RECEIPT_TOTAL_OVERFLOW = 216;
        public const int EFPTR_BAD_VAT = 217;
        public const int EFPTR_BAD_PRICE = 218;
        public const int EFPTR_BAD_DATE = 219;
        public const int EFPTR_NEGATIVE_TOTAL = 220;
        public const int EFPTR_WORD_NOT_ALLOWED = 221;
        public const int EFPTR_BAD_LENGTH = 222;
        public const int EFPTR_MISSING_SET_CURRENCY = 223;
        public const int EFPTR_DAY_END_REQUIRED = 224;
        public const int ESTATS_ERROR = 280;
        public const int EFIRMWARE_BAD_FILE = 281;
        public const int ESTATS_DEPENDENCY = 282;
    }

    public class LineCount
    {
        public const int FPTR_LC_ITEM = 1;
        public const int FPTR_LC_ITEM_VOID = 2;
        public const int FPTR_LC_DISCOUNT = 3;
        public const int FPTR_LC_DISCOUNT_VOID = 4;
        public const int FPTR_LC_SURCHARGE = 5;
        public const int FPTR_LC_SURCHARGE_VOID = 6;
        public const int FPTR_LC_REFUND = 7;
        public const int FPTR_LC_REFUND_VOID = 8;
        public const int FPTR_LC_SUBTOTAL_DISCOUNT = 9;
        public const int FPTR_LC_SUBTOTAL_DISCOUNT_VOID = 10;
        public const int FPTR_LC_SUBTOTAL_SURCHARGE = 11;
        public const int FPTR_LC_SUBTOTAL_SURCHARGE_VOID = 12;
        public const int FPTR_LC_COMMENT = 13;
        public const int FPTR_LC_SUBTOTAL = 14;
        public const int FPTR_LC_TOTAL = 15;
    }

    public class PaymentDescription
    {
        public const int FPTR_PDL_CASH = 1;
        public const int FPTR_PDL_CHEQUE = 2;
        public const int FPTR_PDL_CHITTY = 3;
        public const int FPTR_PDL_COUPON = 4;
        public const int FPTR_PDL_CURRENCY = 5;
        public const int FPTR_PDL_DRIVEN_OFF = 6;
        public const int FPTR_PDL_EFT_IMPRINTER = 7;
        public const int FPTR_PDL_EFT_TERMINAL = 8;
        public const int FPTR_PDL_TERMINAL_IMPRINTER = 9;
        public const int FPTR_PDL_FREE_GIFT = 10;
        public const int FPTR_PDL_GIRO = 11;
        public const int FPTR_PDL_HOME = 12;
        public const int FPTR_PDL_IMPRINTER_WITH_ISSUER = 13;
        public const int FPTR_PDL_LOCAL_ACCOUNT = 14;
        public const int FPTR_PDL_LOCAL_ACCOUNT_CARD = 15;
        public const int FPTR_PDL_PAY_CARD = 16;
        public const int FPTR_PDL_PAY_CARD_MANUAL = 17;
        public const int FPTR_PDL_PREPAY = 18;
        public const int FPTR_PDL_PUMP_TEST = 19;
        public const int FPTR_PDL_SHORT_CREDIT = 20;
        public const int FPTR_PDL_STAFF = 21;
        public const int FPTR_PDL_VOUCHER = 22;
    }

    public class StatisticProperties
    {
        public const string CommunicationErrorCount = "CommunicationErrorCount";
        public const string DeviceCategory = "DeviceCategory";
        public const string FirmwareRevision = "FirmwareRevision";
        public const string HoursPoweredCount = "HoursPoweredCount";
        public const string InstallationDate = "InstallationDate";
        public const string Interface = "Interface";
        public const string ManufactureDate = "ManufactureDate";
        public const string ManufacturerName = "ManufacturerName";
        public const string MechanicalRevision = "MechanicalRevision";
        public const string ModelName = "ModelName";
        public const string SerialNumber = "SerialNumber";
        public const string UnifiedPOSVersion = "UnifiedPOSVersion";
        public const string BarcodePrintedCount = "BarcodePrintedCount";
        public const string FailedPaperCutCount = "FailedPaperCutCount";
        public const string FailedPrintSideChangeCount = "FailedPrintSideChangeCount";
        public const string FormInsertionCount = "FormInsertionCount";
        public const string HomeErrorCount = "HomeErrorCount";
        public const string JournalCharacterPrintedCount = "JournalCharacterPrintedCount";
        public const string JournalCoverOpenCount = "JournalCoverOpenCount";
        public const string JournalLinePrintedCount = "JournalLinePrintedCount";
        public const string MaximumTempReachedCount = "MaximumTempReachedCount";
        public const string NVRAMWriteCount = "NVRAMWriteCount";
        public const string PaperCutCount = "PaperCutCount";
        public const string PrinterFaultCount = "PrinterFaultCount";
        public const string PrintSideChangeCount = "PrintSideChangeCount";
        public const string ReceiptCharacterPrintedCount = "ReceiptCharacterPrintedCount";
        public const string ReceiptCoverOpenCount = "ReceiptCoverOpenCount";
        public const string ReceiptLineFeedCount = "ReceiptLineFeedCount";
        public const string ReceiptLinePrintedCount = "ReceiptLinePrintedCount";
        public const string SlipCharacterPrintedCount = "SlipCharacterPrintedCount";
        public const string SlipCoverOpenCount = "SlipCoverOpenCount";
        public const string SlipLineFeedCount = "SlipLineFeedCount";
        public const string SlipLinePrintedCount = "SlipLinePrintedCount";
        public const string StampFiredCount = "StampFiredCount";
    }

    public class Wait
    {
        public const int FOREVER = -1;
    }

    #endregion

    #region Version 1.2

    //
    // Event Polling
    //

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class FiscalPrinterEvent
    {
        //[DataMember]
        //public DataEvent DataEvent { get; set; }
        [DataMember]
        public DirectIOEvent DirectIOEvent { get; set; }
        [DataMember]
        public ErrorEvent ErrorEvent { get; set; }
        [DataMember]
        public OutputCompleteEvent OutputCompleteEvent { get; set; }
        [DataMember]
        public StatusUpdateEvent StatusUpdateEvent { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class FiscalPrinterEventResponse
    {
        //[DataMember]
        //public DataEventResponse DataEventResponse { get; set; }
        [DataMember]
        public DirectIOEventResponse DirectIOEventResponse { get; set; }
        [DataMember]
        public ErrorEventResponse ErrorEventResponse { get; set; }
        [DataMember]
        public OutputCompleteEventResponse OutputCompleteEventResponse { get; set; }
        [DataMember]
        public StatusUpdateEventResponse StatusUpdateEventResponse { get; set; }
    }
    /*
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class DataEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int Status { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class DataEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }
    */
    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class DirectIOEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int EventNumber { get; set; }
        [DataMember]
        public int Data { get; set; }
        [DataMember]
        public object Obj { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class DirectIOEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DirectIOData DirectIOData { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class ErrorEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public ErrorCode ErrorCode { get; set; }
        [DataMember]
        public int ErrorCodeExtended { get; set; }
        [DataMember]
        public ErrorLocus ErrorLocus { get; set; }
        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class ErrorEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public ErrorResponse ErrorResponse { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class OutputCompleteEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int OutputID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class OutputCompleteEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class StatusUpdateEvent
    {
        [DataMember]
        public string Source { get; set; }
        [DataMember]
        public int EventID { get; set; }
        [DataMember]
        public DateTime TimeStamp { get; set; }
        [DataMember]
        public int Status { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public class StatusUpdateEventResponse
    {
        [DataMember]
        public int EventID { get; set; }
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum ErrorLocus
    {
        [EnumMember]
        EL_INPUT,
        [EnumMember]
        EL_INPUT_DATA,
        [EnumMember]
        EL_OUTPUT,
    }

    [DataContract(Namespace = "http://www.nrf-arts.org/UnifiedPOS/FiscalPrinter/")]
    public enum ErrorResponse
    {
        [EnumMember]
        ER_CLEAR,
        [EnumMember]
        ER_CONTINUEINPUT,
        [EnumMember]
        ER_RETRY,
    }

    #endregion
}
