Nordlet

← Blogg

EN 16931-samsvar: Peppol, Factur-X og ZUGFeRD kontrollert mot de offisielle reglene

Vi kjørte fakturafilene som Nordlet produserer, gjennom de offisielle EN 16931-valideringsreglene. Peppol- og de rumenske filene består. Factur-X-filene bryter to regler, og denne artikkelen navngir dem.

Nordlet Team · · 3 min. lesetid

EN 16931 er den europeiske standarden for innholdet i en elektronisk faktura. Den definerer forretningsbegrepene som en faktura inneholder (selger, kjøper, linjer, mva-spesifikasjon, summer) og forretningsreglene som disse begrepene må tilfredsstille, for eksempel at mva-spesifikasjonen summerer seg opp til fakturatotalen. Standarden kan skrives i to XML-formater: UBL 2.1 og UN/CEFACT Cross Industry Invoice (CII).

De fleste europeiske e-fakturaformatene er bygget på EN 16931:

  • Peppol BIS Billing 3.0 er EN 16931 i UBL med ekstra Peppol-regler.
  • Rumensk e-Factura (CIUS-RO) er EN 16931 i UBL med ekstra rumenske regler.
  • Factur-X (Frankrike) og ZUGFeRD 2.3 (Tyskland) inneholder EN 16931 i CII. I «EN 16931»-profilen, som Nordlet skriver, bruker de to formatene den samme XML-en.

Hvis en faktura bryter en EN 16931-regel, bryter den også alle formater som er bygget på toppen av den.

Hvordan vi kontrollerte

Europakommisjonen henviser til valideringsreglene som publiseres av CENs tekniske komité for e-fakturering (CEN/TC 434) på GitHub. Vi brukte den nyeste versjonen, 1.3.17 av 12. oktober 2026, for både UBL og CII. Reglene er skrevet i Schematron og kompilert til XSLT, og vi kjørte dem med XSLT-motoren Saxon-HE 12.5.

Fakturafilene ble produsert av Nordlets gjeldende kode basert på eksempelvata. Selgeren er et litauisk selskap; kjøperne er et litauisk selskap, et tysk selskap og, i tilfellet med Peppol-eksport, et amerikansk selskap. Eksempelfakturaene har en mva-linje på 21 % og en linje på 0 % med en merknad om unntak.

Resultater

Hva Nordlet skriver Filer kontrollert Resultat
Peppol BIS Billing 3.0 (UBL) 7: innenlandsk faktura, kreditnota, EU-intern salg, eksport, omvendt avgiftsplikt (reverse charge), selger ikke mva-registrert, faktura i USD med rabatt Alle består: 0 feil, 0 advarsler
Rumensk e-Factura (UBL, CIUS-RO) 4: innenlandsk faktura, kreditnota, EU-intern salg, faktura i USD med rabatt Alle består
Factur-X / ZUGFeRD (CII, profil EN 16931) 4: innenlandsk faktura, kreditnota, EU-intern salg, faktura i USD med rabatt Alle 4 feiler, 1 feil hver

De to reglene som Factur-X-filene bryter

BR-Z-10: en nullsatssatslinje må ikke inneholde en unntaksårsak

EN 16931 har egne mva-kategorier for en 0 %-sats («Z», nullsats) og for en unntatt levering («E», unntatt). Bare en unntatt levering oppgir en årsak. Regel BR-Z-10 sier at en mva-spesifikasjon i kategori «Z» ikke skal ha en unntaksårsakskode (BT-121) eller unntaksårsakstekst (BT-120).

Factur-X-generatoren skriver årsaksteksten «Taux zéro» på hver nullsatsspesifikasjon, slik at tre av de fire filene feiler. Den ignorerer også unntaksmerknaden som er oppgitt på linjen. Peppol-generatoren håndterer den samme linjen korrekt: når en 0 %-linje har en unntaksmerknad, skriver den linjen som unntatt («E») og bruker merknaden som årsak.

BR-IC-12: et EU-internt salg må oppgi leveringsland

Regel BR-IC-12 sier at når mva-spesifikasjonen har kategori «K» (felleskjøpslevering / intra-Community supply), kan ikke leveringslandskoden (BT-80) være tom. Leveringsland viser at varene har forlatt selgerens land.

Factur-X-generatoren skriver ikke et leveringsland, og derfor feiler den EU-interne filen. Peppol-generatoren skriver kjøperens land som leveringsland for disse salgene.

Hva denne kontrollen ikke dekker

  • XML-skjema. Vi kjørte bare forretningsreglene, ikke UBL- og CII-skjemakontrollene (XSD).
  • Felt som Nordlet ikke skriver. Regler for vilkår som filene ikke inneholder, ble ikke kjørt. Eksempler er kostnadspåslag på dokumentnivå, forskuddsbetalte beløp, faktureringsperiode og innkjøpsordrereferanser.
  • Nasjonale regler på toppen av EN 16931. Vi kontrollerte ikke de franske e-faktureringsreformreglene eller de tyske XRechnung-reglene. De Peppol-spesifikke reglene kontrolleres av et eget Nordlet-skript som bruker OpenPeppol-regelsettet.
  • PDF-delen av Factur-X. En Factur-X-faktura er en PDF/A-3-fil med XML-en vedlagt. Kontrollen dekker kun XML-en.