BMF-RKSV-Technik / at-registrierkassen-mustercode

111 stars 39 forks source link

Startbeleg FON Fehler #510

Open steefanfuchs opened 7 years ago

steefanfuchs commented 7 years ago

Liebe Kollegen,

Wir haben nun für alle Kunden valide Startbelege erstellt nur bei einem haben wir leider einen Fehler. DEP und Belege(QRCode) Prüftool Ergebnisse sind positiv. Kassa und Zertifikat wurden erfolgreich bei FON über das Webservice angemeldet. Zumindest habe ich überall RC 0 bekommen. Daten der Anmeldungen waren auch richtig (AES-Schlüssel und KassaID) hab ich nochmal überprüft.

QR String: _R1-AT1_1_1_2017-03-28T19:59:25_0,00_0,00_0,00_0,00_0,00_LtgmgTPgDQY=_3988D4A0_a4ayc/80/OE=_PAOTSqmd3tlCA34z9+JD4VTNm7xn1df6/tfSlnscBZvY5/NIvsvbz8xQpL7VQQD5Hv6zUwR+UKu07/h8hucyEA==

Fails von FON: TYPE_OF_RECEIPT Die Prüfung des Beleges ergab einen Fehler, da der übermittelte Beleg keinem der nachfolgenden Belegtypen zugeordnet werden konnte. Bitte vergewissern Sie sich, dass die Registrierkasse mit der korrekten Kassenidentifikationsnummer sowie dem korrekten AES-256 Benutzerschlüssel über FinanzOnline registriert wurde. Hinweis: sollte dieser Fehler trotz richtiger Registrierung der Kasse auftreten, wenden Sie sich mit dieser Fehlermeldung an Ihren Kassenhersteller."

und in weiterer Folge: TYPE_OF_RECEIPT_START Verkettung mit Kassenidentifikationsnummer / Umsatzzähler = 0,00 / Belegbeträge = 0,00 / Signatur-Siegelerstellungseinheit nicht ausgefallen

Verkettung mit KassaID passt. Wir verwenden pro Kunde nur die IDS 1-x .. also der Verkettungswert für "1" ist immer der gleiche. Alle Werte sind 0 Umsatzzähler hab ich überprüft und nochmal nachgerechnet und das passt auch. Außerdem hatte ich schon mal den Fall, dass der Umsatzzähler falsch war und da kam eine andere Fehlermeldung. Signiert wurde der Beleg auch erfolgreich.

Ich bin ein wenig ratlos. Vielen Dank für eure Hilfe.

ErichFreitag commented 7 years ago

Wie prüfen sie was - z.B. den QR-Code mit der Belegcheck-App oder via Webservice?

steefanfuchs commented 7 years ago

Wir prüfen den QR-Code der Startbelege im Produktivsystem via Webservice. Nachdem ich dort den Fehler bekomme, habe ich sowohl den QR Code als auch auch das DEP mit positiven Ergebnissen durchs Prüftool geschickt.

ErichFreitag commented 7 years ago

Posten sie bitte die komplette Fehlermeldung.

Haben sie für den AES-Schlüssel eine Prüfziffer und haben sie diese bei der Eingabe verwendet?

steefanfuchs commented 7 years ago

Ich muss ehrlich gestehen, von der Prüfziffer lese ich das erste Mal. Ich habe sie mir grad berechnet. Gibt es irgendwo ein Tool bei FON wo ich diese prüfen lassen kann oder hätte ich die bei der Registrierung der Kassa mitschicken müssen?

