Skip to main content

PayComplete™™ Help Center

Configuration without Connect on-Device Studio

Use these procedures to configure the machine without Connect on-Device Studio.

Connect on-Device installation folder and folder structure

The Connect on-Device installation folder contains configuration files with examples of settings for new features.

CashCompleteFileStructure.png

Connect on-Device folder structure

When you upgrade the software, new features and limits are not automatically added to the configuration files in the configurable folder of the installation folder structure. Check the release notes to find which features to use.

Open the configuration files in the installation folder and copy the new strings to the upgraded configuration files in the configurable folder.

Configured limits and settings for the added features are persistent. That is, when you upgrade the software the next time, the configured limits and settings are unaffected by the software upgrade.

Tip

Persistent means that the data is unaffected by a software upgrade.

Important

  • When editing, make sure you do all the changes in the persistent files. That is, in the files that are unaffected by the software upgrade. Do not edit the files in the Static folder.

  • If you have custom icons and are running Connect on-Device, version 3.15.1 or later, AND have used Connect on-Device Studio to add your custom icons, the icon files are persisted when you upgrade the software.

  • If you have custom icons and are running Connect on-Device, version 3.15.0 or earlier, you have to manually copy the custom icon files to [installation folder]\resources\static\images\display\default of the new installation. Make sure to make a backup of your custom icon files before upgrading.

Folder or file

Contents

bin

Startup scripts

cashunits

Box contents for devices

data

Runtime data — Persistent

  • plugins — SDK plug-ins and content

  • scripts\extcheck — Groovy scripts

history

Legacy log and journal files

incoming

This folder can be used when you want to add/edit/delete users in the users.xml file by copying the contents of a users.xml file containing the changes you want to apply. You can also use this folder to paste firmware updates you want to install.

lib

Program files

ojdb

Application database — Persistent

reports

Nightly reports

resources

Application configuration and resources

configurable

User-editable configuration and resources — Persistent

  • templates\display\themes — Custom themes

configuration

Configuration files

i18n

Translation files

  • display — User view

  • management — Operator view

  • receipts — Receipts

images

Image files

  • display — background image

    • custom — Manually added SDK plug-in icons

    • provided — SDK plug-in provided icons

  • receipts — receipt logo

receipts

Header and footer for receipts

sounds

Custom sounds used by the application

default

Original configuration and resources

static

Application maintained configuration and resources

tmp

Temporary files

tools

Startup scripts for additional tools

  • configurator — Connect on-Device Studio

  • kuantest — Test tool for SDS-700/750

  • proxy — Library files for the J/XFS proxy

  • ReceiptJ — Receipt editor

  • sdk — SDK library files, documentation, and examples

  • spi — Groovy scripting library files, documentation, and examples

trace

Application logs

machineid.txt

Machine license ID

Machine UUIDs

A UUID is the unique identifier of a machine's Connect on-Device installation.

In Connect on-Device you set the machine UUID to identify individual machines, or Connect on-Device instances, in the communication with Connect.

The UUID is automatically generated the first time you start Connect on-Device.

These are the most common situations when you may want to change a UUID;

  • You need to replace a machine

  • You need to replace a computer connected to a machine

  • You need to replace a hard drive

If you want the new machine to appear as the old, you need to copy the UUID of the old machine and then change the UUID of the new machine into that of the old machine.

You can change the UUID from within Connect on-Device, both manually and by scanning a QR code containing the UUID. From the Administration main menu in Connect on-Device, you can view the current UUID and print it.

Important

Changing the UUID requires a user account with a role that has the SET_MACHINE_ID permission.

Setting the UUID

You configure the UUID for a machine when you want to replace the machine, the computer, or the hard drive.

Important

Prerequisite:

The user account you use when signing in to Connect on-Device must have a role with the SET_MACHINE_ID permission.

Task. Set the UUID
  1. Sign in to Connect on-Device.

  2. Select Administration.

  3. Select SET UUID.

  4. Select Print to print the UUID code and the QR code.

    Select Set UUID to open the view where you enter the UUID.

  5. Enter the UUID into the text field or scan the QR code to enter the UUID.

  6. Select Enter.

Note

Connect on-Device restarts when the UUID has been set.

Manually upgrading Connect on-Device licenses

Prerequisites: You need an account with the following permissions:

  • OPERATOR_VIEW

  • SERVICE_MODE

You upgrade your license from Basic Edition to any other edition when you need to expand the functionality of your Connect on-Device.

Task. Manually upgrade Connect on-Device licenses
  1. Sign in with an account that has the required permissions.

  2. Select Administration.

  3. Select Operator View.

  4. Select License.

  5. Copy the license ID in the License ID box and send it to your PayComplete™ representative.

  6. There are several ways of entering the license key:

    • In the License key box, select the Import button to open a file browser where you select the license key text file to import. Use this option when you have received the license key in a text file from your PayComplete™ sales representative.

    • In the License key box, paste the license key in the License key box. Use this option when you have received the license key in an email sent by your PayComplete™ sales representative. This option is available from Connect on-Device version, 3.18.0.

    • You can also generate the License key from Connect. For more information on this, please refer to the Connect documentation.

  7. Select Confirm to verify that you want to upload the license key to the machine.

  8. Select Done to close the dialog box.

  9. Select Logout to return to the main menu.

Note

  • Step 6 only applies when you do not intend to use Connect.

  • When you use Connect and your machine never has been online, copy the License ID and paste it in the machine configuration in Connect.

Configuration files overview

In the Connect on-Device installation, configuration files are included. You can change the default configuration by editing the files in a text editor, such as Atom.

Important

Before making changes to a configuration file, make sure you have a backup copy of the file.

File name

Description

PercontaCashunit1.xml

Dispenser levels for coin dispensers in position 1A-1D are defined in this file.

For more information, see Editing hopper levels for coin dispensers.

PercontaCashunit2.xml

Dispenser levels for coin dispensers in position 2A-2D are defined in this file.

For more information, see Editing hopper levels for coin dispensers.

workunit.xml

The groups/work units are defined in this file.

For more information, see Adding a work unit.

exchangeRates.xml

The exchange rates are defined in this file.

com.scancoin.device.transportbox

The high and full settings for the transport box is configured in this file.

For more information, see Configuring supported currencies for bag drop.

com.scancoin.common.dispense. DispenseService

A daily dispense limit for users and roles can be configured in this file. By default, no daily limit is configured.

com.scancoin.flow.dispense.lv. internal.DispenseFlow

A global free float limit for each denomination can be set as well as a cups/cash drawer limit in this file.

com.scancoin.core.userpref.User Preference

Machine set-up for language on display and receipt are defined in this file. The available currencies for bag drop are configured in this file.

For more information, see:

machine.properties

The information defined in this file is used on the receipt.

For more information, see Defining dispense limits.

Devices.properties

Settings for cleaning and service reminders as well as settings for number of coins for each outlet are defined in this file.

moneyremaining

Settings for remaining number of banknotes after a move notes activity are defined in this file.

Configuring languages

You configure languages for the display and receipts in the com.scancoin.core.userpref.UserPreference file.

Task. Configure languages
  1. Open the com.scancoin.core.userpref.UserPreference file in a text editor.

  2. Define the language in lower-case letters using the two-letter ISO-639 code.

  3. Define the country in uppercase letters using the two-letter ISO-3166 code.

Note

In the examples below, note the use of the # number (hash) symbol.

Example 1. Example 1

In this example, English is the activated language.

# American English
operator.locale.lang=en
operator.locale.country=GB
user.locale.lang=en
user.locale.country=GB

# Spanish
#operator.locale.lang=es
#operator.locale.country=ES
#user.locale.lang=es
#user.locale.country=ES

# Swedish
#operator.locale.lang=sv
#operator.locale.country=SE
#user.locale.lang=sv
#user.locale.country=SE


Example 2. Example 2

In this example, Spanish is the activated language.

# American English
#operator.locale.lang=en
#operator.locale.country=GB
#user.locale.lang=en
#user.locale.country=GB

# Spanish
operator.locale.lang=es
operator.locale.country=ES
user.locale.lang=es
user.locale.country=ES

# Spanish (Mexico)
#operator.locale.lang=es
#operator.locale.country=MX
#user.locale.lang=es
#user.locale.country=MX


Defining dispense limits

Dispense limits limit the amount of money that can be dispensed from a machine. You can configure dispense limits for a group of machines. You can specify dispense limits for multiple currencies.

Important

Before defining dispense limits, you must enable dispense limits in the com.scancoin.common.remote.properties file.

enable_dispense_limits.png

Distributed dispense limits are dispense limits shared by all machines within one machine group. It is possible to configure distributed dispense limits on one machine in a machine group, and then all machines in that machine group get the same dispense limits.

From Connect, you can configure and combine distributed dispense limits for:

  • Machine — limits the amount of money that can be dispensed from the machine or for a group of machines.

  • Role — limits the amount of money a user with that role can dispense from the machines in the selected smart machine group.

  • Machine user (user/role) — limits the amount of money a user can dispense from the machines in the selected smart machine group.

  • Work unit — limits the amount of money a work unit can dispense from the machines in the selected smart machine group.

There are two available settings for dispense limits:

  • Machine limit

  • User limit — You can configure the user limit per role or individual.

You configure the dispense limits in the com.scancoin.common.dispense.DispenseService file.

Note

Defined value as exponent value, that is, “50 cents” equals “50”.

Define a dispense limit for a role
DailyDispenseLimit.role.{roleName}={Currency list}
Define a dispense limit for a user
DailyDispenseLimit.user.{userId}={Currency list}
Currency list

