Versions et notes de version
Vous trouverez ici les changements les plus importants des versions actuelles et à venir de FactoorSharp.
Version 19.1
ActuelleLa version 19.1 affiche les factures au format HTML, prend en charge les acomptes et la TVA en devise étrangère, extrait le texte des PDF avec sa position et détecte le format de facture de manière encore plus fiable.
Les nouveautés en détail :
-
Afficher les factures en HTML VisualisationLes factures peuvent désormais être affichées en HTML en plus du PDF – sous forme de page autonome ou de module à intégrer directement dans votre application web ou de bureau. Le bon de livraison, la référence de commande et les caractéristiques des produits apparaissent également.
// Facture sous forme de page HTML autonome string html = InvoiceVisualizer.RenderHtml(invoice); // Ou sous forme de fragment à intégrer dans une page existante string fragment = InvoiceVisualizer.RenderHtml(invoice, options: new HtmlRenderOptions { Standalone = false }); // La sortie PDF s'appelle désormais RenderPdf() InvoiceVisualizer.RenderPdf(invoice, "invoice.pdf"); ' Facture sous forme de page HTML autonome Dim html As String = InvoiceVisualizer.RenderHtml(invoice) ' Ou sous forme de fragment à intégrer dans une page existante Dim fragment As String = InvoiceVisualizer.RenderHtml(invoice, options:=New HtmlRenderOptions With {.Standalone = False}) ' La sortie PDF s'appelle désormais RenderPdf() InvoiceVisualizer.RenderPdf(invoice, "invoice.pdf") -
Détailler les acomptes (BG-X-45) EssentielLes acomptes déjà reçus peuvent être listés individuellement dans le profil EXTENDED – avec montant, date de paiement, TVA incluse et référence à la facture d'acompte correspondante.
// Acompte avec TVA incluse et référence à la facture d'acompte invoice.AddAdvancePayment(2975m, new DateTime(2026, 6, 7)) .SetInvoiceReferencedDocument("FA-2026-0601", new DateTime(2026, 6, 1), InvoiceType.PartialInvoice) .AddIncludedTradeTax(475m, 19m, TaxTypes.VAT, TaxCategoryCodes.S); ' Acompte avec TVA incluse et référence à la facture d'acompte invoice.AddAdvancePayment(2975D, New DateTime(2026, 6, 7)) _ .SetInvoiceReferencedDocument("FA-2026-0601", New DateTime(2026, 6, 1), InvoiceType.PartialInvoice) _ .AddIncludedTradeTax(475D, 19D, TaxTypes.VAT, TaxCategoryCodes.S) -
TVA en devise étrangère avec taux de change (BG-X-41) EssentielPour les factures en devise étrangère, vous indiquez désormais en une seule étape la devise de comptabilisation de la TVA (BT-6), le montant de TVA dans cette devise (BT-111) et le taux de change – comme l'exige la norme EN 16931.
// Facture en USD, TVA indiquée en plus en euros invoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency: 175.08m, accountingCurrency: CurrencyCodes.EUR, conversionRate: 0.9215m, conversionRateTimestamp: new DateTime(2026, 9, 1)); ' Facture en USD, TVA indiquée en plus en euros invoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency:=175.08D, accountingCurrency:=CurrencyCodes.EUR, conversionRate:=0.9215D, conversionRateTimestamp:=New DateTime(2026, 9, 1)) -
Adresse électronique pour toutes les parties (BT-34, BT-49, BT-X-160) EssentielOutre le vendeur et l'acheteur, le destinataire de la livraison et les autres parties peuvent désormais recevoir une adresse électronique, par exemple une adresse e-mail. Ces informations sont intégralement conservées lors de la lecture.
// Adresse électronique du destinataire de la livraison invoice.ShipTo.ElectronicAddress = new ElectronicAddress { Address = "reception@client.fr", ElectronicAddressSchemeID = ElectronicAddressSchemeIdentifiers.ElectronicMailSmtp }; ' Adresse électronique du destinataire de la livraison invoice.ShipTo.ElectronicAddress = New ElectronicAddress With { .Address = "reception@client.fr", .ElectronicAddressSchemeID = ElectronicAddressSchemeIdentifiers.ElectronicMailSmtp } -
Extraire le texte des PDF avec sa position PDFVous pouvez désormais extraire du contenu visible d'un PDF des fragments de texte avec leur page, leur position et leur taille de police, par exemple pour reprendre une valeur d'une colonne précise d'un tableau. L'extraction de texte classique restitue en outre bien plus fidèlement la mise en page.
foreach (PdfTextFragment fragment in PdfUtils.ExtractTextFragments("invoice.pdf")) { // Page, position en points et texte Console.WriteLine($"Page {fragment.PageNumber}, x={fragment.X:0}, y={fragment.Y:0}: {fragment.Text}"); } For Each fragment As PdfTextFragment In PdfUtils.ExtractTextFragments("invoice.pdf") ' Page, position en points et texte Console.WriteLine($"Page {fragment.PageNumber}, x={fragment.X:0}, y={fragment.Y:0}: {fragment.Text}") Next -
Plus d'informations sur les lignes de facture (BT-158-1, BT-X-98) EssentielLes articles peuvent désormais être classés selon tous les systèmes de classification de la norme EN 16931, par exemple UNSPSC ou eCl@ss. Dans le profil EXTENDED, vous pouvez également indiquer le total des remises et charges par ligne.
// Classer l'article selon UNSPSC item.AddDesignatedProductClassification(DesignatedProductClassificationClassCodes.TST, classCode: "43211503"); // Total des remises et charges de cette ligne (EXTENDED uniquement) item.TotalAllowanceChargeAmount = 12.50m; ' Classer l'article selon UNSPSC item.AddDesignatedProductClassification(DesignatedProductClassificationClassCodes.TST, classCode:="43211503") ' Total des remises et charges de cette ligne (EXTENDED uniquement) item.TotalAllowanceChargeAmount = 12.5D -
Détection plus fiable du format de facture EssentielLe type de fichier – facture ZUGFeRD/Factur-X ou UBL – est désormais identifié sans ambiguïté à partir de la structure du document. Les factures d'expéditeurs qui n'indiquent aucun identifiant de spécification (BT-24) ou un identifiant encore inconnu peuvent ainsi être lues également.
-
Règles de validation XRechnung 2.6.0 à jour ValidationLa validation locale utilise désormais les règles KoSIT 2.6.0 actuelles pour XRechnung 3.0.2. Attention : une violation de la règle BR-TMP-2 est désormais signalée comme une erreur et non plus comme un avertissement. Par ailleurs, les factures dont le XML est intégré au PDF sans compression sont validées, et les pièces jointes illisibles apparaissent sous forme de constat de validation explicite.
-
Contrôle plus approfondi des montants et totaux ValidationLe contrôle de facture intégré vérifie désormais bien plus précisément les montants de ligne, les remises et charges, les montants de TVA et le montant à payer selon les règles de la norme EN 16931 – y compris les acomptes, les arrondis et les quantités de base du prix (BT-149).
-
Corrections pour des factures valides EssentielPlusieurs erreurs pouvant conduire à des factures invalides ou incomplètes ont été corrigées : aucun motif d'exonération n'est plus écrit pour les opérations à taux zéro (catégorie Z) (BR-Z-10), les factures MINIMUM ne contiennent plus d'adresse électronique non autorisée, les IBAN vides sont omis, les prix UBL conservent toutes leurs décimales et la référence à l'avis de réception (BT-15) est correctement lue et écrite en UBL.
Version 19.0
La version 19.0 introduit une validation de factures locale et gratuite, améliore le traitement des informations de prix XRechnung et des pièces jointes PDF, et renforce FactoorSharp contre les documents malveillants.
Points forts
Version 18.5
La version 18.5 introduit la prise en charge des périodes de facturation, améliore le traitement des conditions de paiement et corrige plusieurs bugs liés à ZUGFeRD 2.0 et 2.5.
Points forts
Version 18.4
La version 18.4 introduit un nouveau composant de visualisation et corrige plusieurs bugs liés à ZUGFeRD 2.5.
Points forts
Version 18.3
La version 18.3 prend en charge ZUGFeRD 2.5 et étend la validation aux factures italiennes et espagnoles.
Points forts
Version 18.2
La version 18.2 développe encore le traitement des PDF et améliore la gestion des quotas de validation.
Points forts
Version 18.1
La version 18.1 développe encore le traitement des PDF dans FactoorSharp et étend la prise en charge de la signature à toutes les plateformes cibles .NET.
Points forts
Version 18.0
La version 18.0 est la première version publiée de FactoorSharp. Elle constitue la base stable pour travailler avec ZUGFeRD, Factur‑X et XRechnung dans des applications .NET modernes.