Klarfile

De e-factuur, en waardoor ze wordt afgekeurd

Een e-factuur is geen factuur in PDF. Het is een bestand dat een machine leest, en dat de machine van uw klant bij de kleinste afwijking weigert. Hier staat wat de Europese norm eist, hoe Nederland dat invult, en waarmee u het kunt controleren zonder uw facturatie ergens naartoe te sturen.

In Nederland loopt het over Peppol, en dat is goed nieuws

Wie aan de rijksoverheid levert, factureert al jaren elektronisch. Sinds 2017 aanvaardt de rijksoverheid geen PDF-facturen meer van haar leveranciers, en de Europese richtlijn 2014/55/EU verplicht elke aanbestedende dienst in de Unie om een factuur volgens de norm EN 16931 te kunnen ontvangen en verwerken.

De Nederlandse invulling heet NLCIUS, en het is geen apart formaat: het is een verscherping van diezelfde EN 16931, in de UBL-syntaxis, die meestal over het Peppol-netwerk reist als BIS Billing 3.0.

Dat is precies wat deze controleur leest. Een Peppol UBL-bestand hoeft hier niet in een PDF te zitten: het menselijk leesbare PDF is optioneel in de norm, en een kaal .xml-bestand wordt gewoon gelezen zoals het is.

En wat u uit Frankrijk en Duitsland ontvangt: Factur-X

Een Factur-X is een PDF/A-3 — een archief-PDF, leesbaar door elke lezer — die als bijlage een XML-bestand draagt, gestructureerd volgens de CII-syntaxis van UN/CEFACT. De mens leest de PDF, de machine leest de XML, en die twee horen hetzelfde te zeggen.

Het formaat wordt samen uitgegeven door het Franse FNFE-MPE en het Duitse FeRD: Factur-X en ZUGFeRD zijn technisch hetzelfde formaat, onder twee namen. Een geldige Duitse factuur is dat ook in Frankrijk, en omgekeerd.

De norm kent dus twee syntaxissen, en dat negeren kost geld. CII en UBL dragen dezelfde inhoud en dezelfde regels; alleen de namen van de elementen verschillen. Onze controleur leest ze allebei, en zegt welke van de twee hij voor zich heeft.

Die dubbele aard verklaart de meeste afkeuringen: een document kan een perfecte PDF met een foute XML zijn, een perfecte XML in een slecht gemaakte PDF, of allebei goed maar in tegenspraak met elkaar.

Een factuur controleren

Waarom een factuur wordt afgekeurd: vier lagen

De verpakking. Is de PDF een echte PDF/A-3? Zijn alle lettertypen ingesloten, is de uitvoerintentie aanwezig, is het document niet versleuteld? Dat is de meest voorkomende technische fout, en ze heeft niets met boekhouding te maken.

De bijlage. Zit de XML erin, heet hij factur-x.xml, is hij aangemerkt als een ANDERE VORM van het document (/AFRelationship /Alternative) en niet als zomaar een aanhangsel? Een perfecte XML onder een verkeerde naam wordt niet gelezen.

De grammatica. Volgt de XML zijn syntaxis: de juiste elementen, in de juiste volgorde, met de juiste kardinaliteiten?

De bedrijfsregels. Dat is de laag die het meest afkeurt: het totaal inclusief btw moet het bedrag exclusief btw plus de btw zijn, de btw moet de som van haar uitsplitsingen zijn, een vrijstelling moet haar reden noemen. Deze regels dragen codes (BR-CO-15, BR-E-10), en dat is wat het portaal van uw klant u terugstuurt.

Het verslag noemt de code, de oorzaak en de correctie, en verwijst naar de pagina die hem uitwerkt. Alle zevenentachtig codes hebben hun eigen pagina in het Nederlands, net als in de vijf andere talen van de site.

Alle afkeurcodes, uitgelegd

De valkuil van de profielen, die te zacht wordt uitgesproken

Factur-X heeft vijf profielen: MINIMUM, BASIC WL, BASIC, EN 16931 en EXTENDED. Ze dragen niet hetzelfde, en daar zit het probleem.

MINIMUM en BASIC WL zijn echte Factur-X-profielen die NIET conform de EN 16931 zijn: ze dragen geen enkele factuurregel. Het zijn boekhoudkoppen, bedoeld voor de inboeking. Veel programma's maken ze standaard aan, en hun gebruiker denkt een conforme e-factuur te versturen tot de eerste afkeuring.

Het profiel wordt in de XML zelf verklaard, en het is die waarde waar de controles naar kijken. Een factuur die regels bevat maar zichzelf MINIMUM noemt, wordt beoordeeld op wat ze verklaart.

Waarom hier controleren, en niet elders

Onlinevalidators bestaan, en ze werken. Ze hebben allemaal hetzelfde gebrek: u moet de factuur bij hen uploaden. En een factuur draagt een IBAN, een omzet, de identiteit van een klant, soms een onderhandelde korting die geen enkele concurrent zou mogen kennen.

Hier gaat er niets weg. Het bestand wordt gelezen door de browser, op uw eigen machine, en het beveiligingsbeleid van de pagina verbiedt elke uitgaande verbinding: connect-src 'self'. Dat is geen belofte, dat is een regel die uw browser toepast, en u kunt haar in dertig seconden zelf nakijken.

Direct gevolg: zoveel facturen als u wilt. Er staat geen server achter die betaald moet worden, dus geen tarief per document, geen account om aan te maken, geen volumegrens. Een administratiekantoor kan de hele portefeuille van zijn klanten erdoorheen halen zonder dat één bestand het kantoor verlaat.

Hoe u het zelf nakijkt Het op uw netwerk installeren

Wat dit gereedschap niet doet

Wij zijn geen Peppol-toegangspunt. Wij versturen niets over het netwerk, wij registreren geen ontvanger en wij bezorgen niets bij uw klant of bij een overheidsdienst: wij lezen een bestand en zeggen u wat er mis is. Voor het versturen hebt u uw Peppol-dienstverlener nodig.

Wij geven geen conformiteitsverklaring af, en het verslag zegt nooit «conforme factuur». Het zegt «geen fout gevonden op de N geteste regels», waarbij N het aantal werkelijk uitgevoerde controles is, want dat is wat waar is.

De PDF/A-conformiteit wordt niet uitputtend gecontroleerd. De referentie in de sector, veraPDF, heeft geen tegenhanger die in een browser draait: wij testen de vijftien condities die de overgrote meerderheid van de echte afkeuringen veroorzaken, en dat noemen wij een preflightcontrole, geen certificering.

Wij corrigeren uw factuur niet in uw eigen programma. Het gereedschap zegt u welk veld, welke regel, welke waarde werd verwacht: de blijvende correctie gebeurt in het programma dat het bestand heeft gemaakt, en dat is de enige plek waar ze standhoudt.