Swiss QR-bill
Swiss QR-bill заменил швейцарские платёжные квитанции в июле 2020 года. Это ISO 20022 Customer Credit Transfer Initiation (pain.001), представленный в виде QR с обязательным наложением швейцарского креста по центру. Каждый швейцарский банк принимает его; ничего другого швейцарские банки не принимают.
Основа ISO: ISO 20022
pain.001 Customer Credit Transfer Initiation. Обязателен с: 1 июля 2020 года. Старые оранжевые/красные квитанции выведены из оборота 30 сентября 2022 года.
Что это такое
Содержимое, разделённый переводами строк (CRLF) список из 32 полей в семи блоках:
QRType → Всегда "SPC" Version → 0200 (v2.3) Coding → 1 (Latin-1) [Creditor Information] ← 7 полей (IBAN + адрес) [Ultimate Creditor] ← 7 полей (необязательно, обычно пусто) [Payment Amount Information] ← 3 поля (сумма, валюта, срок) [Ultimate Debtor] ← 7 полей (необязательно) [Payment Reference] ← 2 поля (тип + номер ссылки) [Additional Information] ← 2 поля (сообщение + информация о счёте) [Alternative Procedures] ← 2 поля (необязательно, редко используется)
Полученный QR размещается внутри блока «Платёжная часть» в нижней трети счёта. Каждое швейцарское банковское приложение (UBS, ZKB, PostFinance, Raiffeisen, Neon, Yuh, Revolut CH) читает его нативно.
QR-IBAN vs обычный IBAN
«QR-IBAN», это специальный швейцарский IBAN, в котором диапазон 5-значного кода банка составляет 30000–31999. QR-IBAN требует структурированной QR-ссылки (QRR, 27 цифр, mod-10). Обычные швейцарские IBAN принимают кредиторскую ссылку (SCOR, RFC 8905) или отсутствие ссылки.
| Тип IBAN кредитора | Допустимые типы ссылок | Примечания |
|---|---|---|
| QR-IBAN (код банка 30000–31999) | QRR (27 цифр, mod-10) | Обязательно. SCOR и NON недопустимы. |
| Обычный IBAN (CH или LI) | SCOR или NON | QRR недопустим, только для QR-IBAN. |
Канонические тестовые векторы
| Случай | Входные данные | Тип ссылки |
|---|---|---|
| Минимальный (обычный IBAN, без суммы, без ссылки) | iban=CH9300762011623852957 | NON |
| Обычный IBAN с суммой + неструктурированным сообщением | (то же)amount=100.00 | NON |
| QR-IBAN с QRR-ссылкой | iban=CH4431999123000889012 | QRR |
| IBAN Лихтенштейна | iban=LI0508800000021904015 | NON |
Встроенный валидатор швейцарского IBAN
Валидатор ниже проверяет три специфических для Швейцарии правила: (1) код страны, CH или LI, (2) длина ровно 21 символ, (3) контрольная сумма ISO 7064 mod-97 проходит. Введённые данные нормализуются (регистр, пробелы убираются).
Типичные ошибки
- Неверный тип ссылки для типа IBAN. QR-IBAN с ссылкой NON или SCOR отклоняется банком. Обычный IBAN с ссылкой QRR тоже отклоняется. Abundera автоматически выбирает правильный тип.
- Отсутствие наложения швейцарского креста. Спецификация QR-bill требует флаг Швейцарии 7 мм × 7 мм в центре QR. Это не опционально. Abundera накладывает его автоматически.
- Уровень коррекции ошибок QR-модуля. Спецификация требует ECC уровня M. Другой уровень ECC даёт QR, который выглядит правильно, но отклоняется банком.
- Длина полей адреса. Имя кредитора, улица, индекс, город, каждое ограничено 70 символами Latin-1. Некоторые кодировщики молча усекают длинные строки, ломая сверку.
- Только CHF или EUR. QR-bill поддерживает только две валюты. Любая другая отклоняется.
- Mod-10 vs mod-97. QRR-ссылки используют рекурсивную контрольную сумму mod-10 (вариант Луна). Не следует путать с контрольной суммой IBAN mod-97.
- Latin-1, не UTF-8. Поле
Codingравно «1» = Latin-1. Символы не из Latin-1 (ä/ö/ü работают; кириллица/китайский нет) ломают некоторые старые банковские приложения.
Совместимость со сканерами
| Считыватель | Поддержка | Примечания |
|---|---|---|
| UBS Mobile / PostFinance / ZKB app | Нативная | Каждое швейцарское банковское приложение читает QR-bill нативно. |
| Neon / Yuh / Revolut CH | Нативная | Необанки обрабатывают полный payload pain.001. |
| Камера iOS | Нет | iOS обрабатывает QR-bill как сырую строку, без парсинга. Пользователь должен открыть банковское приложение. |
| Камера Android / Google Lens | Нет | То же, нет нативного парсинга. |
| Коммерческий OCR (например, bill-pay сервисы) | Да | Банковские OCR-инструменты читают QR-bill в AP/AR пайплайны. |
Смотрите также
- /swiss-qr-bill-generator/, генератор с встроенной валидацией IBAN.
- /standards/, назад к индексу стандартов.