Advanced automatic matching of incoming payments
Matching cannot match payments other than incoming ones, i.e., it can only match those with the movement type "Income".
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 a different variable symbol.
Examples include telecommunications or internet service providers.
Automatic matching only works with invoices and payments in the domestic currency.
In which modules can payments be automatically matched?
Matching can be used in the Bank and Cash modules.
What happens during automatic matching in the program?
When automatic matching is started, the system searches for all unmatched, non-cancelled, non-zero, income documents. If someone enters an expense with a negative value in the program, such a document will not be automatically matched by the program. Documents that you want to match must not be locked; however, if matching is performed under the Accountant user role, documents may be locked in the state: Locked except accounting.
Against income documents from the cash register or bank, the system searches for corresponding documents among issued invoices and other receivables.
5 steps the program performs during matching:
It starts comparing the payment's variable symbols with EAN codes (customer numbers) in the address book. If a matching code is found, it matches unpaid issued invoices starting from the oldest.
It compares the payment's variable symbol with internal document numbers; if found, it matches starting from the oldest.
It compares the payment's variable symbol with invoice variable symbols and matches any that are found.
It compares the sender's account number of the received payment with account numbers in the address book.
If none of the above criteria are found, it creates an overpayment according to the bagatelle overpayment settings, or issues an advance tax document.
After the documents are matched, the payment in the bank (or cash register) is split into as many lines as the number of invoices it paid (so no problem arises in the balance where matched invoices were, for example, one issued invoice and one advance invoice).
After matching, each matched bank (or cash) document will show, in the "How Paid" field, the criterion by which the document was matched — whether by variable symbol, customer number, or account number. The "Note" field will display a message indicating that this is a split payment (along with its original amount), and the "Description" field will contain the internal number of the paid document. In the relations, you will also find all documents that were paid by the payment.
In the company settings, it is necessary to set the document type for automatic generation of issued advances (ADVANCE) under (Modules -> Sales -> Document types for automatic generation).
To ensure uniqueness, before starting to use automatic matching, you need to set customer numbers (EAN) so that they are, for example, shorter or longer than variable symbols, and configure the document series for invoices and bank (cash) documents so that they contain, for example, a letter or a hyphen.
How do I get automatic matching?
This is an add-on service that needs to be ordered from the sales department, which will add it to your license.
6 parameters for setting up automatic matching:
The first parameter to set is the amount of bagatelle overpayments, i.e., the amount up to which you will neither refund overpayments nor apply them to further payments.
The second parameter determines the amount of bagatelle underpayments that you will not collect from customers.
The third parameter sets the document type that will post bagatelle overpayments to accounting. The abbreviation of the "other liability" type is always entered for this parameter.
The fourth parameter sets the document type for posting bagatelle underpayments to accounting. The abbreviation of the internal document is always entered here.
The fifth parameter defines the separator for splitting the payment, e.g., #. After documents are matched and the payment in the bank is split, the internal number will change, for example, from the original B+0001/2017 to B+0001/2017 for the first paid invoice and B+0001/2017#02 for subsequent ones.
The sixth parameter specifies the number of digits after the separator from the fifth parameter. When setting this parameter, keep in mind that the internal number can have a maximum of 20 characters, including the separator and the number of digits after it. Document series should therefore not be set too long.
The first two parameters are optional, but the other four are mandatory! Even if you do not want to set bagatelle overpayments and underpayments, you still need to set document types for them.
Once we have clarified what values we want to enter for the parameters, we create an XML file, for example, like this:
<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 XML created this way into Flexi (Tools -> Import -> Import from XML), then disable and re-enable it. The XML file must be UTF-8 encoded.
What happens with overpayments higher than the bagatelle threshold?
If an overpayment is higher than the bagatelle amount, the program will automatically create an advance invoice and an advance tax document for the received payment.
The next time an invoice is issued to the customer, it is necessary to include an Advance Tax Document Deduction in the items section. If invoices are issued via API, it is necessary to enable the advance tax document deduction — see the guide.
The advance tax document deduction can also be automated via API — see the link above. In addition, in the Sales module — Document Types — Issued Invoice Types, after opening the document type for the advance tax document, on the "Management" tab, the option "Allow automatic deduction of documents of this type" must be checked.
The document types for advance invoices and advance tax documents must be set in the Company module — Settings — Modules — Sales — Document types for automatic operation.
Can part of a payment be matched manually, for example, and then special matching run so that an advance tax document is created for the remainder of the payment?
No, this is not possible. Special matching uses a different matching mechanism than other types of matching in Flexi, so two mechanisms cannot be used on the same payment. The only way to proceed in this case would be to split the payment into multiple lines, then pay part of them manually, for example, and run special matching on the remaining amount (as a separate line in the bank), which would then automatically issue an advance tax document.
Is it possible to configure the system so that an advance and advance tax document are not issued when no matching invoice is found?
No, this is not possible. If no invoice is found for matching, an advance and advance tax document for subsequent deduction will always be created.
Command for calling via API:
In the bank: POST/PUT c/firma/banka/automaticke-parovani-pokrocile.xml
In the cash register: POST/PUT c/firma/pokladni-pohyb/automaticke-parovani-pokrocile.xml
The price for this module is described on the add-on page. In addition, an initial consultation and setup are required according to the current price list. Setting up one company 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






