ZUGFeRD-Rechnungen in C# erstellen: konforme E-Rechnungen direkt aus Ihrer Software
Der Creator bildet eine Rechnung als typisiertes .NET-Objektmodell ab und serialisiert sie als normkonforme ZUGFeRD-/Factur-X-XML (CII) – von MINIMUM bis EXTENDED, inklusive der deutschen XRechnung.
- .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
Typisiertes Modell
EInvoice mit sprechenden Set-/Add-Methoden für Parteien,
Positionen, Steuern, Zahlungsbedingungen, Nachlässe/Zuschläge und Referenzdokumente
– jedes Feld ist mit seinem BT-Feld aus EN 16931 dokumentiert.
Vollständige Codelisten
Länder, Währungen, Steuerkategorien, Zahlungsarten, Einheiten (UN/ECE Rec. 20/21) und weitere amtliche Codelisten liegen als typsichere Enums vor – kein manuelles Nachschlagen von Codes mehr.
Eingebaute Vorprüfung
InvoiceValidator.Validate(...) prüft das Rechnungsobjekt bereits vor
dem Schreiben gegen das gewählte Profil – Fehler zeigen sich beim Erzeugen, nicht
erst beim Empfänger.
Abdeckung
Alle Profile von MINIMUM bis EXTENDED sowie XRechnung – ausgegeben als CII.
| Profil | Beschreibung | Validator | Creator |
|---|---|---|---|
| MINIMUM | Kopfdaten, kein eigenständig gültiges E-Rechnungsformat | ✔ Ja | ✔ Ja |
| BASIC WL | Kopfdaten ohne Rechnungspositionen | ✔ Ja | ✔ Ja |
| BASIC | Kerninformationen inkl. Rechnungspositionen | ✔ Ja | ✔ Ja |
| EN 16931 / COMFORT | Europäischer Kernstandard – gültiges E-Rechnungsformat | ✔ Ja | ✔ Ja |
| EXTENDED | Erweiterter Datensatz, ab ZUGFeRD 2.5.2 inkl. Sub-Positionen/Kits & Bündel | ✔ Ja | ✔ Ja |
| XRechnung 3.0 (CIUS) | Deutsche B2G-Kernvariante, zweistufig EN 16931 + CIUS | ✔ Ja (CII + UBL) | ✔ Ja (CII) |
| UBL-Erzeugung | XRechnung als UBL statt CII ausgeben | n. v. (Prüfung erfolgt bereits) | Roadmap |
So einfach ist die Integration
Rechnungsdaten setzen, Positionen und Steuern hinzufügen, Profil wählen, speichern – das folgende Beispiel nutzt ausschließlich die tatsächliche öffentliche API der Bibliothek.
using Facturexa.ZugferdCreator;
// Einmalig beim Programmstart.
ZugferdCreatorLicense.RegisterLicense("…");
var rechnung = new EInvoice
{
InvoiceNumber = "RE-2026-0001",
InvoiceDate = DateTime.Today,
Currency = InvoiceCurrencyCode.EUR
};
rechnung.SetSellerTradeParty("Muster GmbH", "12345", "Berlin", "Musterstraße 1", CountryID.DE);
rechnung.AddSellerSpecifiedTaxRegistration("DE123456789", TaxRegistrationSchemeID.VA);
rechnung.SetBuyerTradeParty("Kunde AG", "54321", "Hamburg", "Kundenweg 2", CountryID.DE);
rechnung.AddIncludedSupplyChainTradeLineItem(
name: "Beratungsleistung",
netUnitPrice: 100.00m,
unitCode: UnitCode.C62,
billedQuantity: 3m,
lineTotalAmount: 300.00m,
taxPercent: 19m);
rechnung.AddApplicableTradeTax(
basisAmount: 300.00m, percent: 19m, taxAmount: 57.00m,
typeCode: TaxTypeCode.VAT, categoryCode: TaxCategoryCode.S);
rechnung.LineTotalAmount = 300.00m;
rechnung.TaxBasisAmount = 300.00m;
rechnung.TaxTotalAmount = 57.00m;
rechnung.GrandTotalAmount = 357.00m;
rechnung.DuePayableAmount = 357.00m;
// Optional: vor dem Schreiben gegen das Profil pruefen.
var befunde = InvoiceValidator.Validate(rechnung, InvoiceProfile.Comfort);
using var xmlStream = new MemoryStream();
rechnung.Save(xmlStream, InvoiceProfile.Comfort);
// xmlStream steht danach ab Position 0 bereit, z.B. zur PDF/A-3-Einbettung.
Validator und Creator in einer Lizenz
E-Rechnungen prüfen und erzeugen – für eingehende wie ausgehende Rechnungen. Der Reader ist kostenlos.