Partnerem strategicznym Homodigital.pl jest
2 czerwca 2021

Konto bankowe: posiada je (prawie) każdy z Was, ale czy zastanawialiście się, jak działa i z czego się składa?

Rachunek bankowy to nie jest losowy ciąg znaków. Numery są generowane na podstawie pewnych zasad, aby można było z nich coś wyczytać i posiadają liczby kontrolne, aby unikać błędów przy ich wprowadzaniu. Z kontem bankowym wszyscy mamy codziennie do czynienia.

Konto bankowe IBAN to nie jest losowy ciąg 28 znaków. Numer rachunku bankowego w bankach jest generowany na podstawie pewnych zasad, aby można było z niego coś wyczytać i posiada liczby kontrolne, aby unikać błędów przy jego wprowadzaniu.

Z kontami bankowymi wszyscy mamy codziennie do czynienia. Nawet jeżeli sami takiego nie posiadamy (chociaż nie sądzę, aby zbyt dużo naszych czytelników radziło sobie bez konta w banku), to korzystamy z nich chociażby opłacając rachunki.

Większość z was z konta bankowego korzysta jednak dużo aktywniej. Zmieniliście pracę? Prawdopodobnie ktoś z kadr czy księgowości już wam podsunął druczek do wpisania numeru waszego konta bankowego. Spłacacie kartę kredytową? Macie swój indywidualny numer konta IBAN do spłaty. Nie można wrzucić „na tacę” z powodu pandemii? Parafia ma swój numer konta. I tak dalej.

Konto bankowe to zapis naszych rozliczeń. Pozwala nam regulować zobowiązania, otrzymywać należności, analizować historię i po prostu wiedzieć ile mamy pieniędzy. Prowadzone są na podstawie zawartej umowy.

Czym jest IBAN?

Każde konto bankowe ma swój unikalny numer rachunku. Tak jak osób o tym samym imieniu i nazwisku może być kilka, tak numery konta są niepowtarzalne. Nie może się przecież zdarzyć, że wyślemy komuś pieniądze, a one trafią gdzie indziej.

W celu ułatwienia przelewów transgranicznych, na forum Unii Europejskiej, opracowano Międzynarodowy Numer Rachunku Bankowego ( IBAN czyli skrót od international bank account number). Dzięki niemu wszystkie konta bankowe we współpracujących krajach wyglądają tak samo (przynajmniej w teorii – o czym za chwilę).

IBAN został ustanowiony, aby wspomóc płatności na terenie Unii Europejskiej, ale obecnie z tego standardu korzysta już ponad 80 krajów na świecie. Niestety dotychczas ludzkości nie udało się ujednolicić tego systemu we wszystkich państwach na świecie (a patrząc na to, że z IBANu nie korzystają Stany Zjednoczone, Rosja i Chiny – to trochę to potrwa).

Z czego się składa numer IBAN?

Struktura IBAN jest następująca: 2a2n30an. I tak 2a oznacza 2-literowy kod kraju (dla Polski będzie to zawsze PL), 2n oznacza 2-cyfrową liczbę kontrolną (do tego dojdziemy), a 30an oznacza tzw. Podstawowy Numer Rachunku Bankowego stosowany w danym kraju (do 30 znaków alfanumerycznych).

Udało się więc zestandaryzować jedynie poszczególne elementy IBANu, a w praktyce partycypujące kraje dostały sporo dowolności. Ostatecznie numery konta w różnych krajach się od siebie różnią wizualnie (mimo, że w teorii są tworzone na tej samej zasadzie). A różnice są naprawdę wyraźne.

Kilka przykładów na międzynarodowy numer rachunku bankowego:

  • Polska: PL NNNNNNNNNNNNNNNNNNNNNNNNNN – przedrostek PL i 26-cyfrowy numer.
  • Tunezja: TN 59 NNNNNNNNNNNNNNNNNNNN – przedrostek TN, liczba 59 i 20-cyfrowy numer.
  • Bułgaria – BG NN AAAA NNNNNN XXXXXXXX – przedrostek BG, 2-cyfrowa liczba kontrolna, 4 litery, 6-cyfrowy numer, 8 znaków.
  • Norwegia: NO NNNNNNNNNNNNN – przedrostek NO i 13-cyfrowy numer.

