Skip to main content

How To Configure Fiscal Latvia

Fiscal Overview

For shared background on Enactor fiscal solutions, see Fiscal Overview.


Introduction

In Latvia, the fiscal approach requires the use of a CHD device to ensure compliance with the country's fiscal regulations. The CHD device is a hardware-based solution that securely processes, records, and stores each transaction in a tamper-proof format to prevent fraud and ensure transparency.

Receipts generated by the POS system must be printed and offered to customers. These receipts must include certain mandatory fields, such as a unique fiscal receipt number and a digital signature generated by the CHD device.

info

This guide assumes that the standard POS has already been deployed and has established a connection with the Estate Manager. For further details on how to do this, refer to the Enactor Insights Portal.


App Update Deployment Overview

The following steps must be completed in order to deploy the fiscal module to a PDP device:

  1. Send the application updater update.zip file first.
  2. Wait until it succeeds.
  3. Then send the update PDP min.zip file.
  4. Wait until it succeeds.
  5. Finally, send the Fiscal Module Update.
  6. Once it has succeeded, the PDP is ready with the new Fiscal Module.

Configuration Overview

The following configuration changes are required and must be broadcast to all Latvia devices in preparation for go live. Detailed steps for how to do this are contained in supplementary how-to guides available on the Enactor Insights Portal, as well as being covered in the Introduction to Enactor training course.

warning

Although steps have been taken to ensure that the POS will not start or perform transactions without a valid configuration, it is the retailer's responsibility to ensure a valid configuration is present and not to try to circumvent any of the requirements of the Latvia Fiscal Legislation through misconfiguration of the solution.


Group

Create a new Region group, Tax Region, and Price group for Latvia as shown below.

Group TypeGroup IDGroup Name
RegionLVLatvia
Tax RegionLVLatvia
PriceLVLatvia

Region Group

The region must be configured to continue the other configurations related to fiscalisation. A region for Latvia should be created within the Region Group Hierarchy.

Region Group Hierarchy showing Latvia region being created

Region Group configuration for Latvia with Group ID LV

Region Group Latvia entry in the hierarchy tree

Tax Region Group

Tax Region Group Hierarchy showing Latvia tax region

Tax Region Group configuration for Latvia with Group ID LV

Price Group

Price Group Hierarchy showing Latvia price group

Price Group configuration for Latvia with Group ID LV


Locale

The following Locale should be configured and broadcast to the appropriate Latvia devices.

Locale configuration for Latvia


Location

The following Location should be configured and broadcast to the appropriate Latvia devices.

Location Maintenance for a Latvia store

Add the following details which are needed in the receipt header.

Navigate to Location Maintenance > Receipt tab > Receipt Header Lines

Location Maintenance Receipt tab showing Receipt Header Lines configuration

Set the Company Tax ID for the VAT Number in Location Maintenance on the General tab.

Location Maintenance General tab showing Company Tax ID field for VAT Number


Tax Groups

The following tax groups should be configured and broadcast to the appropriate Latvia devices.

Tax Group IDDescription
LV-01LV Standard VAT 21%
LV-02LV Reduced Rate 5%
LV-03LV Zero Rate 0%

Tax Rate

The following tax rates should be configured and broadcast to the appropriate Latvia devices.

Tax Rate IDDescriptionDisplay CodePercentageFiscal Tax Rate Reference
LV-1LV Standard VAT 21%A21%A
LV-2LV Reduced Rate 5%B9%B
LV-3LV Zero Rate 0%C0%C

Select VAT as the Tax Rate Type.

Tax Rate Maintenance showing Latvia tax rate configuration with VAT selected as Tax Rate Type


Tax Scheme

The following tax scheme should be configured and broadcast to the appropriate Latvia devices. Make sure to add all the tax rates related to Latvia in the Applicable Tax Rate tab as well.

Tax Scheme IDDescriptionPrice Include Tax
LVLatvia VAT SchemeTRUE

Tax Scheme Maintenance showing Latvia VAT Scheme configuration

Add all the applicable tax rates (LV-01, LV-02, LV-03) in the Applicable Tax Rates tab.

Tax Scheme Applicable Tax Rates tab showing LV-01, LV-02, and LV-03 added


Tax Region

If it does not already exist, a Tax Region for Latvia should be created within the Tax Region Group Hierarchy. It should have the ID set to LV and the Name set to Latvia. It is not necessary to configure an External Reference ID.

Tax Region configuration for Latvia with ID LV and Name Latvia


Tax Group Tax Methods

The following tax group tax methods should be configured and broadcast to the appropriate Latvia devices.

Tax Group IDTax Scheme IDDescriptionTax Rate
LV Standard VAT 21%LatviaLV Standard VAT 21%21
LV Reduced Rate 5%LatviaLV Reduced Rate 5%5
LV Zero Rate 0%LatviaLV Zero Rate 0%0

Tax Group Tax Methods Maintenance showing Latvia tax group tax method configuration


