Was ist der EPC-Standard?
Der European Payments Council (EPC) definiert technische Standards für Zahlungen im SEPA-Raum. Einer dieser Standards beschreibt, wie eine SEPA-Überweisung in einem QR-Code – also als SEPA-QR- oder GiroCode – kodiert wird. Ziel ist, dass Banken und Zahlungsdienstleister europaweit dasselbe Format verstehen und so Überweisungen aus einem QR-Code zuverlässig erstellen können.
Der EPC-Standard legt dabei sowohl die Reihenfolge der Felder als auch deren maximale Längen und zulässige Zeichensätze fest. So wird sichergestellt, dass ein in Deutschland erzeugter GiroCode auch von einer Banking-App in einem anderen SEPA-Land korrekt gelesen werden kann.
Aufbau des EPC-Payloads (Zeile für Zeile)
Ein EPC-Payload besteht typischerweise aus mehreren Zeilen Text, zum Beispiel:
BCD 002 1 SCT BICBANKXXX Max Mustermann DE02120300000000202051 EUR12.34 Rechnung 2024-001
Die wichtigsten Zeilen im Überblick:
- Zeile 1 – Service Tag (BCD): Kennzeichnet das Format als Bank-QR im EPC-Schema.
- Zeile 2 – Version: Aktuell sind Versionen wie
001und002gebräuchlich. Sie legen fest, welche Felder erwartet werden. - Zeile 3 – Encoding: Gibt an, mit welchem Zeichensatz gearbeitet wird, z. B.
1für UTF-8. - Zeile 4 – SEPA-Verfahren: Meist
SCT(SEPA Credit Transfer) für Überweisungen. - Zeile 5 – BIC: Bank Identifier Code des Empfängers (in vielen Fällen heute optional).
- Zeile 6 – Name des Empfängers: Kontoinhaber, zum Beispiel Firmenname oder Privatperson.
- Zeile 7 – IBAN: Vollständige IBAN des Empfängers.
- Zeile 8 – Betrag: Optionaler Betrag im Format
EUR12.34. - Zeile 9 – Verwendungszweck: Freitext, z. B. Rechnungsnummer oder Mitgliedsnummer.
Versionierung: 001 vs. 002
In der Praxis begegnet man häufig den Versionen 001 und 002. Beide beschreiben sehr ähnliche Felder, unterscheiden sich aber in Details der Spezifikation, etwa bei erweiterten Funktionen oder künftigen Erweiterungen.
Für die meisten Anwendungsfälle – insbesondere im deutschen Raum – reicht die Verwendung einer kompatiblen Version aus. Wichtig ist, dass Banking-Apps die gewählte Version unterstützen. Viele Generatoren nutzen heute eine Version, die von den gängigen Banken problemlos akzeptiert wird.
Fehlerkorrekturstufe M
Beim Erzeugen eines QR-Codes wird eine sogenannte Fehlerkorrekturstufe gewählt. Für GiroCodes ist in der Regel die Stufe M vorgegeben. Sie sorgt dafür, dass der Code auch dann noch lesbar ist, wenn ein Teil verdeckt, leicht verschmutzt oder unscharf gedruckt ist.
Die Wahl der richtigen Fehlerkorrekturstufe ist wichtig: Zu niedrig – und der Code wird anfällig für Lesefehler, zu hoch – und der Code wird unnötig groß. Der EPC-Standard trifft hier einen praxistauglichen Kompromiss.
Maximale Zeichenlängen und Zeichenumfang
Für die einzelnen Felder gelten maximale Längen, um die Kompatibilität sicherzustellen. Beispielsweise ist der Name des Empfängers auf eine bestimmte Anzahl Zeichen begrenzt und auch der Verwendungszweck darf nur bis zu einer festgelegten Länge genutzt werden.
Zusätzlich ist der Zeichensatz eingeschränkt. Sonderzeichen oder Emojis sind in der Regel nicht vorgesehen, um Probleme bei der Verarbeitung zu vermeiden. In der Praxis empfiehlt es sich, auf einfache Buchstaben, Zahlen und gebräuchliche Satzzeichen zu setzen.
Unterschiede: GiroCode, BezahlCode, Stuzza-QR
Neben dem GiroCode gibt es weitere QR-Formate im Zahlungsverkehr:
- BezahlCode: Ein in Deutschland entwickeltes Format, das neben Überweisungen z. B. auch Lastschriften oder Kontaktinformationen abbilden kann.
- Stuzza-QR: Ein in Österreich verbreitetes Format, das ähnlich wie der GiroCode SEPA-Zahlungen unterstützt, jedoch eigene Spezifika hat.
Für klassische SEPA-Überweisungen im deutschen Raum hat sich der GiroCode / SEPA-QR nach EPC-Standard als De-facto-Standard etabliert. Er wird von vielen Banking-Apps direkt unterstützt und eignet sich daher besonders gut für Rechnungen und Zahlungsanforderungen.