Stałym elementem jest tylko przedrostek i 2-cyfrowa liczba kontrolna (w niektórych krajach stała). Potem, w zależności od kraju, są ciągi cyfr lub/i liter różnej długości. Można się pogubić. Na szczęście rachunki w danym kraju są standaryzowane.

Numer Rachunku Bankowego – NRB w Polsce

W Polsce obecnie stosuje się 26-cyfrowy Numer Rachunku Bankowego (NRB). Realizując przelewy pomiędzy dwoma rachunkami w naszym kraju nie musimy dodawać kodu kraju. Działa to na podobnej zasadzie, jak telefony komórkowe. Możemy dzwonić bez przedrostka +48, ale z zagranicy musimy go już użyć.

NRB powstaje zgodnie z następującą struktura: 2n(8n16n). 2n to 2-cyfrowa liczba kontrolna (obliczana dla całego numeru IBAN). 8n to ośmiocyfrowy numer rozliczeniowy jednostki banku. Wreszcie 16n to 16-cyfrowy numer porządkowy rachunku bankowego. Jeżeli banki stosują krótsze numery rachunków, to uzupełniają je zerami – i na przykład dla numeru 123456789012 zostanie przyjęty ciąg 0000123456789012.

Z numeru rozliczeniowego banku możemy odczytać, jaki bank prowadzi dany rachunek (pierwsze cztery cyfry) oraz oddział banku (następny trzy cyfry). Na przykład mając konto w banku Millennium Wasz rachunek będzie się rozpoczynał od 1160.

Czytaj też: Dlaczego przelew pani Ewy dotarł do odbiorcy, choć nie powinien? Bank zmienia „zeznania”. Ale te nowe nie stawiają banku w jeszcze gorszym świetle?

Standaryzacja IBAN ma sens

Czy takie ujednolicenie numerów rachunków bankowych jest wygodne dla użytkowników? Z jednej strony mamy niewykorzystane możliwości indywidualnych numerów konta. Coś na wzór tablic rejestracyjnych. Ułatwiałoby to niektórym organizacjom przyjmowanie przelewów, a Narodowy Bank Polski mógłby sobie zwiększyć przychody.

Na przykład Homodigital mogłoby wykupić IBAN o numerze PL HOMODIGITAL. Proste do zapamiętania. Może przydałoby się to różnym fundacjom (w końcu bardzo łatwo przelać pieniądze na numer PL WOSP), ale dla firm i osób prywatnych raczej byłoby utrudnieniem.

Numery konta o różnej liczbie znaków i bez logicznego schematu prowadziłyby do większej ilości pomyłek przy przelewach. Zresztą nie musimy gdybać – nie zawsze było tak pięknie. IBAN opracowano dopiero w 1996 roku (wdrożono później).

Po koniec XX i jeszcze na początku XXI wieku w Polsce funkcjonowały numery konta o różnej długości i składające się z różnych znaków. Było dużo łatwiej o pomyłkę, a – w związku z tym, że nie było możliwości szybkiej weryfikacji, czy dany numer konta istnieje – pieniądze opuszczały nasze konto bankowe. Proces ich odzyskiwania często był długotrwały i męczący.

Numerujesz coś? Użyj liczby kontrolnej

Tworząc jakiś zestaw danych – szczególnie otwarty, a więc taki, w którym będziemy przyznawać coraz to nowe wiersze – stosuję się tzw. liczbę kontrolną. Zabezpiecza ona dane (do pewnego stopnia) przed błędami.

Dzięki temu ciągi cyfr (i liter) można łatwo zweryfikować pod kątem ewentualnego przekłamania. Na tej zasadzie generuje się chociażby numery PESEL, NIP, dowodu osobistego, czy właśnie rachunku bankowego.

W końcu danymi operujemy. Numery rachunków bankowych (i wszystkie inne) komuś podajemy, gdzieś wprowadzamy, ktoś je gdzieś przepisuje, przekleja. Sporo formularzy wypełnia się jeszcze ręcznie, często nieczytelnie. Dane krążą, a o pomyłkę łatwo.

