Walidacja IBAN: jak działa suma kontrolna?
IBAN zawiera wbudowany mechanizm wykrywania błędów. Zrozumienie działania sumy kontrolnej mod-97 pozwala wykrywać błędy zanim zablokują Twoje płatności.
Czym jest IBAN?
IBAN (International Bank Account Number) to międzynarodowo znormalizowany numer rachunku bankowego zdefiniowany przez normę ISO 13616. Jest używany w strefie SEPA i w ponad 80 krajach do jednoznacznej identyfikacji rachunku bankowego.
IBAN składa się z: 2-literowego kodu kraju, 2-cyfrowej cyfry kontrolnej (sumy kontrolnej) oraz Basic Bank Account Number (BBAN), którego format różni się w zależności od kraju. Na przykład belgijski IBAN ma 16 znaków: BE68539007547034.
Cyfry kontrolne (pozycje 3–4) są obliczane za pomocą algorytmu mod-97, co pozwala wykrywać błędy przepisywania przed złożeniem płatności w sieci bankowej.
Jak działa suma kontrolna mod-97
Suma kontrolna IBAN wykorzystuje algorytm modulo-97 (ISO 7064). Aby zweryfikować IBAN:
- 1Przenieś pierwsze 4 znaki na koniec ciągu
- 2Zastąp każdą literę jej odpowiednikiem numerycznym (A=10, B=11, ..., Z=35)
- 3Oblicz resztę z dzielenia tej liczby przez 97
- 4IBAN jest prawidłowy, jeśli reszta wynosi 1
Ta prosta weryfikacja matematyczna wykrywa 98% błędów jednego znaku przy przepisywaniu — co czyni ją jednym z najskuteczniejszych mechanizmów walidacji w systemach finansowych.
Typowe błędy IBAN
Oto najczęstsze błędy spotykane w plikach płatności SEPA:
Nieprawidłowa suma kontrolna
Błąd literowy w numerze rachunku zmienia wynik mod-97. Nawet błąd jednej cyfry jest wykrywany.
Nieprawidłowy format kraju
Każdy kraj ma ustaloną długość IBAN. Belgijski IBAN zawsze ma 16 znaków, a francuski 27. Błędna długość jest natychmiast nieprawidłowa.
Spacje i formatowanie
IBAN-y są czasem zapisywane ze spacjami co 4 znaki dla czytelności (BE68 5390 0754 7034). W plikach płatności muszą być wysyłane bez spacji.
Brakujące lub nadmiarowe znaki
IBAN-y mają ustaloną długość dla każdego kraju. Dodanie lub usunięcie znaku zawsze łamie sumę kontrolną.
Małe litery
Standard IBAN wymaga wyłącznie wielkich liter. Niektóre systemy odrzucają IBANy z małymi literami, mimo że suma kontrolna byłaby identyczna.
Mylenie O/0 lub I/1
Litera O i cyfra 0, lub I i 1, są często mylone. Suma kontrolna to wykrywa, ale komunikat błędu może nie być oczywisty.
Formaty IBAN według krajów
Każdy kraj SEPA ma własną długość IBAN i strukturę BBAN. Poniższa tabela przedstawia najczęstsze formaty europejskie:
| Kraj | Kod | Długość | Format BBAN | Przykład |
|---|---|---|---|---|
| Belgia | BE | 16 | 3n 7n 2n | BE68 5390 0754 7034 |
| Francja | FR | 27 | 5n 5n 11c 2n | FR76 3000 6000 0112 3456 7890 189 |
| Niemcy | DE | 22 | 8n 10n | DE89 3704 0044 0532 0130 00 |
| Holandia | NL | 18 | 4a 10n | NL91 ABNA 0417 1643 00 |
| Hiszpania | ES | 24 | 4n 4n 1n 1n 10n | ES91 2100 0418 4502 0005 1332 |
| Włochy | IT | 27 | 1a 5n 5n 12c | IT60 X054 2811 1010 0000 0123 456 |
| Portugalia | PT | 25 | 4n 4n 11n 2n | PT50 0002 0123 1234 5678 9015 4 |
| Austria | AT | 20 | 5n 11n | AT61 1904 3002 3457 3201 |
| Luksemburg | LU | 20 | 3n 13c | LU28 0019 4006 4475 0000 |
| Irlandia | IE | 22 | 4a 6n 8n | IE29 AIBK 9311 5212 3456 78 |
| Finlandia | FI | 18 | 3n 11n | FI21 1234 5600 0007 85 |
| Polska | PL | 28 | 8n 16n | PL61 1090 1014 0000 0712 1981 2874 |
| Szwajcaria | CH | 21 | 5n 12c | CH93 0076 2011 6238 5295 7 |
| Szwecja | SE | 24 | 3n 16n 1n | SE45 5000 0000 0583 9825 7466 |
| Dania | DK | 18 | 4n 9n 1n | DK50 0040 0440 1162 43 |
Ta lista obejmuje główne kraje SEPA. Pełne informacje można znaleźć w SWIFT IBAN Registry, publikowanym kwartalnie.
Walidacja IBAN w plikach płatności SEPA
Podczas generowania plików XML SEPA (pain.001 lub pain.008) każdy IBAN w pliku musi przejść weryfikację mod-97. Banki odrzucą całą paczkę, jeśli choćby jeden IBAN będzie nieprawidłowy.
Dlatego wstępna walidacja IBAN-ów przed wygenerowaniem pliku płatności jest kluczowa. Konwerter SEPA ValidateFin automatycznie waliduje każdy IBAN podczas importu CSV.
Poza sumą kontrolną niektóre banki weryfikują również, czy część BBAN odpowiada ich wewnętrznej strukturze routingu. Ta weryfikacja drugiego poziomu jest specyficzna dla banku i nie może być wykonana samym algorytmem mod-97.
Waliduj swoje IBAN-y bezpłatnie
Nasz walidator IBAN sprawdza sumę kontrolną mod-97, format kraju i długość — natychmiast, bez wysyłania jakichkolwiek danych na serwer.
Otwórz Walidator IBANCzęsto zadawane pytania
Jak działa algorytm sumy kontrolnej IBAN mod-97?
Algorytm mod-97 waliduje IBAN przez: przeniesienie pierwszych 4 znaków (kod kraju + cyfry kontrolne) na koniec, konwersję wszystkich liter na liczby (A=10, B=11...Z=35), a następnie obliczenie reszty z dzielenia przez 97. Prawidłowy IBAN zawsze daje resztę równą 1.
Które kraje używają IBAN i jakie są różne formaty?
Ponad 80 krajów używa IBAN, przy czym wszystkie 36 krajów SEPA go wymaga. Formaty są różne: belgijskie IBANy mają 16 znaków, francuskie 27, niemieckie 22, a holenderskie 18. Każdy kraj ma specyficzne reguły struktury BBAN.
Czy IBAN może przejść walidację sumy kontrolnej, ale nadal być nieprawidłowy?
Tak. Suma kontrolna mod-97 weryfikuje integralność matematyczną, ale nie może potwierdzić, że konto istnieje w prawdziwym banku. Przy przetwarzaniu płatności zawsze uzupełniaj walidację sumy kontrolnej usługą wstępnej walidacji banku.
Dlaczego mój IBAN nie przechodzi walidacji, mimo że wygląda poprawnie?
Częste przyczyny to: niewidoczne znaki (spacje niełamliwe, tabulatory), nieprawidłowy kod kraju, mieszane wielkości liter lub błąd kopiuj-wklej, który zmienił cyfrę. Spróbuj usunąć wszystkie spacje i ponownie sprawdzić sumę kontrolną.
Czy walidacja IBAN wystarczy, aby zagwarantować powodzenie płatności?
Nie. Walidacja IBAN potwierdza integralność matematyczną, ale konto może być zamknięte, zablokowane lub należeć do innej osoby. Przy płatnościach o wysokiej wartości poproś beneficjenta o potwierdzenie IBAN zweryfikowanym kanałem.
Co się stanie, jeśli złożę plik SEPA z nieprawidłowym IBAN?
Bank odrzuci cały plik płatności lub poszczególną transakcję, w zależności od rodzaju błędu. Większość banków waliduje IBANy w momencie złożenia i zwraca komunikat pain.002 (raport statusu) wskazujący przyczynę odrzucenia.
Czy mogę walidować IBANy hurtowo?
Tak. Walidator IBAN ValidateFin akceptuje wiele IBANów jednocześnie. Możesz również skorzystać z konwertera CSV do SEPA, który automatycznie waliduje wszystkie IBANy podczas importu.
Czy wszystkie kraje używają tego samego formatu IBAN?
Nie. Każdy kraj definiuje własną długość IBAN i strukturę BBAN. Belgijskie IBANy mają 16 znaków, francuskie 27, niemieckie 22 itd. Pierwsze dwie litery to zawsze kod kraju ISO.
Czy BIC jest wymagany obok IBAN?
W strefie SEPA BIC jest zasadniczo opcjonalny dla przelewów krajowych od 2016 roku. Pozostaje jednak obowiązkowy dla płatności transgranicznych do krajów spoza SEPA i może być wymagany przez niektóre banki.
Jaka jest różnica między IBAN a BBAN?
BBAN (Basic Bank Account Number) to krajowy format numeru rachunku. IBAN otacza BBAN kodem kraju i 2 cyframi kontrolnymi, tworząc międzynarodowo znormalizowany format. BBAN to zawsze część po pierwszych 4 znakach IBAN.