EPC Girocode
EPC Girocode — это QR-формат Европейского платёжного совета (EPC) для кредитных переводов SEPA. При сканировании Girocode автоматически заполняет IBAN получателя, сумму и назначение платежа в банковском приложении плательщика, избавляя от ручного ввода банковских реквизитов. Поддерживается нативно в Sparkasse, Volksbank, Deutsche Bank, ING, N26, Revolut и большинстве немецких, австрийских и нидерландских банковских приложений. За пределами зоны SEPA Girocode не работает.
Кодировка: Обычный текст UTF-8, не TLV и не структурированный. Двенадцать полей фиксированных позиций, разделённых символом
\n (LF, U+000A). Максимальный размер полезной нагрузки — 331 байт. Схема: Кредитный перевод SEPA (SCT) или мгновенный кредитный перевод SEPA (SCT Inst). QR-код инициирует разовый кредитный перевод; прямое дебетование и постоянные поручения не поддерживаются.
Структура полезной нагрузки: 12 строк, разделённых символом новой строки
| Строка | Поле | Длина | Обязательное | Примечания |
|---|---|---|---|---|
| 1 | Тег сервиса | 3 | Да | Фиксированное значение BCD. |
| 2 | Версия | 3 | Да | 001 (исходная спецификация) или 002 (v2, BIC теперь необязателен в ЕЭЗ). |
| 3 | Набор символов | 1 | Да | 1=UTF-8, 2=ISO-8859-1, 3=ISO-8859-2 и т.д. Единственный безопасный вариант — 1. |
| 4 | Идентификатор | 3 | Да | SCT (стандартный кредитный перевод). SCT Inst использует тот же тег; решение о выполнении в обычном или мгновенном режиме принимает банк-эквайер. |
| 5 | BIC | 0, 8 или 11 | Нет (v002) | Обязателен в v001; необязателен в v002 для платежей SEPA. Включайте BIC для получателей за пределами ЕЭЗ. |
| 6 | Имя получателя | 1–70 | Да | Имя в произвольной форме. Набор символов определяется строкой 3. |
| 7 | IBAN | 1–34 | Да | Без пробелов и форматирования. DE89370400440532013000, а не DE89 3704 0044 0532 0130 00. |
| 8 | Сумма | 4–12 | Нет | Формат: EUR10.00. Можно не указывать — тогда плательщик введёт сумму самостоятельно при сканировании. |
| 9 | Назначение | 0–4 | Нет | Код назначения ISO 20022 External Purpose Code. Примеры: GDDS (товары), CHAR (благотворительность). |
| 10 | Структурированное назначение платежа | 0–35 | Нет | Кредитная ссылка RF по ISO 11649 для автоматической сверки. Взаимоисключает строку 11. |
| 11 | Неструктурированное назначение платежа | 0–140 | Нет | Произвольный текст назначения платежа. Взаимоисключает строку 10. |
| 12 | Информация получателя для отправителя | 0–70 | Нет | Необязательный текст-подсказка, отображаемый плательщику в банковском приложении (например, "Rechnung 2026-0042"). |
Эталонный тестовый вектор, v002 минимальный
Перевод €12,50 получателю Max Mustermann в Commerzbank, IBAN DE89370400440532013000, без BIC, неструктурированное назначение "Rechnung 42":
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
Обратите внимание на пустые строки на позициях 5 (нет BIC), 9 (нет назначения), 10 (нет структурированного назначения). Они обязательны: общее количество строк должно быть ровно 12 (или 11, если строка 12 отсутствует).
Онлайн-валидатор IBAN (mod-97)
Girocode отклоняет любой IBAN, не прошедший проверку контрольной суммы mod-97 по ISO 13616. Ниже представлен тот же валидатор, который Abundera встраивает в генератор Girocode — он работает прямо в браузере.
Типичные ошибки
- Символы перевода строки. EPC069-12 предписывает использовать LF (
\n, U+000A). CR+LF (\r\n) нарушает работу некоторых банковских приложений на Android. Если вы копируете полезную нагрузку из Windows Notepad, в ней появятся CR+LF — удалите символы CR перед QR-кодированием. - BIC обязателен для v001, необязателен для v002. Для внутренних переводов SEPA всегда используйте версию
002— это экономит 8–11 байт полезной нагрузки и совместимо с любым современным банковским приложением. BIC включайте только для устаревших приложений v001 (в основном уже выведены из эксплуатации) или получателей за пределами ЕЭЗ. - Строгий формат суммы.
EUR10.00— префикс с кодом валюты, разделитель-точка, ровно два знака после запятой. ВариантыEUR10,EUR10,00,10.00 EURнедопустимы. - Нельзя смешивать структурированное и неструктурированное назначение. Строки 10 и 11 взаимоисключающие. Если обе непусты, по спецификации QR-код считается недействительным; на практике некоторые приложения принимают его, игнорируя одну из строк, что приводит к ошибкам сверки.
- Пробелы в IBAN. В поле IBAN (строка 7) пробелы недопустимы. Удобочитаемый формат
DE89 3704 0044 0532 0130 00необходимо привести к видуDE89370400440532013000перед кодированием. - Максимальный размер полезной нагрузки — 331 байт. Полезная нагрузка свыше 331 байта отклоняется по спецификации. Длинное имя получателя + длинное назначение + BIC + IBAN могут превысить этот лимит. Банковское приложение покажет ошибку при сканировании; сам QR-код не предупреждает об этом при кодировании.
- Проблема набора символов. Строка 3 определяет кодировку, применяемую к строкам 6, 11 и 12. UTF-8 (значение
1) — единственный реальный выбор для международных имён. ISO-8859-1 не поддерживает символы за пределами западноевропейской латиницы. - Только зона SEPA. Платежи Girocode работают только между счетами в странах — участниках SEPA (ЕС + ЕЭЗ + Швейцария + Великобритания + Монако + Сан-Марино + Андорра + Ватикан). Сканирование Girocode в банковском приложении вне SEPA либо завершится ошибкой, либо откроет стандартный экран перевода с пустыми полями.
- Нет прямого дебетования. Girocode поддерживает только кредитный перевод SEPA. Сценарии списания/подписки (постоянные поручения, периодические мандаты) с помощью Girocode невыразимы. Для таких случаев используйте QR совместно с документом SEPA-мандата.
- Права возврата по PSD2. SEPA Credit Transfer является инициированным плательщиком при сканировании. Права потребителей на возврат по PSD2 по-прежнему применяются (например, несанкционированная транзакция в течение 13 месяцев). Продавцы обязаны отдельно хранить подписанный след авторизации — сам QR-код контрактом не является.
Совместимость с банковскими приложениями
| Приложение / регион | Поддержка Girocode | Примечания |
|---|---|---|
| Sparkasse (DE) | Нативная | Изначальная целевая аудитория Girocode. Полная поддержка. |
| Volksbank / Raiffeisen (DE, AT) | Нативная | Полная поддержка в приложении VR-BankingApp. |
| Deutsche Bank, Commerzbank, Postbank (DE) | Нативная | Сканирование через поток "Überweisung" в мобильном приложении. |
| ING (DE / NL) | Нативная | Приложение для Нидерландов также сканирует QR-коды iDEAL. |
| N26, Revolut | Нативная | Полная поддержка во всех поддерживаемых странах. |
| Erste Bank, Bank Austria (AT) | Нативная | Австрия приняла Girocode наряду с Германией. |
| Crédit Agricole, BNP Paribas (FR) | Частичная | Некоторые французские банки сканируют Girocode; большинство предпочитает старый формат бумажных ссылок. |
| Стандартная камера iOS/Android | Нет | Встроенные камеры не распознают текстовый формат BCD как намерение совершить платёж. Пользователь должен сначала открыть банковское приложение. |
Смотрите также
- /epc-girocode-qr-code/ — генератор Girocode с валидацией IBAN и кодированием в реальном времени.
- /sepa-qr-code/ — генератор QR-кода для кредитного перевода SEPA (тот же базовый формат).
- /standards/swiss-qr-bill/ — Swiss QR-bill, региональная альтернатива для переводов в CHF/Swiss IBAN.
- /standards/ — назад к индексу стандартов.