Navigatie

fino data services logo

Kennis · E-facturering

E-facturen valideren en het controlerapport goed lezen

Als een e-factuur uit uw software wordt afgewezen, moet uw team aan de hand van het controlerapport achterhalen welk veld de melding heeft veroorzaakt en wie het kan corrigeren.

Wij laten zien hoe u een controlerapport leest en op welke plaatsen de validatie in uw software thuishoort.

Wat er bij de validatie van een e-factuur wordt gecontroleerd

Een validator controleert een e-factuur achtereenvolgens aan de hand van drie regelsets en legt elke afwijking vast in een controlerapport.

XML-schema van de syntaxis

Een e-factuur volgens EN 16931 is opgesteld in een van twee syntaxen, UBL of UN/CEFACT CII. Alle gangbare toepassingsspecificaties bouwen voort op deze twee syntaxen, zoals XRechnung, ZUGFeRD en Peppol BIS Billing 3.0.

Het XML-schema van de syntaxis bepaalt welke elementen zijn toegestaan, in welke volgorde ze staan en welk gegevenstype ze hebben.

Schemafouten hebben geen regel-ID. De XML-parser meldt ze met eigen codes, bijvoorbeeld cvc-complex-type.2.4.a voor een element op een plaats waar het schema het niet verwacht.

Bij ZUGFeRD is een CII-bestand ingebed in een pdf. De validator controleert het XML-deel. Dit deel is bij afwijkingen van het beelddeel doorslaggevend, aldus de BMF-circulaire van 15 oktober 2025 over de invoering van de verplichte e-factuur.

Bedrijfsregels van de EN 16931

De bedrijfsregels controleren de gegevens van een e-factuur op logische fouten, bijvoorbeeld of verplichte velden zijn ingevuld en of de totalen met elkaar overeenkomen. Het Europees Comité voor Normalisatie (CEN) publiceert deze regels als Schematron-bestanden op GitHub, telkens voor UBL en voor CII.

Aan het voorvoegsel van de regel-ID herkent u het soort controle. Regels met BR en een getal controleren verplichte velden en hun aantal, BR-CO controleert berekeningen en afhankelijkheden tussen velden, BR-CL controleert codelijsten en BR-DEC het aantal decimalen van bedragen. Regels als BR-S, BR-AE of BR-IC controleren de gegevens van afzonderlijke btw-categorieën.

De CEN-bestanden bevatten bovendien syntaxisspecifieke regels. Regels met het voorvoegsel UBL-CR geven bijvoorbeeld een waarschuwing als een UBL-bestand elementen bevat die niet tot het datamodel van de EN 16931 behoren.

Regels van XRechnung en Peppol BIS Billing 3.0

XRechnung en Peppol BIS Billing 3.0 zijn toepassingsspecificaties van de EN 16931, in vaktaal CIUS (Core Invoice Usage Specification) genoemd. Ze schrijven extra velden voor en vullen de EN 16931 aan met eigen regels. Nieuwe gegevensvelden mag een CIUS niet invoeren.

De regels van XRechnung beginnen met BR-DE en zijn afkomstig van de Duitse coördinatiedienst voor IT-standaarden (Koordinierungsstelle für IT-Standards, KoSIT). Peppol BIS Billing 3.0 voegt regels toe met de voorvoegsels PEPPOL-EN16931 en PEPPOL-COMMON, plus landspecifieke regels.

De specificatie-ID in BT-24 bepaalt welke toepassingsspecificatie voor het bestand geldt. De validator van de KoSIT kiest op basis van deze ID het passende controlescenario. Een verkeerde of verouderde ID kan er daarom toe leiden dat het bestand aan de hand van andere regels wordt gecontroleerd of wordt afgewezen.

Wat een validatie niet controleert

Een validator herkent niet of het btw-tarief bij de prestatie past of dat de omschrijving van de prestatie volstaat.

Volgens het Duitse federale ministerie van Financiën moeten alle verplichte btw-gegevens in het gestructureerde deel van de e-factuur staan. Een loutere verwijzing naar een bijlage met de omschrijving van de prestatie volstaat niet. Een artikelnaam als “zie bijlage” in BT-153 doorstaat de validatie toch, omdat geen enkele regel de inhoud van dit veld beoordeelt.