Zastosowanie liczby kontrolnej pozwala dużo takich pomyłek wychwycić, bo odpowiednio przygotowany algorytm zauważy, że dany ciąg znaków nie ma prawa istnieć. Dopiero przypadkowe wprowadzenie innego, istniejącego numeru (a więc bardzo pechowa pomyłka) zostanie przepuszczone.

Wybrane sposoby ustanawiania liczby kontrolnej

Istnieje wiele pomysłów na to, aby uzyskać liczbę kontrolną. Bardziej skomplikowane pozwalają uniknąć większej liczby błędów, a prostsze tylko niektórych pomyłek. Nie będę tutaj wszystkich wymieniał (nawet wszystkich nie znam – zainteresowanym polecam zgłębienie lektury). Opiszę wybrane w skrócie.

Najprostszym sposobem stworzenia cyfry kontrolnej jest zsumowanie wszystkich cyfr z numeru i dodanie na końcu ostatnią cyfrę z takiej sumy. Czyli dla numeru 123456 cyfrą kontrolną będzie 1, a pełny numer wyniesie 1234561.

Problem z tym sposobem jest taki, że nie pozwoli on wykryć tzw. czeskich błędów (zamiany miejscami dwóch cyfr). Dla powyższego przykładu pomyłka i wpisanie 1243561 nie zostanie zauważona.

W celu rozwiązania tej niedogodności wprowadzono współczynniki wagowe. Nie sumujemy poszczególnych cyfr, a iloczyny cyfr oraz wag. Takie wagi nie mogą być zerem, a sąsiednie wagi muszą się od siebie różnić. Dla przykładu – możecie sprawdzić swój numer PESEL mnożąc jego cyfry przez następujące wagi: 13791379131. Jeżeli ostatnia cyfra sumy iloczynów wynosi 0, to PESEL jest poprawny.

Algorytm również nie jest idealny. Wprawdzie wykrywa czeskie błędy, ale już nie wykryje zamiany roku z dniem w numerze pesel.

Wreszcie możemy po prostu potraktować cały numer z liczbą kontrolną jako liczbę całkowitą i sprawdzić resztę z dzielenia przez jakąś liczbę.

Konto bankowe to więcej liczb kontrolnych

To nie koniec. Dany ciąg znaków można zabezpieczyć większa ilością liczb kontrolnych i tak jest właśnie w przypadku rachunków bankowych w Polsce. Jak wspomniałem całościowo jest to IBAN, a składa się on jeszcze z numeru rozliczeniowego jednostki banku i numeru porządkowego rachunku bankowego.

I tak numery jednostki banku składają się z ośmiu cyfr, z których ostatnia jest kontrolna. W tym wypadku do obliczenia poprawności musimy użyć wag: 3, 9, 7, 1, 3, 9, 7, 1. Wagi mnożymy przez odpowiednie cyfry z numeru, następnie je sumujemy. Jeżeli ostatnia cyfra sumy iloczynów wynosi 0 – to numer jest poprawny.

Numer porządkowy rachunku bankowego też może zawierać liczby kontrolne dla bezpieczeństwa. Banki oferują też ułatwienia dla firm przyjmujących płatności od wielu indywidualnych klientów. Na przykład Miejskie Przedsiębiorstwo Wodociągów może otrzymać indywidualny numer konta dla każdego klienta, a w banku mieć tak naprawdę jeden rachunek (środki będą trafiać na indywidualne podrachunki). To duże ułatwienie.

Wreszcie cały numer IBAN jest zabezpieczony 2-cyfrową liczba kontrolną. W tym wypadku nie posługujemy się wagami (co byłoby utrudnione przy różnych długościach w różnych krajach), a traktujemy cały numer jako jedną liczbę całkowitą.

Weryfikacja liczby kontrolnej polega na czterech krokach. Po pierwsze, przesuwamy cztery pierwsze znaki na koniec numeru. Będą to kod kraju oraz liczba kontrolna. Następnie musimy zamienić litery na cyfry. Każdy IBAN składa się z minimum dwóch liter. Aby uzyskać liczbę całkowitą – wszystkie litery zamieniamy na liczby (zgodnie z zasadą A-10, B=11, Z=35).

