Supplier identification
To process an invoice, the supplier number must first be identified in M3. Because invoices do not contain the M3 supplier number, this solution automatically searches for a match using two identification methods:
- Standard M3 API identification: A multi-step search that queries M3 programs for exact matches based on the most reliable data extracted from the invoice, such as the VAT registration number, bank account number, and tax ID.
- AI-based identification: A model trained on M3 supplier data and enriched through supplier self-learning. It identifies the supplier using less structured information, such as the supplier name, address, email address, and phone number, to determine a single, confident match.
The order in which these methods run is controlled by the supplierIdentificationSequence RPA user argument. If the process cannot identify a unique supplier after the configured checks, the system automatically sends the invoice to the Review Center for manual supplier selection.
Controlling the identification order
The supplierIdentificationSequence RPA user argument defines which identification methods run and in what order. Each method is represented by a sequence number:
- Sequence 1 - AI-based identification: The supplier is identified using the AI model, which is trained on M3 data and continuously improved through supplier self-learning. This method evaluates attributes like supplier name, address fields, supplier email, and phone number.
- Sequence 2 - Standard M3 API identification: The supplier is identified using the standard M3 API exact-match process. See sequences 1 through 5 in the data table.
This table outlines the order in which data is searched by the standard M3 API identification method, along with the corresponding fields and programs in M3:
Sequence Data M3 program M3 field name Comment 1 VAT registration number CRS628 TNOS Exact match is required. CRS620 VRNO Exact match is required. 2 Bank account field 2 CRS692 BAF2 Exact match is required. 3 IBAN number CRS692 IBAN Exact match is required. 4 Organization number 1 CRS620 CORG Exact match is required. 5 Tax ID number for supplier CRS624 TINO Exact match is required.
The argument accepts these values:
- 1,2: The AI-based check runs first. If it does not return a unique supplier, the standard M3 API check runs next.
- 2,1: The standard M3 API check runs first. If it does not return a unique supplier, the AI-based check runs next.
- 1: Only the AI-based check is performed.
- 2: Only the standard M3 API check is performed and self-learning for supplier identification is disabled.
The RPA robot performs the checks one after another in the order defined. As soon as a check returns a unique supplier, that supplier is used and the remaining check is skipped. When only a single value, such as 1 or 2, is configured, only that specific check is performed and no fallback is applied.
See later section about supplier self-learning controls.
Purchase Order-based Supplier Resolution
If the enablePOBasedSupplierIdentification RPA user argument is set to True, the system gives the highest priority to identifying the supplier directly from the Purchase Order referenced on the invoice. For PO-based invoices, no other supplier identification checks are performed; the supplier is derived exclusively from the PO, regardless of the value configured in the RPA argument supplierIdentificationSequence.
This process follows these steps:
- If a valid PO number is present on the invoice, the system retrieves the supplier associated with that PO in M3 and uses it for invoice processing. No additional supplier identification methods, such as VAT registration number, bank account, or AI-based matching, are executed.
- If no PO number is present on the invoice but a Delivery Note Number is available, the system queries 'Supplier Delivery Note. Open' (PPS360) to retrieve the associated PO number. The supplier is then identified from the retrieved PO.
- If neither a PO number nor a Delivery Note Number is available on the invoice, the standard supplier identification sequence is followed.
This method applies only to PO-based invoices. For non-PO-based invoices, where a Purchase Order is not available, the supplier identification sequence defined in supplierIdentificationSequence is used.
If the enablePOBasedSupplierIdentification RPA argument is set to False or is not configured, the supplier identification sequence defined in supplierIdentificationSequence is applied to all invoices, regardless of whether a PO number is present.
Handling of multiple supplier matches
In certain scenarios, the supplier identification process may return multiple matching supplier records based on extracted invoice data, such as the supplier name, VAT number, or bank details. To ensure accurate identification, this logic is applied:
- The first matching supplier is not automatically selected.
- Instead, each matching supplier record is evaluated sequentially.
- Each candidate is validated against downstream processing criteria based on the priority sequence listed in the table.
- If only one valid supplier is identified after this evaluation, invoice processing continues as usual.
Supplier self-learning controls
The solution provides granular control over which manual supplier number corrections are used for self-learning. In the Review Center, the Use supplier for self-learning field is always displayed next to the supplier attribute. This field is blank by default. The user must explicitly select Yes for the correction to be used for self-learning. If the field is left blank or set to No, the correction is applied to the current invoice only and is not used for future processing.
This information describe how supplier self-learning works:
- When a supplier correction is made in the Review Center, the Use supplier for self-learning field is available and is blank by default. If the user selects Yes, the corrected supplier data is marked for self-learning. After the invoice is successfully processed and posted to M3, this data is incorporated into the supplier identification model and used in subsequent processing runs.
- If the user selects No or leaves the field blank, the correction is applied to the current invoice but is not used for future supplier identification.
This approach ensures that only verified, user-approved corrections contribute to model training. Incorrect or one-time corrections do not affect future processing unless explicitly approved.
To use previously learned supplier data during invoice processing, the supplierIdentificationSequence RPA user argument must hold the value 1. If this argument only list value 2, the learned data is not applied during supplier identification, and the system relies solely on the standard identification sequence. The self-learning indicators in the Review Center remain available for users to mark corrections, but the data is stored and not used until the argument is enabled.