Créer des factures Factur-X en C# : des factures électroniques conformes directement depuis votre logiciel
Le Creator représente une facture sous forme de modèle objet .NET typé et la sérialise en XML Factur-X/ZUGFeRD (CII) conforme aux normes officielles – de MINIMUM à EXTENDED, y compris la XRechnung allemande.
- .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.ZugferdCreator
Install-Package Facturexa.ZugferdCreator
Modèle typé
EInvoice avec des méthodes Set/Add explicites pour les parties,
les lignes, les taxes, les conditions de paiement, les remises/frais et les documents
de référence – chaque champ est documenté avec son terme métier (BT) de
l’EN 16931.
Listes de codes complètes
Pays, devises, catégories de TVA, moyens de paiement, unités (UN/ECE Rec. 20/21) et autres listes de codes officielles sont disponibles sous forme d’énumérations typées – fini la recherche manuelle des codes.
Contrôle préalable intégré
InvoiceValidator.Validate(...) vérifie l’objet facture selon le profil
choisi avant l’écriture – les erreurs apparaissent à la création, pas chez le
destinataire.
Couverture
Tous les profils de MINIMUM à EXTENDED ainsi que XRechnung – générés en CII.
| 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
Renseigner les données de la facture, ajouter lignes et taxes, choisir un profil, enregistrer – l’exemple ci-dessous utilise uniquement l’API publique réelle de la bibliothèque.
using Facturexa.ZugferdCreator;
// Une fois au démarrage de l’application.
ZugferdCreatorLicense.RegisterLicense("…");
var invoice = new EInvoice
{
InvoiceNumber = "FA-2026-0001",
InvoiceDate = DateTime.Today,
Currency = InvoiceCurrencyCode.EUR
};
invoice.SetSellerTradeParty("Exemple SAS", "75001", "Paris", "1 rue de l’Exemple", CountryID.FR);
invoice.AddSellerSpecifiedTaxRegistration("FR12345678901", TaxRegistrationSchemeID.VA);
invoice.SetBuyerTradeParty("Client SARL", "69002", "Lyon", "2 place du Client", CountryID.FR);
invoice.AddIncludedSupplyChainTradeLineItem(
name: "Prestation de conseil",
netUnitPrice: 100.00m,
unitCode: UnitCode.C62,
billedQuantity: 3m,
lineTotalAmount: 300.00m,
taxPercent: 20m);
invoice.AddApplicableTradeTax(
basisAmount: 300.00m, percent: 20m, taxAmount: 60.00m,
typeCode: TaxTypeCode.VAT, categoryCode: TaxCategoryCode.S);
invoice.LineTotalAmount = 300.00m;
invoice.TaxBasisAmount = 300.00m;
invoice.TaxTotalAmount = 60.00m;
invoice.GrandTotalAmount = 360.00m;
invoice.DuePayableAmount = 360.00m;
// Facultatif : contrôler selon le profil avant l’écriture.
var findings = InvoiceValidator.Validate(invoice, InvoiceProfile.Comfort);
using var xmlStream = new MemoryStream();
invoice.Save(xmlStream, InvoiceProfile.Comfort);
// xmlStream est ensuite prêt en position 0, p. ex. pour l’incorporation PDF/A-3.
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.