Национальные контрольные цифры в IBAN

Контрольные цифры, которые многие страны сохраняют внутри номера счёта, от французского clé RIB до итальянского CIN, и чем они отличаются от контрольных цифр IBAN.

Обновлено

У каждого IBAN сразу после кода страны стоят две контрольные цифры, которые вычисляются по MOD-97. Многие страны добавляют ещё и собственные контрольные цифры внутри BBAN, национального номера счёта. Большинство из них старше IBAN: банки ловили с их помощью опечатки во внутренних номерах счетов ещё до появления IBAN, а IBAN сохранил их, когда вобрал в себя эти номера.

Два уровня проверки

Возьмём французский IBAN из примера в реестре: FR14 2004 1010 0505 0001 3M02 606. Цифры 14 после FR служат контрольными цифрами IBAN. Последние две цифры, 06, это clé RIB, французская национальная проверка. Они защищают разные вещи:

Контрольные цифры IBAN Национальные контрольные цифры
Где стоят Позиции 3 и 4, в любом IBAN Внутри BBAN, на месте, которое задаёт каждая страна
Метод MOD 97-10 (ISO/IEC 7064), везде одинаковый Национальное правило, своё в каждой стране
Что охватывают Весь IBAN, включая код страны Обычно код банка, код отделения и номер счёта
Кто определяет ISO 13616 Центральный банк страны или банковская ассоциация

Эти два уровня независимы. У IBAN могут быть верные контрольные цифры MOD-97, и при этом он не пройдёт национальную проверку, например если кто-то включил в IBAN внутренний номер с опечаткой и уже потом вычислил контрольные цифры IBAN. Бывает и наоборот: измените одну цифру валидного IBAN, и проверка MOD-97 не пройдёт, даже если национальная проверка по-прежнему проходит.

Основные методы

Национальные проверки выглядят по-разному, но большинство из них относится к нескольким семействам.

Две цифры MOD 97 в конце BBAN

Несколько стран завершают BBAN двумя цифрами, которые вычисляются по MOD 97-10, тем же методом, что и контрольные цифры IBAN, из цифр, стоящих перед ними. Так устроены IBAN этих стран: Португалия (контрольные цифры NIB), Словения, Сербия, Черногория, Северная Македония, Босния и Герцеговина, Косово и Восточный Тимор.

Ключи RIB

Французский clé RIB равен 97 минус остаток от деления суммы 89 × код банка + 15 × код отделения + 3 × номер счёта на 97. Буквы в номере счёта сначала заменяются цифрами (A и J дают 1, B, K и S дают 2 и так далее). Ключ делает весь внутренний номер кратным 97. Этот ключ общий у Франции и Монако, а Тунис и Мавритания применяют ключи RIB с той же целью: весь номер счёта должен делиться на 97.

Итальянский CIN

Италия и Сан-Марино ставят в начало BBAN контрольную букву, CIN. Она охватывает 22 символа после неё: код банка ABI, код отделения CAB и номер счёта. Символы на нечётных позициях пересчитываются по таблице, а на чётных сохраняют своё простое значение (цифры равны сами себе, буквы от A = 0 до Z = 25). Остаток от деления суммы на 26, от 0 до 25, превращается в букву от A до Z.

Испанские контрольные цифры

В испанском коде счёта (CCC) между кодом отделения и номером счёта стоят две контрольные цифры. Первая проверяет код банка и код отделения, вторая 10-значный номер счёта. Каждая вычисляется так: взвешенная сумма с весами 1, 2, 4, 8, 5, 10, 9, 7, 3, 6 делится на 11, а остаток вычитается из 11. Результат 11 превращается в 0, а 10 в 1. Формат целиком показан на странице Испании.

Взвешенные суммы