Product Tax

The following tax configurations should be configured against the products and broadcast to the appropriate Latvia devices. A tax group can be defined either to configure the tax group itself, associate it with a tax region, or configure only tax rate details.

Product Tax configuration showing tax group association for a Latvia product


Device

The following devices for PDP Server and Mobile POS should be configured and broadcast to the appropriate Latvia devices.

Select the Device Type as Mobile Server.

Device Maintenance showing Mobile Server device type configuration

Select the Device Type as Mobile POS.

Device Maintenance showing Mobile POS device type configuration


POS Terminal Template

The POS Terminal Template used by all devices in Latvia must be configured to have the Fiscalisation Type set to Latvia. Currency should be set to Euro and Locale to Latvia.

POS Terminal Template Maintenance showing Fiscalisation Type set to Latvia, Currency to Euro, and Locale to Latvia

Tick Is Remote Terminal and select Mobile Terminal from the dropdown.

POS Terminal Template with Is Remote Terminal checked and Mobile Terminal selected

Select CHD Latvian Fiscal Printer from the Receipt Printer Type dropdown.

The CHD printer IP address and port should be configured in the POS Terminal Maintenance under Receipt Printer Address and broadcast to the POS and/or PDP server.

warning

Receipt Printer Shared must NOT be ticked.

POS Terminal Template Printing tab showing CHD Latvian Fiscal Printer selected with Receipt Printer Address configured

Set the printer IP and port as shown in the image above.

note

The port may be either 5345 in a test lab or 5344 in a production-like environment. Confirm the correct port with CHD.

Set the following values in the Receipt Printer Config:

ConfigurationDescription
barcode.typeBarcode type for receipt printing
barcode.textPositionText position relative to the barcode
barcode.leftmarginLeft margin for barcode alignment

POS Terminal Template Receipt Printer Config showing barcode configuration parameters

Select Printer-Attached Cashdrawer from the Cash Drawer Type dropdown.

POS Terminal Template showing Printer-Attached Cashdrawer selected as Cash Drawer Type

info

Disable the following privileges if they are enabled:

Privilege IDApplication Package
enactor.pos.ContinueWithDrawerOpenEnactor POS
enactor.pos.SignOnWithDrawerOpenEnactor POS
enactor.pos.SkipDrawerStatusInitializationCheckingEnactor POS

Drawer Configuration Parameters

  1. Navigate to POS Terminal Template Maintenance.
  2. Edit the relevant POS Terminal Template.
  3. Navigate to Printing > Output.
  4. Add the following configurations if needed in the Receipt Printer Config.
ConfigurationDefault ValueTypeDescription
drawerOpenTimeout4000Integer (ms), OptionalWaiting time in milliseconds for processing the drawer open command from Enactor POS. Be cautious when setting unnecessarily high values, as it may cause the POS to remain unresponsive for an extended period.
drawerCheckWaitTimeout0Integer (ms), OptionalDelay in milliseconds before sending the drawer check command (CHECK_DRAWER_CLOSED) to the CHD device. Introduced based on CHD team recommendation, as sending the drawer check command immediately after sale commands may lead to issues.
allowChdOpenDrawerfalseBoolean, OptionalDetermines whether the drawer should be opened using the CHD-side functionality. When set to true, the drawer opening is triggered from the CHD device instead of Enactor's side. This serves as a fallback mechanism in case the POS-side cash drawer functionality fails.

Receipt Printer Config showing drawerOpenTimeout, drawerCheckWaitTimeout, and allowChdOpenDrawer parameters

Customer Display Configuration

Select Custom as the Customer Display Type.

Add the Customer Display Classname as: com.enactor.peripherals.fiscalPrinter.latvia.CHDLatviaLineDisplay

Add the Customer Display Address, for example: tcp:172.16.251.119:5345

POS Terminal Template showing Custom Customer Display Type with CHDLatviaLineDisplay classname and TCP address

Customer Signature Slip

The Customer Signature Slip should be set to Customer Signature Slip 48 Col.

POS Terminal Template showing Customer Signature Slip set to Customer Signature Slip 48 Col

Printing Flags

The Print Tax Details on Receipt flag within the Printing > Flags tab should be ticked.

If printing a receipt for void transactions, the Print Receipt for Void Transaction option should also be ticked.

POS Terminal Template Printing Flags tab showing Print Tax Details on Receipt and Print Receipt for Void Transaction options

Tax Configuration

Within the Tax section, the Tax Region should be set to Latvia and the Tax Scheme to the Latvia Tax Scheme configured in the previous section.

POS Terminal Template Tax section showing Tax Region set to Latvia and Tax Scheme set to Latvia VAT Scheme


POS Terminal

Create a POS Terminal for the device type Mobile POS.

Select the Device ID created for the Mobile POS and select the POS Terminal Template.

POS Terminal Maintenance showing Mobile POS terminal with Device ID and POS Terminal Template selected