Hier die komplette Response der Belegprüfung: object(stdClass)#657 (3) { ["paket_nr"]=> int(112) ["ts_erstellung"]=> string(19) "2017-03-18T20:03:45" ["result"]=> object(stdClass)#604 (3) { ["satznr"]=> int(1) ["rkdbMessage"]=> object(stdClass)#623 (2) { ["rc"]=> string(2) "43" ["msg"]=> string(39) "Der übermittelte Beleg ist fehlerhaft." } ["verificationResultList"]=> object(stdClass)#653 (1) { ["verificationResult"]=> object(stdClass)#654 (8) { ["verificationId"]=> string(25) "VERIFICATION_FROM_CASHBOX" ["version"]=> int(1) ["verificationName"]=> string(21) "Prüfergebnis - Kasse" ["verificationTextualDescription"]=> string(269) "Bei der Belegprüfung wird untersucht, ob die Vorgaben der RKSV in Bezug auf den maschinenlesbaren Code am Beleg und auf die meldepflichtigen Metadaten der Sicherheitseinrichtung befolgt werden. Im Fehlerfall sind die genauen Fehlerinformationen nachfolgend angeführt." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(113) "Der vorliegende Beleg weist Fehler im maschinenlesbaren Code auf. Die Fehlerursachen sind nachfolgend angeführt:" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:41.761+02:00" ["verificationResultList"]=> object(stdClass)#655 (1) { ["verificationResult"]=> object(stdClass)#689 (7) { ["verificationId"]=> string(12) "RECEIPT_FULL" ["version"]=> int(1) ["verificationName"]=> string(42) "Detailprüfung des maschinenlesbaren Codes" ["verificationTextualDescription"]=> string(315) "Dieses Modul und die dazugehörigen Submodule überprüfen die Gültigkeit des Belegs. Dabei werden sowohl Formatprüfungen, kryptographische Prüfungen (verschlüsselter Umsatzzähler, Signatur) als auch Prüfungen im Zusammenhang mit dem Status der Kasse bzw. der Signatur-/Siegelerstellungseinheit durchgeführt." ["verificationState"]=> string(4) "FAIL" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:44.980+02:00" ["verificationResultList"]=> object(stdClass)#688 (1) { ["verificationResult"]=> object(stdClass)#687 (8) { ["verificationId"]=> string(15) "TYPE_OF_RECEIPT" ["version"]=> int(1) ["verificationName"]=> string(25) "Feststellen des Belegtyps" ["verificationTextualDescription"]=> string(225) "Dieses Modul und die dazugehörigen Submodule überprüfen unterschiedliche Eigenschaften des maschinenlesbaren Codes und leiten anhand dieser Eigenschaften den Belegtyp ab: Start-, Normal-, Training-, Storno- oder Nullbeleg." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(468) "Die Prüfung des Beleges ergab einen Fehler, da der übermittelte Beleg keinem der nachfolgenden Belegtypen zugeordnet werden konnte. Bitte vergewissern Sie sich, dass die Registrierkasse mit der korrekten Kassenidentifikationsnummer sowie dem korrekten AES-256 Benutzerschlüssel über FinanzOnline registriert wurde. Hinweis: sollte dieser Fehler trotz richtiger Registrierung der Kasse auftreten, wenden Sie sich mit dieser Fehlermeldung an Ihren Kassenhersteller." ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.035+02:00" ["verificationResultList"]=> object(stdClass)#686 (1) { ["verificationResult"]=> array(5) { [0]=> object(stdClass)#685 (7) { ["verificationId"]=> string(21) "TYPE_OF_RECEIPT_START" ["version"]=> int(1) ["verificationName"]=> string(20) "Belegtyp: Startbeleg" ["verificationTextualDescription"]=> string(212) "Es werden folgende Eigenschaften überprüft: Entschlüsselter Umsatzzähler gleich 0, Verkettungswert zeigt auf die Kassen-ID, alle Werte der Steuersätze sind 0, Signatureinrichtung darf nicht ausgefallen sein." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(142) "Verkettung mit Kassenidentifikationsnummer / Umsatzzähler = 0,00 / Belegbeträge = 0,00 / Signatur-Siegelerstellungseinheit nicht ausgefallen" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.035+02:00" } [1]=> object(stdClass)#684 (7) { ["verificationId"]=> string(24) "TYPE_OF_RECEIPT_STANDARD" ["version"]=> int(1) ["verificationName"]=> string(23) "Belegtyp: Standardbeleg" ["verificationTextualDescription"]=> string(336) "Es werden folgende Eigenschaften überprüft: Mindestens ein Steuersatz-Wert muss ungleich 0 sein, es muss ein Umsatzzähler im maschinenlesbaren Code vorhanden sein (es dürfen nicht die BASE64-kodierten Zeichenketten von "TRA" oder "STO" statt dem Umsatzzähler vorhanden ein), der Verkettungswert darf nicht auf die Kassen-ID zeigen." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(153) "Keine Verkettung mit Kassenidentifikationsnummer / Min. ein Betrag des Beleges ungleich 0,00 / Umsatzzähler enthält Zahlenwert (nicht "STO" bzw. "TRA")" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.035+02:00" } [2]=> object(stdClass)#683 (7) { ["verificationId"]=> string(19) "TYPE_OF_RECEIPT_TRA" ["version"]=> int(1) ["verificationName"]=> string(24) "Belegtyp: Trainingsbeleg" ["verificationTextualDescription"]=> string(154) "Es werden folgende Eigenschaften überprüft: BASE64-kodierter Wert "TRA" steht im Umsatzzähler, der Verkettungswert darf nicht auf die Kassen-ID zeigen." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(88) "Keine Verkettung mit Kassenidentifikationsnummer / Umsatzzähler enthält den Wert "TRA"" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.035+02:00" } [3]=> object(stdClass)#682 (7) { ["verificationId"]=> string(19) "TYPE_OF_RECEIPT_STO" ["version"]=> int(1) ["verificationName"]=> string(21) "Belegtyp: Stornobeleg" ["verificationTextualDescription"]=> string(154) "Es werden folgende Eigenschaften überprüft: BASE64-kodierter Wert "STO" steht im Umsatzzähler, der Verkettungswert darf nicht auf die Kassen-ID zeigen." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(88) "Keine Verkettung mit Kassenidentifikationsnummer / Umsatzzähler enthält den Wert "STO"" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.036+02:00" } [4]=> object(stdClass)#681 (7) { ["verificationId"]=> string(20) "TYPE_OF_RECEIPT_NULL" ["version"]=> int(1) ["verificationName"]=> string(19) "Belegtyp: Nullbeleg" ["verificationTextualDescription"]=> string(332) "Es werden folgende Eigenschaften überprüft: Die Werte für alle Steuersätze müssen 0 sein, es muss ein Umsatzzähler im maschinenlesbaren Code vorhanden sein (es dürfen nicht die BASE64-kodierten Zeichenketten von "TRA" oder "STO" statt dem Umsatzzähler vorhanden ein), der Verkettungswert darf nicht auf die Kassen-ID zeigen." ["verificationState"]=> string(4) "FAIL" ["verificationResultDetailedMessage"]=> string(132) "Keine Verkettung mit Kassenidentifikationsnummer / Belegbeträge = 0,00 / Umsatzzähler enthält Zahlenwert (nicht "STO" bzw. "TRA")" ["verificationTimestamp"]=> string(29) "2017-03-29T08:40:45.036+02:00" } } } } } } } } } } }

steefanfuchs commented 7 years ago

Problem gelöst, also eher aufgespürt als gelöst... Der Kunde hatte schon eine Kassa von einem anderen Hersteller registriert bei FON. Diese Kassa hatte auch die ID 1. Komisch nur, dass mir da das Webservice keinen Fehler zurückgibt beim Registrieren der Kassa.

Jetzt sind alle Belege (ca. 100 stück) mit der Kassa ID 1 signiert worden .. Kassa 1 ist laut FON aber die andere Kassa ist. Was tun in so einer Situation? Aktuelles DEP mit den ungültigen Belegen archivieren und einen neuen Startbeleg generieren?