BMF-RKSV-Technik / at-registrierkassen-mustercode

111 stars 39 forks source link

Wichtige Hinweise

22.06.2020 Senkung des Umsatzsteuersatzes auf 5% und Auswirkungen auf Registrierkassen:

Auf der Homepage des BMF wurden FAQ's für die Umsetzung des 5%-igen Umsatzsteuersatzes veröffentlicht:

04.01.2018 Release der Version 1.1.1 des Prüfmoduls: Es wurde ein Problem beim Speicherverbrauch behoben (Vielen Dank für den Hinweis an ztp-mino!). Der Speicherverbrauch von V 1.1.0 erhöhte sich pro geprüftem Beleg. Die Ursache dafür war ein Fehler bei der Verarbeitung der Prüfergebnisse: Diese wurden zu lange im Speicher gehalten. Bitte beachten: Trotzdem ist ein konstanter Speicherverbrauch - unabhängig von der Anzahl der Belege - nicht möglich, da bestimmte Informationen im Speicher behalten werden müssen (z.B. jede Belegnummer, um die Prüfung auf die Mehrfachverwendung durchzuführen).

22.12.2017 Release der Version 1.1.0 des Prüfmoduls: Es wird die Version 1.1.0 des Prüftools freigegeben. Detailinformationen zu den Änderungen und Ergänzungen: Siehe "Change-Log" im Abschnitt "Prüftool 1.0.0 bis 1.1.0"

12.12.2016 Ergänzung der Infos zu Fehlersuche bei ungültigen Signaturen:

Die vorliegende Präsentation wurde um Informationen zu Padding-Zeichen im JWS-Standard ergänzt. Die neue Version des Dokuments kann von hier bezogen werden.

18.11.2016 Fehlersuche bei ungültigen Signaturen:

Es stehen nun Folien für die Fehlersuche bei kryptographisch ungültigen Signaturen zur Verfügung (dieses Thema wurde auch am 27.10.2016 im Vortrag bei der WKO angesprochen). Die Datei liegt im Repository bzw. kann direkt von hier bezogen werden.

18.11.2016 Signieren von Nullbelegen:

Die Version 1.0.0 des Prüftools gibt eine Fehlermeldung aus wenn ein Nullbeleg nicht signiert ist. Dazu gibt es folgende Erläuterungen (abgestimmt mit dem BMF):

Im Prüftool mit der Version 1.0.0. wird bei allen Nullbelegen verlangt, dass eine Signatur vorhanden ist (also der Beleg nicht mit “Sicherheitseinrichtung ausgefallen” markiert ist). Diese Funktion wird in der nächsten Version wie folgt geändert: Das Prüfergebnis wird nach wie vor bei allen Nullbelegen ohne Signatur negativ sein, an Stelle der Fehlermeldung wird allerdings ein Hinweis ausgegeben, der auf die oben genannte Kategorisierung verweist. Der Prüfvorgang wird nicht abgebrochen. Da es sich um den selben Prüfkern wie im FinOnline handelt, wird auch dort die gleiche Meldung zu sehen sein.

Übersicht

Dieses Projekt dient der Behandlung technischer Sachverhalte der RKSV. Wir bitten daher um Verständnis, dass rechtliche/organisatorische Themen im Allgemeinen nicht beantwortet werden können. Für die Beantwortung solcher Fragen bitten wir Sie, die Informationen des BMFs heranzuziehen (siehe https://www.bmf.gv.at/steuern/selbststaendige-unternehmer/registrierkassen_startseite.html). Sollte Ihr Anliegen dort nicht behandelt sein, bitten wir Sie, die am Ende dieses Dokuments genannten Kontaktpunkte bzw. Informationsquellen zu berücksichtigen.

Ein weiterer Hinweis bezüglich den “Issues” in diesem Projekt: Offizielle Aussagen des BMF werden nur von den Benutzern der Organisation BMF-RKSV-Technik (Grigo-S, WienerroitherM) getätigt. Für die Korrektheit der Aussagen anderer Benutzerinnen und Benutzer kann keine Garantie übernommen werden.

Dieses Dokument ist wie folgt organisiert:

Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV)

