Was ist ein GiroCode (EPC-QR-Code)?
Ein QR-Code mit den Daten einer SEPA-Überweisung. Banking-Apps lesen ihn und füllen das Überweisungsformular aus – der Zahler prüft und gibt frei.
Herkunft
Das Format stammt vom European Payments Council (EPC), dem Gremium der europäischen Banken für die SEPA-Verfahren. Die Vorgabe heißt „Quick Response Code – Guidelines to Enable the Data Capture for the Initiation of a SEPA Credit Transfer“, Dokument EPC069-12, aktuell Version 3.0 vom 13. September 2022 (PDF beim EPC). In Deutschland ist der Code unter dem Namen GiroCode bekannt; im Ausland heißt er meist EPC-QR-Code oder SEPA-QR-Code.
Die Vorgabe ist laut EPC informativ: Banken müssen den Code nicht unterstützen. Viele Banking-Apps in Deutschland und Österreich lesen ihn trotzdem, meist über eine Funktion wie „Scannen“ oder „Foto-Überweisung“.
Was im Code steht
Der Code enthält Text, eine Angabe je Zeile, in fester Reihenfolge:
| Nr. | Feld | Inhalt | Pflicht | max. Zeichen |
|---|---|---|---|---|
| 1 | Kennung | BCD | ja | 3 |
| 2 | Version | 001 oder 002 | ja | 3 |
| 3 | Zeichensatz | 1 = UTF-8 (weitere: ISO 8859-1, -2, -4, -5, -7, -10, -15) | ja | 1 |
| 4 | Art | SCT (SEPA Credit Transfer) | ja | 3 |
| 5 | BIC | BIC der Empfängerbank | Version 001: ja; Version 002: nur außerhalb des EWR | 11 |
| 6 | Empfänger | Name des Empfängers | ja | 70 |
| 7 | IBAN | IBAN des Empfängers | ja | 34 |
| 8 | Betrag | EUR und Betrag, z. B. EUR12.3; 0,01 bis 999.999.999,99 | nein | 12 |
| 9 | Zweck-Code | z. B. CHAR (Spende), GDDS (Waren) | nein | 4 |
| 10 | Referenz | strukturierte Referenz, z. B. RF-Gläubigerreferenz | nein* | 35 |
| 11 | Verwendungszweck | freier Text | nein* | 140 |
| 12 | Hinweis | Information für den Zahler | nein | 70 |
* Referenz und Verwendungszweck schließen sich aus: Nur eines von beiden darf gefüllt sein. Nach der letzten gefüllten Angabe endet der Text ohne Zeilenumbruch.
Technische Vorgaben
- Fehlerkorrektur-Stufe M (etwa 15 % der Daten lassen sich bei Beschädigung wiederherstellen).
- Höchstens QR-Version 13 (69 × 69 Module), also höchstens 331 Byte Inhalt. Umlaute zählen in UTF-8 doppelt.
- Zeilentrenner ist ein Zeilenvorschub (LF) oder Wagenrücklauf plus Zeilenvorschub (CRLF).
Dieses Werkzeug erzeugt Version 002 mit UTF-8, lässt die BIC weg, wenn du keine angibst, und schreibt Beträge wie im Beispiel des EPC ohne überflüssige Nullen. Den Inhalt jedes Codes findest du in der Prüfliste (CSV).
Beispiel
Das Beispiel aus der EPC-Vorgabe (Version 001) ergibt diesen Inhalt – 96 Byte, QR-Version 6. Unser Werkzeug kommt bei denselben Angaben auf dieselbe Version:
BCD 001 1 SCT BHBLDEHHXXX Franz Mustermänn DE71110220330123456789 EUR12.3 GDDS RF18539007547034
Was die Vorgabe empfiehlt
Laut EPC ist der Code für Fälle gedacht, in denen die Zahlungsdaten zusätzlich im Klartext daneben stehen, etwa auf einer Rechnung – damit der Zahler vergleichen kann. Der Druckbogen dieses Werkzeugs druckt deshalb Empfänger, IBAN, Betrag und Verwendungszweck neben jeden Code. Für Zahlungen direkt an der Kasse verweist der EPC auf ein anderes Dokument (EPC 024-22).
Quellen
- European Payments Council: EPC069-12 v3.0, Quick Response Code – Guidelines to Enable the Data Capture for the Initiation of a SEPA Credit Transfer (13.09.2022)
- ISO 11649 (RF-Gläubigerreferenz), Zusammenfassung: Wikipedia: ISO 11649
- QR-Encoder: qrcode-generator von Kazuhiko Arase (MIT-Lizenz), Version 2.0.4