Mając już liczbę całkowitą musimy ją podzielić przez 97. Jeżeli reszta z takiego dzielenia wynosi 1, to numer jest prawidłowy.

Czytaj też: Aplikacje mobilne banków zaczęły z nami „rozmawiać”. Nowa era?

Sprawdzamy liczbę kontrolną w praktyce

Weźmy na przykład numer rachunku Urzędu Miasta Stołecznego Warszawy. Jego IBAN to PL 21 1030 1508 0000 0005 5000 0070. Po numerze rozliczeniowym jednostki banku widzimy, że to będzie konto w banku Citi handlowym. Sprawdźmy, czy takie konto faktycznie ma prawo istnieć.

Zacznijmy od weryfikacji cyfry kontrolnej z numeru rozliczeniowego jednostki banku, a więc: 1030 1508. Korzystając z powyższych wag otrzymujemy następujące iloczyny:
1*3+0*9+3*7+0*1+1*3+5*9+7*0+1*8 = 80. Ostatnia cyfra to zero, a więc numer jest poprawny.

Teraz sprawdźmy cyfrę kontrolną całego numeru IBAN. W tym celu – jak wspomniałem – musimy przenieść oznaczenie kraju oraz liczbę kontrolną na koniec. Otrzymujemy 1030 1508 0000 0005 5000 0070 PL 21. Zgodnie z wcześniejszym opisem zamieniamy PL na cyfry, czyli na 2521. Otrzymujemy 1030 1508 0000 0005 5000 0070 2521 21. Teraz wystarczy podzielić to przez 97 i jeżeli reszta jest równa 1, to możemy zlecać przelew.

Matematyka – królowa nauk

Tych z Was, którzy właśnie otwierają Excela, aby to zweryfikować muszę przystopować. Nie wykonacie działania na takiej liczbie w Excelu. Ba – nawet jej nie wyświetlicie w komórce Excela. Po prostu jest to zbyt duża liczba, aby można ją przechowywać w zmiennej całkowitoliczbowej.

Mam też dobrą wiadomość. Bardzo łatwo możemy to obejść, a z pomocą przychodzi nam… królowa nauk – matematyka. Jeżeli chcemy wyliczyć resztę z dzielenia danej liczby przez x (czyli wykonać działanie liczba mod x), to możemy to zrobić na raty.

Schemat jest prosty. Wybieramy dowolną część (licząc od lewej) z numeru do sprawdzenia i sprawdzamy resztę z dzielenia przez 97. Następnie tą resztę stawiamy na początku pozostałej części i powtarzamy proces aż do skutku.

Konto bankowe IBAN: liczymy poprawność

Taką czynność uda się Wam już zrobić w Excelu (na przykład z użyciem funkcji =mod(l;x)) lub na zwykłym kalkulatorze. Czyli dla podanego wyżej numeru konta będzie to wyglądać następująco (pamiętajcie by najpierw przenieść liczbę kontrolną na koniec):

  1. Dzielimy numer na cztery (lub więcej, niekoniecznie równych) części, na przykład: 10301508 ; 00000005 ; 50000070 ; 252121
  2. Dzielimy pierwszą część przez 97 i sprawdzamy resztę. 10301508 mod 97 = 11
  3. Dopisujemy 11 na początku drugiego fragmentu: 1100000005
  4. Dzielimy drugi fragment przez 97 i sprawdzamy resztę: 1100000005 mod 97 = 23
  5. Dopisujemy 23 na początku trzeciego fragmentu: 2350000070
  6. Dzielimy trzeci fragment przez 97 i sprawdzamy resztę: 2350000070 mod 97 = 82
  7. Dopisujemy 82 na początku czwartego fragmentu: 82252121
  8. Dzielimy czwarty fragment przez 97 i sprawdzamy resztę: 82252121 mod 97 = 1

