Technisch · EPC069-12 Standard

EPC QR Code Generator – Nach EPC069-12 Standard

💡 Kurze Antwort

Ein EPC QR Code (European Payments Council QR Code) ist die technische Bezeichnung für den GiroCode. Der Standard EPC069-12 definiert den genauen Aufbau des Payloads: 11 Zeilen mit Service Tag, Version, Encoding, SCT-Identifikation, BIC, Empfängername, IBAN, Betrag und Verwendungszweck.

EPC069-12

Offizieller Standard

11

Zeilen im Payload

V001/V002

Versionen

Level M

Fehlerkorrektur (empfohlen)

EPC069-12 Payload Aufbau

Der EPC069-12 Payload ist ein zeilenbasiertes Textformat mit exakt 11 Zeilen. Jede Zeile hat eine feste Bedeutung – Leerzeilen sind erlaubt, wenn das Feld optional ist:

BCD                      ← Service Tag
002                      ← Version
1                        ← Character Set (1=UTF-8)
SCT                      ← Identification Code (SEPA Credit Transfer)
                         ← BIC (optional, leer lassen)
Max Mustermann           ← Name (max 70 Zeichen)
DE89370400440532013000   ← IBAN
EUR99.99                 ← Betrag (EUR + Betrag, z.B. EUR99.99)
                         ← Purpose Code (leer lassen)
                         ← Remittance Info (strukturiert, leer lassen)
Rechnung 2026-001        ← Verwendungszweck (max 140 Zeichen)

Versionen 001 vs. 002

Version 001 unterstützt BIC-Pflicht, Version 002 macht BIC optional. Empfohlen: Version 002 für neue Implementierungen. Die meisten Banking-Apps akzeptieren beide Versionen. Bei Version 002 kann die BIC-Zeile leer bleiben, da das SEPA-Netzwerk die Bank anhand der IBAN identifiziert.

Fehlerkorrekturlevel

EPC069-12 empfiehlt Level M (15 % Wiederherstellung) für digitale Anzeige auf Bildschirmen. Für Druck auf Rechnungen oder Plakaten empfiehlt sich Level H (30 % Wiederherstellung) für bessere Lesbarkeit – auch wenn der QR-Code leicht beschädigt oder verschmutzt ist.

JavaScript Implementierungsbeispiel

Diese Funktion erzeugt einen validen EPC069-12 Payload, der direkt mit einer QR-Code-Bibliothek (z. B. qrcode oder qr-code-styling) gerendert werden kann:

function buildEPCPayload({ name, iban, bic = '', amount, purpose = '' }) {
  const amountStr = amount ? 'EUR' + Number(amount).toFixed(2) : '';
  return [
    'BCD',       // Service Tag
    '002',       // Version
    '1',         // Character Set (UTF-8)
    'SCT',       // SEPA Credit Transfer
    bic.trim(),  // BIC (optional)
    name.trim().slice(0, 70),
    iban.replace(/\s+/g, '').toUpperCase(),
    amountStr,   // EUR + amount or empty
    '',          // Purpose Code (leer)
    '',          // Structured Remittance Info (leer)
    purpose.trim().slice(0, 140)
  ].join('\n');
}

Häufige Fragen zum EPC QR Code

Was ist der Unterschied zwischen EPC QR Code, GiroCode und SEPA QR Code?

Alle bezeichnen dasselbe: Der EPC QR Code ist der technische Name, GiroCode die deutsche Markenbezeichnung, SEPA QR Code der funktionale Begriff. Der zugrundeliegende Standard ist EPC069-12.

Welche Version des EPC069-12 Standards sollte ich verwenden?

Version 002 (BIC optional), da neuere Banken keine BIC mehr benötigen. Version 002 ist rückwärtskompatibel und wird von allen modernen Banking-Apps unterstützt.

Was ist der maximale Betrag in einem EPC QR Code?

Es gibt keine technische Begrenzung im EPC069-12 Standard selbst. SEPA-Überweisungen haben jedoch ein Maximum von 999.999.999,99 EUR.

Wie integriere ich den EPC QR Code Generator in meine Website?

Via API unter /api/generate oder über den URL-Parameter-Ansatz. Alle Details findest du in der API-Dokumentation unter /api-docs.