Skip to main content
ABBYY FlexiCapture for Invoices first recognizes the text of an invoice. It then detects and captures the main invoice fields using a FlexiLayout and neural networks. When both methods detect a field, the program combines the results or selects the best one.

How invoice text is recognized

The program starts processing an invoice by recognizing its text in accordance with the Document Definition settings. Invoice fields are extracted upon recognition. Recognition languages in FlexiCapture for Invoices are tied to the country settings. When you add an invoice country to the Countries and Languages group, the corresponding languages automatically appear in the Document Definition settings.

How a FlexiLayout detects fields

The FlexiLayout detects the vendor and business unit first. Their countries are then used to select the keywords and tax rates for capturing the other invoice fields.

Vendor and business unit detection

To determine the vendor and business unit, the program uses values from the Document Definition settings and from the Data set records. For more information about the BusinessUnits and Vendors columns in the Data sets and how to use them, see BusinessUnits data set and Vendors data set.

Data set requirements for accurate company detection

The detail and quality of the information entered in the Data set columns has a significant impact on detection quality. For the most accurate search results, make sure that the Data set meets these requirements.

Company detection algorithm

The program detects the vendor and business unit in three stages. To improve the results of these stages, see Improve vendor and business unit detection.
1

Unique identifier search

The unique company identifiers are VATID, NationalVATID, and IBAN. FlexiCapture for Invoices searches the document image for these values.In the Document Definition properties (Document Definition Settings tab, Countries and Languages group), the VATID, NationalVATID, and IBAN formats (Formats tab) and keywords (Keywords tab) are set for each country using regular expressions.The program looks for exact matches on the image for such fields. Regular expressions can also take possible recognition errors into account, by means of extended regular expressions. For more information, see Extended regular expressions.Detected values are normalized as follows:
  • Letters are converted to uppercase.
  • Spaces and the following characters are removed: ., ,, —, /, \.
If the letter prefix of a field is specified using a regular expression in the country properties on the Formats tab, the recognized prefix is replaced by the primary prefix (also set on the Formats tab). For example, the identifier DE12345 may be recognized as OE12345. The detected prefix OE is then replaced with the correct prefix DE.The VATID, NationalVATID, and IBAN fields detected on a document image are used to query the Data set. The VATID, NationalVATID, and IBAN column values received from the Data set are normalized the same way as the values detected on the image, and then matched (using exact matching) to the normalized values detected on the image.
2

Company name and address search

A query that uses all document text to look for the records that match it most accurately is sent to the Data set.The Name, Street, ZIP, and City values detected on the image are matched to the corresponding Data set record values.
3

Hypothesis formation

The companies found during the previous steps are used to form a set of hypotheses. ABBYY FlexiCapture for Invoices evaluates these hypotheses and selects the 5 vendor records and 5 business unit records that most reliably match the field values on the document image. These records form 25 vendor–business-unit pairs, with each pair treated as a separate hypothesis. A neural network algorithm then rates the hypotheses by reliability, and the best-fit vendor–BU pair becomes the final hypothesis and the result of vendor and business unit detection.

Hypothesis filtering

Hypotheses are split into reliable and unreliable hypotheses, based on how reliably the Data set record matches the field value on the document image. Depending on the verification scenario, you can decide whether to take hypothesis reliability into account when detecting the vendor and business unit. To make ABBYY FlexiCapture for Invoices select the final hypothesis exclusively from reliable hypotheses, use the InvoiceReader/ShouldFilterUnsureCompanyHypotheses registry flag. Hypothesis filtering works differently for vendors and business units. Filtering differs because the vendor and business unit Data sets differ.
  • There are usually far fewer business unit records than vendor records. They also change far less frequently, so they are easier to keep up-to-date. Therefore, detecting a reliable hypothesis increases the probability of the final hypothesis being correct. However, detecting a business unit is important even if no reliable hypotheses have been found, because the most important factor in the reliability of the detection result is the reliability evaluation of the vendor–BU pairs.
  • There are usually far more vendor records, and the Data set contains more columns, because vendors specify more information about their own company on their invoices than about the business unit. Records can also contain outdated information, so unreliable hypothesis filtering depends on both the quality of the Data set and the verification scenario type.
To improve the probability of detecting reliable hypotheses, keep Data sets up-to-date and include as much information about vendors and business units as possible.

Vendor and business unit detection results