In Zusammenarbeit zwischen dem BMF und A-SIT Plus wurde das Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV) erstellt. Es enthält Festlegungen in technischen Detailfragen zur RKSV auf Prozessebene und Klarstellungen bzw. Ergänzungen im Bereich der Muster-Code-Beispiele.

Releases:

Prüftool 1.0.0 bis 1.1.0

Das gegenständliche, im Auftrag des BMF erstellte, Prüftool ab Version 1.0.0 überprüft Format und Inhalt sowie Abfolge von Einzelbelegen in einem exportierten RKSV-Datenerfassungsprotokoll (RKSV-DEP) einer Registrierkasse auf Übereinstimmung mit den ab 1.4.2017 gültigen Vorgaben der RKSV. Die Prüfalgorithmen, die dabei zur Anwendung kommen, stimmen im Wesentlichen mit jenen überein, die auch für Einzelbelegüberprüfungen und RKSV-DEP-Überprüfungen des BMF herangezogen werden (z.B.: BMF Belegcheck-App). Dadurch, dass das gegenständliche Prüftool primär auf die Überprüfung der korrekten Implementierung ausgerichtet ist, kann es dazu kommen, dass das Prüftool etwas als fehlerhaft ausgibt, das bei der Behördenprüfung als fehlerfrei angesehen wird (z.B. nicht vorhandener Startbeleg bei der Überprüfung eines DEP-Ausschnittes).

Um die Prüfung mit dem Prüftool durchzuführen, müssen dem Prüftool auch der verwendete AES-Schlüssel sowie die verwendeten Zertifikate/öffentliche Schlüssel in einer Datei als Parameter übergeben werden (siehe Details weiter unten).

Die mitgelieferten Testfälle sollten im Zuge der Kassenimplementierung verwendet werden, auch um die Korrektheit des Verhaltens der Kasse bei unterschiedlichen Varianten der Belegabfolgen überprüfen zu können. Es wird aber darauf hingewiesen, dass mit den mitgelieferten Testfällen nur die allgemein gültigen Fallkonstellationen abgedeckt werden. Für eine vollständige Abdeckung der Fallkonstellationen im Zusammenhang mit der spezifischen Kassenlösung werden weitere Testfälle erforderlich sein, die vom Kassenhersteller beizusteuern sind.

Im Zusammenhang mit dem Prüftool und den durchgeführten Prüfungen müssen folgende Quellen berücksichtigt werden:

Change-Log

Verwendung des Prüftools

Download und entpacken von regkassen-verification-1.1.0.zip (siehe https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/releases).

DEP-Export Format

Mit dieser Variante kann der gesamte RKSV-DEP-Export überprüft werden.

java -jar regkassen-verification-depformat-1.1.0.jar -v -f -i DEP-EXPORT-FILE -c CRYPTOGRAPHIC-MATERIAL-FILE -o OUTPUT_DIR

Wobei

Weitere Details zum Prüfablauf:

Prüfergebnisse:

QR-Code-Repräsentation eines einzelnen oder mehrerer maschinenlesbaren Codes

In dieser Variante werden einzelne maschinenlesbare Codes auf Ihre Gültigkeit überprüft. Die Prüfverfahren entsprechen jenen, die auch beim RKSV-DEP-Export-Prüftool für die Einzelbelegprüfung zum Einsatz kommen. ACHTUNG: Es werden keine RKSV-DEP-relevanten Prüfungen durchgeführt (Verkettung, Abfolge, etc.). Die Prüfung der einzelnen Belege erfolgt unabhängig voneinander.

java -jar regkassen-verification-receipts-1.1.0.jar -v -f -i QR-CODE-REP-FILE -c CRYPTOGRAPHIC-MATERIAL-FILE -o OUTPUT_DIR

Wobei

Die Ergebnisse ensprechen dem Format, das unter der Prüfung "Einzelne maschinenlesbare Codes" für den RKSV-DEP-Export beschrieben ist.

Muster-Code