De KoSIT en het Forum elektronische Rechnung Deutschland (FeRD) hebben een tabel gepubliceerd die de verplichte gegevens volgens de Duitse btw-wet koppelt aan de passende BT-velden. Aan de hand van deze tabel kunt u bepalen welke verplichte gegevens uw software met eigen plausibiliteitscontroles zou moeten afdekken.

Opbouw van een controlerapport

Elke regel in het controlerapport bevat doorgaans vier gegevens.

Regel-ID

De regel-ID, zoals BR-CO-15 of BR-DE-2, verwijst naar de regel in de documentatie van de betreffende regelset.

Ernstniveau

Een validator markeert elke melding als fout of als waarschuwing. In de Peppol-regels heten fouten fatal. Een waarschuwing alleen leidt doorgaans niet tot afwijzing. Sommige validatoren geven bovendien aanwijzingen, dat wil zeggen aanbevelingen voor een nette implementatie zonder invloed op het resultaat. De KoSIT-validator adviseert aan het einde van zijn rapport om het document te accepteren of af te wijzen.

Peppol voert nieuwe regels vaak eerst in als waarschuwing en stuurt ze in een latere release op tot fout. Met versie 3.0.21 werden bijvoorbeeld de regels PEPPOL-COMMON-R052 en PEPPOL-COMMON-R053 van waarschuwingen tot fouten, zo staat het in de release notes van Peppol BIS Billing 3.0.

Vindplaats

De vindplaats is een XPath-expressie die naar het betreffende element in de XML wijst. Hetzelfde BT-nummer staat in UBL en CII op verschillende plaatsen. Het factuurbedrag inclusief btw (BT-112) staat in UBL in het element cbc:TaxInclusiveAmount onder cac:LegalMonetaryTotal, in CII in het element ram:GrandTotalAmount onder ram:SpecifiedTradeSettlementHeaderMonetarySummation.

Bij regels die meerdere velden vergelijken, wijst de vindplaats vaak naar een bovenliggend element. De waarde die de melding veroorzaakt, vindt u dan via de meldingstekst.

Meldingstekst

De meldingstekst beschrijft de regel en noemt meestal de betrokken BT-nummers. De melding bij BR-CO-15 zegt bijvoorbeeld dat het factuurbedrag inclusief btw (BT-112) gelijk moet zijn aan de som van het factuurbedrag exclusief btw (BT-109) en het btw-bedrag (BT-110).

Sinds versie 3.0.21 beginnen de teksten van de Peppol-regels met de regel-ID.

Controlerapporten in de juiste volgorde analyseren

Een lang controlerapport is vaak terug te voeren op een paar oorzaken.

  1. Schemafouten oplossen

    Zolang het bestand niet aan het schema voldoet, zeggen de resultaten van de bedrijfsregels weinig of ontbreken ze helemaal. Los daarom eerst de schemafouten in de export op en valideer het bestand daarna opnieuw.

  2. Regels groeperen op regel-ID

    Een fout in de mapping kan in elke factuurregel optreden. Een factuur met 40 regels levert dan 40 meldingen voor dezelfde regel op, die op één enkele oorzaak teruggaan. Analyseer het rapport daarom op regel-ID.

  3. Vervolgfouten herkennen

    Een ontbrekend element kan meerdere regels tegelijk schenden. Als de btw-uitsplitsing (BG-23) ontbreekt, meldt de validator bijvoorbeeld BR-CO-18 en daarnaast regels van de betreffende btw-categorie, zoals BR-S-01. Los eerst de oorzaak op en valideer opnieuw, voordat u de overige meldingen afzonderlijk behandelt.

  4. Via het BT-nummer naar het eigen datamodel

    Het BT-nummer verbindt het controlerapport met uw software. Houd een koppeling bij van elk BT-nummer naar het databaseveld, naar het formulierveld in uw interface en naar de verantwoordelijkheid. De verantwoordelijkheid bepaalt of uw team een fout oplost of uw klant, bijvoorbeeld als stamgegevens ontbreken.

  5. Waarschuwingen beoordelen en vastleggen

    Besluit voor elke waarschuwing of u haar oplost of bewust accepteert, en leg het besluit vast. Controleer bij elke nieuwe release of een geaccepteerde waarschuwing wordt opgewaardeerd tot fout.

