Mit LaTeX einen EPC-QR-Code (GiroCode) erzeugen

Es ist schon eine Weile her, als mir zum ersten Mal ein QR-Code auf einer Rechnung auffiel. Wie sich herausstellte, enhielt dieser QR-Code die Zahlungsdaten für die Rechnung. Mit einem geeigneten Programm konnte man sich also die händische Übernahme der Daten ersparen.

Leider ist dieses Feature, der sog. EPC-QR-Code oder auch GiroCode (*) scheinbar noch nicht sehr weit verbreitet, obwohl die entsprechenden Richtlinien schon mehrere Jahre alt sind.

Man muss dazu noch anmerken, dass es sich hierbei um eine Richtlinie des EPC (European Payments Council, deutsch: Europäischer Zahlungsverkehrsausschuss) handelt. Der EPC ist für den sog. einheitlichen Euro-Zahlungsverkehrsraum (abgekürzt SEPA für englisch: Single Euro Payments Area), also derzeit 36 Mitgliedsstaaten zuständig, die weite Teile Europas abdecken.

Die technische Umsetzung ist relativ einfach, wie schon der bereits o. g. Wikipedia-Eintrag bzw. die Informationen der Studiengesellschaft für Zusammenarbeit im Zahlungsverkehr (Stuzza) zeigen. Insbesondere das dort auffindbare Dokument zur “Verwendung von QR-Code zur Initiierung von Zahlungsaufträgen” ist sehr hilfreich bei der Umsetzung.

Letztlich müssen die Daten nur gemäß der Inhaltsdefinition (Abschnitt 3) aus diesem Dokument aufbereitet werden. Die Anmerkungen aus diesem Abschnitt sowie die beiden folgenden Abschnitte zur Codegenerierung (Abschnitt 4) und zu Druckvorgaben (Abschnitt 5) sollten dabei berücksichtigt werden. Dabei gilt es einige Details, wie Leerzeilen, Zeichensätze usw. zu beachten.

Ich habe dies einmal testweise für den Druck mit LaTeX umgesetzt. Dabei wird nur der QR-Code erzeugt - den umfangreicheren Code für ein Rechnungsformular habe ich mir hier bewusst erspart.

Ein entsprechender Quellcode für Latex könnte dann beispielsweise wie folgt aussehen:

\documentclass{standalone}
\usepackage{qrcode}
\begin{document}
\qrcode[level=M, version=7, height=2cm]{BCD
001
1
SCT
BFSWDE33BER
Wikimedia Foerdergesellschaft
DE33100205000001194700
EUR123.45


Spende fuer Wikipedia}
\end{document}

Entgegen der Empfehlung habe ich eine niedrigere Versionsnummer (7 statt 13) für de QR-Code gewählt, da sonst vom qrcode-Paket der Level automatisch auf H gesetzt wird, was letztlich Probleme beim Einlesen ergab. Alternativ könnte man evtl. das Paket pst-barcode einsetzen.

Das Ergebnis kann man hier als PDF-Datei herunterladen und dann testweise mit einer entsprechenden Banking-App, z. B. der Sparkassen-App einscannen.

Wie man sehen kann, ist die Umsetzung relativ einfach, zumal es fertige Bibliotheken zur Erzeugung von QR-Codes für die meisten Programmiersprachen gibt. Gerade im B2C-Markt könnte eine solche Convinience-Lösung interessant sein, da der Kunde ohne umständliches Übertragen der Zahlungsdaten von Hand seine Rechnung bezahlen kann.

Es stellt sich daher abschließend für mich die Frage, warum die Hersteller von entsprechender Buchhaltungssoftware diese Möglichkeit bisher nicht umgesetzt haben. Vielleicht liegt es ja daran, dass die Nachfrage aus ihrer Kundschaft (den Unternehmen) fehlte. Aber es macht eben auch ein gutes Software-Unternehmen aus, wenn man interessante Technologien früh unterstützt - gerade, wenn sie so einfach umzusetzen sind, wie in diesem Fall.

(*) Anmerkung: GiroCode ist eine Marketing-Bezeichnung der GiroSolution GmbH für EPC-QR-Codes.