IBAN
Z Wikipedii
IBAN to międzynarodowy standard numeracji kont bankowych (ang. International Bank Account Number - Międzynarodowy Numer Rachunku Bankowego). Utworzony został przez Europejski Komitet Standardów Bankowych (European Committee for Bank Standardisation), po czym przyjęto go jako ISO 13616. IBAN składa się z dwuliterowego ISO 3166-1 kodu kraju, po którym następują dwie cyfry sprawdzające (kontrolne), i do trzydziestu znaków alfanumerycznych określających numer rachunku, określanych jako BBAN (ang. Basic Bank Account Number - Podstawowy Numer Rachunku Bankowego). Decyzja o długości tego bloku należy do poszczególnych krajów, z tym, że dany kraj musi posiadać jedną, określoną długość. W BBAN musi się zawierać unikatowy kod identyfikujący bank, o określonej długości i określonej cyfrze od której się on rozpoczyna. Jego pozycja i długość również zależy od danego kraju.
W transakcjach elektronicznych kod IBAN powinien być przechowywany w jednym ciągu, bez spacji, jednakże w przypadku dokumentów na papierze powinien być zapisywany w grupach po cztery znaki, przy czym ostatnia grupa może mieć ich dowolną liczbę (ze względu na różną liczbę cyfr w poszczególnych krajach).
Kod IBAN został utworzony, by wspomóc obsługę płatności w Unii Europejskiej. Klienci, zwłaszcza osoby fizyczne oraz małe i średnie firmy często napotykają na problemy, związane z różnymi standardami bankowości na świecie.
Spis treści |
[edytuj] Przykłady
- Austria (20) IBAN format: ATkk BBBB BCCC CCCC CCCC
- B = kod banku, C = numer konta
- Belgia - BEkk CCCC CCCC CCKK
- 10 cyfr (C) reprezentuje bank i numer konta.
- Dania - DKkk CCCC CCCC CCCC CC
- Ostatnie 14 cyfr reprezentuje bank i numer konta.
- Pierwsze 8 cyfr to identyfikator banku, ostatnie 10 to numer konta.
- Irlandia - IEkk AAAA BBBB BBCC CCCC CC
- Pierwsze 4 znaki alfanumeryczne to początek kodu SWIFT. Następnie sześciocyfrowy kod banku i 8 cyfr numeru rachunku.
- Włochy - ITkk BBBB BBBB BBBX XXXX XXXX XXX
- Pierwsze 11 cyfr to numer banku, ostatnie 12 jest numerem konta.
- Holandia - NLkk BBBB CCCC CCCC CC
- Pierwsze 4 cyfry to numer banku, ostatnie 10 to numer rachunku.
- Polska - PLkk BBBB BBBk MMMM MMMM MMMM MMMM
- Pierwsze 2 cyfry to cyfry kontrolne. Następnych 8 cyfr to identyfikator banku-oddziału, Ostatnie 16 to numer rachunku. Wśród cyfr numeru banku, pierwsze 3 lub 4 oznaczają bank, następne 4 lub 3 oddział.
- Rumunia - ROkk BBBB CCCC CCCC CCCC CCCC
- Pierwsze 4 znaki to numer banku, ostatnie 16 reprezentują specyficzną branżę banku oraz numer rachunku, utworzone w zależności od banku (zwykle pierwsze 4 z szesnastu to numer oddziału). Niektóre banki zawierają identyfikator waluty ISO 4217 w numerze rachunku.
- Hiszpania - ESkk BBBB GGGG KKCC CCCC CCCC
- Wielka Brytania - GBkk BBBB SSSS SSCC CCCC CC
- Czterocyfrowy identyfikator banku, następnie kod oddziału (zwykle) i numer rachunku.
[edytuj] Sprawdzanie i wyliczanie cyfr kontrolnych
Algorytm sprawdzania cyfry kontrolnej:
- Weź pełen numer konta (razem z kodem kraju), bez spacji.
- Sprawdź czy zgadza się długość numeru dla danego kraju.
- Przenieś 4 pierwsze znaki numeru na jego koniec.
- Zamień litery w numerze konta na cyfry, zamieniając 'A' na 10, 'B' na 11 itd aż do 'Z' na 35.
- Potraktuj otrzymany ciąg znaków jak liczbę i wylicz resztę z dzielenia przez 97.
- Jeśli reszta jest równa 1, to numer konta ma prawidłowe cyfry kontrolne.
Program w języku Python sprawdzający cyfry kontrolne dla polskiego numeru konta, podanego jako pierwszy argument:
import sys def iban_letter2num(letter): return str(ord(letter) - ord('A') + 10) num = sys.argv[1] print num, if len(num) != 28: print "Nieprawidłowa długość numeru - powinno być 28 znaków razem z kodem kraju, jest %d" % len(num) else: num = num[4:] + iban_letter2num(num[0]) + iban_letter2num(num[1]) + num[2:4] n = int(num) if n % 97 == 1: print "ok" else: print "zła suma kontrolna"
Algorytm wyliczania cyfry kontrolnej:
- Stwórz numer konta składający się z kodu kraju, dwóch cyfr 0 a następnie numeru konta.
- Przenieś 4 pierwsze znaki numer konta na jego koniec.
- Zamień litery w numerze konta na cyfry, zamieniając 'A' na 10, 'B' na 11 itd. aż do 'Z' na 35.
- Potraktuj otrzymany ciąg znaków jak liczbę i wylicz resztę z dzielenia przez 97.
- Otrzymany wynik odejmij od 98, jeśli jest to liczba jednocyfrowa, dodaj na początku zero.