Validateur Factur-X pour .NET : valider de manière fiable les factures électroniques reçues
Le Validator extrait le XML embarqué d’une facture PDF, contrôle l’enveloppe PDF (PDF/A-3 & Factur-X) et valide le XML selon les référentiels officiels – jusqu’à la validation Schematron officielle de Factur-X/ZUGFeRD et de XRechnung (KoSIT). La validation s’exécute entièrement hors ligne dans votre application – tous les référentiels sont inclus dans le package, aucune facture ne quitte votre système.
- .NET Framework 4.8
- .NET 8
- .NET 10
- ZUGFeRD 2.5.2 / Factur-X 1.09.2
- XRechnung 3.0 (CII & UBL)
dotnet add package Facturexa.ZugferdValidator
Install-Package Facturexa.ZugferdValidator
Enveloppe PDF
Conformité PDF/A-3, convention de nommage des fichiers, métadonnées XMP et incorporation Factur-X du XML sont contrôlées – à l’image de l’outil de validation officiel ZUGFeRD.
Schéma XML officiel
Le Validator contrôle d’abord les factures CII selon le schéma XML officiel : Factur-X/ZUGFeRD selon le schéma du profil concerné (Factur-X 1.09.2), qui n’autorise que les éléments de ce profil, et XRechnung selon CII D16B, comme le validateur KoSIT. Les erreurs de structure invisibles pour le Schematron sont ainsi détectées – par exemple un mauvais ordre des éléments ou un élément non prévu dans le profil.
Schematron officiel
Le Schematron officiel contrôle ensuite les règles métier (Factur-X/ZUGFeRD ou XRechnung KoSIT, via Saxon/XSLT 2.0) – les mêmes référentiels que ceux des destinataires de vos factures. Une facture n’est valide que si les deux contrôles sont concluants.
Entièrement hors ligne
Le Validator n’a besoin d’aucune connexion Internet à l’exécution et n’appelle aucun service externe.
- Protection des données : les factures sont contrôlées uniquement dans votre application – aucune transmission à des tiers.
- Sans Internet : fonctionne aussi dans des réseaux isolés et sur des serveurs sans accès Internet.
- Indépendant : ni pannes ni limites d’un service de validation en ligne ; la vérification de licence est également locale.
Couverture
Le Validator couvre tous les profils courants – pour XRechnung, aussi bien la syntaxe CII que UBL.
| Profil | Description | Validator | Creator |
|---|---|---|---|
| MINIMUM | Données d’en-tête, pas un format de facture électronique valable à lui seul | ✔ Oui | ✔ Oui |
| BASIC WL | Données d’en-tête sans lignes de facture | ✔ Oui | ✔ Oui |
| BASIC | Informations essentielles, lignes de facture comprises | ✔ Oui | ✔ Oui |
| EN 16931 / COMFORT | Norme européenne de base – format de facture électronique valable | ✔ Oui | ✔ Oui |
| EXTENDED | Jeu de données étendu ; à partir de Factur-X 1.09.2 / ZUGFeRD 2.5.2 avec sous-lignes, kits et lots | ✔ Oui | ✔ Oui |
| XRechnung 3.0 (CIUS) | Variante allemande B2G (secteur public), en deux étapes EN 16931 + CIUS | ✔ Oui (CII + UBL) | ✔ Oui (CII) |
| Génération UBL | Produire la XRechnung en UBL plutôt qu’en CII | n/a (la validation est déjà assurée) | Prévu |
Une intégration simple
Un seul appel suffit : passez le PDF et le Validator contrôle l’enveloppe PDF, le schéma XML et le Schematron officiel. L’exemple ci-dessous reprend le déroulement réel utilisé par la démo en ligne de ce site.
using Facturexa.ZugferdValidator;
// Une fois au démarrage de l’application.
ZugferdValidatorLicense.RegisterLicense("…");
// Enveloppe PDF (PDF/A-3 & Factur-X), schéma XML et Schematron officiel en un seul appel.
var result = ZugferdValidator.Validate("facture.pdf", "FA-2026-0001");
if (result.IsPdfValid == false)
Console.WriteLine("Enveloppe PDF non conforme");
if (!result.IsValid)
{
foreach (var error in result.Errors)
Console.WriteLine($"{error.Stage}: {error}"); // p. ex. "Schematron: BR-CO-15 (BT-112): ..."
}
Validator et Creator dans une seule licence
Valider et créer des factures électroniques – pour les factures reçues comme émises. Le Reader est gratuit.