Dieses Projekt stellt Demo-Code als Begleitung zur Registrierkassensicherheitsverordnung (RKSV) zur Verfügung und wurde in der Zusammenarbeit zwischen BMF und A-SIT Plus erstellt. Der Demo-Code zeigt

In diesem Projekt werden nur technische Aspekte der Registrierkassensicherheitsverordnung betrachtet. Die Informationen und der Code werden laufend erweitert und mit typischen Fragen/Antworten ergänzt.

Diese Projektseite verwendet Deutsch als Sprache. In den textuellen Ergänzungen im Source Code wird Englisch verwendet.

Der Muster-Code wird unter der Apache 2.0 Lizenz (http://www.apache.org/licenses/LICENSE-2.0) zur Verfügung gestellt. Der Code für die Prüftools wird nicht veröffentlicht. Die Verwendung der Prüftools ist natürlich frei möglich.

Alle verwendeten Dritt-Bibliotheken und deren Lizenzen sind in den Maven Build Dateien (pom.xml) der einzelnen Module ersichtlich und auf der folgenden WIKI-Seite zusammengefasst:

https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/wiki/Lizenzen-Dritt-Bibiliotheken

Change-Log

Verwendung des Democodes und der Demokasse

Neben dem Source Code wird auch immer eine ZIP Datei der ausführbaren Dateien zur Verfügung gestellt. Die neueste Version ist immer unter Releases zu finden. Für das Ausführen der Demokasse sind folgende Voraussetzungen nötig:

Um die Demokasse zu verwenden, wird wie folgt vorgegangen: Download und entpacken von regkassen-demo-1.0.0.zip (siehe https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/releases).

Ausführen der Demokasse für die Abarbeitung der integrierten Testfälle mit java -jar regkassen-demo-1.0.0.jar -o OUTPUT_DIR -v -c -l 8

Parameter:

Das Output-Verzeichnis enthält folgende Dateien/Verzeichnisse:

Für jeden Test-Fall wird ein eigenes Verzeichnis angelegt, das den Namen des Testfalls erhält. In diesem Verzeichnis werden unterschiedliche Dateien/Verzeichnisse gespeichert. Die folgenden Dateien bzw. deren Formate haben zwar für eine produktive Kasse (mit Ausnahme des RKSV-DEP-Exports) keine Bedeutung, allerdings spielen sie bei der Überprüfung der Implementierung der Kasse eine wichtige Rolle, da die Dateien vom Prüftool verwendet werden, um die Testfälle einer Kasse und vor allem deren Abdeckung prüfen zu können:

Die folgenden Dateien dienen nur zur Demonstrationszwecken und haben für das Prüftool keine Relevanz:

Ein Beispiel für den Output ist auch direkt ohne Ausführen des Demo-Codes verfügbar: example-output-1.0.0.zip (siehe https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/releases).

BUILD Prozess

Um den Maven Build-Prozess eigenständig durchzuführen, sind in den jeweiligen Verzeichnissen folgende Schritte notwendig: regkassen-common: mvn install regkassen-core: mvn install regkassen-democashbox: mvn install

In den Verzeichnissen regkassen-democashbox, regkassen-verification befinden sich nach dem erfolgreichen Build-Prozess die JAR Dateien (im Unterverzeichnis "target"), die zum Ausführen benötigt werden (siehe Punkte zur Verwendung des Demo-Codes weiter oben).

Testfälle

Die Tesfälle sind im Mustercode der Demokasse integriert bzw. können durch Download und Entpacken von regkassen-test-cases-1.0.0.zip (siehe https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/releases) bezogen werden. Eine detallierte Beschreibung der Testfälle befindet sich im Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV). Diese Beschreibung umfasst:

Kontakt/Fragen

Es wurde dazu eine Projektseite von der WKO eingerichtet. Es ist dazu eine Registrierung bei der WKO notwendig.

Projektseite der WKO

Etwaige Fragen sollten dort im Forum gestellt werden, um eine möglichst effiziente Beantwortung durchführen zu können. Es stehen dort die Rubriken "FinanzOnline – Webservice und File Upload" und "BMF Belegcheck-App (Belegprüfung) erweitert“ für Fragen zur Verfügung.

Forum der WKO