Für Entwickler · .NET-Bibliothek

Riese.EInvoice — E-Rechnung als Baustein für Ihre eigene Software

Die Bibliothek, die unter den Office-Vorlagen liegt, gibt es auch einzeln. Sie liest, erzeugt, prüft und wandelt E-Rechnungen nach EN 16931 — ohne Geschäftslogik, ohne Datenbank, ohne Oberfläche. Was damit passiert, entscheidet Ihre Anwendung.

Für Softwarehäuser, Inhouse-Entwicklung und alle, die E-Rechnung in ein bestehendes Programm einbauen wollen, statt daneben ein zweites zu betreiben. Stand Version 0.2.0.

Fähigkeiten

Sieben Dinge, die die Bibliothek kann

Alles läuft über ein neutrales Rechnungsmodell in der Mitte: beide Syntaxen werden darauf abgebildet, alles andere baut darauf auf.

LesenXML (CII/UBL) und PDF mit eingebettetem XML → neutrales Rechnungsmodell
ErzeugenModell → ZUGFeRD/Factur-X (CII) oder XRechnung (UBL), als XML oder als PDF/A-3
PrüfenModell, XSD, EN-16931-Schematron, XRechnung-BR-DE — zu einem Bericht zusammengeführt
WandelnCII ↔ UBL über das gemeinsame Modell
Hybrid-PDFXML in ein vorhandenes PDF einbetten und die Datei auf PDF/A-3b heben
RechnungsbildA4-Rechnung selbst rendern (Logo, Akzentfarbe) — oder das eigene Dokument nehmen
OfficeWord, Excel und Access erzeugen Rechnungen per Knopfdruck über COM
CII (D16B)UBL 2.1ZUGFeRD / Factur-XXRechnungPDF/A-3bEN 16931
Nutzen
E-Rechnung im eigenen Produkt, ohne fremden Dienst dazwischen
Ein Modell für beide Syntaxen — kein doppelter Mapping-Code
Prüfung im eigenen Haus, nicht beim Empfänger
Läuft offline; keine Daten verlassen den Rechner
Einbindung

Drei Wege hinein

a — Als .NET-Bibliothek

Neun NuGet-Pakete, nach Aufgabe getrennt: Kern, XML-Abbildung, ZUGFeRD, XRechnung, XSD-Prüfung, Schematron, PDF lesen und PDF schreiben. Man referenziert nur, was gebraucht wird. Der Kern ist netstandard2.0 und läuft von .NET Framework 4.6.1 bis .NET 10.

b — Als Kommandozeilenwerkzeug

Riese.EInvoice.Cli (net8.0) mit vier Schaltern: --to-cii, --to-ubl, --to-pdf, --validate. Genug für Stapelverarbeitung und Anbindung aus einer anderen Sprache.

c — Aus Office und Access über COM

Zwei registrierte Klassen, bewusst nur mit einfachen string-Methoden — VBA muss nichts umrechnen. Beträge dürfen deutsch (1.234,56) oder invariant geschrieben sein, Datumsangaben deutsch oder als ISO.

Pakete
Core — Modell, Reader, Validierungspipeline
Xml — CII-/UBL-Abbildung, Formaterkennung
Zugferd · XRechnung — lesen und schreiben
Validation.Xsd · Validation.Schematron
Pdf.PdfPig lesen · Pdf.PdfSharp schreiben
COM aus VBA — die Reihenfolge
Aufbauen
ResetSetInvoiceSetReferencesSetSellerSetBuyerSetPaymentAddLineAddNote
Ausgeben
SaveXmlSaveXmlCheckedSavePdfSavePdfFromSavePdfFromWord
Nachsehen
GetNetTotalGetTaxTotalGetGrossTotalGetLastErrorCountGetLastWarningCount

Dazu EInvoiceService zum Lesen und Prüfen fremder Rechnungen: ReadInvoiceToJson, GetInvoiceNumber, GetGrossAmount, ValidateFile und weitere. Die vollständigen Signaturen stehen in der mitgelieferten Dokumentation.

Prüfen

Vier Stufen, ein Bericht

Die Validierungspipeline führt beliebig viele Stufen zu einem Ergebnis zusammen. Jede Meldung trägt ihre Stufe und ihren Regelcode — auswertbar, nicht nur anzeigbar.