Многие страны умножают каждую цифру на вес, складывают произведения и берут остаток:

  • Бельгия: последние две цифры равны остатку от деления первых десяти цифр на 97 (97 вместо 0).
  • Норвегия: MOD 11 с весами 5, 4, 3, 2, 7, 6, 5, 4, 3, 2. Номера счетов, для которых понадобилось бы значение 10, не выпускаются.
  • Финляндия: алгоритм Луна, тот же, что применяется к номерам банковских карт.
  • Эстония: метод 7-3-1, веса 7, 3, 1 повторяются справа налево.
  • Венгрия: две цифры с весами 9, 7, 3, 1, одна для кода банка и отделения, другая для номера счёта.
  • Польша: одна цифра в конце 8-значного расчётного номера банка, веса 3, 9, 7, 1.
  • Албания: одна цифра после кода банка и отделения, веса 9, 7, 3, 1.
  • Чехия и Словакия: префикс счёта и номер счёта должны по отдельности давать взвешенную сумму, кратную 11.
  • Хорватия: ISO 7064 MOD 11,10, отдельно для кода банка и для номера счёта.
  • Коста-Рика: последняя цифра номера счёта клиента, веса от 1 до 9, затем от 1 до 7, по модулю 11.
  • Россия: контрольный ключ Банка России, веса 7, 1, 3 для последних цифр БИК и номера счёта.

По странам

В таблице перечислены все страны, национальную проверку которых вычисляет этот сайт, с позициями контрольных цифр в IBAN. По ссылке на страну откроются её генератор и полный формат.

