Versionen und Release Notes
Hier finden Sie die wichtigsten Änderungen der aktuellen und kommenden FactoorSharp-Versionen.
Version 19.1
AktuellVersion 19.1 stellt Rechnungen jetzt auch als HTML dar, unterstützt Vorauszahlungen und Umsatzsteuer in Fremdwährung, liest Texte aus PDFs samt Position aus und erkennt das Rechnungsformat noch zuverlässiger.
Die Neuerungen im Detail:
-
Rechnungen als HTML anzeigen VisualisierungRechnungen lassen sich jetzt nicht nur als PDF, sondern auch als HTML darstellen – als eigenständige Seite oder als Baustein, der sich direkt in Ihre Web- oder Desktop-Anwendung einbetten lässt. Zusätzlich erscheinen Lieferschein, Bestellreferenz und Produktmerkmale in der Ansicht.
// Rechnung als eigenständige HTML-Seite string html = InvoiceVisualizer.RenderHtml(invoice); // Oder als Baustein zum Einbetten in eine bestehende Seite string fragment = InvoiceVisualizer.RenderHtml(invoice, options: new HtmlRenderOptions { Standalone = false }); // Die PDF-Ausgabe heißt jetzt RenderPdf() InvoiceVisualizer.RenderPdf(invoice, "invoice.pdf"); ' Rechnung als eigenständige HTML-Seite Dim html As String = InvoiceVisualizer.RenderHtml(invoice) ' Oder als Baustein zum Einbetten in eine bestehende Seite Dim fragment As String = InvoiceVisualizer.RenderHtml(invoice, options:=New HtmlRenderOptions With {.Standalone = False}) ' Die PDF-Ausgabe heißt jetzt RenderPdf() InvoiceVisualizer.RenderPdf(invoice, "invoice.pdf") -
Vorauszahlungen im Detail ausweisen (BG-X-45) KernBereits erhaltene Anzahlungen können im Profil EXTENDED einzeln aufgeführt werden – mit Betrag, Zahlungsdatum, enthaltener Umsatzsteuer und Verweis auf die zugehörige Anzahlungsrechnung.
// Anzahlung mit enthaltener Umsatzsteuer und Verweis auf die Anzahlungsrechnung invoice.AddAdvancePayment(2975m, new DateTime(2026, 6, 7)) .SetInvoiceReferencedDocument("AR-2026-0601", new DateTime(2026, 6, 1), InvoiceType.PartialInvoice) .AddIncludedTradeTax(475m, 19m, TaxTypes.VAT, TaxCategoryCodes.S); ' Anzahlung mit enthaltener Umsatzsteuer und Verweis auf die Anzahlungsrechnung invoice.AddAdvancePayment(2975D, New DateTime(2026, 6, 7)) _ .SetInvoiceReferencedDocument("AR-2026-0601", New DateTime(2026, 6, 1), InvoiceType.PartialInvoice) _ .AddIncludedTradeTax(475D, 19D, TaxTypes.VAT, TaxCategoryCodes.S) -
Umsatzsteuer in Fremdwährung mit Wechselkurs (BG-X-41) KernBei Rechnungen in Fremdwährung geben Sie Buchungswährung (BT-6), Umsatzsteuerbetrag in dieser Währung (BT-111) und Wechselkurs jetzt in einem Schritt an – so, wie es die EN 16931 erwartet.
// Rechnung in USD, Umsatzsteuer zusätzlich in Euro ausweisen invoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency: 175.08m, accountingCurrency: CurrencyCodes.EUR, conversionRate: 0.9215m, conversionRateTimestamp: new DateTime(2026, 9, 1)); ' Rechnung in USD, Umsatzsteuer zusätzlich in Euro ausweisen invoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency:=175.08D, accountingCurrency:=CurrencyCodes.EUR, conversionRate:=0.9215D, conversionRateTimestamp:=New DateTime(2026, 9, 1)) -
Elektronische Adresse für alle Beteiligten (BT-34, BT-49, BT-X-160) KernNicht nur Verkäufer und Käufer, sondern auch Lieferempfänger und weitere Beteiligte können jetzt eine elektronische Adresse, etwa eine E-Mail-Adresse, erhalten. Die Angaben bleiben beim Einlesen vollständig erhalten.
// Elektronische Adresse des Lieferempfängers invoice.ShipTo.ElectronicAddress = new ElectronicAddress { Address = "wareneingang@kunde.de", ElectronicAddressSchemeID = ElectronicAddressSchemeIdentifiers.ElectronicMailSmtp }; ' Elektronische Adresse des Lieferempfängers invoice.ShipTo.ElectronicAddress = New ElectronicAddress With { .Address = "wareneingang@kunde.de", .ElectronicAddressSchemeID = ElectronicAddressSchemeIdentifiers.ElectronicMailSmtp } -
Texte aus PDFs samt Position auslesen PDFAus dem sichtbaren Inhalt einer PDF lassen sich jetzt Textbausteine mit Seite, Position und Schriftgröße auslesen, etwa um einen Wert aus einer bestimmten Tabellenspalte zu übernehmen. Die normale Textextraktion gibt das Seitenlayout außerdem deutlich originalgetreuer wieder.
foreach (PdfTextFragment fragment in PdfUtils.ExtractTextFragments("invoice.pdf")) { // Seite, Position in Punkt und Text Console.WriteLine($"Seite {fragment.PageNumber}, x={fragment.X:0}, y={fragment.Y:0}: {fragment.Text}"); } For Each fragment As PdfTextFragment In PdfUtils.ExtractTextFragments("invoice.pdf") ' Seite, Position in Punkt und Text Console.WriteLine($"Seite {fragment.PageNumber}, x={fragment.X:0}, y={fragment.Y:0}: {fragment.Text}") Next -
Mehr Angaben zu Rechnungspositionen (BT-158-1, BT-X-98) KernArtikel können jetzt nach allen Klassifizierungssystemen der EN 16931 gekennzeichnet werden, zum Beispiel UNSPSC oder eCl@ss. Im Profil EXTENDED lässt sich zusätzlich die Summe der Zu- und Abschläge je Position angeben.
// Artikel nach UNSPSC klassifizieren item.AddDesignatedProductClassification(DesignatedProductClassificationClassCodes.TST, classCode: "43211503"); // Summe der Zu- und Abschläge dieser Position (nur EXTENDED) item.TotalAllowanceChargeAmount = 12.50m; ' Artikel nach UNSPSC klassifizieren item.AddDesignatedProductClassification(DesignatedProductClassificationClassCodes.TST, classCode:="43211503") ' Summe der Zu- und Abschläge dieser Position (nur EXTENDED) item.TotalAllowanceChargeAmount = 12.5D -
Zuverlässigere Erkennung des Rechnungsformats KernOb eine Datei eine ZUGFeRD-/Factur-X- oder eine UBL-Rechnung ist, wird jetzt eindeutig am Aufbau des Dokuments erkannt. Dadurch lassen sich auch Rechnungen von Absendern einlesen, die keine oder eine noch unbekannte Profilkennung (BT-24) angeben.
-
Aktuelle XRechnung-Prüfregeln 2.6.0 ValidierungDie lokale Prüfung nutzt jetzt die aktuellen KoSIT-Prüfregeln 2.6.0 für XRechnung 3.0.2. Bitte beachten Sie: Ein Verstoß gegen die Regel BR-TMP-2 gilt damit als Fehler statt als Warnung. Außerdem werden Rechnungen geprüft, deren XML unkomprimiert in die PDF eingebettet ist, und nicht lesbare Anhänge erscheinen als verständlicher Prüfbefund.
-
Gründlichere Prüfung von Beträgen und Summen ValidierungDie eingebaute Rechnungsprüfung kontrolliert Positionsbeträge, Zu- und Abschläge, Steuerbeträge und den Zahlbetrag jetzt deutlich genauer nach den Regeln der EN 16931 – inklusive Vorauszahlungen, Rundungsbeträgen und Preisbasismengen (BT-149).
-
Fehlerkorrekturen für gültige Rechnungen KernMehrere Fehler, die zu ungültigen oder unvollständigen Rechnungen führen konnten, sind behoben: Bei nullbesteuerten Umsätzen (Kategorie Z) wird kein Befreiungsgrund mehr geschrieben (BR-Z-10), MINIMUM-Rechnungen enthalten keine unzulässige elektronische Adresse mehr, leere IBAN-Angaben entfallen, UBL-Preise behalten alle Nachkommastellen und die Referenz auf den Wareneingangsbeleg (BT-15) wird in UBL korrekt gelesen und geschrieben.
Version 19.0
Version 19.0 führt eine kostenlose, lokale Rechnungsprüfung ein, verbessert die Verarbeitung von XRechnung-Preisangaben und PDF-Anhängen und härtet FactoorSharp gegen präparierte Dokumente ab.
Schwerpunkte
Version 18.5
Version 18.5 führt die Unterstützung von Rechnungszeiträumen ein, verbessert die Verarbeitung von Zahlungsbedingungen und behebt mehrere Fehler rund um ZUGFeRD 2.0 und 2.5.
Schwerpunkte
Version 18.4
Version 18.4 führt eine neue Visualisierungskomponente ein und korrigiert einige Fehler in der Arbeit mit ZUGFeRD 2.5.
Schwerpunkte
Version 18.3
Version 18.3 unterstützt ZUGFeRD 2.5 und erweitert die Validierung um italienische und spanische Rechnungen.
Schwerpunkte
Version 18.2
Version 18.2 baut die PDF-Verarbeitung weiter aus und verbessert das Quota-Management für die Validierung.
Schwerpunkte
Version 18.1
Version 18.1 baut FactoorSharp im Bereich PDF-Verarbeitung weiter aus und erweitert die Signierungsunterstützung auf alle .NET-Zielplattformen.
Schwerpunkte
Version 18.0
Version 18.0 ist die erste veröffentlichte FactoorSharp-Version. Sie bildet die stabile Grundlage für die Arbeit mit ZUGFeRD, Factur-X und XRechnung in modernen .NET-Anwendungen.