Skip to main content

Advanced Automatic Matching

Advanced Automatic Matching - Complete Setup Guide

Written by Petr Pech

Advanced Automatic Matching of Incoming Payments

The matching feature can only match incoming payments — that is, payments with the movement type "Receipt".

Who is it suitable for?

Automatic matching is suitable for anyone who uses recurring invoicing and may encounter situations where customers pay different amounts than invoiced or use an incorrect variable symbol.

Typical examples include providers of telecommunications services or internet access.

Automatic matching works only for invoices and payments in the domestic currency.

In which modules can payments be automatically matched?

Matching can be used in the Bank and Cash Register modules.

What happens during automatic matching in the application?

When automatic matching is triggered, the system searches for all unmatched, non-cancelled, non-zero incoming documents. If a user enters an outgoing document with a negative value, that document will not be automatically matched. Documents to be matched must not be locked — or, if matching is performed under the Accountant user role, documents may be locked only in the state: Locked outside accounting.

Against incoming documents from the cash register or bank, the system searches for corresponding documents among issued invoices and other receivables.

5 steps the application performs during matching:

  1. It begins by comparing the payment's variable symbol with EAN codes (customer numbers) in the address book. If a matching code is found, it matches unpaid issued invoices starting from the oldest one.

  2. It compares the payment's variable symbol with internal document numbers; if a match is found, it matches starting from the oldest.

  3. It compares the payment's variable symbol with the variable symbols on invoices and matches any found.

  4. It compares the sender's bank account number of the received payment with account numbers in the address book.

  5. If none of the above criteria are met, it creates an overpayment according to the petty overpayment settings or issues a tax document for a received deposit (ZDD).

After documents are matched, the bank (or cash register) payment is split into as many lines as there are invoices settled by it (so there is no issue in the balance that matched invoices were, for example, one issued invoice and one advance invoice).

After matching, each matched bank (or cash register) document will display in the "How settled" field the criterion used for matching — whether by variable symbol, customer number, or account number. The "Note" field will show a message indicating that this is a split payment (with its original amount), and the "Description" field will contain the internal number of the settled document. Under relations, all documents settled by the payment can also be found.

In the company settings, you must configure (Modules -> Sales -> Document types for automatic generation) the document type for automatic generation of issued advance invoices (ADVANCE).

To ensure uniqueness, before you start using automatic matching, you should assign customer numbers (EAN) that are either shorter or longer than variable symbols, and configure the document series for invoices and bank (cash register) documents to include, for example, a letter or a hyphen.

How to obtain automatic matching?

This is an add-on service that must be ordered from the sales department, who will add it to your licence.

6 parameters for configuring automatic matching:

  1. The first parameter to be configured is the petty overpayment threshold — the amount up to which overpayments will not be refunded or applied to future payments.

  2. The second parameter defines the petty underpayment threshold — amounts you will not pursue from customers.

  3. The third parameter sets the document type used to post petty overpayments. Always enter the abbreviation of the other liability type.

  4. The fourth parameter sets the document type for posting petty underpayments. Always enter the abbreviation of the internal document type.

  5. The fifth parameter defines the separator used when splitting a payment — for example, #. After documents are matched and the bank payment is split, the internal number will change, for example, from the original B+0001/2017 to B+0001/2017 for the first settled invoice and B+0001/2017#02.

  6. The sixth parameter specifies the number of positions after the separator defined in the fifth parameter. When setting this parameter, keep in mind that an internal number can have a maximum of 20 characters, including the separator and the positions following it. Document series should therefore not be configured to be too long.

The first two parameters are optional; the remaining four are mandatory! Even if you do not wish to configure petty overpayments and underpayments, you must still set document types for them.

Once you have determined the values to enter for each parameter, create an XML file, for example as follows:

<winstrom version="1.0">
<parametr>
<paramK>paramCastkaPreplatekDrgn</paramK>
<hodnota>25.0</hodnota>
</parametr>
<parametr>
<paramK>paramCastkaNedoplatekDrgn</paramK>
<hodnota>15.0</hodnota>
</parametr>
<parametr>
<paramK>paramParovaniUhradTypDoklPreplatekDrgn</paramK>
<hodnota>NEOCEKAVANY-PRIJEM</hodnota>
</parametr>
<parametr>
<paramK>paramParovaniUhradTypDoklNedoplatekDrgn</paramK>
<hodnota>ZBYTEK NÁKLAD</hodnota>
</parametr>
<parametr>
<paramK>paramParovaniUhradRozdeleniPrefixDrgn</paramK>
<hodnota>#</hodnota>
</parametr>
<parametr>
<paramK>paramParovaniUhradPocetCislicDeleniDrgn</paramK>
<hodnota>2</hodnota>
</parametr>
</winstrom>

Import the prepared XML into Flexi (Tools -> Import -> Import from XML), then restart the application (turn it off and back on). The XML file must be encoded in UTF-8.

What happens with overpayments above the petty threshold?

If an overpayment exceeds the petty threshold, the application will automatically create an advance invoice and a tax document for the received deposit (ZDD) in relation to the received payment.

When the next invoice is issued to the customer, a ZDD deduction must be inserted into the line items section. If invoices are issued via API, you need to enable the ZDD deduction — see the guide.

The ZDD deduction can also be automated via API — see the link above. In addition, in the Sales module — Document Types — Issued Invoice Types, when you open the document type for ZDD, the option "Allow automatic deduction of documents of this type" must be checked on the "Administration" tab.

Document types for advance invoices and ZDD must be configured in the Company module — Settings — Modules — Sales — Document Types for Automatic Operation.

Can part of a payment be matched manually and then advanced matching triggered to create a ZDD for the remainder?

No. Advanced matching uses a different matching mechanism than the other matching methods in Flexi, and therefore two mechanisms cannot be applied to the same payment. The only way to handle this scenario would be to split the payment into multiple lines — it would then be possible to settle some of them manually and run advanced matching on the remaining amount (as a separate line in the bank), which would automatically issue a ZDD.

Is it possible to configure the system so that no advance invoice or ZDD is created when no matching invoice is found?

No. If no invoice is found for matching, an advance invoice and ZDD are always created for subsequent deduction.

API call command:

In bank: POST/PUT c/company/banka/automaticke-parovani-pokrocile.xml
In cash register: POST/PUT c/company/pokladni-pohyb/automaticke-parovani-pokrocile.xml

The price for this module is CZK 9,950 excl. VAT (for purchase) or CZK 995/month excl. VAT (for rental). An initial consultation and configuration are also required, billed according to the current price list. Setting up one company typically takes approximately 1 hour of consultation with our specialist.


If you are interested in this module, please contact our sales department:
371 124 340
obchodflexi@abra.eu


Did this answer your question?