A currency list consists of the currency, a colon symbol (:) and the total value. Entries are separated with commas, for example: EUR:10000, SEK:50000

Note

If a currency is not listed, it will not be limited

Define a dispense limit for a machine

It is possible to set a dispense limit per machine. The machine has an account of its own. The dispense limit per machine overrules the dispense limit set per user, for example:

DailyDispenseLimit.machine=EUR:10000
Daily reset

The daily dispense limit is, by default, reset every midnight.

To reset at any other hour set the DayBreakHour, for example:

DayBreakHour=15

To set the DayBreakHour for a certain user, for example:

DayBreakHour.user.(userID)=16
Transaction affecting the user dispense limits

Use commas to separate transactions.

Possible values are:

  • DISPENSE (default)

  • DEPOSIT and DISPENSE

Example: DEPOSIT and DISPENSE: TransactionTypesAffectingLimits=DEPOSIT,DISPENSE

DailyDispenseLimit.user.{cashierAnna}={EUR:150000}

The code has the following effect on Cashier Anna’s deposit and dispense actions during one day.

  1. Anna dispenses a float, 1500 Euro.

  2. Anna deposits 3000 Euro.

  3. Anna can now dispense 3000 Euro.

Example: DEPOSIT and DISPENSE: TransactionTypesAffectingLimits=DISPENSE

DailyDispenseLimit.user.{cashierAnna}={EUR:150000}

The code has the following effect on Cashier Anna’s deposit and dispense actions during one day.

  1. Anna dispense a float 1500 Euro.

  2. Anna deposits 3000 Euro.

  3. Anna can not dispense a new float.

Transactions affecting the machine dispense limits

Use commas to separate the transactions. Possible values are DISPENSE, DEPOSIT and DISPENSE. The default option is DISPENSE.

Example: DISPENSE, DEPOSIT: MachineLimitTransactionTypes=DISPENSE,DEPOSIT

DailyDispenseLimit.machine=EUR:15000

The code has the following effect on the machine deposit and dispense actions during one day.

  1. Total value of dispenses during a time period is 1500 Euro.

  2. Total value of deposit is 3000 Euro.

  3. It is possible to dispense another 1500 Euro from the system.

Example: DISPENSE: MachineLimitTransactionTypes=DISPENSE

DailyDispenseLimit.machine=EUR:15000

The code has the following effect on the machine deposit and dispense actions during one day:

  1. Total value of dispenses during for example 9 hours is 1500 Euro.

  2. No more cash can be dispensed from the system.

Transaction types that immediately reset the dispense limit

Use in conjunction with DayBreakHour=-1 to remove the daily renewal. ResettingTransactionTypes=END_OF_SHIFT

Limiting the number of notes in free float and mixes

Set number of notes for MaxDispenseCountOfNotes.

Note

If no limit is set, the maximum allowed by the note devices is the limit.

Example: MaxDispenseCountOfNotes=80

Limiting the account to the initial value

Set canExceedInitial to false to limit the account to the initial value also when more than the initial value has been deposited.

When set to true, the deposit adds to the initial value and changes the dispense limit.

Example: canExceedInitial=true

Dispense limit example
DailyDispenseLimit.role.{cashier}={EUR:15000,DKR:1500} TransactionTypesAffectingLimits=Deposit DayBreakHour.user.cashier=20
DailyDispenseLimit.machine=EUR:300000 DayBreakHour=06

The code limits the dispense according to the description below.

  • For a cashier the dispense limit is 150 Euro. Since the system also handles the Danish currency, this currency is also limited. If the cashier deposits money, the dispense limit is affected.

  • The reset time for a cashier is 20.00 (8 p.m.) when the store closes.

  • For the machine in total (for all users), the dispense limit is 3000 Euro.

  • The reset time for the machine is 06:00 (6 a.m.).

Custom data entry

Custom data entry is a method to add customer-defined data to different kinds of transactions.

You configure custom data entry in this file:

custom_data_entry.xml

The file is located in:

[installation folder]\resources\configurable\configuration\custom_data_entry.xml

The general structure of this document is:

<user_field_definitions>
    <entry-point start="id-of-first-step" />
    <steps>
        <step id="xxx" attributes />
        <step id="yyy" attributes />
    </steps>
</user_field_definitions> 

The entered custom data is included in the resulting RM Transaction message as: <key>=<value> pairs. For more information, see the Connect on-Device RM Protocol, Transaction on SCAN NET.

Custom data entry is available for inclusion on receipts from a custom_data node in the generated receipt context.

Entry points

The table lists the defined entry points for custom data entry.

Entry point

Description

deposit

Allows for custom data entry before entering deposit flow.

dispense

Allows for custom data entry before entering dispense flow.

change

Allows for custom data entry before entering change flow.

refill

Allows for custom data entry before entering deposit- or manual refill flow.

empty

Allows for custom data entry before entering empty notes flow.

purge

Allows for custom data entry before entering purge dispense coins and/or notes.

ship_out

Allows for custom data entry before entering ship out notes/bags or transport box flow.

move

Allows for custom data entry before entering move notes flow.

You can enable custom data entry for each flow with a defined entry point, except for deposit and dispense, which for legacy reasons still require permissions: DEPOSIT_CUSTOM_DATA and/or BAGDROP_CUSTOM_DATA and DISPENSE_CUSTOM_DATA respectively.

Example 3. Example
<-- Defines starting step for custom data deposit. Optional -->
<deposit start="start_deposit" />
<!-- Defines starting step for custom data dispense. Optional --> <dispense start="start_dispense"/>


Custom data entry steps

These are the possible kinds of custom data entry steps:

  • pure_storage — Stores a value without user interaction.

  • enter_data — Allows for numeric or alphanumeric input.

  • selection — Allows for selection from a predefined list of values.

  • script — Stores the result of executing an inline groovy script without user interaction.

    The binding for the script contains the machine UUID as "uuid", current user ID as "userId", role ID as "roleId", optionally work unit name as "unitId", in addition to any/all custom data stored by previous step(s) mapped by their respective keys.

Note

script is available in Connect on-Device version 3.18.0 and later.

Each step has an optional 'next' attribute for the ID of a following step. If no ID is provided, custom data entry is completed and the normal flow is resumed.

You can add an optional list of role ID(s) to limit access to different steps or choices, for example:

<step id="xxx" attributes>
    <role>req_role1</role>
    <role>req_role2</role>
</step>

Note

A step with required roles is only available for users with matching roles.

Table 1. pure_storage attributes

Name

Description

Required

Default

id

Step ID.

-

-

key

Custom data storage key.

Yes

-

value

Custom data value.

Yes

-

displays

On-screen label; The value is displayed on screen as label (value).

No

-

restart_here[a]

If true, this step is used as (re)starting point for multiple deposits.

No

false

restart_button_text><XREF>[a]

Text for “restart” button for multiple deposits.

-

orchard.BackToCustom Data

next

ID of next step.

No

-

[a] Only for deposit



Example 4. Example 1
<pure_storage id="start_deposit" key="kind"
value="AA" displayas="Kind" />

Adds custom data with key: 'kind' and value: 'AA' to a transaction. It is displayed on screen as Kind (AA).



Example 5. Example 2
<pure_storage id="sxx" key="extra" value="XX">
    <role>admin</role>
    <role>admin2</role>
</pure_storage>

Adds custom data with key: 'extra' and value: 'XX' to a transaction if the user has role admin or admin2.



Table 2. enter_data attributes

Name

Description

Required

Default

id

Step ID

Yes

-

key

Custom data storage key

Yes

-

title

Title of step on screen

Yes

-

extra_text

Additional message for display

No

-

numeric

True for numeric keyboard. Input is treated as text or number depending on decimals.

No

false

decimals

Number of decimals for numeric input. A value >=0 enables truly numeric input, default is to retain leading zeros.

No

-1

minchars

Minimum number of characters required

No

0

maxchars

Maximum number of characters for input

No

displayas

On-screen label; The entered value is displayed on screen as label (value).

No

-

barcodeStartPos

Index of first character to use from a scanned barcode

No

0

barcodeLength

Number of characters to use from a scanned barcode

No

-1

restart_here1[a]

If true, this step is used as (re)starting point for multiple deposits.

No

false

restart_button_text<XREF>[a]

Text for “restart” button for multiple deposits

No

orchard.BackToCustomData

regex

Ensures a defined, formatted input. The format is set as a Regular Expression. If the input text does not match the format in the Regular Expression, that is has the wrong syntax, it will be ignored.

No

ull

confirmation

Whether or not a confirmation screen is required. Can be set to true or false. If set to true, then a confirmation dialog will be displayed.

No

false

confirmation_title

Heading used for the confirmation screen - text will be displayed above the keyboard.

No

If empty title attribute is used

retries

Number of retries. If set to 2, user will be asked 1 time and will have 2 additional attempts. User can enter incorrect data 2 times. To disable retries use 0.

No

2

next

ID of next step

No

-



Example 6. Example 1
<enter_data id="enter_sid" key="sid" title="Enter SID">
<role>cit</role>
</enter_data>

Allows a user with role “cit” to enter arbitrary text, which is added to custom data as “sid”.



Example 7. Example 2
<enter_data id="enter_txid" key="tx" title="Enter
transaction identifier" extra_text="Additional
message" numeric="true" decimals="0" maxchars="4"
displayas="TX" restart_here="true" />

Allows a user to enter a 4-digit number without decimals, which is added to custom data as “txid” and is displayed on screen as, for example, TX (1234).



