EPC Girocode
EPC Girocode to format QR Europejskiej Rady ds. Płatności dla poleceń przelewu SEPA Credit Transfer. Zeskanowany Girocode automatycznie wypełnia numer IBAN odbiorcy, kwotę i tytuł przelewu w aplikacji bankowej płatnika, eliminując ręczne przepisywanie danych bankowych. Obsługiwany natywnie przez Sparkasse, Volksbank, Deutsche Bank, ING, N26, Revolut oraz większość niemieckich, austriackich i holenderskich aplikacji bankowych. Poza strefą SEPA Girocode nie działa.
Kodowanie: Zwykły tekst UTF-8, nie TLV, nie ustrukturyzowane. Dwanaście pól o stałej pozycji oddzielonych
\n (LF, U+000A). Maksymalny rozmiar ładunku 331 bajtów. Schemat: SEPA Credit Transfer (SCT) lub SEPA Instant Credit Transfer (SCT Inst). Kod QR uruchamia jednorazowe polecenie przelewu; brak polecenia zapłaty / zlecenia stałego.
Struktura ładunku, 12 linii, oddzielonych znakiem nowej linii
| Linia | Pole | Długość | Wymagane | Uwagi |
|---|---|---|---|---|
| 1 | Znacznik usługi | 3 | Tak | Stała wartość BCD. |
| 2 | Wersja | 3 | Tak | 001 (oryginalna specyfikacja) lub 002 (v2, BIC opcjonalny w EOG). |
| 3 | Zestaw znaków | 1 | Tak | 1=UTF-8, 2=ISO-8859-1, 3=ISO-8859-2 itd. 1 to jedyny bezpieczny wybór. |
| 4 | Identyfikacja | 3 | Tak | SCT (standardowe polecenie przelewu). SCT Inst używa tego samego znacznika; tryb natychmiastowy lub standardowy to decyzja agenta rozliczeniowego. |
| 5 | BIC | 0, 8 lub 11 | Nie (v002) | Wymagany w v001; opcjonalny w v002 dla płatności SEPA. Podaj dla odbiorców spoza EOG. |
| 6 | Nazwa beneficjenta | 1–70 | Tak | Nazwa w języku naturalnym. Zestaw znaków zgodny z linią 3. |
| 7 | IBAN | 1–34 | Tak | Bez spacji ani formatowania. DE89370400440532013000, nie DE89 3704 0044 0532 0130 00. |
| 8 | Kwota | 4–12 | Nie | Format: EUR10.00. Pomiń, aby płatnik mógł wpisać kwotę po zeskanowaniu. |
| 9 | Cel | 0–4 | Nie | Kod celu zewnętrznego ISO 20022. Przykłady: GDDS (towary), CHAR (darowizna). |
| 10 | Ustrukturyzowana referencja przelewu | 0–35 | Nie | Referencja wierzyciela RF według ISO 11649, do automatycznego rozliczania. Wzajemnie wykluczająca się z linią 11. |
| 11 | Nieustrukturyzowana informacja o przelewie | 0–140 | Nie | Dowolny tytuł płatności. Wzajemnie wykluczający się z linią 10. |
| 12 | Informacja beneficjenta dla zleceniodawcy | 0–70 | Nie | Opcjonalny tekst wskazówki wyświetlany płatnikowi w aplikacji bankowej (np. "Rechnung 2026-0042"). |
Kanoniczny wektor testowy, v002 minimalny
Przelew €12.50 do Max Mustermann w Commerzbank, IBAN DE89370400440532013000, bez BIC, nieustrukturyzowana referencja "Rechnung 42":
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
Zwróć uwagę na puste linie na pozycjach 5 (brak BIC), 9 (brak celu), 10 (brak ustrukturyzowanej referencji). Są one wymagane; liczba linii musi wynosić dokładnie 12 (lub 11, jeśli linia 12 jest pominięta).
Walidator IBAN na żywo (mod-97)
Girocode odrzuca każdy IBAN, który nie przejdzie sumy kontrolnej mod-97 według ISO 13616. Poniżej znajduje się ten sam walidator, którego Abundera używa wbudowanego w generator Girocode. Działa w Twojej przeglądarce.
Częste błędy
- Zakończenia linii. EPC069-12 nakazuje LF (
\n, U+000A). CR+LF (\r\n) psuje niektóre aplikacje bankowe na Androida. Jeśli skopiujesz ładunek z Notatnika Windows, skończysz z CR+LF; usuń CR przed kodowaniem QR. - BIC wymagany w v001, opcjonalny w v002. Zawsze generuj wersję
002dla przelewów wewnątrz SEPA, oszczędza 8–11 znaków ładunku i działa z każdą nowoczesną aplikacją bankową. Podawaj BIC tylko dla starszych aplikacji v001 (w większości wycofanych) lub odbiorców spoza EOG. - Ścisły format kwoty.
EUR10.00, prefiks kodu waluty, separator kropka, dokładnie dwa miejsca dziesiętne.EUR10,EUR10,00,10.00 EURsą niepoprawne. - Nie można łączyć referencji ustrukturyzowanej i nieustrukturyzowanej. Linia 10 i linia 11 wzajemnie się wykluczają. Jeśli obie są niepuste, specyfikacja uznaje kod QR za nieprawidłowy; w praktyce niektóre aplikacje go akceptują i ignorują jedną z nich, co powoduje błędy rozliczeniowe.
- Spacje w IBAN. Pole IBAN (linia 7) nie akceptuje białych znaków. Czytelny dla człowieka
DE89 3704 0044 0532 0130 00musi zostać sprowadzony doDE89370400440532013000przed kodowaniem. - Maksymalny rozmiar ładunku 331 bajtów. Ładunek QR przekraczający 331 bajtów jest odrzucany przez specyfikację. Długa nazwa beneficjenta, długi tytuł przelewu, BIC i IBAN mogą przekroczyć ten limit. Aplikacje bankowe wyświetlają błąd przy skanowaniu; kod QR sam z siebie nie ostrzega podczas kodowania.
- Pułapka zestawu znaków. Linia 3 określa, który zestaw znaków ma zastosowanie do linii 6, 11 i 12. UTF-8 (wartość
1) to jedyny realny wybór dla międzynarodowych nazw. ISO-8859-1 nie obsługuje niczego spoza łaciny zachodnioeuropejskiej. - Tylko strefa SEPA. Płatności Girocode działają wyłącznie między rachunkami uczestniczącymi w SEPA (UE + EOG + Szwajcaria + Wielka Brytania + Monako + San Marino + Andora + Watykan). Zeskanowanie Girocode w aplikacji bankowej spoza SEPA kończy się niepowodzeniem lub otwiera standardowy ekran przelewu z pustymi polami.
- Brak polecenia zapłaty. Girocode obsługuje wyłącznie SEPA Credit Transfer. Przepływy pull/subskrypcyjne (zlecenia stałe, cykliczne mandaty) nie są możliwe do wyrażenia w Girocode. W takich przypadkach należy połączyć kod QR z dokumentem mandatu SEPA.
- Prawa do zwrotu środków na podstawie PSD2. SEPA Credit Transfer jest inicjowany przez płatnika i autoryzowany podczas skanowania. Prawa konsumenta do zwrotu środków na podstawie PSD2 nadal obowiązują (np. nieautoryzowana transakcja w ciągu 13 miesięcy). Sprzedawcy muszą osobno przechowywać ścieżkę autoryzacji; sam kod QR nie jest umową.
Zgodność z aplikacjami bankowymi
| Aplikacja / region | Obsługa Girocode | Uwagi |
|---|---|---|
| Sparkasse (DE) | Natywna | Pierwotny cel Girocode. Pełna obsługa. |
| Volksbank / Raiffeisen (DE, AT) | Natywna | Pełna obsługa w aplikacji VR-BankingApp. |
| Deutsche Bank, Commerzbank, Postbank (DE) | Natywna | Skanowanie przez przepływ "Überweisung" w aplikacji mobilnej. |
| ING (DE / NL) | Natywna | Aplikacja NL obsługuje również kody QR iDEAL. |
| N26, Revolut | Natywna | Pełna obsługa we wszystkich obsługiwanych krajach. |
| Erste Bank, Bank Austria (AT) | Natywna | Austria przyjęła Girocode równolegle z Niemcami. |
| Crédit Agricole, BNP Paribas (FR) | Częściowa | Niektóre banki francuskie skanują Girocode; większość preferuje starszy format referencji papierowej. |
| Domyślna kamera iOS/Android | Nie | Natywne aparaty nie rozpoznają formatu tekstowego BCD jako zamiaru płatniczego. Użytkownik musi najpierw otworzyć aplikację bankową. |
Zobacz także
- /epc-girocode-qr-code/, generator Girocode z walidacją IBAN i kodowaniem na żywo.
- /sepa-qr-code/, generator QR dla SEPA Credit Transfer (ten sam format bazowy).
- /standards/swiss-qr-bill/, szwajcarski QR-bill, regionalna alternatywa dla przelewów w CHF/szwajcarskim IBAN.
- /standards/, powrót do indeksu standardów.