How To Guide Fiscal Lithuania
Fiscal Overview
For shared background, see Fiscal Overview.
Lithuania Fiscalisation Introduction
In Lithuania, 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 ‘application updater update.zip’ file first.
-
Wait until it succeeds.
-
Then send the ‘update POS min.zip’ file.
-
Wait until it succeeds.
-
Finally, send the Fiscal Module Update.
-
Once it is succeeded, the POS is ready with the new POS Fiscal
Module.
Configuration Overview
The following configuration changes are required and must be broadcast to all Lithuania 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 Lithuania Fiscal Legislation through misconfiguration of the solution.
Tax Groups
The following tax groups should be configured and broadcast to the appropriate Lithuania devices.
Tax Group ID | Description |
---|---|
LT-01 | LT Standard VAT - 21% |
LT-02 | LT Reduced Rate 9% |
LT-03 | LT Reduced Rate 5% |
LT-04 | LT Zero Rate 0% |
Tax Scheme
The following tax scheme should be configured and broadcast to the appropriate Lithuania devices. Make sure to add all the Tax Rates related to Lithuania in the Applicable Tax Rate Tab as well.
Tax Scheme ID | Description | Price Include Tax |
---|---|---|
LT | Lithuania Tax Scheme | TRUE |
Add all the applicable tax rates (LT-01, LT-02, LT-03, LT-04) in the Applicable Tax Rates Tab
Tax Rates
The following tax rates should be configured and broadcast to the appropriate Lithuania devices.
Tax Rate ID | Description | Display Code | Percentage | Fiscal Tax Rate Reference | |
---|---|---|---|---|---|
LT-1 | LT Standard VAT - 21% | A | 21% | A | |
LT-2 | LT Reduced Rate 9% | B | 9% | C | |
LT-3 | LT Reduced Rate 5% | C | 5% | B | |
LT-4 | LT Zero Rate 0% | D | 0% | D |
Tax Region
If it does not already exist, a Tax Region for Lithuania should be created within the Tax Region Group Hierarchy. It should have the ID: “LT” and the Name: “Lithuania”, 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 Lithuania devices.
Tax Group ID | Tax Scheme ID | Description | Tax Rate |
---|---|---|---|
LT Standard VAT 21% | Lithuania | LT Standard VAT 21% | 21 |
LT Reduced Rate 9% | Lithuania | LT Reduced Rate 9% | 9 |
LT Reduced Rate 5% | Lithuania | LT Reduced Rate 5% | 5 |
LT Zero Rate 0% | Lithuania | LT Zero Rate 0% | 0 |
Product Tax
The following tax configurations should be configured againts the products and broadcast to the appropriate Lithuania devices.Tax group can be defined to either configure the tax group or have a tax group by tax region.
POS Terminal Template
The POS Terminal Template used by all devices in Lithuania must be configured to have the Fiscalisation Type set to Lithuania. Currency should be set to Euro and Locale to Lithuania. If a POS terminal configuration with the Fiscalisation type set to Lithuania is broadcast to a POS device that does not have the Lithuania fiscal module installed the POS will fail to start. Similarly if a POS device with the Lithuania fiscal module installed is configured with anything but the Lithuania Fiscalisation type the POS will also fail to start. This is to ensure that only versions of the enactor solution that have been certified for use in Lithuania are used in Lithuania.
Select “CHD Lithuanian Fiscal Printer” from receipt printer type dropdown.
CHD printer IP address and port should be configured against the POS terminal maintenance Receipt Printer Address and broadcast to POS and or PDP server.
Receipt Printer Shared must NOT be ticked.
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 |
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.
Select Custom as the Customer Display Type from the dropdown.
Set Customer Display Classname to com.enactor.peripherals.fiscalPrinter.lithuania.CHDLithuaniaLineDisplay in the configuration
set Customer Display Address to <IP>:<port> and Customer Display At Server to true
Set Receipt Printer Config as below,
barcode.type
barcode.textPosition
barcode.leftmargin
For barcode.leftmargin value we can be set in the range of 0-255. The default is 0. We can move the left margin until the barcode reaches the right end of the receipt, If the barcode exceeds the right most end of the receipt, the printer will not print the barcode.
For barcode.type=CODE93 the working left margin is only 0 in our
tests.
**barcode.leftmargin=0
**
For barcode.type=ITF the working left margin is up to 40 in our
tests.
barcode.leftmargin=40
This depends on the receipt width and the Barcode Type.
The Primary Receipt should be set to Fiscal 70 Standard Receipt and Page Printer Fiscal Invoice should be set to Lithuania Fiscal A4 Standard Receipt.
The Customer Signature Slip should be set to Fiscal Customer Signature Slip 70 Col
The Warranty Slip should be set to Fiscal Warranty Slip 70 Col
The ‘Print Tax Details on Receipt’ flag within the printing > flags tab should be ticked.
Within the Tax section the Tax Region should be set to Lithuania and the Tax Scheme to the Lithuania Tax Scheme configured in the previous section.
Document Function Maintenance
Create a new Document Function “PrintReceipt”
Location Printers Maintenance
Create a new Location Printer for Lithuania POS Location
Set Printer Category as “A4 document printer”
Set System Printer for Printer Type
Add printer name for the Printer Address
Note:
If the file saving of the invoice is needed add "enactor.pos.SavePagePrinterReceiptToFile” privilege
If a physical printer is not connected, add “enactor.pos.SKipPagePrinterReceiptPrint” to skip trying to print with the system printer
Document Printer Mapping Maintenance
-
Create a new document printer mapping
-
Select “Print Receipt” as function
-
Select the correct store location
-
Select the device that printer is connected to.
-
Press create button
Printers created under the location printer maintenance should be listed under the Primary Printer dropdown.
Select the relevant A4 printer as Primary printer and save.
Location
Set Company Tax ID for the VAT Number in Location Maintenance's General tab.
Tender
When creating tenders in Enactor Tender Maintenance, ensure that the Tender ID for the the tender is entered in all capital letters e.g. 'CASH' and matches the TENDERID config on the CHD xsPOS.
The mapping from Enactor to CHD is as follows:
-
fiscalTenderId is mapped to TENDERTYPE
-
fiscalTenderType is mapped to CUSTOMTYPE
-
tenderId is mapped to TENDERID
These values should be set according to the CHD documentation:
N.B. When using non-integrated payments the TENDERTYPE should be sent as Cash i.e. 0, since sending Card i.e. 1, would trigger the CHD payment solution.
CUSTOMTYPE is the tender value that will be sent to I.EKA the possible values are provided by CHD in the following list:
-
"1": Cash
-
"2": Debit or credit card
-
"4": Coupon
-
"6": PSD (medicine, health insurance fund)
If the values are not set, by default TENDERTYPE = “0” and CUSTOMTYPE = “1” will be sent to the printer.
For cash tenders, set the Minimum Accepted Denomination to €0.05, and in the Debit Rounding Rule dropdown, select 'Nearest' under the Restrictions 1 tab.
Privileges
The following privileges will need to be configured against the appropriate roles and broadcast to the Lithuania 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 |
Note: The following privilege needs to be removed for the Lithuanian Cashiers: enactor.pos.AutoSignOffStoreTransaction
This permission is causing the POS to send the transaction to the EM as a completed transaction when the POS is configured to be automatically signoff. To prevent this please disable this privilege.
Menu
The following Menu should be configured and broadcast to the appropriate devices.
Sale 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_ByDate | Fiscal_PrintReports_Periodic_ByDate | Fiscal Periodic Report By Date | ReportType | String | PERIODIC |
Fiscal_PrintReports_Periodic_ByFiscalNumber | Fiscal_PrintReports_Periodic_ByFiscalNumber | Fiscal Periodic Report By Fiscal Number | ReportType | String | PERIODIC |
-
Edit the “SALE” menu for the Menu Group “Standard POS”
-
Add a folder under “Admin” called “Footer”
-
Add new buttons to the Fiscal Reports Folder for the following:
Event | ID | Button Label | Name | Java Type | Value |
---|---|---|---|---|---|
Fiscal_Set_Footer | Fiscal_Set_Footer | Set Footer | ConfigType | String | SET_FOOTER |
For more detail on menu creation refer to the How-to Guide Configure POS Behaviour (Menus)
Groups
Create new Price group and Region For Lithuania
Translations
There are a number of translations that need to be done to get the customer display to show Lithuania rather than defaulting to the standard English value:
The till welcome and till closed message should be provided on either the location template or the location maintenance depending on if you would like different messages in each store.
Item Discounts should have a Lithuania translation for the description.
The promotion description should be in Lithuanian. There is no locale specific translation for promotions as promotions are expected to be unique to a country.
For the standard messages on the display they come from Pos/Print/ReceiptMessages the main ones are:
and
There is currently an issue where the customer display, product, tender and discount translations are taken from the user locale rather than the location locale. For the time being the user locale should be set to Lithuanian for Lithuania staff. This should not affect the majority of behaviour for the POS since Lithuanian translations have not been provided so will still default to English.