Validateur de factures

Formats de facture électronique par pays : ce que contrôle le validateur

Le validateur de factures électroniques reconnaît automatiquement le format de votre fichier. Pour chaque format, nous contrôlons la structure selon le schéma XML officiel. Lorsque des règles métier officielles sont disponibles publiquement, nous les contrôlons également. Vous trouverez ci-dessous les formats de facture électronique par pays et ce qui est contrôlé exactement.

Formats de facture électronique par pays

PaysFormatStructure (XSD)Règles métier
BelgiquePeppol BIS Billing 3.0 (UBL)Le format de l’obligation belge. Peppol BIS ne contient pas de règles belges spécifiques.OuiOui
UBL.BE / e-FFFAncienne variante belge : structure uniquement (UBL 2.1).OuiNon
Pays-BasPeppol BIS Billing 3.0 (UBL)Y compris les règles Peppol néerlandaises.OuiOui
SI-UBL 2.0 et NLCIUS (UBL et CII)OuiOui
Energie eFactuurStructure UBL uniquement.OuiNon
AllemagneXRechnung 3.0 (UBL et CII)OuiOui
ZUGFeRD / Factur-X (tous les profils)Contrôlé selon la version 2.5.2. ZUGFeRD 2.0 : structure uniquement.OuiOui
Peppol BIS Billing 3.0 (UBL)Y compris les règles Peppol allemandes.OuiOui
FranceFactur-X (tous les profils)OuiOui
CTC Flux 2 et EXTENDED-CTC-FR (UBL et CII)Le CII est contrôlé selon le schéma CII D22B.OuiOui
CDAR (messages de statut)OuiNon
PPF Flux 1 et Flux 10NonNon
ItalieFatturaPA 1.2 (FPA12 et FPR12)Y compris les fichiers signés .p7m. Les contrôles propres au SdI ne sont pas effectués.OuiNon
Peppol BIS Billing 3.0 (UBL)Y compris les règles Peppol italiennes ; pas les règles AGID complémentaires.OuiOui
EspagneFacturae 3.0 à 3.2.2La signature et VeriFactu ne sont pas contrôlés.OuiNon
PologneKSeF FA(1), FA(2) et FA(3)OuiNon
AutricheebInterface 3.0 à 6.1OuiNon
Peppol BIS Billing 3.0 (UBL)OuiOui
HongrieNAV Online Számla 2.0 et 3.0OuiNon
TchéquieISDOC 6.0OuiNon
SuèdePeppol BIS Billing 3.0 (UBL)Y compris les règles Peppol suédoises.OuiOui
Svefaktura 1.0OuiNon
NorvègeEHF Billing 3.0 / Peppol BISY compris les règles Peppol norvégiennes. Autres documents EHF : structure uniquement.OuiOui
DanemarkPeppol BIS Billing 3.0 (UBL)Y compris les règles Peppol danoises.OuiOui
OIOUBLStructure UBL uniquement.OuiNon
FinlandeFinvoice 1.3 à 3.0OuiNon
TEAPPSXML 2.7.2 et 3.0OuiNon
Peppol BIS Billing 3.0 (UBL)OuiOui
GrècePeppol BIS Billing 3.0 (UBL)Y compris les règles Peppol grecques. myDATA n’est pas pris en charge.OuiOui
IslandePeppol BIS Billing 3.0 (UBL)Y compris les règles Peppol islandaises.OuiOui
PortugalCIUS-PT (UBL)Vous pouvez choisir les règles de base EN 16931 dans la liste ; les règles portugaises ne sont pas incluses.OuiEn partie
RoumanieCIUS-RO (UBL)Vous pouvez choisir les règles de base EN 16931 dans la liste ; les règles roumaines ne sont pas incluses.OuiEn partie
CroatieeRačun (UBL)Vous pouvez choisir les règles de base EN 16931 dans la liste ; les règles croates ne sont pas incluses.OuiEn partie
eIzvještavanje (e-reporting)OuiNon
SerbieSEF (UBL), eOtpremnica et ePrijemnicaOuiNon
TurquieUBL-TR / e-FaturaL’enveloppe (Zarf) n’est pas prise en charge.OuiNon
Arabie saouditeZATCA / FATOORA (UBL)Signature, code QR et règles ZATCA non contrôlés.OuiNon
Peppol hors d’EuropePeppol PINT (A-NZ, JP, MY, SG, AE, OM)Structure UBL uniquement.OuiNon
Autres pays de l’UEEN 16931 (UBL et CII)OuiOui
Peppol BIS Billing 3.0 (UBL)OuiOui

Non pris en charge : NF-e brésilienne, myDATA grec, VeriFactu, PPF Flux 1 et 10, enveloppes Zarf turques et formats non XML.