Typische foutoorzaken per regelgroep

De regelgroep laat vaak al zien op welke plek in uw software de correctie moet plaatsvinden.

Schemafouten zonder regel-ID

De oorzaak ligt bij de volgorde van elementen, de namespace of een verkeerd gegevenstype in de export. De correctie vindt plaats in de exportfunctie, eenmalig voor alle klanten.

BR met getal

De oorzaak ligt bij een verplicht veld dat niet is gemapt of in de stamgegevens leeg is. De correctie vindt plaats in de mapping of bij het verplichte veld in de interface.

BR-CO en BR-DEC

De oorzaak ligt bij totalen, afronding, kortingen en toeslagen op documentniveau. De correctie vindt plaats in de rekenlogica van de factuuraanmaak.

BR-CL

De oorzaak ligt bij een verouderde of eigen code, bijvoorbeeld voor maateenheden of landen. De correctie vindt plaats bij de codelijsten in uw software.

BR-S, BR-AE, BR-IC en andere categorieën

Btw-categorie, btw-tarief en vrijstellingsgrond passen niet bij elkaar. De correctie vindt plaats in de btw-logica en bij de artikelstamgegevens.

UBL-CR

De export bevat UBL-elementen buiten het datamodel van de EN 16931. De correctie vindt plaats in de exportfunctie.

BR-DE

Contactgegevens van de verkoper, betalingsgegevens of de referentie van de koper ontbreken. De correctie vindt meestal plaats bij de stamgegevens van uw klanten.

PEPPOL-EN16931 en PEPPOL-COMMON

Het elektronische adres ontbreekt of een identificatie heeft het verkeerde formaat. De correctie vindt plaats bij de stamgegevens en het beheer van de Peppol-ID’s.

Ontbrekende referentie van de koper bij XRechnung (BR-DE-15)

De regel BR-DE-15 meldt een ontbrekende referentie van de koper in BT-10. Bij facturen aan de overheid staat daar de Leitweg-ID van de instantie. Voor B2B-facturen volstaat volgens het Duitse federale ministerie van Financiën voor de btw een plaatshouder als “-”, als de ontvanger van de factuur geen eigen kenmerk opgeeft. Uw software kan het veld voor B2B-facturen daarom vooraf invullen met een plaatshouder die uw klanten kunnen overschrijven.

Afrondingsverschillen bij de btw (BR-S-09)

De regel BR-S-09 vergelijkt het btw-bedrag van de categorie normaal tarief met het product van maatstaf van heffing en btw-tarief. Als uw software de btw per regel afrondt en de bedragen optelt, kan de som daarvan afwijken. Bij veel regels kan de afwijking groter worden dan de tolerantie die de regel toestaat. Bereken het btw-bedrag daarom per categorie uit maatstaf van heffing en btw-tarief, zoals de regel voorschrijft.

Validatie in uw software inbouwen

De validatie hoort op vijf plaatsen in uw software en uw ontwikkelproces.

Vóór verzending

Uw software zou elke e-factuur direct na het aanmaken moeten valideren en de verzending bij fouten moeten tegenhouden. Uw klanten kunnen weinig met een regel-ID of een XPath-expressie. Vertaal daarom de regels die uw klanten zelf kunnen oplossen naar een aanwijzing bij het betreffende formulierveld. De aanwijzing bij BR-DE-6, het telefoonnummer van de contactpersoon van de verkoper in BT-42, kan bijvoorbeeld luiden: “Vul een telefoonnummer in voor vragen”.

Fouten die op uw mapping of uw rekenlogica teruggaan, kan uw klant niet oplossen. Zulke fouten zouden als interne melding naar uw team moeten gaan.

Bij ontvangst

Uw software zou ook inkomende e-facturen moeten valideren en het resultaat bij het document moeten tonen. Sla het originele bestand ongewijzigd op en het controlerapport als apart document ernaast. Het Duitse federale ministerie van Financiën eist dat ten minste het gestructureerde deel van een e-factuur onaangetast in zijn oorspronkelijke vorm wordt bewaard.

