E-factuurvalidator

E-factuurformaten per land: wat de validator controleert

De e-factuurvalidator herkent het formaat van je bestand automatisch. Voor elk formaat controleren we de structuur tegen het officiële XML-schema. Waar officiële businessregels publiek beschikbaar zijn, controleren we die ook. Hieronder zie je de e-factuurformaten per land en wat er precies gecontroleerd wordt.

E-factuurformaten per land

LandFormaatStructuur (XSD)Businessregels
BelgiëPeppol BIS Billing 3.0 (UBL)Het formaat van de Belgische verplichting. Peppol BIS bevat geen aparte Belgische regels.JaJa
UBL.BE / e-FFFOudere Belgische variant: enkel de structuur (UBL 2.1).JaNee
NederlandPeppol BIS Billing 3.0 (UBL)Inclusief de Nederlandse Peppol-regels.JaJa
SI-UBL 2.0 en NLCIUS (UBL en CII)JaJa
Energie eFactuurEnkel de UBL-structuur.JaNee
DuitslandXRechnung 3.0 (UBL en CII)JaJa
ZUGFeRD / Factur-X (alle profielen)Getoetst aan versie 2.5.2. ZUGFeRD 2.0: enkel de structuur.JaJa
Peppol BIS Billing 3.0 (UBL)Inclusief de Duitse Peppol-regels.JaJa
FrankrijkFactur-X (alle profielen)JaJa
CTC Flux 2 en EXTENDED-CTC-FR (UBL en CII)CII wordt getoetst aan het schema CII D22B.JaJa
CDAR (statusberichten)JaNee
PPF Flux 1 en Flux 10NeeNee
ItaliëFatturaPA 1.2 (FPA12 en FPR12)Ook ondertekende .p7m-bestanden. De controles van het SdI zelf doen we niet.JaNee
Peppol BIS Billing 3.0 (UBL)Inclusief de Italiaanse Peppol-regels; de aanvullende AGID-regels niet.JaJa
SpanjeFacturae 3.0 tot 3.2.2De handtekening en VeriFactu worden niet gecontroleerd.JaNee
PolenKSeF FA(1), FA(2) en FA(3)JaNee
OostenrijkebInterface 3.0 tot 6.1JaNee
Peppol BIS Billing 3.0 (UBL)JaJa
HongarijeNAV Online Számla 2.0 en 3.0JaNee
TsjechiëISDOC 6.0JaNee
ZwedenPeppol BIS Billing 3.0 (UBL)Inclusief de Zweedse Peppol-regels.JaJa
Svefaktura 1.0JaNee
NoorwegenEHF Billing 3.0 / Peppol BISInclusief de Noorse Peppol-regels. Andere EHF-documenten: enkel de structuur.JaJa
DenemarkenPeppol BIS Billing 3.0 (UBL)Inclusief de Deense Peppol-regels.JaJa
OIOUBLEnkel de UBL-structuur.JaNee
FinlandFinvoice 1.3 tot 3.0JaNee
TEAPPSXML 2.7.2 en 3.0JaNee
Peppol BIS Billing 3.0 (UBL)JaJa
GriekenlandPeppol BIS Billing 3.0 (UBL)Inclusief de Griekse Peppol-regels. myDATA wordt niet ondersteund.JaJa
IJslandPeppol BIS Billing 3.0 (UBL)Inclusief de IJslandse Peppol-regels.JaJa
PortugalCIUS-PT (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Portugese regels niet.JaDeels
RoemeniëCIUS-RO (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Roemeense regels niet.JaDeels
KroatiëeRačun (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Kroatische regels niet.JaDeels
eIzvještavanje (e-rapportering)JaNee
ServiëSEF (UBL), eOtpremnica en ePrijemnicaJaNee
TurkijeUBL-TR / e-FaturaDe envelop (Zarf) wordt niet ondersteund.JaNee
Saoedi-ArabiëZATCA / FATOORA (UBL)Handtekening, QR-code en ZATCA-regels niet.JaNee
Peppol buiten EuropaPeppol PINT (A-NZ, JP, MY, SG, AE, OM)Enkel de UBL-structuur.JaNee
Andere landen in de EUEN 16931 (UBL en CII)JaJa
Peppol BIS Billing 3.0 (UBL)JaJa

Niet ondersteund: Braziliaanse NF-e, Griekse myDATA, VeriFactu, PPF Flux 1 en 10, Turkse Zarf-enveloppen en andere formaten die niet op XML gebaseerd zijn.

De validator controleert de structuur tegen het officiële schema en, waar beschikbaar, de officiële businessregels. Het resultaat is een hulpmiddel en geen garantie dat een ontvanger, Access Point of overheidsplatform het document aanvaardt. Nationale platformen (zoals het SdI, KSeF of de PPF) en ontvangers kunnen extra controles doen, zoals op handtekeningen, nummering of registraties. Je bestand wordt enkel in je browser verwerkt.

Een validator per e-factuurformaat

Voor de meest gevraagde formaten hebben we een eigen pagina, met de validator al ingesteld op het juiste land:

Twee controles: structuur en businessregels

Elk bestand doorloopt bij ons twee controles. Eerst kijken we of het de structuur van het officiële schema volgt: de juiste elementen, in de juiste volgorde en met het juiste type gegevens. Daarna controleren we de businessregels, zoals verplichte velden, berekeningen en codelijsten. Voor Peppol BIS, XRechnung, Factur-X en de Nederlandse en Franse regels zijn die businessregels publiek beschikbaar. Voor andere formaten bestaat er geen publieke regelset. Daar controleren we dus enkel de structuur.

Hoe kiest de validator automatisch de regels?

Kies je “Automatisch”, dan lezen we eerst enkele gegevens uit je bestand. Op basis daarvan kiezen we de regels. Onder het resultaat staat bij “Herkend aan” welke gegevens de doorslag gaven. We kijken naar drie dingen:

  1. Het formaat: UBL of CII, of een pdf met ingesloten XML zoals Factur-X of ZUGFeRD.
  2. Het specificatie-ID (BT-24): in UBL het veld CustomizationID, in CII GuidelineSpecifiedDocumentContextParameter. Dat ID zegt welke regels de afzender volgt. Het weegt het zwaarst.
  3. De Franse facturatiemodus: een code van B1 tot M9 in ProfileID of BusinessProcessSpecifiedDocumentContextParameter. Die code wijst op de Franse regels.

Herkenbare stukken in het specificatie-ID

Stuk in het IDRegels
poacc:billing:3.0Peppol BIS Billing 3.0
poacc:selfbilling:3.0Peppol BIS Self-Billing 3.0
kosit:xrechnungXRechnung (Duitsland)
kosit:extension:xrechnungXRechnung Extension
nen.nl:nlciusSI-UBL 2.0 / NLCIUS (Nederland)
nen.nl:gaccountSI-UBL 2.0 met G-rekening
factur-x.eu:1p0Factur-X / ZUGFeRD, in het profiel uit het ID (MINIMUM, BASIC WL, BASIC, EXTENDED)
cpro.gouv.frEN 16931 met de Franse regels (BR-FR)
extended-ctc-frEXTENDED-CTC-FR (Frankrijk)
urn:cen.eu:en16931:2017EN 16931, de Europese norm (als er niets meer achter staat)

Een specificatie-ID dat we niet kennen

Een specificatie-ID bestaat uit lagen. Elke laag begint met #compliant# (een beperking van de norm) of #conformant# (een uitbreiding). Kennen we het volledige ID niet, dan schrappen we de laatste laag en proberen we opnieuw. Zo controleren we een onbekende variant van XRechnung toch met de XRechnung-regels. Gaat het om een uitbreiding die we niet kennen, dan melden we dat elementen uit die uitbreiding als fout kunnen verschijnen.

Klopt de keuze niet? Kies dan zelf het land, of kies onder “Geavanceerd” de precieze regelset. Een Peppol-factuur of -creditnota controleren we altijd met de Peppol-regels van de huidige release.

Waarom één validator voor e-factuurformaten uit meerdere landen?

Belgische ondernemingen versturen hun facturen via Peppol, in het formaat Peppol BIS Billing 3.0. Toch ontvang je ook facturen uit het buitenland, of stuur je zelf facturen naar klanten in Duitsland, Frankrijk of Italië. Bovendien gebruiken veel softwarepakketten één exportformaat voor alle landen. Met deze validator controleer je daarom elk bestand op dezelfde plek, zonder dat je eerst moet weten welk formaat het is.

Wat de validator niet controleert

Nationale platformen zoals het SdI in Italië, KSeF in Polen of de PPF in Frankrijk doen extra controles, bijvoorbeeld op handtekeningen, nummering of registraties. Die controles vallen buiten deze validator. Het resultaat is dus een hulpmiddel en geen garantie dat een ontvanger of platform het document aanvaardt. Wil je een Belgische Peppol-factuur controleren? Gebruik dan de e-factuurvalidator en lees bij een foutmelding de uitleg bij de Peppol-foutcodes.

Bronnen

Schema’s en regels: OASIS (UBL), UN/CEFACT (CII), CEN (EN 16931), OpenPeppol, KoSIT, FNFE-MPE en de nationale uitgevers, samengebracht door Philip Helger in phive-rules (Apache 2.0). XML-schemacontrole met libxml2 (xmllint-wasm, MIT).