Software Development Kit
this section will be revised and adapted for the certified version 2 of the the fiskaly Cloud-TSS!
Überblick
Das Software Development Kit (SDK) wird von fiskaly bereitgestellt. Es besteht aus:
- Schnittstelle zur Integration (siehe auch kassensichv.io, fiskaly TSS / TSE API)
- CC-zertifizierte SMA-Komponente in binärer, ausführbarer Form
- Optionale Komponenten: Kompensationsmechanismen für Ausfallszenarien & Loging der Ausfallszenarien
Das SDK wird für verschiedene Plattformen und Betriebssysteme bereitgestellt, darunter Linux, Windows, macOS, Android und iOS; für 32-Bit- und 64-Bit-Architekturen.
Referenzimplementierungen sind für die gängigsten Sprachen und Laufzeitumgebungen verfügbar:
Diese sind alle Open Source und können auf github.com/fiskaly gefunden werden. Aufgrund der freizügigen MIT-Lizenz können die SDKs beliebig modifiziert, erweitert und verbreitet werden.
Auf Anfrage erstellen wir auch gerne Implementierungen für andere Plattformen oder Sprachen.
Funktionsweise
Konzeptionell stellt das SDK einen HTTP-Client dar, der explizit für die Kommunikation mit unserer REST-API optimiert ist (SIGN DE API).
Das SDK bietet die folgende Funktionalität:
- Die Authentifizierung mit unserer REST-API - Empfang und Erneuerung des JWT-Authentifizierungstokens - ist vollständig abstrahiert. Das bedeutet, dass der Integrator nur einen
API key
und das entsprechendeAPI secret
angeben muss. - Die Serialisierung und Deserialisierung von JSON-Anfragen und -Antworten geschieht automatisch.
- Konformität mit den Anforderungen des vom BSI spezifizierten Schutzprofils (BSI CC-PP-0105-2019). Dies erfordert, dass eine lokale SMA-Komponente, die in der Betriebsumgebung des Kassensystems ausgeführt wird, die Inkrementierung des Transaktionszählers und den Aufbau des vertrauenswürdigen Kanals zur entfernt angeschlossenen ZDA-Komponente übernimmt. Die Aufgabe des SDKs ist es, die SMA-Komponente, die in binärer oder ausführbarer Form vorliegt, anzusprechen und die Nutzung der benötigten Funktionalität für den Anwender des SDKs (d.h. den Entwickler) möglichst vollständig zu abstrahieren.