Страна Позиции Метод Контрольные цифры IBAN Источник
Албания 12 Веса 9, 7, 3, 1 (mod 10) Зависят от счёта Bank of Albania, Decision No. 26 of 4.5.2022
Бельгия 15–16 Первые 10 цифр по модулю 97 Зависят от счёта Febelfin / National Bank of Belgium
Босния и Герцеговина 19–20 MOD 97-10 BA39 Centralna banka Bosne i Hercegovine
Венгрия 12, 28 Веса 9, 7, 3, 1 (mod 10) Зависят от счёта Magyar Nemzeti Bank, 35/2017. (XII. 14.) MNB rendelet
Восточный Тимор 22–23 MOD 97-10 TL38 Banco Central de Timor-Leste
Испания 13–14 Контрольные цифры (mod 11) Зависят от счёта Consejo Superior Bancario, Código Cuenta Cliente (AEB/CECA)
Италия 5 Контрольная буква CIN (mod 26) Зависят от счёта ABI, coordinate bancarie (Banca d'Italia)
Косово 19–20 MOD 97-10 XK05 Central Bank of the Republic of Kosovo (BQK)
Коста-Рика 22 Веса от 1 до 9 (mod 11) Зависят от счёта Banco Central de Costa Rica, Cuenta Cliente
Мавритания 26–27 Ключ RIB (mod 97) MR13 Banque Centrale de Mauritanie, Instruction 16/GR/2008
Монако 26–27 Clé RIB (mod 97) MC58, если в номере счёта только цифры CFONB, RIB standard (Banque de France)
Норвегия 15 MOD 11 Зависят от счёта Bits AS / Finans Norge
Польша 12 Веса 3, 9, 7, 1 (mod 10) Зависят от счёта Narodowy Bank Polski
Португалия 24–25 MOD 97-10 PT50 Banco de Portugal, NIB
Россия 22 Контрольный ключ, веса 7, 1, 3 Зависят от счёта Bank of Russia, Procedure No. 515 of 8.9.1997
Сан-Марино 5 Контрольная буква CIN (mod 26) Зависят от счёта Banca Centrale della Repubblica di San Marino (ABI standard)
Северная Македония 18–19 MOD 97-10 MK07 National Bank of the Republic of North Macedonia
Сербия 21–22 MOD 97-10 RS35 Narodna banka Srbije
Словакия 14, 24 Взвешенный MOD 11 Зависят от счёта Národná banka Slovenska, opatrenie č. 8/2009
Словения 18–19 MOD 97-10 SI56 Banka Slovenije, Uradni list RS 85/2016
Тунис 23–24 Ключ RIB (mod 97) TN59 Banque Centrale de Tunisie
Финляндия 18 Алгоритм Луна (mod 10) Зависят от счёта Finance Finland (Finanssiala)
Франция 26–27 Clé RIB (mod 97) FR76, если в номере счёта только цифры CFONB, RIB standard (Banque de France)
Хорватия 11, 21 ISO 7064 MOD 11,10 Зависят от счёта Hrvatska narodna banka, Narodne novine 13/2025
Черногория 21–22 MOD 97-10 ME25 Centralna banka Crne Gore
Чехия 14, 24 Взвешенный MOD 11 Зависят от счёта Česká národní banka, vyhláška č. 169/2011 Sb.
Эстония 20 7-3-1 (mod 10) Зависят от счёта Estonian Banking Association (Pangaliit)

Для нескольких других стран, например Бурунди, Джибути и Сан-Томе и Принсипи, примеры из реестра тоже указывают на национальную проверку, но официального описания мы не нашли. Генератор оставляет эти цифры случайными.

Постоянные контрольные цифры IBAN

Из-за двух цифр MOD 97 в конце BBAN или ключа RIB весь BBAN при делении на 97 даёт один и тот же остаток, какой бы ни был счёт. Контрольные цифры IBAN зависят только от этого остатка и кода страны, поэтому у всех валидных IBAN этих стран одни и те же контрольные цифры: каждый португальский IBAN начинается с PT50, каждый сербский с RS35, а каждый тунисский с TN59. Французские IBAN, в номере счёта которых только цифры, все начинаются с FR76. Буквы во французском номере счёта меняют результат, поэтому пример из реестра выше начинается с FR14.

Это удобная быстрая проверка, когда вы читаете IBAN этих стран: если контрольные цифры другие, IBAN неверен.

Нужно ли валидатору их проверять?

MOD-97 и так ловит любую ошибку в одной цифре и любую перестановку двух соседних цифр, поэтому против опечаток национальные проверки дают немного. Они помогают в других случаях: когда IBAN собран вручную из неверного внутреннего номера или когда это поддельный IBAN, автор которого вычислил только цифры MOD-97.

Прежде чем добавлять их в собственный валидатор, учтите:

  • Каждой стране нужен свой алгоритм, и каждый должен в точности следовать официальному правилу. Неверная реализация отклоняет IBAN настоящих клиентов, а это хуже, чем не проверять вовсе.
  • Проверьте каждый алгоритм на примерах в реальном формате, например на примере из реестра на странице каждой страны.
  • Делайте сообщение об ошибке конкретным. «Национальные контрольные цифры не совпадают» поможет пользователю больше, чем «Неверный IBAN».

Наш валидатор IBAN проверяет национальные контрольные цифры везде, где известно правило, а если оно неизвестно, сообщает об этом. Библиотека с открытым исходным кодом iban-check выполняет структурные проверки и MOD-97.

Тестирование с национальными контрольными цифрами

Генератор вычисляет национальные контрольные цифры для каждой страны из таблицы выше, в обоих режимах, реалистичном и полностью случайном, поэтому валидаторы, которые их проверяют, принимают сгенерированные IBAN. Для негативного теста измените одну из национальных контрольных цифр и пересчитайте контрольные цифры IBAN: такой IBAN пройдёт MOD-97, но не пройдёт национальную проверку. Если контрольные цифры IBAN неверны, валидатор подскажет подходящие. Об остальных уровнях проверки рассказывает статья Тестовые IBAN для разработчиков и QA.

Источники

  • Реестр IBAN SWIFT (SWIFT IBAN Registry), выпуск 102 (июнь 2026 года): структура BBAN каждой страны и примеры, приведённые выше.
  • ISO/IEC 7064: системы контрольных символов MOD 97-10 и MOD 11,10.
  • Чешский национальный банк, IBAN: постановление № 169/2011 Sb. о чешском номере счёта и его проверке.
  • 35/2017. (XII. 14.) MNB rendelet, приложение 1: венгерский номер счёта и его контрольные цифры.
  • Национальные источники, указанные в таблице: центральные банки, банковские ассоциации и опубликованные ими стандарты.

Нужен тестовый IBAN?

Сгенерируйте валидный IBAN для любой из 91 страны, скопируйте его в нужном формате и посмотрите, что означает каждый сегмент.

Открыть генератор