Als een inkomende factuur fouten bevat, kan uw klant bij de afzender een gecorrigeerde factuur opvragen. Uw software kan deze stap ondersteunen, bijvoorbeeld met een voorbereid verzoek aan de afzender dat het controlerapport bevat.

In geautomatiseerde tests

Leg een verzameling testfacturen aan die uw factuursoorten met hun codes dekt, bijvoorbeeld 380 voor een factuur en 384 voor een gecorrigeerde factuur. Dek bovendien elke btw-categorie af die uw klanten gebruiken. Daarbij komen kortingen en toeslagen en elke syntaxis die uw software aanmaakt. Neem ook bewust foutieve bestanden op en controleer of de validator ze afwijst.

De KoSIT-validator is een opensourceprogramma voor de opdrachtregel en kan in een build-pipeline worden opgenomen. De KoSIT stelt bovendien een testsuite met voorbeeldfacturen beschikbaar, die geschikt is als uitgangspunt voor uw eigen verzameling.

Na elke update van de regelsets

De regelsets veranderen ook zonder nieuw versienummer. De KoSIT publiceert voor XRechnung 3.0.2 regelmatig bundels met foutcorrecties, het laatst in de versie van 31 augustus 2026. XRechnung 3.0 blijft ten minste tot 31 juli 2027 van kracht.

De voorversie van de specificatie XRechnung 4.0 is op 15 september 2026 verschenen. Ze is uitdrukkelijk niet bedoeld voor productief gebruik, maar geeft u een vroeg overzicht van de nieuwe en gewijzigde functionaliteiten. De definitieve versie verschijnt naar verwachting in het voorjaar van 2027, samen met de technische componenten.

OpenPeppol publiceert voor Peppol BIS Billing 3.0 regelmatig nieuwe releases, de afgelopen jaren telkens in mei en in november. Versie 3.0.21 is op 20 mei 2026 gepubliceerd en is sinds 17 augustus 2026 verplicht.

Plan voor elke release een vast moment waarop u uw testverzameling valideert aan de hand van de nieuwe regels. Leg in elk controlerapport vast met welke versie van validator en regelset het tot stand is gekomen. Zo kunt u een resultaat ook dan nog herleiden als de regels inmiddels zijn gewijzigd. Voor de overstap naar XRechnung 4.0 zou uw testomgeving beide versies parallel moeten kunnen controleren.

Controlerapporten over alle klanten heen analyseren

Als uw software e-facturen voor veel klanten aanmaakt, loont een analyse van de controlerapporten over alle klanten heen. Duikt dezelfde regel-ID plotseling bij veel klanten op, dan ligt de oorzaak waarschijnlijk in de mapping of in een nieuwe regelset. Treedt ze maar bij één klant op, dan ligt de oorzaak eerder in diens stamgegevens.

Validatie met InvoiceRails

De stappen uit dit artikel kunt u volledig zelf uitvoeren. De eenmalige inspanning daarvoor is overzichtelijk, de blijvende niet: regelsets, codelijsten en controleconfiguraties veranderen meerdere keren per jaar, en elke wijziging moet in uw tests, uw verzending en uw releaseplanning worden verwerkt.

Validatie, verzending en het beheer van de regelsets kunt u daarom ook uitbesteden aan een gecertificeerd Peppol Access Point zoals InvoiceRails.

E-factuurvalidator voor afzonderlijke controles

De gratis e-factuurvalidator van InvoiceRails controleert XML-bestanden in UBL en CII en hybride pdf-facturen, zonder aanmelding. Hij herkent syntaxis, versie en profiel automatisch, waaronder XRechnung, Peppol BIS Billing 3.0, ZUGFeRD, Factur-X en andere profielen van de EN 16931. Vervolgens valideert hij het bestand aan de hand van het XML-schema en de Schematron- en bedrijfsregels van het herkende profiel. Het controlerapport kunt u als pdf downloaden of via een link delen, bijvoorbeeld als uw support een afgewezen factuur met een klant bespreekt.

InvoiceRails-API in uw software

InvoiceRails is het door OpenPeppol gecertificeerde Peppol Access Point van fino data services. Uw software koppelt InvoiceRails via een REST-API en verzendt en ontvangt daarmee e-facturen voor een onbeperkt aantal klanten, desgewenst als white label.

