Below we present the three required installation steps.
1. Verifying that the operating system recognizes the cash register
Connect the cash register to your computer. Use the RS-232 port on the cash register side and a USB port on the computer side.
Verify that Windows recognizes the cash register in Device Manager, under the Ports (COM & LPT) section:
(illustrative photo only — cash register not connected)
On macOS, available ports and the devices connected to them can be found using the terminal:
ls /dev/tty.*
ls /dev/cu.*
Make a note of the port designation where the ELCOM cash register is located — that is, the label in parentheses next to the Euro-50 Mini Communications Port line.
If the cash register does not appear in the list, install the USB port driver by following the instructions on the ELCOM website, under the Technical Support section.
2. Saving the port identification to the computer
Flexi cannot automatically detect which port the cash register is connected to. This information must be saved to a file on the computer's disk.
Create a file named pos.xml in the following directory:
Windows: c:\Program Files (x86)\Common Files\WinStrom\
Linux: /etc/flexi/
macOS: /Library/Application Support/Flexi/Default/
Note:
· C refers to the primary drive where Windows is installed
· On a 32-bit system, the Program Files (x86) folder is used
Save the following to pos.xml:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<!-- Port na kterem je pokladna dostupna -->
<cashRegisterPort>COM7</cashRegisterPort>
<!-- Treninkovy rezim (nepovinne, vychozi je "false") -->
<cashRegisterTest>false</cashRegisterTest>
</settings>
In the cashRegisterPort section, replace COM7 with the port designation found in step 1.
On macOS, the port name (e.g. "/dev/cu.usbmodem14582") can be found in the terminal (using the command "ls /dev/tty.*"). Replace "COM7" with the port shown.
3. Verifying communication in Flexi
The connection setup can be verified using the Communication Test – Fiscal Cash Register service in the Point of Sale module. If communication is successful, the cash register's identification information will be displayed.
To use it in the point of sale, you need to check the Use Cash Register flag on the document type.
Frequently Asked Questions
Can cash register settings be changed via Flexi?
No. For any changes to the cash register settings, follow the instructions provided by ELCOM, a. s.
Is Linux or macOS supported?
Yes, in the case of eKasa. The setup procedure is similar to that for Windows.
Is it possible to use the cash register via the web interface?
No. Only in the desktop application.
Operation Return Codes
If an error or warning occurs during communication with the cash register, it will contain one of the return codes. The explanations for the individual codes are listed below.
Operation return codes are divided by severity into warnings and errors:
Warning – the command was executed, but an event occurred that the user should be notified about
Error – the command was not executed
returnCode | Code: (hex) | Severity | Description |
0 | 0 | OK | command executed without error |
393227 | 0x0006000B | Warning | invalid parameter value |
1048845 | 0x0010010D | Warning | CHDÚ is more than 80% full |
1048846 | 0x0010010E | Warning | CHDÚ is more than 95% full (consider replacing CHDÚ) |
-2147352571 | 0x80020005 | Error | missing parameter |
-2147221498 | 0x80040006 | Error | purchase full, close the document |
-2147221495 | 0x80040009 | Error | item not found in the purchase |
-2147221493 | 0x8004000B | Error | the last payment did not settle the transaction, complete the final payment |
-2147221490 | 0x8004000E | Error | value surcharge/discount limit exceeded |
-2147221489 | 0x8004000F | Error | percentage surcharge/discount limit exceeded |
-2147221488 | 0x80040010 | Error | surcharge/discount cannot be applied to a zero or negative subtotal |
-2147221487 | 0x80040011 | Error | surcharge/discount cannot be applied again |
-2147221486 | 0x80040012 | Error | surcharge/discount cannot be applied to this item |
-2147221485 | 0x80040013 | Error | quantity1 limit exceeded |
-2147221484 | 0x80040014 | Error | quantity2 limit exceeded |
-2147221483 | 0x80040015 | Error | total quantity limit exceeded (q1 * q2) |
-2147221482 | 0x80040016 | Error | invalid quantity |
-2147221481 | 0x80040017 | Error | unit price limit exceeded |
-2147221480 | 0x80040018 | Error | invalid unit price |
-2147221479 | 0x80040019 | Error | command cannot be executed, purchase is being paid |
-2147221477 | 0x8004001B | Error | withdrawal not permitted |
-2147221476 | 0x8004001C | Error | insufficient funds in the drawer |
-2147221474 | 0x8004001E | Error | cannot sell an inactive PLU |
-2147221473 | 0x8004001F | Error | cannot enter a different price |
-2147221472 | 0x80040020 | Error | item does not exist |
-2147221471 | 0x80040021 | Error | item price is zero |
-2147221470 | 0x80040022 | Error | no sale (document not started or contains no items) |
-2147221469 | 0x80040023 | Error | command not possible in the current state |
-2147221467 | 0x80040025 | Error | PLU is not a returnable container |
-2147221466 | 0x80040026 | Error | linked PLU is not a returnable container |
-2147221464 | 0x80040028 | Error | invalid payment method |
-2147221463 | 0x80040029 | Error | foreign currency cannot be used in the current state |
-2147221456 | 0x80040030 | Error | item cannot be cancelled because its price has already been modified via a subtotal modification |
-2147221446 | 0x8004003A | Error | a descriptive item cannot be cancelled individually |
-2147221445 | 0x8004003B | Error | a descriptive item cannot be sold individually |
-2147221444 | 0x8004003C | Error | invalid tender value |
-2147221441 | 0x8004003F | Error | invalid value for quantity1 |
-2147221440 | 0x80040040 | Error | invalid value for quantity2 |
-2147221439 | 0x80040041 | Error | invalid payment value |
-2147221438 | 0x80040042 | Error | payment limit exceeded |
-2147221437 | 0x80040043 | Error | change limit exceeded |
-2147221436 | 0x80040044 | Error | no items in the purchase |
-2147221423 | 0x80040051 | Error | cashier does not have permission to perform this operation |
-2147221422 | 0x80040052 | Error | no tax level defined for invoice |
-2147221421 | 0x80040053 | Error | incorrect tax level for PLU |
-2147221416 | 0x80040058 | Error | operation is disabled, a software update must be performed |
-2147221406 | 0x80040062 | Error | document was rejected by the server or cancelled due to an internal error |
-2147221392 | 0x80040070 | Error | position was not selected |
-2147221391 | 0x80040071 | Error | surcharge is not supported |
-2147155958 | 0x8005000A | Error | cannot perform daily closing, closing has already been performed |
-2147155957 | 0x8005000B | Error | cannot perform monthly closing, daily closing has not yet been performed |
-2147155956 | 0x8005000C | Error | cannot perform monthly closing, closing has already been performed |
-2147155952 | 0x80050010 | Error | unsupported command |
-2147155951 | 0x80050011 | Error | journal checksum calculation error |
-2147155950 | 0x80050016 | Error | cannot perform monthly Z-closing of the drawer, daily Z-closing of the drawer has not yet been performed |
-2147090425 | 0x80060007 | Error | record does not exist |
-2147090423 | 0x80060009 | Error | unsupported table |
-2147090422 | 0x8006000A | Error | unknown record attribute |
-2147090420 | 0x8006000C | Error | value cannot be set (read-only attribute or conditions for change not met) |
-2147090416 | 0x80060010 | Error | value cannot be set, the requested change conflicts with another setting |
-2147090415 | 0x80060011 | Error | value cannot be set, daily and monthly financial closing must be performed first |
-2147090414 | 0x80060012 | Error | value cannot be set, daily financial closing must be performed first |
-2147090413 | 0x80060013 | Error | value cannot be set, monthly financial closing must be performed first |
-2147090412 | 0x80060014 | Error | command cannot be executed (conditions for execution not met) |
-2147090408 | 0x80060018 | Error | value cannot be set due to duplicate barcode |
-2147090407 | 0x80060019 | Error | unsupported or invalid data format |
-2147090406 | 0x8006001A | Error | no graphic logo |
-2147090405 | 0x8006001B | Error | header has not been set |
-2147024891 | 0x80070005 | Error | incorrect or missing communication command parameters |
-2147024889 | 0x80070007 | Error | unsupported command |
-2147024887 | 0x80070009 | Error | command cannot be executed, cash register is busy |
-2147024886 | 0x8007000A | Error | connection refused |
-2147024885 | 0x8007000B | Error | battery discharged, command cannot be executed |
-2147024884 | 0x8007000C | Error | a software update must be performed by the time shown on the cash register display |
-2146434815 | 0x80100101 | Error | certificate in CHDÚ is not programmed |
-2146434814 | 0x80100102 | Error | certificate in CHDÚ is no longer valid |
-2146434812 | 0x80100104 | Error | serial number is not programmed |
-2146434811 | 0x80100105 | Error | cash register has not been put into operation |
-2146434809 | 0x80100107 | Error | VAT number is not programmed |
-2146434808 | 0x80100108 | Error | cash register code is not programmed |
-2146434807 | 0x80100109 | Error | company name is not programmed |
-2146434806 | 0x8010010A | Error | company address is not programmed |
-2146434801 | 0x8010010F | Error | CHDÚ is full (CHDÚ replacement required) |
-2146434800 | 0x80100110 | Error | CHDÚ functionality is blocked |
-2146434798 | 0x80100112 | Error | eKasa certificate upload failed |
-2130640695 | 0x810100C9 | Error | print head raised |
-2130640693 | 0x810100CB | Error | receipt paper missing |
-2130640689 | 0x810100CF | Error | command not possible in the current state |
-2130640679 | 0x810100D9 | Error | inactive tax |
-2130640677 | 0x810100DB | Error | invalid date or time |

