Elmar.tax ELSTER Integration

Die 3-Schichten-Architektur

Elmar.tax ist als drei Schichten aufgebaut, die aufeinander aufbauen. Jede Schicht ist einzeln nutzbar, aber die meisten Teams brauchen nur die oberste.

SCHICHT 3 — EMPFOHLEN Elmar REST Service SCHICHT 2 — JAVA-TEAMS Business Service Layer SCHICHT 1 ERiC Wrapper SDK SCHICHT 1 ELSTER Data-Bindings FUNDAMENT — VON DER FINANZVERWALTUNG BEREITGESTELLT ERiC (ELSTER Rich Client)
Schicht 3 — Empfohlen für die meisten Teams
Elmar REST Service
REST-API, die die darunterliegenden Schichten kapselt. Akzeptiert JSON oder XML. Läuft als Docker-Container innerhalb Ihrer Infrastruktur. Stellt jedes Steuerformular als dedizierten Endpunkt bereit.
Schicht 2 — Java-Teams
elster-databinding
Typsichere Java-Modelle, generiert aus ELSTER-XSDs. Einheitliches Factory-Pattern: TransferHeader → NutzdatenHeader → Nutzdatenblock → DatenTeil → ElsterForm. Ein Maven-Modul pro Formular/Jahr für saubere Versionsisolierung.
Schicht 1 — Java-Teams, fortgeschritten
eric-wrapper-sdk
Java-Wrapper um ERiC mit Project Panama (Foreign Function & Memory API, JDK 24+). Kein JNI. Concurrency-sicherer Zugriff auf ERiCs Single-Threaded-Kern. Plattformübergreifend: Linux (x64) und macOS (universal).
Fundament — bereitgestellt von der Finanzverwaltung
ERiC (ELSTER Rich Client)
Offizielle native C-Bibliothek für den sicheren Datenaustausch mit ELSTER-Servern. Single-Threaded. Im Elmar-Docker-Image enthalten.

Wie es zusammenspielt

  1. ERiC (unten) ist die offizielle C-Bibliothek der Finanzverwaltung. Sie übernimmt Verschlüsselung, TLS und die Kommunikation mit den ELSTER-Servern. Sie ist Single-Threaded und erwartet Aufrufe von einem einzelnen Thread.

  2. eric-wrapper-sdk kapselt ERiC mittels jextract-generierter Panama-Bindings. Es stellt EricFacade bereit — eine Java-idiomatische Schnittstelle, die parallele Zugriffe serialisiert, Zertifikate verwaltet und native Fehlercodes auf Java-Exceptions abbildet.

  3. elster-databinding generiert JAXB-Klassen aus offiziellen ELSTER-XSDs und stellt eine Factory pro Formular/Jahr bereit. Jede Factory baut den vollständigen ELSTER-Umschlag: TransferHeader + NutzdatenHeader + Nutzdatenblock + DatenTeil = ElsterForm.

  4. Elmar REST (oben) ist eine Spring-Boot-Kotlin-Anwendung, die alles zusammenführt. Sie nimmt TaxDeclaration-Payloads per HTTP entgegen, wandelt sie in ELSTER-Umschläge um und reicht sie über ERiC ein. Sie gibt ERiCs Antwort transparent zurück — keine zusätzliche Validierungsschicht.

Concurrency-Modell

ERiC ist Single-Threaded. Elmar handhabt dies transparent:

Betriebsmodell

Compliance und Lizenzierung

Aufgrund der ERiC-Lizenzierung und regulatorischer Vorgaben ist Elmar.tax so konzipiert, dass es vollständig innerhalb der Kundeninfrastruktur läuft und nicht als SaaS- oder Portallösung betrieben werden darf.

Dies ist eine fundamentale Designentscheidung, keine Einschränkung — sie stellt sicher, dass Sie die Vorschriften der Finanzverwaltung einhalten und gleichzeitig die volle Kontrolle über Ihre Daten und Zertifikate behalten.