Skip to main content

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

  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 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 TypeGroup IDGroup Name
RegionLVLatvia
Tax RegionLVLatvia
PriceLVLatvia

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 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 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

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 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

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 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 PrintingOutput

  4. 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 IDTender TypeFiscal Tender Id
CASHCashCASH
CARDCardCARD

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 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 EM 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

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:

VERSIONSTATUSISSUE DATEAUTHORREASON FOR ISSUE
1.0Initial Draft31/05/24KGInitial version
1.1Enhanced04/06/25KEAdded configs
1.2Enhanced30/07/25KEAdded configs