How To Guide Fiscal Latvia
Fiscal Overview
For shared background, see Fiscal Overview.
Latvia Fiscalisation 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.
This guide assumes that the standard POS has already been deployed in a standard fashion and has established a connection with the Estate manager. For further details on how to do this please refer to the insights portal: https://insights.enactor.co/
App Update Deployment Overview
-
Send the ‘application updater update.zip’ file first.
-
Wait until it succeeds.
-
Then send the ‘update PDP min.zip’ file.
-
Wait until it succeeds.
-
Finally, send the Fiscal Module Update.
-
Once it is 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. Although steps have been taken to ensure that the POS will not start or perform transactions without a valid configuration it is the retailers responsibility to ensure a valid configuration is present and not to try to circumnavigate 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 below.
Group Type | Group ID | Group Name |
---|---|---|
Region | LV | Latvia |
Tax Region | LV | Latvia |
Price | LV | Latvia |
Region Group
The region must be configured to continue the other configurations related to the fiscalisation. Region for Latvia should be created within the Region Group Hierarchy.
Tax Region Group
Price Group
Locale
The following Locale should be configured and broadcast to the appropriate Latvia devices.
Location
The following Location should be configured and broadcast to the appropriate Latvia devices.
Add the following details which are needed in the receipt header
Location Maintenance → Receipt tab → Receipt Header Lines
Set Company Tax ID for the VAT Number in Location Maintenance's General tab.
Tax Groups
The following tax groups should be configured and broadcast to the appropriate Latvia devices.
Tax Group ID | Description |
---|---|
LV-01 | LV Standard VAT 21% |
LV-02 | LV Reduced Rate 5% |
LV-03 | LV Zero Rate 0% |
Tax Rate
The following tax rates should be configured and broadcast to the appropriate Latvia devices.
Tax Rate ID | Description | Display Code | Percentage | Fiscal Tax Rate Reference | |
---|---|---|---|---|---|
LV-1 | LV Standard VAT 21% | A | 21% | A | |
LV-2 | LV Reduced Rate 5% | B | 9% | B | |
LV-3 | LV Zero Rate 0% | C | 0% | C |
Select VAT 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 ID | Description | Price Include Tax |
---|---|---|
LV | Latvia VAT Scheme | TRUE |
Add all the applicable tax rates (LV-01, LV-02, LV-03) in the Applicable Tax Rates Tab
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: “LV” and the Name: “Latvia”, it is not necessary to configure an External Reference ID.
Tax Group Tax Methods
The following tax group tax methods should be configured and broadcast to the appropriate Latvia devices.
Tax Group ID | Tax Scheme ID | Description | Tax Rate |
---|---|---|---|
LV Standard VAT 21% | Latvia | LV Standard VAT 21% | 21 |
LV Reduced Rate 5% | Latvia | LV Reduced Rate 5% | 5 |
LV Zero Rate 0% | Latvia | LV Zero Rate 0% | 0 |
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.
Device
The following Devices for PDP Server and Mobile POS should be configured and broadcast to the appropriate Latvian devices.
Select the Device type as Mobile Server
Select Device type as Mobile POS
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.
Check Is Remote Terminal
Select Mobile Terminal from the drop down
Select “CHD Latvian Fiscal Printer” from receipt printer type dropdown.
The CHD printer IP address and port should be configured in the POS Terminal Maintenance under 'Receipt Printer Address' and broadcasted to the POS and/or PDP server.
Receipt Printer Shared must NOT be ticked.
Set the printer IP and port as in the above image. The Port may be either 5345 in a test lab or 5344 in a production like environment but this should be checked with CHD.
Set barcode.type
barcode.textPosition
barcode.leftmargin in the **Receipt Printer Config
**
e.g.
Select “Printer-Attached Cashdrawer” from the cash drawer type dropdown
Disable following Privileges, if they are enable
Privilege ID | Application Package |
---|---|
enactor.pos.ContinueWithDrawerOpen | Enactor POS |
enactor.pos.SignOnWithDrawerOpen | Enactor POS |
enactor.pos.SkipDrawerStatusInitializationChecking | Enactor POS |
Drawer Configuration Parameters
-
Navigate to POS Terminal Template Maintenance
-
Edit the relevant POS Terminal Template
-
Navigate to Printing → Output
-
Add the following configurations if needed in the **Receipt Printer
Config**
drawerOpenTimeout – An integer value that indicates the waiting time
(in milliseconds) for processing the drawer open command from Enactor
POS. The default value is set to 4000. Be cautious when setting
unnecessarily high values, as it may cause the POS to remain
unresponsive for an extended period.
(Type: Integer, Unit: milliseconds, Optional)
drawerCheckWaitTimeout – An integer value that defines a delay (in
milliseconds) before sending the drawer check command
(CHECK_DRAWER_CLOSED) to the CHD device. The default value is 0.
This configuration was introduced based on CHD team's recommendation, as
sending the drawer check command immediately after sale commands may
lead to issues. This delay helps prevent such problems in production
environments.
(Type: Integer, Unit: milliseconds, Optional)
allowChdOpenDrawer – A Boolean value that determines whether the
drawer should be opened using the CHD-side functionality. The default
value is false. When set to true, the drawer opening will be
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.
(Type: Boolean, Optional)
Select Custom as the Customer Display Type
Add the Customer Display Classname as com.enactor.peripherals.fiscalPrinter.latvia.CHDLatviaLineDisplay
Add the Customer Display Address
e.g. tcp:172.16.251.119:5345
The Customer Signature Slip should be set to Customer Signature Slip 48 Col
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 be checked
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
Create a POS Terminal for the Device type Mobile Pos
Select the Device ID created for the Mobile POS
Select the POS Terminal Template
Tender
The following Tenders should be configured and broadcast to the appropriate Latvia devices. (Configure Card and Cash_GBP if necessary)
Set Fiscal Tender Id for the Tender Id
e.g.
Tender ID | Tender Type | Fiscal Tender Id |
---|---|---|
CASH | Cash | CASH |
CARD | Card | CARD |
These values should be set according to the CHD Tender Configurations:
Fiscal Tender ID maps to TENDERID and TENDERTYPE in CHD
If the values are not set, by default TENDERTYPE is “CASH” will be sent
to the printer.
These values will be sent to the CHD Printer with each sale.
Check Open Drawer and Open Drawer At End for the tender that needs to open the cash drawer
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. For more detail on Privileges and roles refer to the How-To Guide Configuring User, User Roles and User Templates
Privilege ID | Application Package |
---|---|
enactor.pos.AllowReturnTaxRefundItemAlreadyRedeemed | Enactor POS |
enactor.pos.AuthorisesReturnItem | Enactor POS |
enactor.pos.ReturnItemAllowed | Enactor POS |
enactor.pos.GiftCardTenderAllowed | Enactor POS |
enactor.pos.VoidTransactionDiscountAllowed | Enactor POS |
enactor.admin.Run | Enactor POS |
enactor.pos.ReprintRecentReturnToTransaction | Enactor POS |
enactor.pos.VoucherRedeemAllowed | Enactor POS |
enactor.pos.ReturnFromReceiptAllowed | Enactor POS |
enactor.pos.AuthorisesVoidCardTenderItem | Enactor POS |
enactor.pos.AuthoriseDayEndBeforeEarliest | Enactor POS |
enactor.pos.AuthorisesVoidTenderItem | Enactor POS |
enactor.pos.CashRefundAllowed | Enactor POS |
enactor.dayStart.AuthorisesDayStart | Enactor POS |
enactor.pos.AllowEmployeeReturnIfUserInvolved | Enactor POS |
enactor.pos.RequestSimpleFiscalInvoiceAllowed | Enactor POS |
enactor.pos.AuthorisesNoSale | Enactor POS |
enactor.pos.NoSaleAllowed | Enactor POS |
enactor.pos.PrintFiscalReportsAllowed | POS Fiscalisation |
enactor.pos.AuthorisesPrintFiscalReports | POS Fiscalisation |
enactor.pos.fiscal.AuthorisesPrintInvoiceFromArchive | POS Fiscalisation |
enactor.pos.fiscal.PrintInvoiceFromArchiveAllowed | POS Fiscalisation |
enactor.pos.fiscal.AuthorisesSetFooter | POS Fiscalisation |
enactor.pos.fiscal.SetFooterAllowed | POS Fiscalisation |
Menu
On the EM navigate to Configuration > System > Menu
-
Edit the “SALE” menu for the Menu Group “Standard POS”
-
Add a folder under “Sales > Management > Report” called “Fiscal
Reports”
-
Add new buttons to the Fiscal Reports Folder for the following:
Event | ID | Button Label | Name | Java Type | Value |
---|---|---|---|---|---|
Fiscal_PrintReports_X | Fiscal_PrintReports_X | Fiscal X Report | ReportType | String | X |
Fiscal_PrintReports_Z | Fiscal_PrintReports_Z | Fiscal Z Report | ReportType | String | Z |
Fiscal_PrintReports_Periodic_ByFiscalNumber | Fiscal_PrintReports_Periodic_ByFiscalNumber | Fiscal Periodic Report By Fiscal Number | ReportType | String | PERIODIC |
For more detail on menu creation refer to the How-to Guide Configure POS Behaviour (Menus)
Translations
Deploy the pos-fiscalisation JAR using the JAR Deployer
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, which is 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.
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.
About This Document
©2020 Enactor Ltd
All documents produced by Enactor Ltd are supplied to customers subject to Copyright, commercial confidentiality and contractual agreements and must not be copied or transferred without permission.
The amendment history of this document can be found in the table below***.***
Current Document Version information
Document Version 1.1
Product Version 2.5
Document Context
This document is part of the Enactor Product Documentation Series. All Enactor products include a comprehensive documentation set designed to improve understanding of the product and facilitate ease of use.
Document Inquiries
At Enactor we aspire to produce the highest quality documentation to reflect and enhance the quality of our product. If you find that the document is inaccurate or deficient in any way, please assist us in improving our standard by letting us know.
For matters of document quality or any other inquiries regarding this document please contact:
By Email: documentation@enactor.co.uk
Document History
The following versions of the document have been produced:
VERSION | STATUS | ISSUE DATE | AUTHOR | REASON FOR ISSUE |
---|---|---|---|---|
1.0 | Initial Draft | 31/05/24 | KG | Initial version |
1.1 | Enhanced | 04/06/25 | KE | Added configs |
1.2 | Enhanced | 30/07/25 | KE | Added configs |