ValidateFin
Terug naar blog
·Bijgewerkt 11 mrt 2026·UBL·Door Eliel Nicaise

Veelvoorkomende UBL- en Peppol-BIS-3.0-fouten en hoe ze te verhelpen

Praktische gids voor de meest voorkomende UBL-validatiefouten en Peppol-BIS-3.0-schematron-regels, inclusief BR-foutcodes en correcties.

Waarom UBL-bestanden Peppol-validatie niet doorstaan

UBL-facturen (Universal Business Language) die via het Peppol-netwerk worden verzonden, moeten drie validatielagen doorstaan: UBL 2.1 XSD-schema, EN 16931-bedrijfsregels (BR-codes) en Peppol-BIS-3.0-CIUS-regels (PEPPOL-codes).

Elke laag kan een factuur afwijzen. Deze gids behandelt de meest voorkomende fouten die teams tegenkomen bij het genereren of indienen van live Peppol-facturen.

De foutcodes volgen een gestructureerd patroon: BR-XX voor EN 16931-bedrijfsregels, PEPPOL-XX voor Peppol-specifieke regels en UBL-SR-XX voor UBL-syntaxregels.

Veelvoorkomende fouten en correcties

De meest gerapporteerde UBL/Peppol-validatiefouten:

BR-01: Factuur moet een specificatie-ID hebben

Het element <cbc:CustomizationID> ontbreekt of is leeg. Voor Peppol BIS 3.0 moet het exact bevatten: urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0

BR-02: Factuur moet een factuurnummer hebben

Het element <cbc:ID> ontbreekt of is leeg. Het factuurnummer moet uniek zijn en mag niet alleen uit spaties bestaan.

BR-04: Factuurdatum is verplicht

<cbc:IssueDate> ontbreekt. De datum moet worden opgegeven in het formaat YYYY-MM-DD, bijv. 2026-01-15. Het formaat DD/MM/YYYY wordt niet geaccepteerd.

Structuur- en formaatfouten

Blog.post12.s3.intro

Ontbrekende verplichte velden bij leveranciers/kopers

Zowel AccountingSupplierParty als AccountingCustomerParty moeten PartyName, PostalAddress (met CountryIdentificationCode) en PartyTaxScheme (met TaxSchemeID=VAT en CompanyID) bevatten.

Ongeldige TaxScheme-ID

Het TaxScheme/ID-element moet exact 'VAT' bevatten, niet 'BTW', 'TVA', 'IVA' of andere lokale schrijfwijzen.

Berekening van regelstotaal

LineExtensionAmount moet gelijk zijn aan Quantity × Price.PriceAmount (minus eventuele kortingen). De som van alle regels moet overeenkomen met TaxExclusiveAmount in LegalMonetaryTotal.

BTW- en belastingfouten

Blog.post12.s4.intro

Ongeldige BTW-categoriecode

UBL/EN 16931 definieert specifieke categoriecodes: S (Standaard), Z (Nultarief), E (Vrijgesteld), AE (Verleggingsregeling), K (Intracommunautaire levering EG), G (Export buiten EU), O (Niet belastbaar), L (Canarische Eilanden), M (Ceuta/Melilla). Gebruik geen code die niet op deze lijst staat.

Ontbrekende BTW-uitsplitsing

Het TaxTotal-element moet minimaal één TaxSubtotal bevatten voor elke verschillende toegepaste BTW-categorie. Een factuur met gemengde BTW-tarieven heeft afzonderlijke TaxSubtotal-vermeldingen nodig voor elk tarief.

Blog.post12.s4.e3.label

Blog.post12.s4.e3.desc

Valideer uw UBL-facturen gratis

ValidateFin voert een volledige driefasige validatie uit: XSD-schema, EN 16931-bedrijfsregels en Peppol-BIS-3.0-CIUS-regels. Fouten worden weergegeven met hun BR/PEPPOL-code en het onjuiste XML-pad.

UBL-validator openen

Veelgestelde vragen

Wat is het verschil tussen BR- en PEPPOL-foutcodes?

BR-codes (bijv. BR-01, BR-CO-15) komen uit de EN 16931-norm en zijn van toepassing op alle conforme e-facturen in Europa. PEPPOL-codes (bijv. PEPPOL-EN16931-R004) zijn Peppol-BIS-3.0-specifieke aanvullende regels die alleen gelden voor Peppol-netwerktransmissies.

Kan ik een UBL-factuur indienen zonder het Peppol-netwerk?

Ja. UBL kan direct worden ingediend via API, e-mail, portal of andere kanalen. Peppol-BIS-3.0-regels gelden alleen voor het Peppol-netwerk. Voor andere kanalen hoeft u mogelijk alleen EN 16931 en landspecifieke CIUS te naleven.

Hoe rond ik BTW-bedragen correct af in UBL?

EN 16931 staat een afrondingstolerantie van ±€ 0,01 per regel toe. Voor het totaal moet u alle regelbedragen optellen en dan afronden op 2 decimalen. Vermijd het gebruik van zwevende komma-rekenkunde voor financiële berekeningen.

Is CustomizationID verplicht voor alle UBL-facturen?

CustomizationID is verplicht voor Peppol BIS 3.0. Voor andere CIUS (zoals XRechnung of nationale Peppol-implementaties) is een andere waarde vereist. Controleer altijd de specifieke CIUS van uw doelland.

Blog.post12.faq.q5

Blog.post12.faq.a5

Blog.post12.faq.q6

Blog.post12.faq.a6

Blog.post12.faq.q7

Blog.post12.faq.a7

Blog.post12.faq.q8

Blog.post12.faq.a8

Blog.post12.faq.q9

Blog.post12.faq.a9

Blog.post12.faq.q10

Blog.post12.faq.a10