IBAN - международный стандарт банковских счетов

Содержание

Введение

В этой статье найдёте введение в новый международный стандарт используемый для однозначной нумерации банковских счетов, алгоритм контроля с некоторыми примерами, интерактивную форму контроля и программу на JavaScript реализующую алгоритм. Доступна также версия программы на PL/SQL Oracle.

Статья будет полезна для программистов которые должны адаптировать информационные системы к этому новому стандарту. Прошу посылать комментарии и вопросы по адресу: alexandre.rodichevski@chiappani.it.

Благодарю Вячеславаса Каледа (Литва) за ценное замечание, что позволило исправить алгоритм. Ален Дюмон (Бельгия) прислал страницу HTML с некоторыми улучшениями: IBAN вводится блоками по 4 символа (печатный формат); контроль производится для серии стран.

IBAN - что это такое?

IBAN (International Bank Account Number) - это международный стандарт используемый для однозначной нумерации банковских счетов, предложенный ECBS (European Committee for Banking Standards). Этот стандарт позволяет, в процессе банковского перевода, проверку правильности номера банковских счетов, благодаря контрольной сумме. Длина IBAN зависит от страны, с максимумом 34 символа, не может содержать ни пробелы ни специальные символы, такие как дефис или слеш, составлен из цифр и прописных букв, согласно следующей схеме:

Определение Позиция Состав Пример
Код страны 0 и 1 две буквы IT
Контрольная сумма 2 и 3 две цифры 60
Национальный BBAN от 4 до конца буквы и цифры Q0123412345000000753XYZ

Итальянский номер банковского счёта состоит из 27 символов: код IT, две цифры контрольной суммы и итальянский BBAN.

IBAN рассмотренный до сих пор имеет электронный или базовый формат, так названый для того, чтобы отличить от бумажного формата. Последний содержит пробелы облегчающие чтение, например: IT60 Q012 3412 3450 0000 0753 XYZ.

С 1 января 2007 года европейские банки требуют, для международных платёжных операций, указание IBAN e BIC (Bank Identifier Code) адресата.

Алгоритм контроля IBAN

  1. IBAN должен иметь от 5 до 34 символов.

  2. Он должен содержать только прописные буквы латинского алфавита от A до Z и цифры от 0 до 9. Более того, в позициях 0 и 1 должно быть только буквы (правильный код ISO страны), а в позициях 2 и 3 только числа.

  3. Первые 4 начальных символа перемещаются в конец строки.

  4. Каждый символ преобразуется в код от 0 до 35 согласно следующему правилу. Цифра преобразуется в соответствующее число, например 7 в 7. Буква A преобразуется в 10, B в 11, и так далее, Z преобразуется в 35. Результат - новая строка составленная из полученных номеров.

  5. Новая численная строка интерпретируется теперь как число. Разделив это число на 97, необходимо получить остаток 1.

    Чтобы облегчить деление чрезмерно длинних номеров, можно расчленить численную строку на малые части, и вычислить остаток деления первой части на 97, после этого составить новую численную строку из остатка деления и второй части, и вычислить остаток деления этого номера на 97, и так далее.

Примеры проверки IBAN

Пример 1

Рассмотрим строку IT60Q0123412345000000753XYZ. Следуем шаги алгоритма:

  1. Эта строка состоит из 27 символов.

  2. Она содержит только цифры и прописные буквы. В позициях 0 и 1 - буквы IT, в то время как в позициях 2 и 3 - цифры 60.

  3. Обменив первые 4 символа с остальными, получаем строку Q0123412345000000753XYZIT60.

  4. Трансформируя её в численную строку, Q преобразуется в 26, 0 преобразуется в 0, 1 преобразуется в 1, и так далее. Результат - 260123412345000000753333435182960.

  5. Расчленим эту численную строку на 5 частей: 26012341, 23450000, 00753333, 43518296 и 0. Остаток деления 26012341 на 97 есть 45. Остаток деления 4523450000 на 97 есть 15. Остаток деления 1500753333 на 97 есть 82. Остаток деления 8243518296 на 97 есть 68. Остаток деления 680 на 97 есть 1.

Окончательно, остаток деления есть 1. Этот IBAN верен.

Пример 2

Рассмотрим IT60 Q012 3412 3450 0000 0753 XYZ. Имея печатный формат, эта строка содержит пробелы, поэтому IBAN ошибочен.

Пример 3

Строка IT60Q012341234500000753/XYZ содержит специальный символ /, поэтому IBAN ошибочен.

Пример 4

Рассмотрим строку IT63Q0123412345000000753XYZ. Этот пример идентичен первому, за исключением контрольной суммы 63. Численная строка будет 260123412345000000753333435182963. Остаток деления этого номера на 97 есть 4. Поэтому IBAN ошибочен.

Программа проверки IBAN

Здесь вы можете найти интерактивную форму и пример программы реализующей алгоритм проверки международного номера банковского счёта.

Форма проверки IBAN

Чтобы проверить данный IBAN, введите его в следующее поле и нажмите мышью на кнопку Check.

Ресурсы

  1. IBAN в сайте European Committee for Banking Standards.
    http://www.ecbs.org/iban.htm