Tender

The following tenders should be configured and broadcast to the appropriate Latvia devices. Configure Card and Cash if necessary.

Tender Maintenance showing Latvia tender configuration

Set the Fiscal Tender ID for the Tender ID.

Tender Maintenance showing Fiscal Tender ID field

Tender IDTender TypeFiscal Tender ID
CASHCashCASH
CARDCardCARD

These values should be set according to the CHD Tender Configurations:

CHD Tender Configuration showing TENDERID and TENDERTYPE mapping

info

The Fiscal Tender ID maps to TENDERID and TENDERTYPE in CHD. If the values are not set, the default TENDERTYPE of CASH will be sent to the printer. These values will be sent to the CHD printer with each sale.

Tender configuration showing Fiscal Tender ID mapping to CHD values

Tick Open Drawer and Open Drawer At End for the tender that needs to open the cash drawer.

Tender Maintenance showing Open Drawer and Open Drawer At End options ticked


Privileges

The following privileges will need to be configured against the appropriate roles and broadcast to the Latvia devices. Consideration should be given to whether it is desirable for all operators to have all of these privileges or if some should only be granted to managers.

tip

For more detail on privileges and roles, refer to the How To Configure Users, User Roles and User Templates.

Privilege IDApplication Package
enactor.pos.AllowReturnTaxRefundItemAlreadyRedeemedEnactor POS
enactor.pos.AuthorisesReturnItemEnactor POS
enactor.pos.ReturnItemAllowedEnactor POS
enactor.pos.GiftCardTenderAllowedEnactor POS
enactor.pos.VoidTransactionDiscountAllowedEnactor POS
enactor.admin.RunEnactor POS
enactor.pos.ReprintRecentReturnToTransactionEnactor POS
enactor.pos.VoucherRedeemAllowedEnactor POS
enactor.pos.ReturnFromReceiptAllowedEnactor POS
enactor.pos.AuthorisesVoidCardTenderItemEnactor POS
enactor.pos.AuthoriseDayEndBeforeEarliestEnactor POS
enactor.pos.AuthorisesVoidTenderItemEnactor POS
enactor.pos.CashRefundAllowedEnactor POS
enactor.dayStart.AuthorisesDayStartEnactor POS
enactor.pos.AllowEmployeeReturnIfUserInvolvedEnactor POS
enactor.pos.RequestSimpleFiscalInvoiceAllowedEnactor POS
enactor.pos.AuthorisesNoSaleEnactor POS
enactor.pos.NoSaleAllowedEnactor POS
enactor.pos.PrintFiscalReportsAllowedPOS Fiscalisation
enactor.pos.AuthorisesPrintFiscalReportsPOS Fiscalisation
enactor.pos.fiscal.AuthorisesPrintInvoiceFromArchivePOS Fiscalisation
enactor.pos.fiscal.PrintInvoiceFromArchiveAllowedPOS Fiscalisation
enactor.pos.fiscal.AuthorisesSetFooterPOS Fiscalisation
enactor.pos.fiscal.SetFooterAllowedPOS Fiscalisation

On the Estate Manager, navigate to Configuration > System > Menu.

  1. Edit the SALE menu for the Menu Group Standard POS.
  2. Add a folder under Sales > Management > Report called Fiscal Reports.
  3. Add new buttons to the Fiscal Reports folder for the following:
EventIDButton LabelNameJava TypeValue
Fiscal_PrintReports_XFiscal_PrintReports_XFiscal X ReportReportTypeStringX
Fiscal_PrintReports_ZFiscal_PrintReports_ZFiscal Z ReportReportTypeStringZ
Fiscal_PrintReports_Periodic_ByFiscalNumberFiscal_PrintReports_Periodic_ByFiscalNumberFiscal Periodic Report By Fiscal NumberReportTypeStringPERIODIC
tip

For more detail on menu creation, refer to the How-to Guide for configuring POS Behaviour (Menus) on the Enactor Insights Portal.


Translations

Deploy the pos-fiscalisation JAR using the JAR Deployer.

JAR Deployer showing pos-fiscalisation JAR deployment

If the user locale is set to English, the Enactor POS will be displayed in English. If you need to modify any default text in the Enactor POS, navigate to Application Translation, select the Application Package as POS Fiscalisation and select the user locale as English (UK). Then you can edit the relevant message file by clicking the + button. Then broadcast the Message Resource entity.

Discounts should have a Latvia translation for the description.

Application Translation showing discount description with Latvia translation

The promotion description should be in Latvian. There is no locale-specific translation for promotions as promotions are expected to be unique to a country.

Promotion configuration showing Latvian language description


Document History

VersionStatusIssue DateAuthorReason for Issue
1.0Initial Draft31/05/24KGInitial version
1.1Enhanced04/06/25KEAdded configs
1.2Enhanced30/07/25KEAdded configs
1.3Standards14/03/26Mark HarrisonApplied Enactor documentation standards