{"id":18974510,"url":"https://github.com/m7a/lp-decode-girocode","last_synced_at":"2026-04-08T15:30:19.160Z","repository":{"id":164554620,"uuid":"491990555","full_name":"m7a/lp-decode-girocode","owner":"m7a","description":"Skripte zum Dekodieren von Girocode QR-Codes unter Linux","archived":false,"fork":false,"pushed_at":"2024-04-28T19:53:00.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-01T09:08:01.100Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m7a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-13T17:46:53.000Z","updated_at":"2024-04-28T19:53:03.000Z","dependencies_parsed_at":"2024-04-28T20:49:57.299Z","dependency_job_id":null,"html_url":"https://github.com/m7a/lp-decode-girocode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Flp-decode-girocode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Flp-decode-girocode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Flp-decode-girocode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Flp-decode-girocode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m7a","download_url":"https://codeload.github.com/m7a/lp-decode-girocode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239972038,"owners_count":19727290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T15:15:16.373Z","updated_at":"2026-04-08T15:30:19.099Z","avatar_url":"https://github.com/m7a.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nsection: 32\nx-masysma-name: decode_girocode\ntitle: Girocode-Dekodierungsskripte\ndate: 2022/05/13 19:06:28\nlang: de-DE\nauthor: [\"Linux-Fan, Ma_Sys.ma (Ma_Sys.ma@web.de)\"]\nkeywords: [\"girocode\", \"qrcode\", \"zbar-tools\"]\nx-masysma-version: 1.0.0\nx-masysma-website: https://masysma.net/32/decode_girocode.xhtml\nx-masysma-repository: https://www.github.com/m7a/lp-decode-girocode\nx-masysma-owned: 1\nx-masysma-copyright: |\n  Copyright (c) 2018, 2022 Ma_Sys.ma.\n  For further info send an e-mail to Ma_Sys.ma@web.de.\n---\nEinführung\n==========\n\nDieses Repository enthält zwei Skripte, die zum Dekodieren von Rechnungen mit\nGirocodes gedacht sind.\n\nDer Girocode ist ein QR-Code, der die Bezahldaten (Empfänger, Verwendungszweck,\nBetrag etc.) codiert und in der Wikipedia gut beschrieben ist:\n\u003chttps://de.wikipedia.org/wiki/EPC-QR-Code\u003e.\n\nDer Code ist vornehmlich gedacht, um mit Smartphone-Kameras gescannt und\ndann in einer Online-Bankinganwendung auf dem Smartphone verarbeitet zu werden.\n\nWenn man jedoch die Überweisungen lieber am „richtigen Rechner” durchführt, so\nakzeptieren die meisten Online-Bankinganwendungen keine direkte Verwendung des\nGirocode.\n\nDie Skripte aus diesem Repository bieten eine einfache Lösung für diese Lücke\nund decken zwei Anwendungsfälle ab.\n\nAnwendungsfall: Girocode mit Barcode-Scanner einscannen\n=======================================================\n\nWer über einen QR-Code-fähigen Barcode-Scanner zum Anschluss an den Rechner\n-- bspw. per USB, getestet mit [Datalogic QuickScan I QD2430](https://www.conrad.de/de/p/datalogic-quickscan-i-qd2430-barcode-scanner-kabelgebunden-1d-2d-imager-schwarz-hand-scanner-usb-1308800.html) --\nverfügt, kann das Skript folgendermaßen aufrufen:\n\n\t./decode_girocode\n\nAnschließend betätigt man den Scanner und die Überweisungsdaten werden auf\nder Konsole dekodiert ausgegeben. Mit etwas Übung ist auch der Inhalt des\nQR-Codes direkt lesbar, aber mit der skriptbasierten Decodierung kommt es nicht\nzu Verwechslungen, welche Daten in welches Feld bei der Überweisung einzutragen\nsind.\n\nEin Test mit der Beispielüberweisung von der oben verlinkten Wikipedia-Seite\nergibt bspw. folgendes:\n\n~~~\n$ ./decode_girocode\nBCD\n001\n1\nSCT\nBFSWDE33BER\nWikimedia Foerdergesellschaft\nDE33100205000001194700\nEUR123.45\n\n\nSpende fuer Wikipedia\n\n--------------------------------------------------------------------------------\n\nZahlungsempfänger Wikimedia Foerdergesellschaft\nZiel-IBAN         DE33100205000001194700\nBetrag            EUR123.45\nVerwendungszweck  Spende fuer Wikipedia\n\n--------------------------------------------------------------------------------\n~~~\n\nAnwendungsfall: Girocode aus PDF-Rechnung nutzen\n================================================\n\nMit dem Tool `zbarimg` können Bilddateien auf enthaltene Barcodes untersucht\nund das Ergebnis auf der Standardausgabe ausgegeben werden. Dieses lässt sich\nin Verbindung mit GhostScript zum Rendern von PDFs als Bitmaps hervorragend\nnutzen, um eine als PDF empfangene Rechnung zu dekodieren.\n\n\t./decode_girocode_pdf DATEINAME.pdf\n\nAuch hier kann das Wikipedia-Beispiel zum Testen genutzt werden, indem man den\nQR-Code mit `wkhtmltopdf` von der Webseite in ein PDF lädt:\n\n~~~\n$ wkhtmltopdf https://de.wikipedia.org/wiki/Datei:Index2wikipedia.png test.pdf\nLoading page (1/2)\nPrinting pages (2/2)\nDone\n$ ./decode_girocode_pdf test.pdf\nGPL Ghostscript 9.53.3 (2020-10-01)\nCopyright (C) 2020 Artifex Software, Inc.  All rights reserved.\nThis software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:\nsee the file COPYING for details.\nProcessing pages 1 through 1.\nPage 1\n--------------------------------------------------------------------------------\n\nZahlungsempfänger Wikimedia Foerdergesellschaft\nZiel-IBAN         DE33100205000001194700\nBetrag            EUR123.45\nVerwendungszweck  Spende fuer Wikipedia\n\n--------------------------------------------------------------------------------\n~~~\n\nWill man stattdessen das ImageMagick-Backend verwenden, so kann man die\nentsprechenden Befehle auch direkt auf dem Terminal eingeben und zuerst ein\nPNG erzeugen, dessen enthaltener QR-Code anschließend mit `zbarimg` dekodiert\nund mit `decode_girocode` weiterverarbeitet wird:\n\n\tconvert -density 600 test.pdf test.png\n\tzbarimg \"-S*.enable=0\" -Sqrcode.enable=1 test.png | ./decode_girocode\n\nHierbei sind die Parameter `-S` für `zbarimg` entscheidend, sodass nur der\nQR-Code und keine sonstigen möglicherweise enthaltenen Barcodes verarbeitet\nwerden. Darüber hinaus stellt `-density 600` beim `convert`-Aufruf sicher, dass\nder QR-Code in hinreichend hoher Auflösung gerendert wird.\n\nEinschränkungen\n===============\n\nDie Überweisungsdaten sind unbedingt zwischen dem TAN-Generator/2. Faktor mit\ndem Original-PDF bzw. Zettel abzugleichen, um zu vermeiden, dass falsche\nDatenverarbeitung durch das Skript zu finanziellen Schäden führt.\n\nZur Verarbeitung von Mehrseitigen PDFs, bei denen der QR-Code nicht auf der\nersten Seite des PDFs steht, muss zuerst die relevante Seite extrahiert werden,\nbspw. mit dem Programm `pdfjam`.\n\nAuch wenn es aus der Lizenz klar sein sollte: Es wird ausdrücklich keine\nGarantie für die Funktionsfähigkeit der Skripte übernommen.\n\nHilfreiche Ressourcen\n=====================\n\n * Girocode-Spezifikation (aka. „EPC-QR-Code”):\n   \u003chttps://www.europeanpaymentscouncil.eu/document-library/guidance-documents/quick-response-code-guidelines-enable-data-capture-initiation\u003e\n * [gs(1)](https://manpages.debian.org/bullseye/ghostscript/gs.1.en.html)\n * [convert(1)](https://manpages.debian.org/bullseye/graphicsmagick-imagemagick-compat/convert.1.en.html)\n * [zbarimg(1)](https://manpages.debian.org/bullseye/zbar-tools/zbarimg.1.en.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Flp-decode-girocode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm7a%2Flp-decode-girocode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Flp-decode-girocode/lists"}