E-Invoice Error Reference
1375+ documented errors for Peppol, UBL, CII, and EN16931 validation errors.
1375 errors found · Page 1 of 28
cvc-complex-type.4xsdBLOCKEDRequired attribute is missing from an invoice element
An XML element in your invoice is missing a required attribute. In Peppol and UBL invoices, this typically means a monetary amount is missing its currencyID attribute, or an identifier is missing its schemeID. The element itself is present, but it lacks required metadata that receiving systems need to process it correctly.
cvc-datatype-valid.1.2.1xsdAUTO-FIXValue does not match the required XML datatype format
cvc-datatype-valid.1.2.1 is an XML Schema (XSD) validation error meaning a value does not satisfy the lexical rules of its declared simple type. The message reads "'X' is not a valid value for 'Y'." In e-invoicing this usually means a number, date, or boolean is formatted in a locale or style the schema does not allow — a comma decimal separator, a DD/MM/YYYY date, or 'Yes'/'No' for a boolean.
cvc-complex-type.2.4.bxsdINPUTRequired XML element is missing (XSD content model incomplete)
cvc-complex-type.2.4.b is an XML Schema (XSD) validation error meaning an element's content is incomplete: the schema requires a child element that is not present. The message reads "The content of element 'X' is not complete. One of {'Y'} is expected." Unlike a business rule (BR-*) violation, this is a structural failure — the document does not conform to the UBL or CII schema, so it fails before any EN 16931 business rules are evaluated.
cvc-complex-type.2.2xsdAUTO-FIXInvoice XML elements are in the wrong order
The elements in your invoice XML are in the wrong order. UBL 2.1 and CII D16B schemas use strict element ordering (xs:sequence), which means child elements must appear in a specific order. Even if all the right elements are present with correct values, having them in the wrong order causes a schema validation failure.
BR-04EN 16931AUTO-FIXMissing invoice type code
An Invoice shall have an Invoice type code (BT-3). The most common value is 380 for a standard commercial invoice.
BR-53EN 16931BLOCKEDVAT amount in accounting currency is missing
Your invoice declares a tax accounting currency (different from the invoice currency), but the total VAT amount in that accounting currency is not provided. When using a separate tax currency, you must include the VAT total in both currencies.
PEPPOL-EN16931-R102Peppol BIS 3.0AUTO-FIXDocument Reference Only Allowed for Invoice Line Object
PEPPOL-EN16931-R102 fires when a DocumentReference element is used at the wrong level in the invoice. The cac:DocumentReference element can only be used to reference an invoiced object at the line level, not at the document header level.
BR-17EN 16931INPUTInvoice line item name required
Each invoice line must have an item name describing what is being invoiced.
BR-19EN 16931INPUTThe Seller tax representative postal address (BG-12) shall be provided in...
The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11). This applies to the `cac:PostalAddress` element in the invoice XML.
BR-20EN 16931INPUTThe Seller tax representative postal address (BG-12) shall contain a Tax...
The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11). This applies to the `cac:PostalAddress` element in the invoice XML.
KSEF-440PLksefBLOCKEDKSeF Duplicate Invoice Rejection (HTTP 440)
The KSeF system rejected your invoice because it detected a duplicate submission. KSeF checks the combination of seller NIP, invoice number, and invoice date against all invoices submitted in the last 10 years. If a match is found, the API returns HTTP status 440 and the invoice is not accepted.
BR-22EN 16931INPUTInvoice currency code required
The invoice must specify the document currency using ISO 4217 alpha-3 code.
PEPPOL-COMMON-R052DKPeppol BIS 3.0AUTO-FIXDanish Chamber of Commerce P-Number Format Invalid
PEPPOL-COMMON-R052 validates that a Danish chamber of commerce production unit number (P-number) is in the correct format. The P-number must consist of exactly 10 digits. This rule fires when a party identifier uses scheme 0198 but the value does not meet the format requirements.
BR-24EN 16931BLOCKEDAmount currency must match document currency
Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).. Check the `cbc:LineExtensionAmount` element in your invoice XML.
UBL-CR-077UBL 2.1AUTO-FIXA UBL invoice should not include the StatementDocumentReference
Your invoice contains StatementDocumentReference which is not allowed in EN16931 invoices. Statement references are not supported.
ZUG-XMP-001zugferdBLOCKEDZUGFeRD/Factur-X PDF Missing or Invalid XMP Metadata
The ZUGFeRD or Factur-X PDF is missing required XMP metadata properties in the fx namespace.
BR-45EN 16931BLOCKEDEach VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).
Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).. Check the `cac:TaxSubtotal` element in your invoice XML.
BR-18EN 16931INPUTInvoice line price required
Each invoice line must have a price amount (item net price).
ZUG-FILENAME-001zugferdBLOCKEDZUGFeRD/Factur-X Wrong Embedded XML Filename
The embedded XML in your ZUGFeRD/Factur-X PDF has the wrong filename. It must be exactly factur-x.xml since ZUGFeRD 2.1.
cvc-complex-type.2.4.dxsdBLOCKEDUnexpected child element in invoice XML
cvc-complex-type.2.4.d is an XSD schema-validation error raised by Xerces-based parsers when the invoice contains an element the schema does not allow at that position. The parser has finished accepting the declared children for the current parent and encountered one more element it was not expecting.
CII-SR-02cii-d16bBLOCKEDCII GuidelineSpecifiedDocumentContextParameter required
CII must specify guideline identifier.
cvc-complex-type.2.3xsdCONFIRMText content inside an element-only element
cvc-complex-type.2.3 is an XSD error raised when an element declared as element-only has non-whitespace text inside it. Mixing text and structural children is not allowed for that complex type.
PEPPOL-EN16931-R040EN 16931AUTO-FIXDiscount or surcharge amount doesn't match the calculation
A discount or surcharge amount does not match its base amount multiplied by the percentage. When all three values are provided (amount, base amount, and percentage), they must be consistent: amount = base amount × percentage ÷ 100.
CII-SR-046cii-d16bINPUTGlobalID present without schemeID attribute
CII-SR-046 is a fatal EN 16931 Schematron assertion on the CII binding used by ZUGFeRD and Factur-X. If ram:GlobalID is present, it must carry a schemeID attribute. Formal test: not(ram:GlobalID) or (ram:GlobalID/@schemeID).
CII-DT-024cii-d16bAUTO-FIXDate element missing format="102" attribute
CII-DT-024 is an EN 16931 datatype assertion on the CII binding. Every udt:DateTimeString or udt:DateString must carry format="102" — the UN/EDIFACT code for an eight-digit CCYYMMDD date.
XML-001ubl-2.1BLOCKEDInvoice file is not well-formed XML
XML-001 is raised when the invoice file fails XML well-formedness before any schema or Schematron rule can apply. The parser cannot build a DOM tree because the bytes do not conform to XML 1.0 grammar.
PEPPOL-EN16931-R061Peppol BIS 3.0INPUTMissing direct debit mandate reference
When payment is by direct debit (SEPA or other), the invoice must include the mandate reference number. This is the unique identifier of the agreement that authorizes the seller to collect payment from the buyer's bank account.
UBL-CR-470UBL 2.1AUTO-FIXA UBL invoice should not include the PrepaidPayment
Your invoice contains a PrepaidPayment element which is not allowed in EN16931 invoices. This element must be removed.
XML-002ubl-2.1BLOCKEDMalformed XML structure
XML document is not well-formed.
UBL-CR-491UBL 2.1AUTO-FIXA UBL invoice should not include the PricingExchangeRate
Your invoice contains a PricingExchangeRate element which is not allowed in EN16931 invoices. This element must be removed.
XML-004ubl-2.1BLOCKEDInvalid XML characters
Document contains invalid XML characters.
BR-21EN 16931AUTO-FIXMissing invoice line identifier
Each Invoice line shall have an Invoice line identifier (BT-126). This is a unique sequential number identifying each line item on the invoice.
PT-R-001PRTubl-2.1INPUTPortuguese NIF required
Portuguese invoices must include NIF (Numero de Identificacao Fiscal).
UBL-CR-079UBL 2.1AUTO-FIXA UBL invoice should not include the OriginatorDocumentReference UUID
Your invoice contains OriginatorDocumentReference/UUID which is not allowed in EN16931 invoices.
BR-DEX-11DEUXRechnung (Germany)AUTO-FIXMissing third party payment amount. When using third party payment group...
Missing third party payment amount. When using third party payment group (BG-DEX-09), the amount (BT-DEX-002) is required.
UBL-SR-06ubl-2.1CONFIRMInvalid date format
UBL dates must use YYYY-MM-DD format.
BR-G-09EN 16931AUTO-FIXThe tax amount for this VAT category must be 0 (zero). This category does...
The tax amount for this VAT category must be 0 (zero). This category does not generate tax.
UBL-SR-08ubl-2.1CONFIRMQuantity missing unit code
Quantity elements must have unitCode attribute.
BR-G-10EN 16931AUTO-FIXThis VAT category requires an exemption reason code or text explaining why...
This VAT category requires an exemption reason code or text explaining why no tax is charged (applies to `cac:TaxSubtotal`, rule BR-G-10).
UBL-DT-19EN16931BLOCKEDLanguage identifier attribute should not be present
Your invoice contains the languageID attribute on a text element. This attribute is not allowed in EN16931 and must be removed.
BR-IC-09EN 16931AUTO-FIXThe tax amount for this VAT category must be 0 (zero). This category does...
The tax amount for this VAT category must be 0 (zero). This category does not generate tax (applies to `cbc:TaxAmount`, rule BR-IC-09).
PT-R-002PRTubl-2.1INPUTAT document codes required
Portuguese invoices need AT (Autoridade Tributaria) document codes.
CII-DT-018cii-d16bAUTO-FIXTypeCode should not be present on this element
CII-DT-018 is an EN 16931 datatype assertion on the CII binding. It forbids a ram:TypeCode child on any element except ram:AdditionalReferencedDocument, and even there restricts the value to UNTDID 1001 codes 50 (price/sales catalogue), 130 (invoicing data sheet), or 916 (related document).
UBL-CR-019UBL 2.1AUTO-FIXA UBL invoice should not include the OrderReference IssueTime
Your invoice contains OrderReference/IssueTime which is not allowed in EN16931 invoices.
DK-R-006DNKOIOUBL (Denmark)BLOCKEDFor Danish suppliers bank account and registration account is mandatory if...
Danish suppliers using payment means 31 (credit transfer) or 42 (payment to bank account) must provide both bank account number and registration number.
UBL-CR-017UBL 2.1AUTO-FIXA UBL invoice should not include the OrderReference UUID
Your invoice contains OrderReference/UUID which is not allowed in EN16931 invoices.
BR-29EN 16931AUTO-FIXInvoice period end date before start date
The Invoicing Period End Date (BT-74) is before the Start Date (BT-73). The end date must be on or after the start date.
BR-32EN 16931AUTO-FIXEach Document level allowance (BG-20) shall have a Document level allowance...
Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95). Check the `cac:AllowanceCharge` element in your invoice XML.
BR-33EN 16931AUTO-FIXDocument level allowance reason required
A document level allowance (discount) is missing both a reason text (BT-97) and reason code (BT-98). At least one must be provided to explain why this discount exists.
BR-O-08EN 16931AUTO-FIXThe taxable amount for this VAT category must equal the sum of line amounts...
The taxable amount for this VAT category must equal the sum of line amounts minus allowances plus charges for this category (applies to `cac:TaxSubtotal`, rule BR-O-08).
Handle These Errors Automatically in Your Pipeline
The compliance engine auto-remediates validation errors with controlled safety policies and evidence pack generation.
Get API Access→