Documentation de l'API
Eunormia.Sdk — la bibliothèque .NET hors ligne Bêta
Le même moteur que l'API en ligne, intégré à votre application : créer, lire et valider des factures électroniques — entièrement hors ligne. Le moteur et un runtime allégé sont inclus dans le paquet NuGet ; vos données de facturation ne quittent jamais votre entreprise.
Bêta : le paquet n'est pas encore publié sur nuget.org — accès via le programme pilote.
Installation & prérequis
| Installation | dotnet add package Eunormia.Sdk |
| Frameworks | net8.0 et netstandard2.0 (donc aussi .NET Framework 4.6.1+) |
| Plateformes | win-x64 (d'autres suivront) |
| Dépendances | aucune — pas de Java, pas de Docker, pas d'accès réseau |
| Taille | ~130 Mo par plateforme (moteur, polices, profils ICC, référentiels incl. KoSIT & FR-CTC) |
Les trois classes
EunormiaConverter | créer : JSON (+ PDF optionnel) → ZUGFeRD/Factur-X validé. Mêmes barrières qu'en ligne ; certificat de conformité signé en option (EmitCertificate). |
EunormiaReader | recevoir : PDF → JSON de facture complet (même schéma qu'à la création) + XML CII brut. |
EunormiaValidator | recevoir : PDF → résultats des barrières (veraPDF, EN 16931, en option KositValidation/FrCtcValidation). |
Performance
UseDaemon = true garde le moteur en processus chaud : premier
appel ~3–4 s (démarrage à froid), puis ~250 ms par conversion, lecture ~30 ms.
Licence
Sans licence, le SDK est pleinement fonctionnel — les
résultats portent un filigrane. Une licence valide (compte →
POST /v1/license/offline, puis LicenseKey ou ENV
EUNORMIA_LICENSE) supprime le filigrane. Deux types :
| dev | courte durée (45 jours par défaut), pour le développement/CI ; renouvelée tant que l'abonnement est actif. |
| runtime | longue durée, intégrée au logiciel que vous livrez. Continue de fonctionner chez vos clients — même après résiliation. Les nouvelles versions d'eunormia exigent un abonnement actif. |
La vérification est hors ligne (signature Ed25519) — aucun phone-home, aucune télémétrie.
Gestion des erreurs
Les erreurs métier et techniques arrivent en EunormiaException
avec Status (422 pour le métier), Stage et des
Details localisés — les mêmes messages compréhensibles que l'API
en ligne.
FAQ
| Faut-il Java installé ? | Non — le runtime est inclus dans le paquet, invisible pour vous. |
| Le SDK téléphone-t-il à la maison ? | Non. Aucune télémétrie, aucune vérification de licence en ligne. |
| Que se passe-t-il en cas de résiliation ? | Le logiciel livré avec licence runtime continue de fonctionner ; seules les nouvelles versions et les builds de développement exigent un abonnement actif. |
| Pourquoi si volumineux ? | Le paquet contient toute la substance de validation : polices, profils colorimétriques, référentiels EN 16931/KoSIT/FR-CTC et le moteur. C'est précisément ce qui vous épargne toute infrastructure. |
Code
// Erzeugen / create
var converter = new EunormiaConverter(new EunormiaOptions {
LicenseKey = Environment.GetEnvironmentVariable("EUNORMIA_LICENSE"),
Profile = ZugferdProfile.EN16931,
UseDaemon = true
});
EunormiaResult r = await converter.ConvertAsync(invoiceJson, pdfBytes);
File.WriteAllBytes(r.FileName, r.Pdf);
// Empfangen: lesen / receive: read
ReadResult data = await new EunormiaReader().ReadAsync(incomingPdf);
Console.WriteLine(data.Header?.Number); // Kurzform / header
var fullJson = data.Invoice; // volles InvoiceRequest-JSON
// Empfangen: validieren / receive: validate
var v = await new EunormiaValidator(new EunormiaOptions {
KositValidation = true, FrCtcValidation = true
}).ValidateAsync(incomingPdf);
Console.WriteLine($"{v.Valid} {v.VeraPdf.Passed} {v.En16931.Passed} {v.Kosit?.Passed}");