Starting from r_keeper version 7.5.X, the cash server support for DOS is terminated.

By default, MIDSERV.EXE is the cash server executable file.

The default cash server configuration file is RKEEPER.INI.

To download a distribution kit, go to

Copy the RKEEPER.INI file from the \bin\win\ini\ folder to the working \bin\win\ folder, where MIDSERV.EXE is located.

When installing the software via an installer, the server with its configuration file can be found in the following folder: [installation path\instance name\Rk7MidServer].

The names of the server and the configuration file can be random, but you should keep in mind that the server will by default search for the RKeeper.ini configuration file, if you do not specify which INI file should be used. Find the information on the use of other configuration files below, in the «Launch» paragraph.


The cash server should be licensed. The license is linked to the full object code (9 digits) and the key code.

Before licensing a server, create it at the manager station in the «Service – Stations and devices» reference.

As an example, find a description of the cash server licensing procedure for the object (restaurant) with a full code 199990039. It is implied that an object with the code 199990039 has already been created at, and it has an active master license for the «r_keeper 7 Stations» software.

At the manager station, perform the following:

  • Specify the corporate code (Options – Parameters – Installation – Enterprise Code – Integer).
  • Specify the restaurant code (restaurant property «CODE») in accordance with the object credentials from
  • Select a protection key (Licensing - Common –> Protection key –> Actual number).
  • Generate a licensing request (right-click the cash server icon –> Actions).
  • Generate a license at and insert it in the «Licensing - Cash Stations –> License key» field.
  • Save the changes.


Before you launch the cash server, create it in the «Service – Stations and devices» reference at the manager station and perform the licensing.

To launch the server, do the following:

  1. Create the server at the manager station in the «Service – Stations and devices» reference, assign a unique network ID to it, f.ex. MIDSRV3001, change its status to «Active» and save the changes.
  2. License the server.
  3. In RKeeper.ini, specify the following parameters in the [Config] section:
    • RefServer = RK7SRV ;; the name of the references server, where the specific cash server connects to (equal to the Server parameter in RK7SRV.INI).
    • Client = MIDSRV3001 ;; the cash server network ID according to item 1.
  4. Launch the server.
The first launch should always be performed as an application (with the /desktop parameter). Also, make sure to run it as administrator.

Both the cash server and the references server can be launched as a service. For this purpose, use the /install parameter.

After the server is launched as an application (midserv.exe /desktop), the following icon will appear in the tray:

Launching multiple servers

Each cash server created at the manager station has its own directory with the work.udb operational database  (the directory path should be specified in the BasePath parameter), and its own INI file with a unique server name.

If you are planning to launch multiple cash servers, the following variants are possible:

Variant A — launching multiple servers with different INI files from the same \bin\win folder.

A.1. Launching as an application:

midserv.exe /ininame:rkeeper1.ini /desktop  — launching the 1st server
midserv.exe /ininame:rkeeper2.ini /desktop  — launching the 2nd server

A.2. Installing a service:

midserv.exe /ininame:rkeeper1.ini /install — service installation for the 1st server

midserv.exe /ininame:rkeeper2.ini /srvname:midserver2 /install — service installation for the 2nd server. Do not forget to set a new name for the service!

In each INI file specify a unique log file name for each server (ERRORLOG = midsrv.stk)

Variant B — launching each server from a separate folder (copy of \bin\win).

B.1. Launching as an application:

c:\rk7\bin\win\midserv.exe /ininame:rkeeper.ini /desktop — launching the 1st server
c:\rk7\bin\win2\midserv.exe /ininame:rkeeper2.ini /desktop — launching the 2nd server

B.2. Installing a service:

c:\rk7\bin\win\midserv.exe /install — service installation for the 1st server

c:\rk7\bin\win2\midserv.exe /srvname:midserver2 /install — service installation for the 2nd server. Do not forget to set a new name for the service!

Cash server INI file description

[Config] — main section

In the case of a cash register server, this section should contain the cash register parameters (see [Config] for a cash station).

CashServer = MIDSERVER  — a cash server network name

Client = MIDSERVER — same as above (for compatibility purposes); a cash server network name

RefServer = RK7SRV — references server network name

BasePath = ..\..\MIDBASE — a operational database path

If multiple cash servers are used, each of them should have a unique folder, the name of which has to be specified in the corresponding INI file.

RECREATEBASE = 0 — if 1 is set, the operational database is re-created at every launch; if -1 is set, it is not re-created even if the version changes.

ArchivePath = (BasePath + ‘Archive\’) — a path to the receipt archive

InterfacePath — a path to the interface DLLs

TwoFilesMode = 0 — if 1 is set, 2 files per collection are created, and then switched. It enhances reliability but also increases the file saving time. If you have permanent access to the references server, 1 does not make sense.

