Complete reference of 41 validation errors from EN 16931, PEPPOL BIS Billing 3.0, and UBL 2.1. Each code includes cause and fix.
TaxAmount values does not equal the calculated sum of (TaxableAmount × TaxRate). Usually a rounding error.
cbc:ID (BT-1) is missing. Every invoice must have a unique identification number.
cbc:IssueDate (BT-2) is missing. Format must be YYYY-MM-DD.
cbc:InvoiceTypeCode (BT-3) is missing. Use 380 for standard invoice, 381 for credit note.
cbc:DocumentCurrencyCode (BT-5) is missing. Use ISO 4217 three-letter currency code.
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0urn:fdc:peppol.eu:2017:poacc:billing:01:1.00196 for Slovak IČO).
VAT in all tax-related elements.
true (charge) or false (discount).
<Invoice> or <CreditNote>, or the namespace URIs are incorrect.
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"2.1. UBL 2.0 or 2.3 are not accepted by PEPPOL.
YYYY-MM-DD. Common errors: 18.06.2025 or 2025/06/18.
2025-06-18 for all date fields.currencyID attribute matching DocumentCurrencyCode.