De API biedt de validatie als eigen endpoint, eveneens met automatische profielherkenning. Uw software kan e-facturen daarmee direct na het aanmaken controleren. Elke melding in het antwoord bevat regel-ID, ernstniveau, meldingstekst en vindplaats als XPath. Uw software kan de validatie-ID bij de factuur opslaan en het resultaat ten minste 90 dagen lang opnieuw opvragen.

InvoiceRails valideert elk bestand dat uw software via Peppol verzendt, ook zonder deze aanroep. Uw software moet vooraf nagaan welke formaten een ontvanger ondersteunt.

InvoiceRails controleert ook inkomende e-facturen en geeft het originele bestand samen met de uitgelezen factuurgegevens door aan uw software. Een webhook meldt uw software elke wijziging van de afleverstatus.

Uw software blijft verantwoordelijk voor de koppeling van de velden uit uw datamodel, de begrijpelijke aanwijzingen in uw interface en de plausibiliteitscontroles voor verplichte gegevens die door geen enkele regel worden gedekt.

Veelgestelde vragen

De validator van de KoSIT controleert XML-documenten aan de hand van schema en Schematron. De geladen controleconfiguratie bepaalt welke regels daarbij gelden. De KoSIT publiceert een configuratie voor XRechnung en een voor Peppol BIS Billing 3.0, die is gebaseerd op de controlebestanden van OpenPeppol. Als u de regelsets niet zelf wilt beheren, kunt u de validatie integreren via het endpoint van de InvoiceRails-API, dat het profiel automatisch herkent. Het Duitse federale ministerie van Financiën beveelt geen bepaalde validator aan. Belangrijk is dat uw validator de actueel geldende versies van de regelsets gebruikt.

De validatoren kunnen verschillende versies van de regelsets gebruiken of het bestand aan de hand van verschillende toepassingsspecificaties controleren. Een validator die alleen de EN 16931 controleert, meldt bijvoorbeeld geen schendingen van XRechnung-regels zoals BR-DE-15. Sommige validatoren controleren daarnaast eigen regels die in geen enkele officiële regelset staan. Vergelijk daarom eerst de versiegegevens, de gecontroleerde specificatie en de herkomst van de gemelde regel-ID.

Een automatische afwijzing is niet noodzakelijk. Volgens het Duitse federale ministerie van Financiën is een validatie geen directe voorwaarde voor de fiscale erkenning van een factuur. De beslissing ligt bij uw klanten. Uw software zou hun daarvoor het controlerapport moeten tonen.

Doorslaggevend is het profiel dat in de specificatie-ID BT-24 staat. De profielen MINIMUM en BASIC-WL voldoen volgens het Duitse federale ministerie van Financiën niet aan de btw-eisen voor een e-factuur. Uw software zou voor e-facturen daarom een hoger profiel moeten aanmaken.

Verder lezen

Wat is Peppol BIS Billing 3.0?
E-facturering

Wat is Peppol BIS Billing 3.0?

Peppol BIS Billing 3.0 is de specificatie van OpenPeppol voor facturen en creditnota's in het Peppol-netwerk. Ze is een toepassingsspecificatie (CIUS) van de Europese norm EN 16931.

E-facturering in België
Factsheet

E-facturering in België

In België is de gestructureerde e-factuur in B2B sinds 1 januari 2026 tegelijk verplicht voor verzending en ontvangst, zonder fasering naar bedrijfsgrootte.

XRechnung, ZUGFeRD en BIS Billing 3.0: welke e-factuurformaten uw software zou moeten ondersteunen
E-facturering

XRechnung, ZUGFeRD en BIS Billing 3.0: welke e-factuurformaten uw software zou moeten ondersteunen

Vanaf 1 januari 2027 moeten bedrijven met meer dan 800.000 euro totale omzet in het voorgaande jaar e-facturen verzenden.

Validatie, verzending en ontvangst via één API

Wij laten zien hoe uw software e-facturen via InvoiceRails valideert, verzendt en ontvangt, voor een onbeperkt aantal klanten.

InvoiceRails bekijken