Obsługa pól związanych z bankiem

Podczas uzupełniania danych o banku na formularzu (np. zapisu bankowego, zdarzenia w preliminarzu) program działa niejako dwuetapowo:

  • po wprowadzeniu banku, w zależności od jego ustawień, proponuje schemat numeru rachunku bankowego prawdopodobny dla tego banku. Uwzględniane są tutaj wszystkie zasady obowiązujące dla danego schematu numeracji (standardowa lub IBAN).
  • po wprowadzeniu pełnego numeru konta – sprawdza jego poprawność w zależności od ustawień flagi IBAN na formularzu (dziedziczonej z formularza banku).

Numeracja rachunków bankowych

W systemie Comarch ERP Optima obsługiwane jest zarówno stosowany wcześniej standard numeracji rachunków bankowych, jak i nowy system numeracji IBAN, który obecnie obowiązuje.

Uwaga
Format rachunku bankowego rozpoznawany jest przez system w oparciu o wartość parametru IBAN na formularzu. Wartość ta jest dziedziczona z formularza banku (parametr Bank prowadzi numerację w standardzie IBAN) – można ją jednak zmienić dla danego formularza.

Jeśli parametr jest aktywny – numer rachunku jest traktowany jako IBAN i jego poprawność jest kontrolowana wg algorytmu stosowanego dla tej numeracji.

Jeśli parametr nie jest aktywny – numer traktowany jest jako numer standardowy i sprawdzana jest poprawność segmentu NRB (wg algorytmu modulo).

Ogólnie Numer IBAN składa się z:

  • 2 znaków alfanumerycznych (kod kraju),
  • 2-cyfrowej sumy kontrolnej,
  • członu BBAN (Basic Bank Account Number). Człon BBAN zawiera kod kraju, kod zawierający cyfry i/lub znaki alfanumeryczne, który jest specyficzny dla banku, oraz numer konta. Teoretyczna maksymalna długość członu BBAN wynosi 30 znaków.

W przypadku polskich banków numer IBAN składa się z czterech segmentów:

  • sygnatury kraju (PL),
  • dwucyfrowej liczby kontrolnej,
  • ośmiocyfrowego numeru rozliczeniowego banku,
  • numeru konta klienta, który może mieć długość do 16 znaków.

Całkowita długość numeru konta w systemie IBAN wynosi 26 znaków (nie licząc separatorów) plus opcjonalnie dwa znaki na sygnaturę kraju (podawanie sygnatury kraju nie jest obowiązkowe w transakcjach krajowych).

Nowe numery mogą wystąpić w następujących postaciach:

02 10201055 1234567890123456 lub

02102010551234567890123456 lub

PL02-1020-1055-1234-5678-9012-3456

gdzie:

02 – oznacza przykładową liczbę kontrolną,

10201055 – przykładowy numer oddziału PKO BP SA,

1234567890123456 – przykładowy identyfikator rachunku klienta PKO BP S.A.

Dwa ostatnie człony razem są określane mianem numeru BBAN.

Ostatnia postać numeru (separator co 4 cyfry) może być stosowana w celu ułatwienia ustnego przekazania numeru rachunku.

Banki zagraniczne

Na formularzu banku (zakładka [Dodatkowe]) znajduje się parametr Bank zagraniczny. Jeśli parametr jest aktywny – numery rachunków w takim banku nie są walidowane (pod warunkiem, że nie jest równocześnie zaznaczony parametr IBAN).

Uwaga
Jeśli na karcie banku zaznaczony jest zarówno parametr Bank zagraniczny, jak i Bank prowadzi rachunkistandardzie IBAN – program sprawdza poprawność numeracji rachunków dla takiego banku wg algorytmu stosowanego dla numeracji IBAN dla polskich numerów rachunków (bez domyślnego uwzględniania sygnatury PL).

Kontrola poprawności numerów kont bankowych

Po wpisaniu numeru rachunku bankowego program sprawdza jego poprawność.

Czy dany numer jest numerem IBAN (parametr na danym formularzu):

Jeśli TAK (numer IBAN):

  • dla banku zagranicznego – sprawdza zgodność wpisanego numeru ze standardem IBAN
  • dla banku krajowego sprawdza zgodność ze standardem IBAN. Podczas sprawdzania (wyliczania) sumy kontrolnej zakładane jest, że numer zaczyna się od sygnatury kraju PL. Następnie z numeru wyodrębniany jest Numer Rozliczeniowy Banku i sprawdzana jest jego zgodność z algorytmem modulo.

Jeśli NIE (numer standardowy):

  • dla banku zagranicznego – nie jest sprawdzana poprawność numeru rachunku bankowego,
  • dla banku krajowego numer konta jest sprawdzany wg algorytmu modulo.

W każdym z powyższych przypadków jeśli Numer Rozliczeniowy Banku jest zgodny z algorytmem modulo program sprawdza następnie czy pole Bank zostało wcześniej wypełnione:

  • jeśli TAK – sprawdzana jest zgodność NRB z numeru rachunku z NRB z formularza banku,
  • jeśli NIE – na podstawie NRB z numeru rachunku wybierany jest bank o takim samym NRB.