Los geht’s mit FactoorSharp

Mit FactoorSharp erstellst, liest und validierst du elektronische Rechnungen (ZUGFeRD, XRechnung, EN16931) in wenigen Minuten.

Diese Anleitung führt dich Schritt für Schritt zu deiner ersten funktionierenden Rechnung.

Nach diesem Schnellstart kannst du:

  • eine Rechnung in C# erzeugen
  • sie als EN16931 / ZUGFeRD XML exportieren
  • optional in ein PDF/A-3 einbetten
  • das Ergebnis validieren

Installation

Installiere FactoorSharp über NuGet:

Oder über den Package Manager:

Die Komponente unterstützt: .NET 6+, .NET Framework 4.6, .NET Framework 4.8 (je nach Zielplattform)

Lizenz abrufen

TODO: Registrieren und abrufen

Erste Rechnung erzeugen

Im folgenden Beispiel erzeugst du eine minimale EN16931-konforme Rechnung.
Zunächst die Kopfdaten der Rechnung mit der Kennung von Verkäufer und Käufer. Dazu gehört auch die Angabe zur Lieferung:

Als nächste ergänzen wir eine Position:

Und den Summenblock inklusive Zahlungsbedingungen:

Export als XML (EN16931 / XRechnung / ZUGFeRD)

Sobald deine Rechnung aufgebaut ist, kannst du sie als XML exportieren:

Typische Profile, die für ZUGFeRD genutzt werden, sind:

Comfort/ EN16931
Standard für EU
Extended
Ausführlichstes und gebräuchlichstes Profil in Deutschland

Rechnung validieren

Damit Du sicher bist, dass alle notwendigen Angaben enthalten sind, kannst Du die Rechnung mit der Validierungsoberfläche im Kunden-Bereich von factoorsharp.de validieren.
Dies ermöglicht den Empfängern der Rechnung eine reibungslose Verarbeitung.

PDF/A-3 mit eingebetteter Rechnung erzeugen (ZUGFeRD)

Wenn Du eine PDF-Datei, z.B. aus einem Report-Generator oder Deinem ERP-System hast, kannst Du die ZUGFeRD-Informationen direkt in das PDF einbetten:

Ergebnis: Ein visuell lesbares PDF im Format PDF/A-3 inklusive der maschinenlesbaren XML-Datei, die in das PDF-Dokument eingebettet ist.

Bestehende Rechnungen einlesen

FactoorSharp kann auch bestehende Rechnungen analysieren. Dabei ist es egal, ob eine XML-Datei eingelesen wird:

Oder die XML-Datei aus einer PDF-Datei ausgelesen werden muss:

Migration von ZUGFeRD-csharp

FactoorSharp ist der Nachfolger von ZUGFeRD-csharp.

Wenn du bereits damit arbeitest:

  • API ist bewusst ähnlich gehalten
  • Bestehende Logik lässt sich meist direkt übernehmen
  • Tausche InvoiceDescriptor durch FacturXInvoice, InvoicePdfProcessor durch FacturXInvoicePdfProcessor. Fertig.
  • Neue Features: bessere Validierung, neue Funktionen