Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.bmf-rksv-technik:at-registrierkassen-mustercode:1.2-DOK'
}
dependencies {
implementation("com.github.bmf-rksv-technik:at-registrierkassen-mustercode:1.2-DOK")
}
<dependency>
<groupId>com.github.bmf-rksv-technik</groupId>
<artifactId>at-registrierkassen-mustercode</artifactId>
<version>1.2-DOK</version>
</dependency>
libraryDependencies += "com.github.bmf-rksv-technik" % "at-registrierkassen-mustercode" % "1.2-DOK"
:dependencies [[com.github.bmf-rksv-technik/at-registrierkassen-mustercode "1.2-DOK"]]
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.
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:
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:
Version 1.2 (06.09.2016): Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV) V1.2:
Version 1.1 (11.03.2016): [Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV) V1.1] (https://github.com/BMF-RKSV-Technik/at-registrierkassen-mustercode/releases/download/1.1-DOK/2016-03-11-Detailfragen-RKSV-V1.1.pdf):
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
21.10.2016: Release 1.0.0 veröffentlicht. Im Vergleich zu Version 0.7.1 wurde eine detaillierte Qualitätssicherung der RKSV-DEP-Überprüfungen durchgeführt (die Einzelbelegprüfung hatte auch schon in Version 0.7.1 diesen Status). Im Zuge der Qualitätssicherung wurden noch weitere Detailprüfungen hinzugefügt, die es ermöglichen, einfache Implementierungsfehler zu erkennen (Belege mit gleicher Nummer im RKSV-DEP, mehrere Kassen-IDs im RKSV-DEP, Mischung mehrerer Systemtypen). Die Erweiterungen werden im Detail genannt:
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
dep-export.json
Datei entspricht (RKSV-DEP Exportformat laut RKSV). Für den schnellen Test kann die entsprechende Datei aus dem Beispiel-Output übernommen werden.cryptographicMaterialContainer.json
abgelegt. Details zum Format können im weiter oben referenzierten Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung (RKSV) abgerufen werden. Diese Datei ist nicht im Sinne der RKSV gefordert und ist nur für die Verwendung des Prüftools relevant, da dieses die Informationen bezüglich der verwendeten Zertifikate und AES-Schlüssel nicht aus FinanzOnline abrufen kann.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
qr-code-rep.json
Datei entspricht. Für den schnellen Test kann die entsprechende Datei aus dem Beispiel-Output übernommen werden.cryptographicMaterialContainer.json
entspricht. Für den schnellen Test kann die entsprechende Datei aus dem Beispiel-Output übernommen werden.Die Ergebnisse ensprechen dem Format, das unter der Prüfung "Einzelne maschinenlesbare Codes" für den RKSV-DEP-Export beschrieben ist.
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:
CashBoxDemoOutputyyyy-MM-dd'T'HH-mm-ss
wobei yyyy-MM-dd'T'HH-mm-ss
der aktuellen Zeit im angegebenen Format entspricht.cryptographicMaterialContainer.json
).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.
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.