EPC Girocode
EPC Girocode is het QR-formaat van de European Payments Council voor SEPA Credit Transfer. Een gescande Girocode vult automatisch het IBAN van de begunstigde, het bedrag en de betalingsomschrijving in de bank-app van de betaler, zodat bankgegevens niet meer handmatig hoeven te worden overgetypt. Girocode wordt standaard ondersteund door Sparkasse, Volksbank, Deutsche Bank, ING, N26, Revolut en de meeste bank-apps in Duitsland, Oostenrijk en Nederland. Buiten de SEPA-zone doet Girocode niets.
Codering: Gewone UTF-8-tekst, geen TLV, geen gestructureerde opmaak. Twaalf velden op vaste posities, gescheiden door
\n (LF, U+000A). Maximale payload 331 bytes. Schema: SEPA Credit Transfer (SCT) of SEPA Instant Credit Transfer (SCT Inst). De QR initieert een eenmalige overboeking; geen automatische incasso of doorlopende opdracht.
Payloadstructuur, 12 regels, gescheiden door newlines
| Regel | Veld | Lengte | Verplicht | Opmerkingen |
|---|---|---|---|---|
| 1 | Servicetag | 3 | Ja | Vaste waarde BCD. |
| 2 | Versie | 3 | Ja | 001 (originele spec) of 002 (v2, BIC nu optioneel binnen EEA). |
| 3 | Tekenset | 1 | Ja | 1=UTF-8, 2=ISO-8859-1, 3=ISO-8859-2, enz. 1 is de enige veilige keuze. |
| 4 | Identificatie | 3 | Ja | SCT (standaard Credit Transfer). SCT Inst gebruikt dezelfde tag; instant of standaard is een beslissing van de verwerkende bank. |
| 5 | BIC | 0, 8 of 11 | Nee (v002) | Verplicht in v001; optioneel in v002 voor SEPA-betalingen. Neem BIC op voor ontvangers buiten de EEA. |
| 6 | Naam begunstigde | 1–70 | Ja | Naam in leesbare tekst. Tekenset conform regel 3. |
| 7 | IBAN | 1–34 | Ja | Geen spaties of opmaak. DE89370400440532013000, niet DE89 3704 0044 0532 0130 00. |
| 8 | Bedrag | 4–12 | Nee | Formaat: EUR10.00. Laat leeg om de betaler het bedrag zelf in te laten vullen bij het scannen. |
| 9 | Doel | 0–4 | Nee | ISO 20022 External Purpose Code. Voorbeelden: GDDS (goederen), CHAR (goed doel). |
| 10 | Gestructureerde betalingsreferentie | 0–35 | Nee | ISO 11649 RF-crediteurskenmerk, voor geautomatiseerde verwerking. Sluit regel 11 uit. |
| 11 | Ongestructureerde betalingsomschrijving | 0–140 | Nee | Vrije tekst als betalingskenmerk. Sluit regel 10 uit. |
| 12 | Info van begunstigde aan opdrachtgever | 0–70 | Nee | Optionele hinttekst die in de bank-app aan de betaler wordt getoond (bijv. "Factuur 2026-0042"). |
Canonieke testvector, v002 minimaal
Overboeking van €12.50 naar Max Mustermann bij Commerzbank, IBAN DE89370400440532013000, geen BIC, ongestructureerde omschrijving "Rechnung 42":
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
Let op de lege regels op positie 5 (geen BIC), 9 (geen doel) en 10 (geen gestructureerde referentie). Deze zijn verplicht; het aantal regels moet precies 12 zijn (of 11 als regel 12 wordt weggelaten).
Live IBAN-validator (mod-97)
Girocode weigert elk IBAN dat de ISO 13616 mod-97-controlesom niet doorstaat. Hieronder vindt u dezelfde validator die Abundera inline gebruikt in de Girocode-generator; deze draait volledig in uw browser.
Veelgemaakte fouten
- Regelafsluitingen. EPC069-12 verplicht LF (
\n, U+000A). CR+LF (\r\n) breekt sommige Android-bank-apps. Als u de payload uit Windows Notepad kopieert, krijgt u CR+LF; verwijder de CR's vóór de QR-codering. - BIC verplicht voor v001, optioneel voor v002. Gebruik altijd versie
002voor SEPA-interne overboekingen; dit bespaart 8–11 bytes payload en werkt met elke moderne bank-app. Neem BIC alleen op voor legacy v001-apps (grotendeels buiten gebruik) of ontvangers buiten de EEA. - Bedragformaat is strikt.
EUR10.00: valutacode als voorvoegsel, punt als scheidingsteken, exact twee decimalen.EUR10,EUR10,00en10.00 EURzijn allemaal ongeldig. - Gestructureerde en ongestructureerde referentie niet combineren. Regel 10 en regel 11 sluiten elkaar uit. Als beide zijn ingevuld, is de QR ongeldig volgens de spec; sommige apps accepteren dit en laten er één vallen, wat afstemfouten veroorzaakt.
- IBAN-spaties. Het IBAN-veld (regel 7) accepteert geen witruimte. De leesbare notatie
DE89 3704 0044 0532 0130 00moet worden omgezet naarDE89370400440532013000vóór codering. - Maximale payload 331 bytes. Een QR-payload van meer dan 331 bytes wordt door de spec afgewezen. Lange namen van begunstigden, lange betalingsomschrijvingen, BIC en IBAN samen kunnen de grens overschrijden. Bank-apps tonen een foutmelding bij het scannen; de QR geeft geen waarschuwing tijdens het coderen.
- Tekensetval. Regel 3 geeft aan welke tekenset van toepassing is op regels 6, 11 en 12. UTF-8 (waarde
1) is de enige realistische keuze voor internationale namen. ISO-8859-1 kan niets buiten West-Europees Latijn coderen. - Alleen binnen de SEPA-zone. Girocode-betalingen werken uitsluitend tussen rekeningen in de SEPA-deelnemende landen (EU + EEA + Zwitserland + VK + Monaco + San Marino + Andorra + Vaticaanstad). Het scannen van een Girocode in een niet-SEPA-bank-app mislukt of opent een gewoon overboekingsscherm met lege velden.
- Geen automatische incasso. Girocode is uitsluitend bedoeld voor SEPA Credit Transfer. Pull- en abonnementsstromen (doorlopende opdrachten, terugkerende machtigingen) zijn niet te coderen in Girocode. Koppel de QR voor dergelijke doeleinden aan een SEPA-machtigingsdocument.
- Terugboekingsrechten onder PSD2. SEPA Credit Transfer is push-gebaseerd en door de consument goedgekeurd bij het scannen. Terugboekingsrechten voor consumenten op grond van PSD2 blijven van toepassing (bijv. ongeautoriseerde transactie binnen 13 maanden). Verkopers moeten het geautoriseerde spoor apart bewaren; de QR zelf is geen contract.
Compatibiliteit met bank-apps
| App / regio | Girocode-ondersteuning | Opmerkingen |
|---|---|---|
| Sparkasse (DE) | Standaard | De oorspronkelijke doelgroep van Girocode. Volledige ondersteuning. |
| Volksbank / Raiffeisen (DE, AT) | Standaard | Volledige ondersteuning in de VR-BankingApp. |
| Deutsche Bank, Commerzbank, Postbank (DE) | Standaard | Scannen via de "Überweisung"-functie in de mobiele app. |
| ING (DE / NL) | Standaard | De Nederlandse app scant ook iDEAL-QR-codes. |
| N26, Revolut | Standaard | Volledige ondersteuning in alle ondersteunde landen. |
| Erste Bank, Bank Austria (AT) | Standaard | Oostenrijk heeft Girocode tegelijk met Duitsland omarmd. |
| Crédit Agricole, BNP Paribas (FR) | Gedeeltelijk | Sommige Franse banken scannen Girocode; de meeste geven de voorkeur aan het oudere papieren referentieformaat. |
| Standaard iOS/Android-camera | Nee | Ingebouwde camera's herkennen het BCD-tekstformaat niet als betalingsinstructie. De gebruiker moet eerst de bank-app openen. |
Zie ook
- /epc-girocode-qr-code/, de Girocode-generator met IBAN-validatie en live codering.
- /sepa-qr-code/, SEPA Credit Transfer QR-generator (hetzelfde onderliggende formaat).
- /standards/swiss-qr-bill/, Swiss QR-bill, het regionale alternatief voor CHF/Zwitserse IBAN-overboekingen.
- /standards/, terug naar het standaardenindex.