Documentazione API

Eunormia.Sdk — la libreria .NET offline Beta

Lo stesso motore dell'API online, incorporato nella tua applicazione: creare, leggere e convalidare fatture elettroniche — completamente offline. Il motore e un runtime ridotto sono inclusi nel pacchetto NuGet; i tuoi dati di fatturazione non lasciano mai la tua azienda.

Beta: il pacchetto non è ancora pubblicato su nuget.org — accesso tramite il programma pilota.

Installazione & requisiti

Installazionedotnet add package Eunormia.Sdk
Frameworknet8.0 e netstandard2.0 (quindi anche .NET Framework 4.6.1+)
Piattaformewin-x64 (altre in arrivo)
Dipendenzenessuna — niente Java, niente Docker, nessun accesso di rete
Dimensione~130 MB per piattaforma (motore, font, profili ICC, regolamenti incl. KoSIT & FR-CTC)

Le tre classi

EunormiaConvertercreare: JSON (+ PDF opzionale) → ZUGFeRD/Factur-X convalidato. Stessi gate dell'online; certificato di conformità firmato opzionale (EmitCertificate).
EunormiaReaderricevere: PDF → JSON di fattura completo (stesso schema della creazione) + XML CII grezzo.
EunormiaValidatorricevere: PDF → risultati dei gate (veraPDF, EN 16931, opzionalmente KositValidation/FrCtcValidation).

Prestazioni

UseDaemon = true mantiene il motore come processo caldo: prima chiamata ~3–4 s (avvio a freddo), poi ~250 ms per conversione, lettura ~30 ms.

Licenza

Senza licenza l'SDK è pienamente funzionante — i risultati portano una filigrana campione. Una licenza valida (account → POST /v1/license/offline, poi come LicenseKey o ENV EUNORMIA_LICENSE) rimuove la filigrana. Due tipi:

devbreve durata (45 giorni di default), per sviluppo/CI; rinnovata finché l'abbonamento è attivo.
runtimelunga durata, incorporata nel software che consegni. Continua a funzionare presso i tuoi clienti — anche dopo la disdetta. Le nuove versioni di eunormia richiedono un abbonamento attivo.

La verifica è offline (firma Ed25519) — nessun phone-home, nessuna telemetria.

Gestione degli errori

Gli errori di merito e tecnici arrivano come EunormiaException con Status (422 per il merito), Stage e Details localizzati — gli stessi messaggi comprensibili dell'API online.

FAQ

Serve Java installato?No — il runtime è incluso nel pacchetto e invisibile per te.
L'SDK telefona a casa?No. Nessuna telemetria, nessuna verifica di licenza online.
Cosa succede in caso di disdetta?Il software consegnato con licenza runtime continua a funzionare; solo le nuove versioni e i build di sviluppo richiedono un abbonamento attivo.
Perché così grande?Il pacchetto contiene tutta la sostanza di convalida: font, profili colore, regolamenti EN 16931/KoSIT/FR-CTC e il motore. È esattamente ciò che ti risparmia ogni infrastruttura.

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}");