Example 8. Example 3
<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
<user_field_definitions xmlns="http://www.w3.org/1999/xhtml"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:noNamespaceSchemaLocation="file:custom_data_entry.xsd">
     <deposit start="enter_id" />
     <steps>
           <enter_data title="Enter custom id (AAA123)" key="custom_id" id="enter_id" regex="[A-Z]{3}[0-9]{3}" confirmation="true" confirmation_title="Enter custom id again" retries="2"/>
	</steps>
</user_field_definitions>

Allows a user to extend the Custom_Data function with a confirmation message.



Table 3. selection attributes

Name

Description

Required

Default

id

Step ID

Yes

-

key

Custom data storage key

Yes

-

title

Title of step on screen

Yes

-

displayas

On-screen label; The entered value is displayed on screen as label (value).

No

-

restart_here1[a]

If true, this step is used as (re)starting point for multiple deposits.

No

false

restart_button_text<XREF>[a]

Text for “restart” button for multiple deposits

No

orchard.BackToCustomData



Elements
Example 9. heading [1..1] - Selection list column header definition(s) example:
<heading>
    <td>#</td>
    <td>Description</td>
</heading>


Example 10. choice [1..*] - One or many choices available with column definitions example
<choice value="svc">
    <td>1.</td>
    <td>Service</td>
</choice>


Table 4. elements attributes

Name

Description

Required

Default

value

Custom data value

Yes

-

next

ID of next step.

No

-



In the example below, the user is assigned the permission to select a type from a predefined list of choices. Users with role “xtra” have an additional choice. The selected value is added to custom data as “typ” and is displayed on screen as for example: @ (AA)

<selection id="choose_deposit_type" key="typ" title="Choose
Deposit Type" displayas="@">
    <heading>
        <td>Available types</td>
    </heading>
    <choice value="AA" next="enter_sid">
        <td>Typ 1</td>
    </choice>
    <choice value="AB" next="enter_sid">
        <td>Typ 2</td>
    </choice>
    <choice value="BA" next="enter_sid">
        <td>Typ 3</td>
    </choice>
    <choice value="BB" next="enter_sid">
        <td>Typ 4</td>
    </choice>
    <choice value="XX" next="enter_tx">
        <td>Extra special</td>
        <role>xtra</role>
    </choice>
</selection>
Table 5. script

Name

Description

Required

Default

id

Step ID

Yes

-

key

Custom data storage key

Yes

-

displayas

On-screen label; The entered value is displayed on screen as label (value).

No

-

restart_here1[a]

If true, this step is used as (re)starting point for multiple deposits.

No

false

restart_button_text<XREF>[a]

Text for 'restart' button for multiple deposits

No

orchard.BackToCustomData



Elements
Example 11. Source — Groovy script source, for example:
<<source>
  <![CDATA[
  new BigInteger("${uuid}".split('-').last(), 16)
  ]]>
</source>


Example 12. Example

Add the result from reading an URL containing “uuid” and “userId” (ID) from script binding with key “ident” to a transaction.

<script id="1" key="ident"
     <source>
     <![CDATA[
     "http://123.45.67.89:4321?x=${uuid}&u=${userId}".toURL().text
     ]]>
     </source>
</script>


Deposit with bus number and comment - complete example

The example is from a bus company. When making a deposit, the bus driver must report the bus number and also any problem with the bus.

  1. Open and edit the custom_data_entry.xml file in a text editor, such as Atom.

    <?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
    <user_field_definitions xmlns="http://www.w3.org/1999/
    xhtml">
    <!-- Defines which step to start with for custom deposit-->
         <deposit start="depo_enter_counter" />
    <!-- Define which step to start with for custom deposit-->
         <dispense start="disp_enter_counter" />
         <steps>
           <!-- Deposit -->
               <enter_data title="Bus number" key="bus_number"
    id="depo_enter_counter" numeric="true"
    next="depo_additional_data_comment" />
               <enter_data title="Comment" key="comment"
    numeric="false" id="depo_additional_data_comment" />
       <!-- Dispense -->
                <enter_data title="Bus number" key="bus_number"
    id="disp_enter_counter" numeric="true" />
        </steps>
    </user_field_definitions>
    bus_number.png

    enter_data title="Bus number"

  2. After saving the changes, make a deposit to test the updated custom_data_entry file and to make the new keys available for the receipt editor.

Bus driver workflow
  1. Start.jpg
  2. 3.png
  3. 4.png
  4. 5.png
Using Receipt Builder

Go to the Receipt Builder Configuration Guide to find information on how to build receipts.

Setting up receipt — quick start

Note

Receipt Builder is included in the installation. See [installation folder]\tools\ReceiptJ.

setting_up_receipts.png

The receipt above has the following information:

Text on receipt

Description

Regional number

The area code (28, two positions).

Identification

The Identification consists of several parts:. The area code (28, two positions) followed by the function (S, one position) followed by the machine-unique ID (01, two positions: 0-9 and a-z).

Service

Repeats function and machine-unique ID.

Machine

The Machine ID fetched from the com.scancoin.common.online.client file.

Time

Shows the time the receipt was printed.

Customer

The name of the customer (ICA, maximum 20 positions) followed by the customer number (024171, maximum 10 positions).

Store

The store name (HG:Malmö, maximum 12 positions) followed by the store name (117-GETAF1, maximum 12 positions) followed by the store number (2849, maximum 10 positions)

Operator

The operator designation (Maria/Café)

The information on a receipt, such as area code, machine ID, machine serial number, and so on, is defined in a properties file named machine.properties. You can edit this file using a text editor.