The main results of detecting the vendor and business unit are the identifiers of their records. Detection can also return flags, field regions, and the country of each company. By examining the locations of the field regions on the image, you can see exactly where the program found the fields of the Vendor and Business Unit field groups, which enabled it to detect the vendor and the business unit. If the field values for IBAN and VATID are absent from the Vendors data set, keywords and format can be used to detect the appropriate values the same way that bank details are detected (if the corresponding vendor has been found). Search for any field region can be modified through training or by applying an additional FlexiLayout. This has no effect on vendor and business unit detection, but may affect the location of the field regions in these field groups after matching the Document Definition with the invoices. For more information, see Capturing additional invoice fields.

Improve vendor and business unit detection

The better a vendor or business unit record in the data set matches the text extracted from an invoice image, the more accurately the program detects the vendor or business unit. First, identify the data in the external database that corresponds to the data set columns used for finding the company on an invoice. The external database and the data set have to be properly connected. For more information, see Using vendor and business unit databases. Connect a business unit database even if business unit detection is not required. If only the vendor database is connected, the quality of the vendor–BU pair evaluation may be negatively affected. If there is a very small number of business units (for example, one), connecting such a database does not significantly affect the evaluation. However, it may improve detection quality when a business unit is being incorrectly detected as a vendor. Fill in the Name, Street, ZIP, and City columns of the Data set for the best name and address search results. Company name and address information is especially important when the company cannot be identified using VATID, NationalVATID, or IBAN. Correctly filled-in keywords and identifier formats significantly improve detection quality. ABBYY FlexiCapture for Invoices offers preset regular expressions for the identifier formats, but you can create your own if required. To do so, navigate to the Countries and Languages group on the Document Definition Settings tab, select the appropriate country, and click Edit…. If the same company occurs in both the list of vendors and the list of business units, specify the same VATID for the respective records in both data sets (even if there is no VATID on invoices). This prevents the program from detecting the vendor and business unit incorrectly. To compensate for possible variations in field values on images, use:

Predefined vendor and business unit values

The vendor or business unit of the invoice’s company can be determined in advance based on the invoice’s source (the name of the Scanning Operator or the email address of the message’s sender). To specify the vendor or business unit explicitly before automatic detection, set the document’s registration parameter fc_Predefined:InvoicePredefinedVendorId or fc_Predefined:InvoicePredefinedBusinessUnitId to the identifier (Id) of an entry in the Vendors or BusinessUnits data set. A predefined value does not prevent automatic detection of the vendor or business unit. In addition to the predefined vendor or business unit, you get a confidence value (indicating how well the predefined values match the values extracted from the image), and the regions of fields from the Vendor and Business Unit field groups.

Invoice Header field group

InvoiceNumber and InvoiceDate

An invoice’s header includes, among others, the InvoiceNumber and InvoiceDate fields. These fields are detected using keywords specified in the language properties of the Document Definition. The vendor and business unit are detected first, providing information about their countries. The countries determine the languages (languages that correspond to a country are specified in the Document Definition). The set of keywords for finding fields is taken from the countries of the vendor and the business unit. You can change the way the program looks for field regions by editing keywords and by using training.

How the program identifies invoices and credit notes

FlexiCapture determines whether a document is an invoice when applying the FlexiLayout. Each of these conditions indicates that a document is an invoice. Not all of the conditions have to be met, but each one carries a certain weight.
  • InvoiceNumber and InvoiceDate fields were detected.
  • Keywords from the InvoiceIdentifiers located element were detected. For more information, see Keywords.
  • A vendor or a business unit was detected on the document.
A document can be identified as a credit note if keywords from the CreditNoteKeyword element were detected on the image or if the document has a negative Total.

Amounts field group

FlexiCapture for Invoices captures these Amounts fields from an invoice.

Tax rates and tax totals

Information from the Document Definition is used to find sums and tax rates. The program tries to find up to two tax rates on the image. If there are more than two tax rates in the invoice, additional fields can be created and filled in manually on the data form. The program uses keywords to detect the TotalTax and TotalNetto fields. You can specify these keywords in the properties of a country or language, depending on how the keyword should be used. For more information, see Country and language settings and Keywords.

How the Total field is detected

There are two types of keywords for the Total field, located in different categories. For more information about Located element categories, see Keywords.
If you are not sure which of these two categories to add a keyword to, add it to AmountTotalHighConfidenceLabels. If you encounter invoices where the keyword causes the program to identify another field as the Total field, you can move it to AmountTotalLowConfidenceLabels.
In addition to keywords, the program looks for these items when attempting to detect the Total field:
  • Numbers that occur two or three times in the same line or column on the image. Such numbers may be the Total on invoices where no taxes are specified.
  • Numbers that are sums of the numbers located above them in the same column.
  • The largest (by absolute value) numbers located at the end of the document.

