Jak Działa Weryfikacja IBAN (i Jak Wychwycić Błąd Przed Przelewem)
Weryfikacja IBAN sprawdza dwie rzeczy niezależnie od siebie: czy numer ma prawidłową długość ustaloną dla danego kraju, oraz czy przechodzi sumę kontrolną MOD-97 zdefiniowaną w normie ISO 13616. Ta druga część polega na przestawieniu numeru, zamianie liter na liczby i sprawdzeniu, czy reszta z dzielenia przez 97 wynosi dokładnie 1. Jeśli nie wynosi, ktoś po drodze pomylił się przy wpisywaniu cyfry.
Co naprawdę znajduje się w numerze IBAN
Numer IBAN nie jest przypadkowym ciągiem cyfr i liter. Ma stałą, przewidywalną strukturę. Zaczyna się od dwuliterowego kodu kraju zgodnego z normą ISO 3166 (DE dla Niemiec, PL dla Polski, FR dla Francji), po którym następują dwie cyfry kontrolne. Reszta numeru to tak zwany BBAN, czyli Basic Bank Account Number: kod banku i numer konta w formacie właściwym dla danego kraju. Format BBAN różni się znacząco między państwami, dlatego IBAN wyprodukowany w Niemczech i taki z Polski mają zupełnie inną wewnętrzną budowę, mimo że oba zaczynają się od kraju i dwóch cyfr kontrolnych.
Warto od razu rozdzielić dwie rzeczy, które ludzie regularnie mylą. IBAN identyfikuje konkretne konto bankowe, natomiast BIC (czasem nazywany kodem SWIFT) identyfikuje sam bank, jego oddział lub centralę. Przy niektórych przelewach zagranicznych potrzebne są oba numery naraz, ale to dwa różne dane opisujące dwie różne rzeczy: jeden mówi “do jakiego banku”, drugi mówi “do jakiego konkretnie rachunku w tym banku”.
I jeszcze jedna rzecz, którą trzeba mieć na uwadze: sam fakt, że IBAN przechodzi sumę kontrolną, nie oznacza, że konto o tym numerze istnieje ani że należy do osoby, której to konto rzekomo dotyczy. Weryfikacja matematyczna potwierdza wyłącznie, że numer jest poprawnie zbudowany zgodnie z algorytmem. Czy rachunek jest aktywny i czy prowadzi do właściwego odbiorcy, może potwierdzić wyłącznie bank tego odbiorcy, zwykle dopiero w momencie realizacji przelewu.
Suma kontrolna MOD-97 krok po kroku
Najlepiej zobaczyć to na konkretnej liczbie. Weźmy klasyczny przykładowy niemiecki IBAN, używany na całym świecie właśnie jako wzorcowy przykład w dokumentacji bankowej:
DE89 3704 0044 0532 0130 00
Sprawdzenie sumy kontrolnej przebiega w trzech krokach.
Krok 1: usuń spacje i przenieś pierwsze cztery znaki na koniec.
Po usunięciu spacji numer wygląda tak: DE89370400440532013000. Pierwsze cztery znaki to DE89. Przenosimy je na sam koniec ciągu, a to, co zostaje z przodu, przesuwa się do początku. Wynik tej operacji to:
370400440532013000DE89
Krok 2: zamień każdą literę na liczbę. Zgodnie z ISO 13616, litery zamieniane są na liczby dwucyfrowe według reguły A=10, B=11, C=12 i tak dalej aż do Z=35. W naszym przestawionym ciągu litery to D i E. D odpowiada liczbie 13, E odpowiada liczbie 14. Po podstawieniu cały ciąg staje się jedną, dwudziestoczterocyfrową liczbą:
370400440532013000131489
Krok 3: podziel tę liczbę przez 97 i sprawdź resztę.
Można to policzyć cyfra po cyfrze, przechodząc od lewej do prawej i za każdym razem licząc reszta = (reszta × 10 + kolejna_cyfra) mod 97, albo po prostu podzielić całą dwudziestoczterocyfrową liczbę przez 97 kalkulatorem obsługującym duże liczby. Wynik tego dzielenia to reszta równa 1. Norma ISO 13616 wymaga dokładnie tego: poprawny IBAN zawsze, bez wyjątku, daje resztę 1 przy tym dzieleniu. Skoro nasz przykład to spełnia, ten IBAN jest matematycznie prawidłowy.
Zobaczmy teraz, co się dzieje, gdy ktoś pomyli się przy przepisywaniu tylko jednej, ostatniej cyfry. Zamiast ...0130 00 wpisuje ...0130 01:
DE89 3704 0044 0532 0130 01
Powtarzając dokładnie te same trzy kroki (przestawienie, zamiana liter, dzielenie przez 97), otrzymujemy tym razem resztę równą 28, a nie 1. Poniższa tabela pokazuje oba przypadki obok siebie:
| Oryginalny IBAN | IBAN z literówką | |
|---|---|---|
| Numer | DE89 3704 0044 0532 0130 00 | DE89 3704 0044 0532 0130 01 |
| Po przestawieniu i zamianie liter | 370400440532013000131489 | 370400440532013001131489 |
| Reszta z dzielenia przez 97 | 1 | 28 |
| Wynik weryfikacji | Poprawny | Niepoprawny |
Różnica to jedna cyfra na końcu dwudziestoczteroznakowego numeru, a mimo to wynik dzielenia przeskakuje z 1 na 28. Właśnie na tym polega siła tego algorytmu: niemal każda pomyłkowo wpisana cyfra albo przypadkowo przestawione dwie cyfry zmieniają resztę na coś innego niż 1, więc narzędzie od razu oznacza taki numer jako niepoprawny, zanim przelew w ogóle trafi do banku.
Sprawdź swój własny numer IBAN
Wklej dowolny numer IBAN poniżej, a zobaczysz na żywo, czy jego długość zgadza się z krajem i czy przechodzi sumę kontrolną MOD-97, dokładnie według tych samych kroków opisanych wyżej.
Częste błędy
Zakładanie, że każdy ciąg 15-34 znaków zaczynający się od dwóch liter to poprawny IBAN. Każdy kraj ma dokładnie jedną, stałą długość IBAN, nigdy zakres. Niemcy mają zawsze 22 znaki, Francja zawsze 27, Polska zawsze 28. Norwegia ma najkrótszy IBAN spośród wszystkich krajów, tylko 15 znaków. Numer o niewłaściwej liczbie znaków dla danego kraju jest nieprawidłowy, nawet jeśli przypadkiem przeszedłby sumę kontrolną.
| Kraj | Kod | Długość IBAN |
|---|---|---|
| Norwegia | NO | 15 |
| Polska | PL | 28 |
| Niemcy | DE | 22 |
| Francja | FR | 27 |
Mylenie IBAN z kodem BIC/SWIFT. To dwa oddzielne identyfikatory, opisane wyżej: IBAN wskazuje konto, BIC wskazuje bank. Podanie prawidłowego BIC zamiast IBAN (albo odwrotnie) w polu formularza przelewu kończy się błędem, nawet jeśli oba numery, każdy z osobna, są poprawne.
Zakładanie, że zaliczona suma kontrolna dowodzi istnienia konta. To najczęstsze błędne założenie. Suma kontrolna MOD-97 potwierdza wyłącznie budowę matematyczną numeru, nic więcej. Nie potwierdza, że rachunek jest otwarty, że należy do konkretnej firmy czy osoby, ani że bank w ogóle rozpoznaje taki numer konta. To może zweryfikować jedynie bank odbiorcy w momencie przetwarzania przelewu.
Mylenie litery O z cyfrą 0 albo I czy l z cyfrą 1 przy ręcznym przepisywaniu. To częsty problem przy przepisywaniu numeru z papieru, e-maila albo zdjęcia dokumentu. Trzeba jednak zaznaczyć, że w wielu krajach litery są prawidłową częścią sekcji BBAN, więc obecność litery w środku numeru wcale nie musi być błędem, to zależy od formatu danego kraju. Problem pojawia się dopiero, gdy ktoś nieświadomie zamienia jeden znak na wizualnie podobny inny.
Najczęściej zadawane pytania
Czym dokładnie jest suma kontrolna MOD-97? To metoda weryfikacji opisana w normie ISO 13616. Pierwsze cztery znaki numeru IBAN przenosi się na koniec, każdą literę zamienia na dwucyfrową liczbę według reguły A=10 aż do Z=35, a otrzymaną w ten sposób bardzo dużą liczbę dzieli przez 97. Jeśli reszta z tego dzielenia wynosi 1, numer jest matematycznie poprawny. Jeśli wynosi cokolwiek innego, numer zawiera błąd.
Czy zaliczona suma kontrolna oznacza, że konto naprawdę istnieje? Nie. Suma kontrolna to test strukturalny, sprawdza wyłącznie, czy numer został poprawnie skonstruowany według wzoru matematycznego. Ktoś mógłby wygenerować losowy, zmyślony numer, który spełnia MOD-97, a mimo to nie odpowiada żadnemu realnie istniejącemu rachunkowi. Jedyną instytucją zdolną potwierdzić istnienie i właściciela konta jest bank prowadzący ten rachunek.
Dlaczego różne kraje mają różną długość numeru IBAN? Bo długość IBAN wynika bezpośrednio z krajowego formatu numeru rachunku bankowego (BBAN), który poszczególne kraje ustalały niezależnie od siebie na długo przed powstaniem wspólnego standardu IBAN. Kraj z krótszym, prostszym systemem numeracji kont kończy z krótszym IBAN, kraj z bardziej rozbudowanym systemem, obejmującym na przykład dodatkowe cyfry kontrolne wewnątrz samego BBAN, kończy z numerem dłuższym. Stąd rozpiętość od 15 znaków w Norwegii do ponad 30 w niektórych innych krajach.
Czy ta weryfikacja wychwytuje absolutnie każdy możliwy błąd wpisywania? Nie w stu procentach, choć w praktyce wyłapuje zdecydowaną większość pomyłek. Pojedyncza błędnie wpisana cyfra prawie zawsze zmienia resztę z dzielenia przez 97 na coś innego niż 1, tak jak w przykładzie wyżej. Teoretycznie jednak da się skonstruować rzadki, szczególny przypadek: pewne przestawienie dwóch konkretnych cyfr może akurat zostawić resztę równą 1 czystym zbiegiem okoliczności, mimo że numer jest błędny. Takie przypadki są w praktyce bardzo rzadkie, ale to dlatego ostateczne potwierdzenie zawsze powinno pochodzić od banku odbiorcy, a nie tylko z samej sumy kontrolnej.