Jeżeli na końcu wyjdzie nam jeden, to wszystko się udało. Jeżeli nie, to prawdopodobnie pomyliliście się w liczeniu lub konto bankowe, które sprawdzacie nie istnieje. Bardziej prawdopodobna jest pierwsza opcja.

Czytaj też: #zostańwdomu i…idź w kapciach do banku. Oto przegląd spraw, które załatwisz w porządnym banku nie ruszając się z fotela

Numeru konta bankowego nie musisz sprawdzać

Oczywiście nie musicie sprawdzać żadnych numerów kont bankowych. No chyba, że chcecie sprawdzić z ciekawości, czy Wasze konto naprawdę istnieje. W praktyce sprawdzają to za Was banki. Nie wierzycie? To spróbujcie wpisać losowe cyfry podczas przelewu. Bank sam Was zastopuje i wyświetli odpowiedni komunikat, na przykład taki:

Spróbujcie też zrobić literówkę w numerze konta. Zlećcie przelew na konto bankowe, ale celowo pomylcie się w jednej lub większej ilości cyfr. Możecie mylić jedną cyfrę, przestawiać cyfry, usuwać cyfry itd. To nie zadziała, bo liczba kontrolna chroni konto bankowe. Banki też o tym wiedzą i odpowiednie algorytmy już na tym etapie potrafią wychwycić błędnie wpisany numer konta.

Musielibyście mieć niebywale szczęście (polecam spróbować doładować telefon na kartę wpisując losowy ciąg liczb), aby się Wam to udało. Dlaczego? Bo nowa liczba, stworzona przypadkiem w wyniku błędu, musiałaby dawać identyczną resztę z dzielenia przez 97. Ponadto musiałby się też zgadzać pomylony numer rozliczeniowy jednostki banku. To już chyba łatwiej trafić kupon w totka.

Banki ułatwiają nam sprawdzanie numeru konta

W związku z tym jakakolwiek weryfikacja wpisywanego numer rachunku podczas przelewu (a znam osoby, które dwukrotnie sprawdzają każdą z 26 cyfr) nie ma sensu. Tak naprawdę warto sprawdzić cyfrę kontrolną (pierwsze dwie cyfry), bank – kolejne trzy cyfry i część numeru rachunku (czyli na przykład cztery ostatnie 4 cyfry), a przy przelewach SWIFT jeszcze kod kraju. To w zupełności wystarczy.

Między innymi z tego powodu smsy autoryzacyjne banków najczęściej są skrócone i podają numery kont w formie częściowej. Niektóre banki pogrubiają lub zmieniają kolor części cyfr. Tak robi na przykład mBank:

To nie jest przypadek. W bankach zdają sobie sprawę, że sprawdzenie tych cyfr jest kluczowe, a – jeżeli one się będą zgadzać – to szansa na pomyłkę w pozostałych cyfrach, która jeszcze będzie skutkować stworzeniem poprawnego, istniejącego numeru konta jest bliska zeru.

Nie zrozumcie nas źle – smsy/powiadomienia autoryzacyjne obowiązkowo trzeba sprawdzać! Zawsze się może okazać, że hakerzy jakoś nas akurat oszukują, a więc czytajcie, co potwierdzacie. Nie ma jednak potrzeby szczegółowo weryfikować numeru konta podczas przepisywania go z – dajmy na to – faktury.

Podobnie zresztą jest z adresem (przelew trafi do odbiorcy, nawet jeżeli go nie wpiszecie), czy z nazwiskiem podczas płatności kartą w Internecie. Chociaż akurat w kartach płatniczych liczba kontrolna mniej zabezpiecza przed literówką.

Czytaj też: Co to jest system binarny (system dwójkowy)?

Liczby kontrolne i standaryzacja mają też wadę. Znając takie zasady łatwiej je podrobić i wygenerować sobie fikcyjny numer, który do czegoś uprawnia (na przykład numer PESEL do dowodu kolekcjonerskiego). Tutaj przykład z życia – Niebezpiecznik wygenerował fikcyjną kartę IKEA i otrzymał dostęp do zniżek oraz zamówił darmową kawę .

Zdjęcie główne: Scott Graham / Unsplash

Home Strona główna Subiektywnie o finansach
Skip to content email-icon