Currency and calculated amounts

The program searches for the Currency field only if a Total field has been detected. Keywords from the properties of the country in the Document Definition are used. Any fields in the Amounts field group that could not be detected on the image are calculated automatically, except for the Total field, which must be detected on the image. If the program fails to correctly extract information from the fields in the Amounts field group, the Total field is marked as requiring verification. If the program fails to detect the Total and Currency fields with a high degree of confidence, or fails to detect them altogether, you can use training to improve the quality of extraction.

Purchase Order field group

FlexiCapture for Invoices can extract all purchase order numbers and their corresponding sums from the invoice. This feature is disabled by default. For more information, see Purchase order matching. To extract Purchase Order numbers, you need a data set with a list of possible Purchase Order numbers and their sums. For more information, see PurchaseOrders data set. The Purchase Order field can be extracted using a regular expression or a data set containing possible purchase order numbers.

Purchase order detection with a data set

If a data set with possible purchase order numbers is used, FlexiCapture for Invoices searches images for numbers from this data set. It is best to have as few purchase order numbers in the database as possible. To decrease their number, you can:
  • Use the VendorId column of the data set. In this case, the program only uses Purchase Order numbers from the invoice’s vendor.
  • Filter out purchase orders for which an invoice has already been received, and add only the numbers of purchase orders for which no invoice has been received yet.
The program searches the database for sums that correspond to detected Purchase Order numbers. It also searches the image for all Purchase Order numbers, including those in the invoice’s line items.

Purchase order detection with a regular expression

Purchase orders are usually generated by the buyer’s ERP system, so invoices billed to a specific Business Unit tend to be similar, and it is usually possible to describe them using a regular expression. If there is a regular expression for purchase order numbers, the program detects all numbers on images that satisfy the expression. You can specify the regular expression in the RegularExpression element of an XML configuration file.
For more information about XML configuration files, see Editing invoice processing settings in XML files.

Line Items field group

FlexiCapture for Invoices can extract invoice line items from images. Extraction of invoice line items is disabled by default. For more information, see Additional fields. For a list of fields the program extracts automatically, see Captured fields. FlexiCapture for Invoices first searches the image for a table. During this search, it uses the keywords for column titles specified for every language in the Document Definition’s properties. Keywords for columns of invoice line items are also used for classifying items, that is, for determining the type of each invoice line item column. The program then uses information about detected columns and mathematical expressions to find invoice line items in the invoice’s table. Finally, it searches invoice line items for fields from columns. Training can be used to improve the quality of automatic line item extraction.

How neural networks detect fields

The program includes two neural networks that can be used to capture these fields:
  • InvoiceNumber
  • InvoiceDate
  • Total
  • Vendor\Name
  • Vendor\Address
  • Business Unit\Name
  • Business Unit\Address
  • Purchase Orders\Order Number
  • LineItems:
    • OrderNumber
    • OrderDate
    • Position
    • ArticleNumber
    • Description
    • Quantity
    • Unit of measurement
    • Unit Price
    • Total Price Netto
    • VATPercentage
Neural networks can self-learn: they can detect complex dependencies among input data and make useful generalizations. For maximum precision, the program uses both a FlexiLayout and its neural networks to capture invoice fields. Fields that the program fails to extract using its neural networks are extracted using the FlexiLayout. If a field can be extracted by both the neural networks and the FlexiLayout, the program intelligently combines the results. How the results are combined depends on the field. For more information, see How field detection results are combined.

Disable the neural networks

By default, the neural networks are used as the second method of capturing document fields. If you need to process documents other than invoices within your invoice project, you can disable the neural networks. They were specifically trained to capture invoice fields and may not perform well on other types of documents.
1

Open the Document Definition Editor

Open the Document Definition Editor.
2

Open the additional fields and features

Click Document Definition Properties… → Document Definition Settings → Additional Fields and Features.
3

Disable the option

Disable the option for the field groups whose neural network you want to disable.

How field detection results are combined

How the program combines the field detection results or selects the best result depends on the field. As a general rule, precedence is given to the results obtained by the respective neural network. The exceptions are searches based on data sets and searches using regular expressions created for specific customer documents.