Le validateur contrôle la structure selon le schéma officiel et, lorsqu’elles sont disponibles, les règles métier officielles. Le résultat est une aide et non une garantie qu’un destinataire, un Access Point ou une plateforme publique acceptera le document. Les plateformes nationales (comme le SdI, KSeF ou le PPF) et les destinataires peuvent effectuer des contrôles supplémentaires, par exemple sur les signatures, la numérotation ou les enregistrements. Votre fichier est traité uniquement dans votre navigateur.

Un validateur par format de facture électronique

Pour les formats les plus demandés, nous avons une page dédiée, avec le validateur déjà réglé sur le bon pays :

Deux contrôles : structure et règles métier

Chaque fichier passe par deux contrôles. D’abord, nous vérifions qu’il suit la structure du schéma officiel : les bons éléments, dans le bon ordre et avec le bon type de données. Ensuite, nous contrôlons les règles métier, comme les champs obligatoires, les calculs et les listes de codes. Pour Peppol BIS, XRechnung, Factur-X et les règles néerlandaises et françaises, ces règles métier sont publiques. Pour les autres formats, il n’existe pas de jeu de règles public. Dans ce cas, nous contrôlons donc uniquement la structure.

Comment le validateur choisit-il automatiquement les règles ?

Si vous choisissez « Automatique », nous lisons d’abord quelques données de votre fichier. Sur cette base, nous choisissons les règles. Sous le résultat, « Détecté grâce à » indique quelles données ont été décisives. Nous regardons trois éléments :

  1. Le format : UBL ou CII, ou un PDF avec XML intégré comme Factur-X ou ZUGFeRD.
  2. L’identifiant de spécification (BT-24) : en UBL le champ CustomizationID, en CII GuidelineSpecifiedDocumentContextParameter. Cet identifiant indique les règles que suit l’expéditeur. C’est lui qui pèse le plus.
  3. Le cadre de facturation français : un code de B1 à M9 dans ProfileID ou BusinessProcessSpecifiedDocumentContextParameter. Ce code renvoie aux règles françaises.

Éléments reconnaissables de l’identifiant de spécification

Élément de l’identifiantRègles
poacc:billing:3.0Peppol BIS Billing 3.0
poacc:selfbilling:3.0Peppol BIS Self-Billing 3.0
kosit:xrechnungXRechnung (Allemagne)
kosit:extension:xrechnungXRechnung Extension
nen.nl:nlciusSI-UBL 2.0 / NLCIUS (Pays-Bas)
nen.nl:gaccountSI-UBL 2.0 avec compte G
factur-x.eu:1p0Factur-X / ZUGFeRD, dans le profil indiqué par l’ID (MINIMUM, BASIC WL, BASIC, EXTENDED)
cpro.gouv.frEN 16931 avec les règles françaises (BR-FR)
extended-ctc-frEXTENDED-CTC-FR (France)
urn:cen.eu:en16931:2017EN 16931, la norme européenne (si rien ne suit)

Un identifiant de spécification inconnu

Un identifiant de spécification se compose de couches. Chaque couche commence par #compliant# (une restriction de la norme) ou #conformant# (une extension). Si nous ne connaissons pas l’identifiant complet, nous retirons la dernière couche et réessayons. Ainsi, une variante inconnue de XRechnung est tout de même contrôlée avec les règles XRechnung. S’il s’agit d’une extension inconnue, nous signalons que des éléments de cette extension peuvent apparaître comme des erreurs.

Le choix ne convient pas ? Choisissez alors vous-même le pays, ou sélectionnez le jeu de règles exact sous « Avancé ». Une facture ou une note de crédit Peppol est toujours contrôlée avec les règles Peppol de la version en vigueur.

Pourquoi un seul validateur pour des formats de facture électronique de plusieurs pays ?

Les entreprises belges envoient leurs factures via Peppol, au format Peppol BIS Billing 3.0. Pourtant, vous recevez aussi des factures de l’étranger, ou vous envoyez vous-même des factures à des clients en Allemagne, en France ou en Italie. En outre, beaucoup de logiciels utilisent un seul format d’exportation pour tous les pays. Avec ce validateur, vous contrôlez donc chaque fichier au même endroit, sans devoir d’abord savoir de quel format il s’agit.

Ce que le validateur ne contrôle pas

Les plateformes nationales comme le SdI en Italie, KSeF en Pologne ou la PPF en France effectuent des contrôles supplémentaires, par exemple sur les signatures, la numérotation ou les enregistrements. Ces contrôles sortent du cadre de ce validateur. Le résultat est donc une aide et non une garantie qu’un destinataire ou une plateforme acceptera le document. Vous voulez contrôler une facture Peppol belge ? Utilisez alors le validateur de factures électroniques et, en cas d’erreur, lisez l’explication des codes d’erreur Peppol.

Sources

Schémas et règles : OASIS (UBL), UN/CEFACT (CII), CEN (EN 16931), OpenPeppol, KoSIT, FNFE-MPE et les éditeurs nationaux, rassemblés par Philip Helger dans phive-rules (Apache 2.0). Contrôle du schéma XML avec libxml2 (xmllint-wasm, MIT).