NRB (Numer Rachunku Bankowego ) to 26-cyfrowy krajowy numer rachunku bankowego w Polsce, weryfikowany przy użyciu sumy kontrolnej MOD-97 ze standardu IBAN. NRB jest strukturalnie częścią numeryczną polskiego IBAN (tj. IBAN bez prefiksu PL).
import { Numerik } from ' @slashlab/numerik-js '
Numerik . nrb () . isValid ( ' 61102010260000000000000000 ' ) // true
// Format z odstępami jest akceptowany
Numerik . nrb () . isValid ( ' 61 1020 1026 0000 0000 0000 0000 ' ) // true
// Format z prefiksem IBAN jest też akceptowany
Numerik . nrb () . isValid ( ' PL61102010260000000000000000 ' ) // true
const result = Numerik . nrb () . validate ( ' 61102010260000000000000000 ' )
// Parsowanie do obiektu z danymi
const nrb = Numerik . nrb () . parse ( ' 61102010260000000000000000 ' )
// Null zamiast wyjątku w przypadku błędu
const maybe = Numerik . nrb () . tryParse ( ' bad-input ' ) // null
parse() i tryParse() zwracają instancję Nrb.
Metoda
Typ zwracany
Opis
getRaw()
string
Oryginalne dane wejściowe, bez zmian.
getNormalized()
string
26 cyfr, bez prefiksu i spacji.
toString()
string
Alias dla getNormalized().
Metoda
Typ zwracany
Opis
getFormatted()
string
Czytelna postać: CC NNNN NNNN NNNN NNNN NNNN NNNN.
getIban()
string
Pełny polski IBAN: PL + 26 cyfr.
getFormattedIban()
string
Czytelny IBAN: PLCC NNNN NNNN NNNN NNNN NNNN NNNN.
Metoda
Typ zwracany
Opis
getCheckDigits()
string
Pierwsze 2 cyfry — cyfry kontrolne MOD-97.
getSortCode()
string
Cyfry 2–9 (8 cyfr) — kod sortowania banku.
getBankCode()
string
Cyfry 2–4 (3 cyfry) — identyfikator banku.
getAccountNumber()
string
Cyfry 10–25 (16 cyfr) — numer rachunku klienta.
const nrb = Numerik . nrb () . parse ( ' 61102010260000000000000000 ' )
nrb . getRaw () // '61102010260000000000000000'
nrb . getNormalized () // '61102010260000000000000000'
nrb . getFormatted () // '61 1020 1026 0000 0000 0000 0000'
nrb . getIban () // 'PL61102010260000000000000000'
nrb . getFormattedIban () // 'PL61 1020 1026 0000 0000 0000 0000'
nrb . getCheckDigits () // '61'
nrb . getSortCode () // '10201026'
nrb . getBankCode () // '102'
nrb . getAccountNumber () // '0000000000000000'
Powód
Wartość
Warunek
InvalidLength
invalid_length
Dane wejściowe nie mają dokładnie 26 cyfr po normalizacji.
InvalidCharacters
invalid_characters
Obecne są znaki inne niż cyfry, spacje i opcjonalny prefiks PL.
InvalidChecksum
invalid_checksum
Suma kontrolna MOD-97 nie zgadza się.
Używa algorytmu MOD-97 z normy ISO 13616 (standard IBAN):
Odrzuć dane wejściowe dłuższe niż 40 znaków. Usuń spacje i myślniki oraz opcjonalny prefiks PL.
Sprawdź, czy pozostało dokładnie 26 cyfr.
Przestaw: przesuń pierwsze 2 cyfry (cyfry kontrolne) na koniec i wstaw numeryczny kod kraju dla Polski (2521) między pozostałe 24 cyfry a nimi, tworząc 30-cyfrowy ciąg.
Oblicz 30-cyfrowy ciąg modulo 97. Wynik musi wynosić 1.