regional.number=28
rcs.function=S
machine.unique.id=01
machine.name=RCS 800
machine.serial.number=101
customer.name=ICA
customer.number=024171
store.name1=HG:MALMÖ
store.name2=117-GETAF1
store.number=2849
Task. Set up receipts
  1. In the ([installation folder]\resources\configurable\configuration folder, open the machine.properties file.

  2. Edit the machine.properties file. The editable strings are:

    1

    regional.number

    Area code, 2 position

    2

    rcs.function

    Machine function, 1 position

    3

    machine.unique.id

    Unique machine ID, 2 positions 0-9 and a-z

    4

    machine.name

    Machine name, 14 positions

    5

    machine.serial.number

    Machine serial number, 6 positions

    6

    customer.name

    Customer name, 20 positions

    7

    customer.number

    Customer number, 10 positions

    8

    store.name1

    Store name, 12 positions

    9

    store.name2

    Store name, 12 positions

    10

    store.number

    Store number, 10 positions

  3. Press Ctrl + s.

  4. Select File > Save to save the changes.

  5. Select File > Exit to close the file.

  6. Start Connect on-Device.

Adding a logo to a receipt

You can add custom logos to receipts.

The logo must meet the following requirements:

  • Maximum width: 550 pixels. The recommended size is approximately 200x20 pixels (width x height).

  • 1 bit

  • Black and white

  • PNG format

Task. Add a logo to the receipt
  1. Prepare your logo so that it meets the requirements listed above.

  2. Name the file receipt_logo.png.

  3. Locate the printer folder in the resources folder in the CashComplete directory and replace the receipt_logo.png file with your file. The path to the file is: CashComplete\resources\configurable\images\receipts\receipt_logo.png.

Configuring mix groups

Note

You cannot configure mix groups in Connect on-Device Studio (previously, Configurator Tool) introduced in Connect on-Device, version 1.8.x.

However, you can use Connect on-Device Studio to configure the normal mixes without corrupting the mix groups.

It is possible to dispense two or more different mixes to two or more tills with just one Mix selection on screen and with just one receipt. This feature can be used by cashiers to dispense both their till for the cash register and a till with additional change in one single operation. You configure Mix groups in the same configuration file as regular mixes (moneymixes.xml).

Task. Configure mix groups
  1. Locate the configuration folder in the Connect on-Device installation folder, and open the file moneymixes.xml ([installation folder],\resources\configurable\configuration\moneymixes.xml).

  2. Make a copy of the moneymixes.xml file before you start editing it.

  3. Make the changes in the file. See the example below. A configuration like in the example, makes it possible to both dispense the mix group (Mix3) and the two sub mixes (Mix1 and Mix2) individually.

    <moneymixes>
        <mix name="Mix1" displayname="Cash register">
            <coin currencycode="EUR" denomination="10"
    numberOfItems="5"/>
        </mix>
        <mix name="Mix2" displayname="Additional change">
            <coin currencycode="EUR" denomination="10"
    numberOfItems="5"/>
        </mix>
        <mixgroup name="Mix3" displayname="Cash register and
    additional change">
            <submix name="Mix1"/>
            <submix name="Mix2"/>
        </mixgroup>
    </moneymixes>

    Note

    If you don’t want cashiers to be able to dispense the sub mixes individually, you can either remove the permissions for those mixes from the cashier role, or you can set the mixes to invisible. You set the mixes to invisible like this: mix name="Mix1" displayname="Cash register" invisible=”true>

Editing hopper levels for coin dispensers
  • Open the PercontaCashunit1.xml file located at ([installation folder]\data\cashunits\PercontaCashunit1.xml) to edit the hopper level values low, high, and full for hopper 1A to 1D.

  • Open the PercontaCashunit2.xml file to edit low, high, and full level values for position 2A to 2D.

Note

Do not change any of the other attributes because this can lead to an inconsistent count.

physicalcu name value (PUxxx) indicates the hopper position 1A-1D or 2A-2D. See the tables PU001-PU004.

<logicalcu thresholdstatus="LOW" number="3" cukind="DISPENSE"
cutype="COIN_CYL" unitid="00000" initcount="0" count="0"
status="OK" physicalname="PU001" depositcount="0"
dispensecount="0" rejectcount="0" >
    <cashtype kind="COIN" ccy="EUR" value="10" />
    <threshold full="4300" high="4200" low="200" empty="0" />
    <physicalcu name="PU001" unitid="00000" count="0
    " thresholdstatus="LOW" status="OK" >
    <threshold full="4300" high="4200" low="200" empty="0" />
    </physicalcu>
</logicalcu>

Full, default value is high value + 100, the physical limit of the hopper (how many coins it can hold). The denomination is rejected.

Low, default value 200, the desired number of coins left after dispense down to low level.

<logicalcu thresholdstatus="LOW" number="3" cukind="DISPENSE"
cutype="COIN_CYL" unitid="00000" initcount="0" count="0"
status="OK" physicalname="PU001" depositcount="0"
dispensecount="0" rejectcoun
    <cashtype kind="COIN" ccy="EUR" value="10" />
    <threshold full="4300" low="200" empty="0" />
    <physicalcu name="PU001" unitid="00000" count="0"
thresholdstatus="LOW" status="OK" >
    <threshold full="4300" low="200" empty="0" />
    </physicalcu>
</logicalcu>
Selecting a global accounting date

Prerequisite: This task requires the SET_GLOBAL_ACCOUNTING_DATE permission.

Use Select global accounting date to define a different accounting date than the actual date for a dispense or deposit. The setting affects all users.

select_global_accounting_date.png
Selecting a session date

Prerequisite: This task requires the SET_SESSION_ACCOUNTING_DATE permission.

Use Session date to define a different date than the current date for a session. The setting expires at logout.

Free float and cups/cash draw limit

Note

Cash draw limit (TillLimit) is a feature available in Connect on-Device, version 2.5.x. and later.

Check the default installation folder for the settings ([installation folder]\resources\default\configuration: com.scancoin.flow.dispense.lv.internal.DispenseFlow).

In the com.scancoin.flow.dispense.lv.internal.DispenseFlow file, you can set a global free float limit and a cash draw limit for each denomination. ([installation folder]\resources\configurable\configuration: com.scancoin.flow.dispense.lv.internal.DispenseFlow)

FreeFloatLimit limits the count on the Free float screen.

TillLimit limits the number of coins that fit into cups (RCS 400 only) or cash drawer. For more information, see Device properties.

Note

  • Free limit also applies to notes when a note unit is connected to the RCS.

  • If enabled, the smallest of FreeFloatLimit and TillLimit will be used in Free float. The TillLimit sets the number of coins if it is set lower than the FreeFloatLimit. FreeFloatLimit will not limit predefined mixes. FreeFloatLimit is not active when editing a mix. All dispense functions will be limited to the values stated in this file.

Defined denominations as exponent value. that is, 50 = denomination of 50 cents,

defined_denomination.png

String

Description

FreeFloatLimit.Denomination

Number of coins allowed in a free float mix, set for each denomination.

Till.Limit.Denomination

Defines the number of coins that fits into the cash drawer or cup.

Free float screen

To use Free Float you need FREE_FLOAT_XX permission.

free_float_screen.png

Item

Description

Denomination

-

Available

The number of available coins for the free float.

Selected

Number of coins selected for the free float

Device properties

Note

  • MAX_DISPENSE is a feature included in sw version 2.5.x and later. For more information, see Connect on-Device installation folder and folder structure.

  • All limits are retained when upgrading but when upgrading from sw version 2.4 or earlier, the limits are not filled in. The limits are available in the default directory.

In the Devices.properties file, you can configure settings for scanning at bag emptying, cleaning and service reminders on screens well as limits for number of coins for each outlet (for sw version 1.7.0 and later [Installation folder]\resources\configurable\configuration\Devices.properties).

MAX_DISPENSE for each outlet is used for distributing coins of the same denomination into different compartments in the cash drawer. It is used for machines with the same denomination in several coin dispensers.

In the example below, a machine is set up with six dispensers of the same denomination, that is, 1 SEK. With the settings in the example, 100x1 SEK are distributed into each compartment.

Note

The TillLimit is set to 600 for 1 SEK.

For more information, see Free float and cups/cash draw limit.

Without the MAX_DISPENSE limit, all 600x1 SEK would drop down into one of the compartments.

common_device_properties.png

CAM.1.service_interval_count

Set number of coins between service reminder on screen

CAM.1.service_interval_days

Set number of days between service reminder on screen

CAM.1.cleaning_interval_count

Set number of coins between cleaning reminder on screen

CAM.1.cleaning_interval_days

Set number of days between cleaning reminder on screen

CIMA.1.needsExternalIDWhenEmptying

Set to true to enable scanning barcode on the new bag when emptying bag

CIMA.1.scanExternalIDBeforeEmptying

Set to true to scan before the old bag is taken from the machine

PERCONTA.1.PU00x.MAX_DISPENSE

Set the limit for number of coins to each outlet

Barcode settings

To enable that a new bag must be scanned before being placed in the machine, open the Devices.properties file ([installation folder]\resources\default\configuration\Devices.properties) and set CIMA.1.needsExternalIDWhenEmptying to true.

#Common device properties
# Device properties in static can be overridden here.
#

# Service and cleaning intervals for the CAM
#CAM.1.service_interval_count=1500000
#CAM.1.service_interval_days=180

#CAM.1.cleaning_interval_count=50000
#CAM.1.cleaning_interval_days=4

# Set to true to enable bar code scanning when emptying bag
CIMA.1.needsExternalIDWhenEmptying = false

PERCONTA.1.PU001.MAX_DISPENSE=100
PERCONTA.1.PU002.MAX_DISPENSE=100
PERCONTA.1.PU003.MAX_DISPENSE=100
PERCONTA.1.PU004.MAX_DISPENSE=100

PERCONTA.2.PU001.MAX_DISPENSE=100
PERCONTA.2.PU002.MAX_DISPENSE=100
PERCONTA.2.PU003.MAX_DISPENSE=100
PERCONTA.2.PU004.MAX_DISPENSE=100
Configure an alternative way to scan barcodes

An alternative way to scan a barcode when emptying a cash box or bag is to use a number that is incremented by 1 for each box- or bag-exchange.

You need to activate the implementation by setting the containerIdGenerator property to increment in the [installation folder]\resources\default\configuration\Misc.properties] file.

# By default, "external id when emptying" is retrieved from a scanned barcode.
# Another implementation is to use a number that is incremented by 1 for each exchange.
# the id is between 1-99999 and then goes back to 1. Set value to "increment".
containerIdGenerator=increment
Transport box settings

In the com.scancoin.device.transportbox file the high and full settings for the transport box is configured (for Connect on-Device, version 1.7.0 and later [installation folder]\resources\configurable\configuration\ com.scancoin.device.transportbox).

Default values are:

  • high=5000 coins

  • full=5500 coins

If the high level is reached, a warning is displayed in idle mode indicating that the transport box should be emptied.

If the full level is reached and any of the coin hoppers are full, the coin deposit is disabled until the transport box is emptied

Configuring supported currencies for bag drop

Use this procedure to configure supported currencies for bag drop.

Task. Configure supported currencies for bag drop
  1. Locate the com.scancoin.core.security.LoginService file ([installation folder]\resources\configurable\configuration\com.scancoin.core.security.LoginService).

    currencies.supported.bagdrop=EUR
    #currencies.supported.bagdrop=EUR;SEK;USD;NOK;DKK
  2. Enter one or several currency codes allowed for the bag drop. If multiple currencies are configured, separate the currencies using a semi colon, like this: currencies.supported.bagdrop=EUR;SEK;NOK. If no currencies are configured, the master currency is used.

Configuring bag size for manual refill

Use this procedure to configure the bag size for manual refills.

