Four validation layers: legal validation, business rules, duplicate detection and phantom invoice detection
Validate an e-invoice with the eConnect Validator

The free eConnect Validator: check whether your XML complies with UBL, BIS Billing, and NLCIUS.

Before sending an e-invoice, you want to be sure that the XML file is technically correct. The eConnect Validator checks your invoice against XML schemas, Schematron rules, and country-specific validations. The tool is freely available as an online validator.

What does the validator check?

The eConnect Validator performs multiple checks on your e-invoice file:

XML schema validation. Is the basic structure of the file correct? Are all required XML elements present and properly nested?

Schematron validation. Does the invoice comply with the business rules of the selected profile? This includes rules for VAT calculations, mandatory fields, and code lists.

Profile detection. The system automatically recognises which profile your invoice follows (BIS Billing V3, NLCIUS, PINT, XRechnung) and applies the corresponding validation rules.

Country-specific rules. Additional validation rules apply per country. For the Netherlands these are the NL-R rules, for Germany the DE-R rules, for Denmark the DK-R rules, and so on. The validator applies these automatically based on the country code in the invoice.

Supported formats

The validator supports all common e-invoice formats:

FormatDescriptionPeppol BIS Billing V3The Peppol standard for invoices and credit notesNLCIUS / SI-UBL 2.0The Dutch implementation of EN 16931PINT (all variants)Peppol International Invoice (EU, A-NZ, Japan, Singapore, Malaysia, UAE)XRechnungGerman implementationCII (Cross-Industry Invoice)Alternative XML syntax, including Factur-X
How to use the validator

The online validator is available at /en/validator. You do not need to create an account.

  1. Open the Document Validator.
  2. Upload your XML file or paste the XML content.
  3. The validator automatically detects the format and applies the correct rules.
  4. Review the result: for each rule you can see whether the check passed, produced a warning, or contains an error.

When errors are found, the validator provides the exact error code, a description of the problem, and the location in the XML file (XPath). This tells you precisely what needs to be corrected.

Interpreting errors

The validator produces three types of messages:

  • Error: the invoice does not meet the specification and will be rejected on the Peppol network. You must resolve this before sending.
  • Warning: the invoice will not be rejected, but there is a point of attention. Warnings may become mandatory in a future release.
  • Informational: a remark with no consequences for sending.

Common error codes begin with a prefix indicating the domain: PEPPOL- for Peppol-wide rules, NL-R- for Dutch rules, BR- for base rules from EN 16931. The error description always states the expected behaviour.

Common validation errors for credit notes

When sending a credit note, a few specific validation errors occur regularly. The error appears at Peppol level (for API submissions, for example, as [API400.AT04] Invalid payload). Per rule, the cause and solution:

Error codeCauseSolutionBR-IC-02 (EN 16931: BR-IC-2)Invoice line (BG-25) with VAT category Intra-community supply / K (BT-151) without mandatory party VAT: seller VAT (BT-31) or seller tax representative VAT (BT-63), and buyer VAT (BT-48). Does not point to one specific line number; missing data is in the party details.Fill in seller VAT (or tax rep) and buyer VAT with country prefix, without spaces/dots. Check all lines with category K.BR-IC-11For an intra-community supply (VAT category "Intra-community supply"), the delivery date BT-72 is missing.Fill in the actual delivery date (BT-72, cac:Delivery/cbc:ActualDeliveryDate), or provide an invoicing period (BG-14). One of the two is mandatory.BR-IC-12For an intra-community supply, the country code BT-80 of the delivery address is missing.Fill in the "deliver to" country code (BT-80, cac:Delivery/cac:DeliveryLocation/cac:Address/cac:Country/cbc:IdentificationCode) with an ISO 3166-1 alpha-2 code.BR-27The item unit price (PriceAmount, BT-146) is negative ("Item net price shall NOT be negative"; among others, Maventa/Peppol reports this as "XML Invalid").Unit price must always be positive. Cannot be disabled -- this is not an eConnect tenant setting, it is an EN 16931/Peppol rule. Credit via a negative quantity (TypeCode 380) or via the CreditNote schema (381, both price and quantity positive). Correct the export in the source software; resending the same XML does not resolve BR-27. See also Credit note variants and self-billing.NL-R-001The mandatory invoice reference is missing on a credit note from an NL supplier.Fill in cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID with the invoice number of the original invoice. Mandatory for credit notes. See also Credit note variants.

BR-IC-11 and BR-IC-12 are EN 16931 base rules that only apply when the credit note contains an intra-community VAT category; they do not occur for domestic supplies.

Validation on sending

In addition to the manual validator, the eConnect platform also performs automatic validation at the moment of sending. If an invoice does not meet the requirements, sending is blocked and you receive an error message with the relevant validation rule.

For API users: the PSB validates every invoice at submission time and returns the validation results in the API response. This allows you to build validation into your own software process.

Keeping up with new releases

Validation rules are updated with every new release of the Peppol BIS Billing specification. eConnect updates the Schematron artefacts and code lists as soon as a new version becomes mandatory. The online validator always validates against the current release.

Tip: after a specification update, verify that your invoices are still valid. New rules may impose stricter requirements on fields that were previously optional.

Frequently asked questions
What if my invoice contains an error during validation?

For each error, the validator shows the exact error code, a description of the problem, and the location in the XML file (XPath). Errors must be resolved before sending, otherwise the invoice will be rejected on the Peppol network. Warnings are points of attention but do not block sending.

Which formats can the validator check?

The validator supports Peppol BIS Billing V3, NLCIUS/SI-UBL 2.0, all PINT variants, XRechnung, and CII (Cross-Industry Invoice, including Factur-X). The format is detected automatically when you upload your XML file.

Is my invoice also automatically validated when sending?

Yes. The eConnect platform automatically performs validation at the moment of sending. If an invoice does not meet the requirements, sending is blocked with an error message. API users receive the validation results in the API response.


Want to review sample files to check your own XML structure? Download sample files.

Validate your invoice