1 · ModellPflichtfelder, Summenstimmigkeit, profilabhängig
2 · XSDStruktur gegen UBL 2.1 bzw. CII D16B
3 · SchematronDie BR-*-Geschäftsregeln aus EN 16931
4 · BR-DEZusätzliche deutsche Regeln und PEPPOL
Berichten statt blockieren

Das XML wird immer erzeugt, die Befunde stehen daneben, die Anwendung entscheidet. Fällt eine Stufe technisch aus — fehlendes Schema, defektes XSLT — wird daraus eine Meldung, die übrigen Stufen laufen weiter.

Regelwerke sind unterschiedlich streng

Eine Rechnung kann als ZUGFeRD einwandfrei und als XRechnung unvollständig sein — die elektronische Adresse des Empfängers etwa ist keine EN-16931-Pflicht, sondern eine PEPPOL-Regel. Beide Ergebnisse werden deshalb getrennt gemeldet.

Qualitätsstand
217 automatisierte Tests grün
Beispielkorpus mit echten Fremdrechnungen
veraPDF prüft PDF/A-3b lokal und in der CI
Probelauf-Skripte für alle vier Office-Vorlagen
Eine erzeugte Rechnung wurde vom ELSTER-Upload als gültig angenommen
PDF

Drei Wege zum Rechnungsbild

In allen drei Fällen entsteht PDF/A-3b mit eingebettetem CII-XML: eingebettete Datei im Namensbaum, /AF mit AFRelationship, sRGB-OutputIntent mit ICC-Profil und Factur-X-XMP.

RendernDie Bibliothek zeichnet ein A4-Rechnungsbild — Logo, Akzentfarbe, Positionstabelle mit Seitenumbruch, deutsche Formatierung
PDF veredelnSavePdfFrom — das übergebene PDF bleibt genau, wie es ist
Word veredelnSavePdfFromWord — das Word-Dokument wird in-process exportiert und veredelt
Voraussetzung fürs eigene Layout

Das Quell-PDF muss selbst PDF/A-tauglich sein: Schriften eingebettet, keine Transparenz. Den Rest ergänzt die Bibliothek. Die mitgelieferte Schrift wird als Subset eingebettet.

Rechnungsmodell
Parteien: Verkäufer, Käufer, Zahlungsempfänger, Steuervertreter
Positionen mit Einheit nach UN/ECE Rec. 20, Steuerkategorie, Artikelmerkmalen
Zahlung per Überweisung, Karte oder Lastschrift — auch mehrere Wege
Abschläge und Zuschläge auf Rechnungs- und Positionsebene
Lieferung, Zeiträume, Referenzen, Anhänge
Ehrlich gesagt

Was nicht drin ist

Eine Bibliothek, die alles verspricht, hilft bei der Einschätzung nicht. Diese Punkte fehlen bewusst — wenn Sie einen davon brauchen, sagen Sie es lieber vorher.

Keine LogikKeine Geschäfts- oder Spesenlogik, keine Kostenstellen, keine Freigabeworkflows
Keine DatenKeine Datenbank, keine Persistenz — die Access-Vorlage bringt ihre eigene mit
Kein VersandKein Mail, kein PEPPOL-Access-Point, keine Portal-Übermittlung
Keine SignaturKeine digitale Signatur, keine GoBD-Archivierung
Kein OCREin reines Bild-PDF ohne eingebettetes XML ergibt keine Rechnung
Nur DEEN 16931 und die deutschen BR-DE — keine weiteren nationalen CIUS
Randbedingungen
Schematron braucht net48 oder net8.0 — freies XSLT 2.0 gibt es nur so
Mit Schematron wird die Ausgabe groß: RID-spezifisch veröffentlichen
COM-Wrapper ist net48; moderne Consumer nehmen die NuGet-Pakete
Die Regelsätze liegen separat und müssen zur Laufzeit vorliegen
Version 0.2.0, proprietär, kein öffentlicher Feed

Sie wollen E-Rechnung in Ihre eigene Anwendung einbauen?

Schreiben Sie mir, welche Umgebung Sie haben und was am Ende rauskommen soll — ich schicke Ihnen die technische Dokumentation und ein Beispielprojekt.

MRDirekt von mir — keine Hotline, keine Warteschleife.