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
| Land | Formaat | Structuur (XSD) | Businessregels |
|---|---|---|---|
| België | Peppol BIS Billing 3.0 (UBL)Het formaat van de Belgische verplichting. Peppol BIS bevat geen aparte Belgische regels. | Ja | Ja |
| UBL.BE / e-FFFOudere Belgische variant: enkel de structuur (UBL 2.1). | Ja | Nee | |
| Nederland | Peppol BIS Billing 3.0 (UBL)Inclusief de Nederlandse Peppol-regels. | Ja | Ja |
| SI-UBL 2.0 en NLCIUS (UBL en CII) | Ja | Ja | |
| Energie eFactuurEnkel de UBL-structuur. | Ja | Nee | |
| Duitsland | XRechnung 3.0 (UBL en CII) | Ja | Ja |
| ZUGFeRD / Factur-X (alle profielen)Getoetst aan versie 2.5.2. ZUGFeRD 2.0: enkel de structuur. | Ja | Ja | |
| Peppol BIS Billing 3.0 (UBL)Inclusief de Duitse Peppol-regels. | Ja | Ja | |
| Frankrijk | Factur-X (alle profielen) | Ja | Ja |
| CTC Flux 2 en EXTENDED-CTC-FR (UBL en CII)CII wordt getoetst aan het schema CII D22B. | Ja | Ja | |
| CDAR (statusberichten) | Ja | Nee | |
| PPF Flux 1 en Flux 10 | Nee | Nee | |
| Italië | FatturaPA 1.2 (FPA12 en FPR12)Ook ondertekende .p7m-bestanden. De controles van het SdI zelf doen we niet. | Ja | Nee |
| Peppol BIS Billing 3.0 (UBL)Inclusief de Italiaanse Peppol-regels; de aanvullende AGID-regels niet. | Ja | Ja | |
| Spanje | Facturae 3.0 tot 3.2.2De handtekening en VeriFactu worden niet gecontroleerd. | Ja | Nee |
| Polen | KSeF FA(1), FA(2) en FA(3) | Ja | Nee |
| Oostenrijk | ebInterface 3.0 tot 6.1 | Ja | Nee |
| Peppol BIS Billing 3.0 (UBL) | Ja | Ja | |
| Hongarije | NAV Online Számla 2.0 en 3.0 | Ja | Nee |
| Tsjechië | ISDOC 6.0 | Ja | Nee |
| Zweden | Peppol BIS Billing 3.0 (UBL)Inclusief de Zweedse Peppol-regels. | Ja | Ja |
| Svefaktura 1.0 | Ja | Nee | |
| Noorwegen | EHF Billing 3.0 / Peppol BISInclusief de Noorse Peppol-regels. Andere EHF-documenten: enkel de structuur. | Ja | Ja |
| Denemarken | Peppol BIS Billing 3.0 (UBL)Inclusief de Deense Peppol-regels. | Ja | Ja |
| OIOUBLEnkel de UBL-structuur. | Ja | Nee | |
| Finland | Finvoice 1.3 tot 3.0 | Ja | Nee |
| TEAPPSXML 2.7.2 en 3.0 | Ja | Nee | |
| Peppol BIS Billing 3.0 (UBL) | Ja | Ja | |
| Griekenland | Peppol BIS Billing 3.0 (UBL)Inclusief de Griekse Peppol-regels. myDATA wordt niet ondersteund. | Ja | Ja |
| IJsland | Peppol BIS Billing 3.0 (UBL)Inclusief de IJslandse Peppol-regels. | Ja | Ja |
| Portugal | CIUS-PT (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Portugese regels niet. | Ja | Deels |
| Roemenië | CIUS-RO (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Roemeense regels niet. | Ja | Deels |
| Kroatië | eRačun (UBL)De EN 16931-kernregels kan je kiezen in de keuzelijst; de Kroatische regels niet. | Ja | Deels |
| eIzvještavanje (e-rapportering) | Ja | Nee | |
| Servië | SEF (UBL), eOtpremnica en ePrijemnica | Ja | Nee |
| Turkije | UBL-TR / e-FaturaDe envelop (Zarf) wordt niet ondersteund. | Ja | Nee |
| Saoedi-Arabië | ZATCA / FATOORA (UBL)Handtekening, QR-code en ZATCA-regels niet. | Ja | Nee |
| Peppol buiten Europa | Peppol PINT (A-NZ, JP, MY, SG, AE, OM)Enkel de UBL-structuur. | Ja | Nee |
| Andere landen in de EU | EN 16931 (UBL en CII) | Ja | Ja |
| Peppol BIS Billing 3.0 (UBL) | Ja | Ja |
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:
- SI-UBL-validator (Nederland): SI-UBL 2.0 en NLCIUS.
- XRechnung validator (Duitsland, Engelstalig).
- Factur-X validator (Frankrijk en Duitsland, Engelstalig): pdf met ingesloten XML.
- KSeF validator (Polen, Engelstalig).
- FatturaPA validator (Italië, Engelstalig).
- Facturae validator (Spanje, Engelstalig).
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:
- Het formaat: UBL of CII, of een pdf met ingesloten XML zoals Factur-X of ZUGFeRD.
- Het specificatie-ID (BT-24): in UBL het veld
CustomizationID, in CIIGuidelineSpecifiedDocumentContextParameter. Dat ID zegt welke regels de afzender volgt. Het weegt het zwaarst. - De Franse facturatiemodus: een code van B1 tot M9 in
ProfileIDofBusinessProcessSpecifiedDocumentContextParameter. Die code wijst op de Franse regels.
Herkenbare stukken in het specificatie-ID
| Stuk in het ID | Regels |
|---|---|
poacc:billing:3.0 | Peppol BIS Billing 3.0 |
poacc:selfbilling:3.0 | Peppol BIS Self-Billing 3.0 |
kosit:xrechnung | XRechnung (Duitsland) |
kosit:extension:xrechnung | XRechnung Extension |
nen.nl:nlcius | SI-UBL 2.0 / NLCIUS (Nederland) |
nen.nl:gaccount | SI-UBL 2.0 met G-rekening |
factur-x.eu:1p0 | Factur-X / ZUGFeRD, in het profiel uit het ID (MINIMUM, BASIC WL, BASIC, EXTENDED) |
cpro.gouv.fr | EN 16931 met de Franse regels (BR-FR) |
extended-ctc-fr | EXTENDED-CTC-FR (Frankrijk) |
urn:cen.eu:en16931:2017 | EN 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).