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

Installationdotnet add package Eunormia.Sdk
Frameworksnet8.0 et netstandard2.0 (donc aussi .NET Framework 4.6.1+)
Plateformeswin-x64 (d'autres suivront)
Dépendancesaucune — 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

EunormiaConvertercréer : JSON (+ PDF optionnel) → ZUGFeRD/Factur-X validé. Mêmes barrières qu'en ligne ; certificat de conformité signé en option (EmitCertificate).
EunormiaReaderrecevoir : PDF → JSON de facture complet (même schéma qu'à la création) + XML CII brut.
EunormiaValidatorrecevoir : 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 :

devcourte durée (45 jours par défaut), pour le développement/CI ; renouvelée tant que l'abonnement est actif.
runtimelongue 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}");