Task. Configure bag size for manual refill
  • Locate the com.scancoin.flow.cashbox.refill.ManualCashboxReplenishService file (for Connect on-Device, version 1.7.0 and later ([installation folder]\resources\configurable\configuration \com.scancoin.flow.cashbox.refill.ManualCashbox ReplenishService).

    bags1.currency=EUR
    bags1.bagSizes=1:100;200:200;500:100
    
    bags1.currency=SEK
    bags1.bagSizes=1:20;5:1200
    
    bags1.currency=NOK
    bags1.bagSizes=50:100

Code

Description

bagsX.currency

X is for the bag number. Enter one currency code for each bag number, ISO 4217 Currency Code List. Enter bag number and size for each denomination: bags1.currncy=EUR bags1.bagizes=1:100;200:200;200:200;500:100 Denomination is written without decimals, for example, EUR 2.00 is written as “200”. In the example above, the bag will contain: 100 pieces of 1 cents, 200 pieces of 2 EUR coins, and 100 pieces of 5 EUR coins.

Adding a work unit

The work unit permission tool is used to make it easier to manage a group that needs access to the same money mix(es). The unitgroup name is not displayed or printed or stored in the database.

Information about the unitname is shown, printed on the receipt, and is stored in the database.

workunit.png
Task. Add a work unit
  1. Unlock the upper service door and bring out the service keyboard.

  2. Locate the configuration folder in the CashComplete directory, and open the workunits.xml file ([installation folder]\resources\configurable\configuration\workunits.xml).

  3. Copy an existing work unit and edit the information.

Item

Code

Description

1

unitgroup name

In this example, the listed unitnames (JK404, JK456 etc) in the unitgroupname= “Barcelona” have access to all defined money mixes.

If no mixes are listed, all mixes are available.

The listed unitnames (JK6182, JK6188) in the unitgroupname=”Gerona” only have access to money mix Mix2. (unitgroupname= “Gerona” moneymix=”Mix2”) To add several money mixes to a work unit, separate them with a comma “Mix1,Mix2”.

A user must also have permission to dispense the money mix in the work-unit (unitgroup name) they belong to. For more information, see Editing a role.

2

unitname

Name of the group. These groups are displayed and printed and stored in the database.

Example 13. Example

The example shows what a user with access to the work unit permission (WORK_UNIT or WORK_UNIT_NO_CHECK) can see.

The example is based on a flight company. The employee selects the correct flight number and then the money mix for the group (unitname) is dispensed.

select_workunit.png

Note

If there are more than 12 options (unitname), the options are shown as a scroll list.



Setting a role filter on work units or work unit groups

You can set a filter on a work unit or work unit group so that only users with certain roles can choose the unit.

Prerequisite: This task requires the EDIT_WORKUNITS permission.

Task. Set a role filter on work units or work unit groups
  1. Sign in to Connect on-Device.

  2. Select EDIT WORK UNITS.

    administration_main_menu.png
  3. Select Edit work unit.

    edit_work_unit.png
  4. In the Please select work unit list, select the work unit or work unit group on which you want to apply the role filter.

    setting_a_role_filter_on_a_work_unit3.png
  5. Select the Select button.

    edit_work_unit_3.png
  6. Select Edit roles.

  7. In the Available roles list, select the roles that should be able to choose the work unit or work unit group.

    setting_a_role_filter_on_a_work_unit4.png
  8. Select Save.

Configuring reading mode for a barcode scanner

To set the barcode scanner beam to continuous, follow the bar codes in the sequence listed below. The bar codes can also be found in the guide enclosed with the barcode scanner.

Description

Code

Bar code

Start configuration

%$+/3

barcode1.jpg

Continuous/Auto Power ON

%0273

barcode2.jpg

End Configuration

%$+/4

barcode3.jpg

Save Parameters

%$+/0

barcode4l.jpg
Making an inventory of a machine

Note

Access to the Move coins menu requires the MOVE_COINS_TO_LEVEL permission.

For more information, see Connect on-Device installation folder and folder structure.

In the Move coins menu, select Purge and follow the instruction at the display to remove all coins from selected dispensers.

You need to remove coins, for example, at service or when making an inventory of the machine.

A receipt with information about the number of coins in the dispensers, before and after the purge, and dispensed coins is printed.

Note

Make sure to check the dispensers for any remaining coins after a purge.

Article 6 handling in Connect on-Device

Article 6 of European Central Bank (ECB) lays down measures necessary for the protection of euro banknotes against counterfeiting and obliges automated teller machine (ATM) operators within the euro area to withdraw from circulation all euro banknotes that they know or suspect to be counterfeit.

This document gives an overview of how PayComplete™ CDS and recyclers handle Article 6 requirements for HCM modules.

ECB Terms of Reference provide details on different note categories:

  1. Unknown

  2. False

  3. Suspect

  4. Good — Can be split into a=fit and b=unfit

The basic requirement in the ECB regulations is that category 2 notes must not be returned and it should be possible to report who deposited the note. Category 2 notes are stored in a separate pocket and are never mixed with other notes.

Category 3 notes should not be returned but can be mixed with other notes. For category 3 notes, it should be possible to track who deposited the note if its later found to be false. Category 3 notes are mixed with other notes and are credited to the customer’s account just as if it was an authentic note.

In Connect on-Device, you can configure the flow so that it isn't possible to return notes when they are detected as category 3 notes. When category 2 notes are removed from the machine, a receipt is printed. The receipt contains information about the account/card used for the deposit.

Activating Article 6 for a note device

Note

You must add known counterfeits to the note configuration file.

You can activate Article 6 detection for some note devices.

Task. Activate Article 6 for a note device
  1. Open the Connect on-Device [installation folder]\resources\static\configuration\Read.repository file.

  2. Find the article36Operation(String) string for the current note device and change F to T.

The number, denomination, and value of suspected and detected counterfeits are printed on the receipt and displayed on the screen as:

  • C2 counterfeits

  • C3 suspected counterfeits

machine_inventory_article6.png
Time delay lock

Note

Valid in Connect on-Device version 3.1.0 and later.

The time-delay lock operates each time the safe is unlocked. You configure the lock in the units configuration file, for example, resources\static\configuration\com.scancoin.common.device.sds.

You can set three times:

  • delay — number of seconds until the door is unlocked,

  • reset — number of seconds the door remains unlocked,

  • resetSecondsAfterFirstOpen — number of seconds it is possible to unlock the door again after the first opening.

In the example below, the delay time is 60 seconds and the time window to open the lock is 30 seconds. Missing the opening time window results in a new delay period.

The resetSecondsAfterFirstOpen is set to 0. This resets the timer and the previous process is applied as soon as the door is locked.

Example 14. Example
locktimer.SDS.1.SAFE=delay:60,reset:3,resetSecondsAfterFirstOpen:0


Activation screen

Use the Activation screen to generate a QR code and an 8-digit activation code that you can use to remotely activate machines in Connect. You can skip this step.

machine_activation_common1.png

Ui item

Description

Connect

Select the button to generate a QR code and an 8-digit activation code that you can use to remotely activate machines in Connect.

Skip

Select to skip this step.

Later

Select if you want the opportunity to generate activation codes later on.

Activation codes screen

Use the activation codes screen in Connect on-Device to scan the QR code or copy the 8-digit activation code that you use to remotely activate machines in Connect. You can cancel this step.

machine_activation_common2.png

Ui item

Description

Scan the QR code

Scan the QR code with a QR code scanner on your mobile device to start the activation wizard on your mobile device.

8-digit activation code

Copy the code if you want to start the activation procedure by entering the 8-digit code in the portal.

Cancel

Select to sign in to Connect on-Device without starting any machine activation.

Configuring idle timeouts

You configure idle timeouts when you want to change how long Connect on-Device should wait for user input before canceling an ongoing operation. You configure idle timeout in the com.scancoin.core.userpref.UserPreference file.

Task. Configure idle timeouts
  1. Open the com.scancoin.core.userpref.UserPreference file in a text editor.

  2. Edit the row of the timeout you want to configure.

    See the table below for information on what the available idle timeouts do and their default values.

  3. Save the file and close it.

Default value

How it's configured in the file

Timeout in DEPOSIT/bagdrop flow in seconds, default 5 min

idle.timeout.DEPOSIT=300

Idle timeout in SELECT_SERVICE, default 5 min

idle.timeout.SELECT_SERVICE=300

Idle timeout waiting for the user to take the receipt, default 5 min

idle.timeout.TAKE_RECEIPT=300

Idle timeout waiting for the user to request a printed receipt, default 5 min

idle.timeout.OPTIONAL_RECEIPT=300

Idle timeout waiting for the user to confirm printing of next cc of receipt, default 5 min

idle.timeout.RECEIPT_REQUEST_CONTINUE=300

Idle timeout waiting for the user to empty note boxes, default 120 min

idle.timeout.EMPTY_NOTE_BOXES=7200

Note

The 'EMPTY_NOTE_BOXES' is new as of Connect on-Device, version 3.15.3.

Lane allocation

Note

In Connect on-Device a lane is represented as a work unit.

You use lane allocation to associate a till to a work unit, such as a cash register.

The association takes place when you select the work unit and dispense a money mix. No other user can allocate an already allocated work unit.

Work units are sent to Connect when Connect on-Device is restarted. If two work units have identical names, they are identified per the site they belong to.

If Connect is used, the allocation information is sent from Connect on-Device to Connect in a transaction message. The transaction message contains the following information about the allocation:

  • Allocation ID

  • Work unit name

  • Allocation timestamp

  • Deallocation time (end-of-shift)

  • Machine ID

  • Machine user ID

The allocation information is sent to all the machines on the site the work unit belongs to. When the machines have received information about the allocation, the allocating user can't dispense any additional mixes from other machines in that work unit. The user can still make free float dispenses and deposits on other machines in the work unit.

Transaction messages are saved locally on each machine. If the machine the dispense was made from goes offline, synchronization is lost between the machines on that site and it is possible for another user to allocate the already allocated work unit from another machine. When the machine comes back online, it automatically synchronizes with other machines on that site and the locally saved transaction messages are sent to Connect.

Lane deallocation

You deallocate a lane to end the association between the work unit and a till.

The work unit is deallocated (closed) when one of the following occurs:

  • The allocating user makes a deposit and then ends the shift

  • The allocating user ends the shift without a prior deposit

  • Daybreak, that is the reset time of the day — unless the configuration is set to ignore daybreak.

Note

Self-service checkout points is an example where a lane could be configured to ignore daybreak.

If Connect is used, the deallocation information is sent from Connect on-Device to Connect in a transaction message. The transaction message contains the following information on the deallocation:

  • Work unit name

  • Allocation ID

The deallocation information is sent to all the machines on the site the work unit belongs to. When the machines have received information about the deallocation, it is possible for another user to allocate the work unit.

Permissions related to lane allocation

Note

User and work unit allocation permissions can't be combined.

The following permissions are related to lane allocation:

Permission

Description

WORK_UNIT

Allows the user to make deposits even if the work unit has not been allocated. For example, a supervisor should be able to make a deposit regardless of work unit allocation state.

WORK_UNIT_ALLOCATION

Must be used in combination with the WORK_UNIT permission. Required on the user role to activate the lane allocation feature. Forces the user to select an allocation when logging in. If the user already has allocated a lane (work unit), no additional allocation is required.

WORK_UNIT_ALLOCATION_DEPOSIT

Allows the user to make deposits even if the work unit has not been allocated, that is, a supervisor should be able to make a deposit regardless of work unit allocation state.

FREE_FLOAT

When a work unit is allocated, all mixes except FREE_FLOAT are disabled and the user is allowed to make deposits.

When a work unit isn't allocated, you can only dispense predefined mixes.

ALLOCATION_END_SHIFT_ROLE:name_of_other_role

A temporary role. Activated when the user scans an allocated till.

It is recommended to only grant enough permissions to allow a single Connect on-Device service to be available. When the service is available, Connect on-Deviceautomatically starts the service after the login procedure. When the service has ended or has been canceled, the original role and permissions are restored. For more information, see the example below.

For more information, see Permissions A-L and Permissions M–Z.

Example 15. Send the user directly to the Deposit screen when deallocating a work unit

If you have a system where all tills have their own unique IDs or barcodes, you can send the user directly to the deposit screen when deallocating a work unit. You need to assign the ALLOCATION_END_SHIFT_ROLE:name_of_other_role permission that temporarily changes the user’s role to name_of_other_role for the first service. The temporary role should only have the permission(s) required to scan an allocated work unit, for example, deposit.

When the service ends or the user cancels the operation, the original role and permissions are restored. For this particular use case, you need to enable the following permissions:

  • WORK_UNIT

  • WORK_UNIT_ALLOCATION

  • DEPOSIT

  • END_SHIFT_AFTER_DEPOSIT

Note

The ALLOCATION_END_SHIFT_ROLE permission should not be assigned to the alternative role.



Allocation IDs

There are two types of allocation IDs:

  • Unique ID — The till has a unique ID or a barcode. Use this ID when you want to keep track of each till in the work unit. The CashComplete\resources\configurable\configuration\allocations.xml file contains a list of allocation IDs and barcodes. Before the user can select an allocation, the ID must be defined in this file and cannot be used to allocate more than one work unit at a time.

  • Common ID - The common allocation ID is identical for all tills. Use this ID when you are only interested in which work unit is allocated. The workUnitAllocationAutoId property in the CashComplete\resources\configurable\configuration\Misc.properties file specifies a common ID, for example, workUnitAllocationAutoId=Open. The common ID is set for all allocations without any user intervention.

Daybreak

You can activate allocation daybreak. Allocation daybreak automatically deallocates a work unit when daybreak occurs. For more information, see Configuring allocation daybreak.

You activate daybreak by setting a flag in the CashComplete\resources\configurable\configuration\Misc.properties file. The activation is valid for the Connect on-Device installation. You configure Connect on-Device.

In certain cases, such as self-checkout points, you may want to ignore allocation daybreak. To ignore daybreak, you set a flag on the work unit. The flag prevents the work unit from being deallocated at daybreak. For more information, see Configuring ignore allocation daybreak.

Note

If a work unit group is configured to ignore allocation daybreak, this overrides a different configuration on a work unit in that work unit group.

Files used for the lane allocation feature

The files in this table are used for the lane allocation feature.

File

Description

[installation folder]\resources\configurable\configuration\

allocations.xml

Contains a list of allocations and barcode IDs:

<allocations>
<allocation id="101" barcode="333101"
/>
<allocation id="102" barcode="333102"
/>
<allocation id="103" barcode="333103"
/>
<allocation id="104" barcode="333104"
/>
<allocation id="105" barcode="333105"
/>
<allocation id="106" barcode="333106"
/>
</allocations>

[installation folder]\resources\configurable\configuration\

workunitallocations.properties

Contains current allocations. work unit=allocation and time stamp for the allocation. This file is volatile and should not be modified any other way:

#Work Unit name (or Id) = Allocation Id + delimiter + allocation date
#Tue May 19 11:19:13 CEST 2020
JK457=Open\u00012020-05-19 11\:19
JK481=Open\u00012020-05-19 11\:19
JK456=Open\u00012020-05-19 11\:19
JK480=Open\u00012020-05-19 11\:19

[installation folder]\resources\configurable\configuration\

Misc.properties

Change the workUnitAllocationDayBreak property to true to activate allocation daybreak.

[installation folder]\resources\configurable\configuration\

com.scancoin.receipt.common.DailyOperationsReceipt

Edit the StartHourOfDay and StartMinuteOfDay properties to configure when daybreak occurs.

Configuring allocation daybreak

You configure allocation daybreak to automatically deallocate (close) a work unit or a user at daybreak. The configuration is valid for the Connect on-Device installation.

Note

If a work unit group is configured to ignore allocation daybreak, this overrides a different configuration on a work unit in that work unit group.

Task. Configure allocation daybreak
  1. Open the file system on your computer and locate the following file:

    [installation folder]\resources\configurable\configuration\Misc.properties.

  2. Change the AllocationDayBreak property to true.

    • For work units, change the workUnitAllocationDayBreak property.

    • For users, change the userAllocationDayBreak property.

  3. Save and close the file.

  4. Open the following file: [installation folder]\resources\configurable\configuration\com.scancoin.receipt.common.DailyOperationsReceipt and edit the StartHourOfDay and StartMinuteOfDay properties.

  5. Save and close the file.

Note

The daybreak hour and minute in this file are also used for daily operations receipts.

Configuring ignore allocation daybreak

You use ignore allocation daybreak to ignore the allocation daybreak configured for a work unit, for example, a self-service checkout point. The configuration is valid for the work unit.

Important

  • This feature requires that the workUnitAllocationDayBreak property has been set to true. For more information, see Configuring allocation daybreak.

  • If a work unit group is configured to ignore allocation daybreak, this overrides a different configuration on a work unit in that work unit group.

Task. Configure ignore allocation daybreak
  1. Log in to Connect on-Device as an administrator.

  2. Select ADMINISTRATION.

  3. Select EDIT WORK UNITS.

  4. Select Edit work unit.

  5. Enter the characters to filter work unit on.

  6. To edit allocation daybreak for a work unit, select the work unit in the Please select work unit list.

  7. Select the Select button.

  8. Select the Ignore allocation day break button.

RM protocol and Connect communication

When the deposit transaction and an allocation is made, the information is sent as follows (message has been truncated):

{
"MESSAGE_TYPE": "Transaction",
"TYPE": "DISPENSE",
"ALLOCATION_ADDED": {
  "WORK_UNIT_NAME": "JK404",
  "BARCODE": "333103",
  "ID": "103"
}
}

Deallocation (end shift):

{
"MESSAGE_TYPE": "Transaction",
"TYPE": "END_OF_SHIFT",
"ALLOCATION_REMOVED": {
  "WORK_UNIT_NAME": "JK404",
  "BARCODE": "333103",
  "ID": "103"
}
}

It is the responsibility of Connect to keep track of which work units are allocated per site. The compiled list of allocations should be sent to each Connect on-Device machine that is part of that site. The list of allocations can be appended to any response from Connect. This is an example (see SetWorkUnitAllocations):

{
"TIME_ZONE_UTC_OFFSET": "+02:00",
"SEQUENCE": 0,
"MACHINE_ID": "RMTester",
"MESSAGE_TYPE": "Reply",
"VERSION": "2.00",
"DATE_TIME": "20200519 11:19:13.860",
"REPLY_CODE": 0,
"SETTINGS": {
  "SetWorkUnitAllocations": {
   "JK457": "Open",
   "JK456": "Open",
   "JK481": "Open",
   "JK480": "Open"
  }
},
"UUID": "935c99ef-9cad-4dea-8ee6-362ec40c0662",
"RECEIVER": "1001",
"KEEP_ALIVE": true,
"MESSAGE_SEQUENCE": 2547
}

Connect on-Device expects to get the entire list. It will overwrite any allocation information stored on the Connect on-Device machine. If the list is empty all allocations are removed.:

"SETTINGS": {
  "SetWorkUnitAllocations": {
  }

If the element is omitted from the response, no changes are made locally on the Connect on-Device machine.

Add and remove allocations

In addition to full allocation updates, Connect on-Device supports changes. 'Add' adds a new allocation. Existing allocations are not affected. 'Remove' removes the specified allocations.

Example 16. Example
{
"SETTINGS": {
  "AddWorkUnitAllocations": {
   "JK457": "Open",
   "JK480": "Open"
  }
}

{
"SETTINGS": {
  "RemoveWorkUnitAllocations": {
   "JK457": "Open",
   "JK480": "Open"
  }
}


User allocations

The format and usage for user allocations are similar to those for work unit allocations. The exception is that for user allocations, the key is the user login.

Example 17. Example
{
"SETTINGS": {
  "SetUserAllocations": {
   "1234": "Open",
   "4001": "Open"
  }
}

{
"SETTINGS": {
  "RemoveUserAllocations": {
   "1234": "Open",
   "4001": "Open"
  }
}

{
"SETTINGS": {
  "AddUserAllocations": {
   "1234": "Open",
   "4001": "Open"
  }
}


User allocation

Use user allocation to associate a till to a user, such as a cashier.

The association takes place when you select the user and dispense a money mix. No other user can allocate the same user to a till.

If Connect is used, the allocation information is sent from Connect on-Device to Connect in a transaction message. The transaction message contains the following information about the allocation:

  • Allocation ID

  • User name

  • Allocation timestamp

  • Deallocation time (end-of-shift)

  • Machine ID

The allocation information is sent to all the machines on the site the user belongs to. When the machines have received information about the allocation, the allocating user can't dispense any additional mixes from other machines on that site. The user can still make free float dispenses and deposits on other machines on the site.

Transaction messages are saved locally on each machine. If the machine the dispense was made from goes offline, synchronization is lost between the machines on that site and it is possible for another user to allocate the already allocated user from another machine. When the machine comes back online, it automatically synchronizes with other machines on that site and the locally saved transaction messages are sent to Connect.

User deallocation

You deallocate a user to end the association between the user and a till.

The user is deallocated (closed) when one of the following occurs:

  • The allocating user makes a deposit and then ends the shift

  • The allocating user ends the shift without a prior deposit

  • Daybreak, that is the reset time of the day — unless the configuration is set to ignore daybreak.

If Connect is used, the deallocation information is sent from Connect on-Device to Connect in a transaction message. The transaction message contains the following information on the deallocation:

  • User name

  • Allocation ID

The deallocation information is sent to all the machines on the site the user belongs to. When the machines have received information about the deallocation, it is possible for someone else to allocate the user.

Permissions related to user allocation

Note

User and work unit allocation permissions can't be combined.

The following permissions are related to user allocation:

Permission

Description

USER_ALLOCATION

Allows the user to be allocated, that is, \"on shift\". Don't use in combination with WORK_UNIT_ALLOCATION.

USER_ALLOCATION_DEPOSIT

Allows the user to make deposits even if the user has not been allocated, that is, a supervisor should be able to make a deposit regardless of user allocation state. Use in combination with USER_ALLOCATION.

FREE_FLOAT

When a user is allocated, all mixes except FREE_FLOAT are disabled and the user is allowed to make deposits.

When a user isn't allocated, you can only dispense predefined mixes.

ALLOCATION_END_SHIFT_ROLE:name_of_other_role

A temporary role. Activated when the user scans an allocated till.

It is recommended to only assign enough permissions to allow a single Connect on-Device service to be available. When the service is available, Connect on-Device automatically starts the service after the login procedure. When the service has ended or has been canceled, the original role and permissions are restored. For more information, see the example below.

For more information, see Permissions A-L and Permissions M–Z.

Example 18. Send the user directly to the Deposit screen when deallocating a user

If you have a system where all tills have their own unique IDs or barcodes, you can send the user directly to the deposit screen when deallocating a user. You need to assign the ALLOCATION_END_SHIFT_ROLE:name_of_other_role permission that temporarily changes the user’s role to name_of_other_role for the first service. The temporary role should only have the permission(s) required to scan an allocated user, for example, deposit.

When the service ends or the user cancels the operation, the original role and permissions are restored. For this particular use case, you need to enable the following permissions:

  • USER_ALLOCATION

  • DEPOSIT

  • END_SHIFT_AFTER_DEPOSIT

Note

The ALLOCATION_END_SHIFT_ROLE permission should not be assigned to the alternative role.



Allocation IDs

There are two types of allocation IDs:

  • Unique ID — The till has a unique ID or a barcode. Use this ID when you want to keep track of each till. The CashComplete\resources\configurable\configuration\allocations.xml file contains a list of allocation IDs and barcodes. Before the user can select an allocation, the ID must be defined in this file and cannot be used to allocate more than one user at a time.

  • Common ID - The common allocation ID is identical for all tills. Use this ID when you are only interested in which user is allocated. The userAllocationAutoId property in the CashComplete\resources\configurable\configuration\Misc.properties file specifies a common ID, for example, userAllocationAutoId=Open. The common ID is set for all allocations without any user intervention.

Daybreak

You can activate allocation daybreak. Allocation daybreak automatically deallocates a user when daybreak occurs. For more information, see Configuring allocation daybreak.

Files used for the user allocation feature

The files in this table are used for the user allocation feature.

File

Description

[installation folder]\resources\configurable\configuration\

allocations.xml

Contains a list of allocations and barcode IDs:

<allocations>
<allocation id="101" barcode="333101"
/>
<allocation id="102" barcode="333102"
/>
<allocation id="103" barcode="333103"
/>
<allocation id="104" barcode="333104"
/>
<allocation id="105" barcode="333105"
/>
<allocation id="106" barcode="333106"
/>
</allocations>

[installation folder]\resources\configurable\configuration\

Misc.properties

Change the userAllocationDayBreak property to true to activate allocation daybreak. Change the userAllocationAutoId to, for example 'On shift' or 'Working'.

[installation folder]\resources\configurable\configuration\

com.scancoin.receipt.common.DailyOperationsReceipt

Edit the StartHourOfDay and StartMinuteOfDay properties to configure when daybreak occurs.

Cash-level warnings

You disable physical cash-level warnings from one, multiple, or all cash units on a device when you want Connect on-Device to ignore that cash-level information when determining whether or not to display a cash-level warning.

By default, a warning is displayed in Connect on-Device if the physical cash level in a cash unit is empty, low, high, or full.

You can disable the cash-level warnings for the following:

  • all cash units on a device

  • only a specific cash unit on a device

You can disable four types of physical cash-level warnings. The options are:

  • empty cash-level warnings — statement: disablePhysicalEmptyWarning=true

  • low cash-level warnings — statement: disablePhysicalLowWarning=true

  • high cash-level warnings — statement: disablePhysicalHighWarning=true

  • full cash-level warnings — statement: disablePhysicalFullWarning=true

You would typically disable, for example, incorrectly sent cash-level warnings from physical cash units, such as an HCM's physical hoppers incorrect warnings on low cash levels.

Example 19. Disable low-level warnings for all cash units on a device

HCM.1.disablePhysicalLowWarning=true in the Devices.properties file allows Connect on-Device to ignore low-level warnings sent by cash units on the HCM.1 device.



Example 20. Disable low-level warnings for a specific cash unit on a device

HCM.1.PU01disablePhysicalLowWarning=true in the Devices.properties file allows Connect on-Device to ignore low-level warnings sent by the PU01 cash unit on the HCM.1 device.



Example 21. Disable low-level warnings for a multiple cash units on a device

HCM.1.PU00.disablePhysicalLowWarning=true

HCM.1.PU01.disablePhysicalLowWarning=true

HCM.1.PU02.disablePhysicalLowWarning=true

Setting the strings to true in the Devices.properties file means that Connect on-Device ignores low-level warnings sent by the PU00, PU01, and PU02 cash units on the HCM.1 device.



When you set the disablePhysical[Empty/Low/High/Full]Warning property to true, Connect on-Device ignores the cash-level warning from the cash unit or units and instead relies on the count and other calculations to determine whether or not a hopper's cash level should generate a warning.

The disablePhysicalLowWarning property does not prevent low-level warnings from being displayed in Connect on-Device. It only ignores the physical cash unit or units when calculating whether or not the conditions for a warning have been fulfilled and a low-level warning should be displayed.

Note

Don't mix statements for all cash units and for a specific cash unit on the same device. If you do, a statement set to true takes priority over a statement set to false.

You completely disable cash-level warnings for one or multiple cash units when you don't want Connect on-Device to show the warnings.

These are the statements you need to set to true if you want to completely disable volume-level warnings:

  • empty-level warnings — statement: disableEmptyWarning=true

  • low-level warnings — statement: disableLowWarning=true

  • high-level warnings — statement: disableHighWarning=true

  • full-level warnings — statement: disableFullWarning=true

Disabling cash-level warnings

You disable physical cash-level warnings from one, multiple, or all cash units on a device when you want Connect on-Device to ignore that cash-level information when determining whether or not to display a cash-level warning.

Note

These are the statements you use to omit cash-level information when Connect on-Device decides whether or not to display cash-level warnings:

  • empty-level warnings — statement: disablePhysicalEmptyWarning=true

  • low-level warnings — statement: disablePhysicalLowWarning=true

  • high-level warnings — statement: disablePhysicalHighWarning=true

  • full-level warnings — statement: disablePhysicalFullWarning=true

You completely disable cash-level warnings for one or multiple cash units when you don't want Connect on-Device to show the warnings.

Note

These are the statements you use to disable cash-level warnings:

  • empty-level warnings — statement: disableEmptyWarning=true

  • low-level warnings — statement: disableLowWarning=true

  • high-level warnings — statement: disableHighWarning=true

  • full-level warnings — statement: disableFullWarning=true

Task. Disable physical cash-level warnings for all cash units on a device
  1. Open the file system on your computer and locate the following file: [installation folder]\resources\configurable\configuration\Devices.properties.

  2. Open the file in a text editor.

  3. To omit physical volume-level information for all cash units on a device, set the disablePhysical[Type]Warning statements to true:

    • For empty volume-level warnings, type: [device name].[device ID].disablePhysicalEmptyWarning=true.

    • For low volume-level warnings, type: [device name].[device ID].disablePhysicalLowWarning=true.

    • For high volume-level warnings, type: [device name].[device ID].disablePhysicalHighWarning=true.

    • For full volume-level warnings, type: [device name].[device ID].disablePhysicalFullWarning=true.

  4. Save and close the file.

Task. Disable physical cash-level warnings for a specific cash unit on a device
  1. Open the file system on your computer and locate the following file: [installation folder]\resources\configurable\configuration\Devices.properties.

  2. Open the file in a text editor.

  3. To omit physical volume-level information for all cash units on a device, set the disablePhysical[Type]Warning statements to true:

    • For empty volume-level warnings, type: [device name].[device ID].[cash unit ID].disablePhysicalEmptyWarning=true.

    • For low volume-level warnings, type: [device name].[device ID].[cash unit ID].disablePhysicalLowWarning=true.

    • For high volume-level warnings, type: [device name].[device ID].[cash unit ID].disablePhysicalHighWarning=true.

    • For full volume-level warnings, type: [device name].[device ID].[cash unit ID].disablePhysicalFullWarning=true.

  4. Save and close the file.

Task. Completely disable cash-level warnings for a specific cash unit on a device
  1. Open the file system on your computer and locate the following file: [installation folder]\resources\configurable\configuration\Devices.properties.

  2. Open the file in a text editor.

  3. To omit cash-level warnings for a cash unit, set the disable[Type]Warning property to true:

    • For empty cash-level warnings, type: [device name].[device ID].[cash unit ID].disableEmptyWarning=true.

    • For low cash-level warnings, type: [device name].[device ID].[cash unit ID].disableLowWarning=true.

    • For high cash-level warnings, type: [device name].[device ID].[cash unit ID].disableHighWarning=true.

    • For full cash-level warnings, type: [device name].[device ID].[cash unit ID].disableFullWarning=true.

  4. Save and close the file.

Task. Completely disable cash-level warnings for all cash units on a device
  1. Open the file system on your computer and locate the following file: [installation folder]\resources\configurable\configuration\Devices.properties.

  2. Open the file in a text editor.

  3. To omit cash-level warnings for a cash unit, set the disable[Type]Warning property to true:

    • For empty cash-level warnings, type: [device name].[device ID].disableEmptyWarning=true.

    • For low cash-level warnings, type: [device name].[device ID].disableLowWarning=true.

    • For high cash-level warnings, type: [device name].[device ID].disableHighWarning=true.

    • For full cash-level warnings, type: [device name].[device ID].disableFullWarning=true.

  4. Repeat the previous step for all cash units whose warnings you want to disable. by typing a different cash unit ID.

  5. Save and close the file.

Exchange rates

The LucidPOS interface can handle payments in different currencies by calculating the exchange rates. The POS system sends an amount to be paid to Connect on-Device via LucidPOS. The result of the deposit of different supported currencies is reported back to the POS system. The POS system then calculates the paid amount using its own exchange rates. If the requested amount has been reached, the POS system instructs Connect on-Device (via LucidPOS) to end the deposit and possibly pay out any surplus. This is the preferred way because exchange rates may differ between the POS system and Connect on-Device.

Some POS systems don't have this functionality, so LucidPOS has been extended to accept several currencies during payment and return the correct surplus based on exchange rates.

The exchange rate service always uses a master currency. That is, the currency used for exchange rate calculations. The master currency is specified in the Locality step in in the Connect on-Device Studio wizard.

Note

You can define several currencies but the exchange rate service only uses the currency specified as master currency.

Exchange rates are stored in the following .xml file: [installation folder]\resources\configurable\configuration\exchangeRates.xml file.

Example 22. Example of an exchangeRates.xml file
<?xml version="1.0" encoding="utf-8"?>

<exchangerates>

  <mastercurrency currency="EUR">

    <rate currency="SEK">9.3067</rate>

    <rate currency="USD">1.5337</rate>

    <rate currency="DKK">7.4609</rate>

    <rate currency="NOK">7.8764</rate>

  </mastercurrency>

  <mastercurrency currency="SEK">

    <rate currency="EUR">0.1074</rate>

    <rate currency="USD">0.1715</rate>

    <rate currency="DKK">0.8301</rate>

    <rate currency="NOK">0.8611</rate>

  </mastercurrency>

  <mastercurrency currency="NOK">

    <rate currency="CHF">0.2016</rate>

    <rate currency="DKK">0.9292</rate>

    <rate currency="EUR">0.1246</rate>

    <rate currency="GBP">0.099</rate>

    <rate currency="JPY">20.905</rate>

    <rate currency="SEK">1.1665</rate>

    <rate currency="USD">0.1929</rate>

  </mastercurrency>

</exchangerates>


Important

The exchange rate service is not enabled by default in Connect on-Device.

Enabling the exchange rate service

The exchange rate service is not enabled by default in Connect on-Device. To enable the service you need to modify the [installation folder]\resources\configurable\configuration\com.scancoin.common.exchangerate.ExchangeRateService file.

Task. Enable the exchange rate service
  1. In the file explorer, find the [installation folder]\resources\configurable\configuration\com.scancoin.exchangerate.ExchangeRateService file.

  2. Open the file in a text editor.

  3. Modify the file to activated=true.

  4. Save the file.

  5. Restart Connect on-Device.

Content Removal ID

If you use 'external ID when emptying' when you empty a cash box, you must scan or manually enter the code of the new cash box or bag. The code is then associated with the cash box until the next time the cash box is emptied, and you scan or manually enter a new code.

Note

The cash box or bag code is sent as the CONTAINER_ID field in all subsequent transactions where this cash box is involved. When the exchange transaction is sent, the REFERENCE field contains the removed cash box's container ID.

To use enable bar code scanning when emptying, you must edit the [installation folder]\resources\configurable\configuration\Devices.properties file for the device on which you want scanning to be possible.

Example 23. Enable bar code scanning when emptying
Text
# Set to true to enable bar code scanning when emptying bag
COMBINED_MEI.1.needsExternalIDWhenEmptying = true
ELECTRUM.1.needsExternalIDWhenEmptying = true
KUAN.1.needsExternalIDWhenEmptying = true
NGENE.1.needsExternalIDWhenEmptying = true
BNECDM.1.needsExternalIDWhenEmptying = true


Optionally, you can use 'Content Removal ID'. In this case, the cash box CONTAINER_ID is automatically incremented the by 1 for the new cash box every time the previous cash box has been emptied. If no previous value exists, the initial value is set to 1. That is, the first exchange transaction has REFERENCE set to 1 and CONTAINER_ID set to 2.

To use 'Content Removal ID', you must edit the [installation folder]resources\configurable\configuration\Misc.properties file. For more information, see Configuring automatic incrementation of CONTAINER_ID.

Example 24. Exchange transaction 1
{
  "MESSAGE_TYPE": "Transaction",
  "USER": {/../},
  "SUB_TYPE": "OUT",
  /../
  "DEVICE_MOVEMENTS": [{
    "DEVICE_ID": "HCM.1",
    "BOX_MOVEMENTS": [{
      "MOVEMENT": [{
        "TOTAL": -1750,
        "REJECTS": 0,
        "VALUES": [/../],
        "TYPE": "NOTE"
      }],
      "RESULTING_CONTENT":[/../],
        "TYPE": "NOTE"
      }],
      "BOX_ID": "AB0",
      "CONTAINER_ID": "100"
    }]
  }],
  "VALUE_BAGS": [/../],
  "REFERENCE": "99",
  "TYPE": "EXCHANGE"
}

In this example, the current container ID (Content Removal Id) is 99 as you can see in the REFERENCE field. The new container ID (100) has been set on the affected container.



Example 25. Deposit transaction
{
  "MESSAGE_TYPE": "Transaction",
  "USER": {/../},
  /../
  "DEVICE_MOVEMENTS": [{
    "DEVICE_ID": "HCM.1",
    "BOX_MOVEMENTS": [{
      "MOVEMENT": [{
        "TOTAL": 400,
        "REJECTS": 0,
        "VALUES": [/../],
        "TYPE": "NOTE"
      }],
      "RESULTING_CONTENT": [/../],
      "BOX_ID": "AB0",
      "CONTAINER_ID": "100"
    }]
  }],
  "VALUE_BAGS": [/../],
  "TYPE": "DEPOSIT"
}

A subsequent deposit transaction resulted in content change of the deposit box with the new container ID (100).



Example 26. Exchange transaction 2
{
  "MESSAGE_TYPE": "Transaction",
  "USER": {/../},
  "SUB_TYPE": "OUT",
  "DEVICE_MOVEMENTS": [{
    "DEVICE_ID": "HCM.1",
    "BOX_MOVEMENTS": [{
      "MOVEMENT": [{
        "TOTAL": -400,
        "REJECTS": 0,
        "VALUES": [/../],
        "TYPE": "NOTE"
      }],
      "RESULTING_CONTENT": [{
        "TOTAL": 0,
        "REJECTS": 0,
        "VALUES": [/../],
        "TYPE": "NOTE"
      }],
      "BOX_ID": "AB0",
      "CONTAINER_ID": "101"
    }]
  }],
  "VALUE_BAGS": [/../],
  "REFERENCE": "100",
  "TYPE": "EXCHANGE"
}

The next exchange transaction has set the new container ID (101) and sends the existing one as reference (100).



Important

  • You can't have both a scanned or a manually entered code and an automatically incremented one.

  • You can only empty one box per transaction because the REFERENCE field is placed on the transaction level.

  • You can prevent emptying (exchanging) several boxes per transaction with the EMPTY_NOTE_BOXES_SCAN permission.

Configuring automatic incrementation of CONTAINER_ID

You configure a CONTAINER_ID to be automatically incremented by 1 when you don't want to force the user to scan or manually enter a code when emptying a cash box or bag.

Important

  • You can't have both a scanned or a manually entered code and an automatically incremented one.

  • You can only empty one box per transaction because the REFERENCE field is placed on the transaction level.

  • You can prevent emptying (exchanging) several boxes per transaction with the EMPTY_NOTE_BOXES_SCAN permission.

Task. Configure automatic incrementation of CONTAINER_ID
  1. Open the [installation folder]\resources\configurable\configuration\Devices.properties file.

  2. For each device where you want the CONTAINER_ID to automatically get incremented, make sure that needsExternalIDWhenEmptying is set to true.

  3. Save the file.

  4. Open the [installation folder]\resources\configurable\configuratio\Misc.properties file in a text editor, such as Atom.

  5. Change containerIdGenerator to increment: containerIdGenerator=increment.

  6. Save the file.