ShortTimeout = 20000 — the maximum time (ms) of a network operation for a single item

LongTimeout = 100000 — the maximum time (ms) of a network operation for a collection

StartLang = .\midserv.rus — the cash server initial language, used to display the errors that occur before the references are loaded («Unable to connect to the server», etc.); after the loading, the language will be taken from the «Language preferences» parameter group.

KeepModules = 0 — keep the module list loaded in the memory. Relevant for cash register + server only. By default, it is 0 for the cash register + server combination, and 1 for a simple cash server. If you are planning to connect cash stations via network to the cash register + server combination, set 1.

FileSyncPath= (BasePath + 'Incoming\') — the path to the folder, from which synchronization files should be taken
ERRORLOG = midsrv.stk — error log
ErrorLogSize = 1048576 — error log size

AlwaysZOnCommonClose = 0 — whether the Z report should be printed when the common shift is closed, even if there were no sales

DebugMessages = () — a comma-separated list of debug message codes
WarningDiskFree=209715200 — the maximum free disk space threshold, at which the message about an insufficient free disk space should be displayed

PollEvents=0 — whether the list of occurred references changes should be periodically requested from the top-level server instead of synchronizing by events. Enable the EventCachePath parameter to make the references server  store those changes in its INI file, 
PollRepeatTime=60 — the periodicity (s) of requesting the list of changes when Pollevents=1

For the purpose of solving the issue with paybindings.uni duplication, the following settings are provided:

NoUdbPacketMode — disable the batch mode when writing data into work.udb. Implemented in,,

NoReuseUNI  — disable the reuse of UNI, released during the order calculation. Implemented in,,

ExceptOnCheckUNI — disable the software interruptions and write the events in a log (error 2220)

[NewBaseGenerators] — a section containing initial values of sequences (generators) for a new database

This section is only used when a new database is created.

You can specify the initial values for the following sequences (generators):

OpLogGen = 0 — the internal number of an entry in the operations log (OperationLog table)

SendFile = 0  — the initial file number during the archivation of the file sent to the references server (if the number is already used, the parameter value will increase)

VisitGen = 1000 — 2 least significant bytes of the internal visit number (2 most significant bytes are taken from the date)

CheckGen = 100000 — the number of the receipt (CheckNum field)

CashInOutGen = 0 — the internal number (the UNI field) of the deposit/withdrawal documents, the internal invoice number

InvoiceGen = 0 — the number of the invoice (InvoiceNum field)

KDSDishIDGen = 1 — the dish line identifier for KDS (KDSIdent field)

OrderSessGen = 1 — the global package identifier (UniqueID field)

PrintNumberGen = 0 — the printed receipt number, if no fiscal printer or fiscal memory is used, and the «CommonPrintNumber» parameter has the «True» value.

CommonShiftNumber = N — the number, from which the shift numbering should begin. This parameter is relevant, when you need to re-create a cash server, but the shift numbering should be continued. Tested for




PORT=2350 ;; the port for incoming connections


;;An optional parameter; however, the connection will be faster, if it is set; the same is true for the cash register.
;;Sometimes necessary, if broadcast messages fail to pass, or the communication with the top-level server is performed via the Internet

[UPDATE] — server update section

NoUpdate = "1";; Do not update this module and its dependent objects (dll, etc.).

Data synchronization

At a manager station in the cash server properties, there are parameters controlling data synchronization (top-down and bottom-up).

  1. Automatic updates — update this application automatically.
  2. Monitor connection — display the message about connection loss between the cash server and the top-level server. This parameter is added starting from version, is disabled by default.
  3. Online sales data — transmit the online sales data one level upper.
  4. Closed shifts data — transmit the closed shift sales data one level upper.
  5. References — update the references data at this server.
  6. Module databases — update application databases (required for updating clients one level lower).

Now, the «Automatic update» and «Module databases» options, as well as «Closed shifts data» and «Online sales data» are made dependent (i.e., if one parameter is missing, the other is missing as well, and vice versa). In future versions, they will probably work separately.

If you need to disable the online receipts transmission but keep the data upload after the common shift is closed, there are three ways:

  1. Global: disable the «Online data collection» parameter.
  2. For the cash server: set the interval of sending online data at 00:00.
  3. For the reports server: set the interval of downloading online data at 00:00.

Сonfiguring the server at a cash register

  • Find the information on rkeeper.ini settings in the «Config — main section» article.
  • In the PROTOCOLS parameter of the [NETKERN] section, specify the localnet.dll (except for the protocol to be used for the references server communication)
  • When configuring stations and devices at the manager station, specify identical (!) network names for the stations group and the separate station.