Перейти к основному содержимому

validBinChecksum

@mineflow/shared-validation


@mineflow/shared-validation / validBinChecksum

Function: validBinChecksum()

function validBinChecksum(bin: string): boolean;

Defined in: bin-checksum.ts:59

Проверяет контрольную цифру БИН РК по алгоритму НК РК.

Алгоритм идентичен validIinChecksum (разнесены лишь для семантической чистоты: БИН — идентификатор организации, ИИН — физлица/ИП). Сначала отсекает структурно невалидный ввод (не строка, не ровно 12 символов, нецифровые символы). Затем по первым 11 цифрам считает sum(d_i * w1_i) mod 11:

  1. если результат < 10 — это контрольная цифра, сравнивается с 12-й;
  2. если результат == 10 — пересчёт по второму набору весов w2;
  3. если и w2 даёт >= 10 — контрольной цифры нет, БИН невалиден.

Функция чистая и frontend-safe: не бросает исключений, не нормализует ввод (пробелы/дефисы/буквы дают false). UX-слой формы, не замена backend-проверки инварианта SCM-SUP-INV-06.

Parameters

ParameterTypeDescription
binstringСтрока-кандидат БИН (ожидается ровно 12 цифр без разделителей).

Returns

boolean

true, если контрольная цифра сходится; иначе false.

Example

validBinChecksum('123456789012'); // true | false