Formaty wyciągów bankowych

MT940 to format wyciągu opisany przez normę SWIFT, ale każdy polski bank zapisuje go po swojemu: inaczej oddziela pola opisu operacji, inaczej numeruje tytuł, nazwę kontrahenta i rachunek, używa innej strony kodowej polskich liter. Program rozpoznaje te odmiany sam — przy imporcie wyciągu nie trzeba niczego ustawiać.
Format wyciągu przydaje się wtedy, gdy:
- bank albo Ty sam w bankowości elektronicznej przestawiłeś eksport i tytuł przelewu wczytuje się z dopiskami, bez nazwy kontrahenta albo z „krzakami” zamiast polskich liter,
- chcesz, żeby do programu trafiało coś innego niż domyślnie — np. nazwa kontrahenta razem z adresem albo tytuł bez numeru zamówienia,
- bank daje historię rachunku w pliku CSV — wtedy format mówi programowi, w której kolumnie jest data, kwota, tytuł i kontrahent.
Gdzie znaleźć formaty
- USTAWIENIA → Konfiguracja programu [F12] → Słowniki → Płatności → Formaty wyciągów bankowych,
- w oknie importu wyciągu: przycisk ołówka przy polu Format wyciągu — lista formatów otwiera się nad oknem importu, a wczytany plik od razu służy jako plik próbny do podglądu. Po zamknięciu listy okno importu odświeża listę formatów i podgląd operacji.

Lista ma przyciski Dodaj, Edytuj, Duplikuj, Usuń i Odśwież (także w menu pod prawym przyciskiem myszy) oraz wydruk i eksport do XLSX, PDF i CSV. Kolumny pokazują nazwę formatu, rodzaj pliku (MT940 albo CSV), stronę kodową, separator podpól MT940, separator pól CSV i znacznik Wbudowany.
Format wbudowany („Generyczny CSV (średnik)”) dostarcza program. Jest tylko do odczytu — nie da się go zmienić ani usunąć. Żeby go dostosować, użyj Duplikuj: kopia otwiera się jako nowy format z dopiskiem „(kopia)” w nazwie, który zmieniasz i zapisujesz. Zamknięcie kopii bez zapisu niczego nie dodaje do listy.
Format MT940

| Pole | Znaczenie |
|---|---|
| Nazwa formatu | nazwa widoczna na liście i w oknie importu, np. „Pekao – nazwa z adresem” |
| Rodzaj pliku | MT940 (SWIFT) albo CSV (tekst rozdzielany) |
| Strona kodowa | (automatycznie), UTF-8, Windows-1250, ISO-8859-2 (Latin 2), CP852 (DOS Latin 2), MAZOVIA — ustaw, gdy polskie litery wczytują się jako „krzaki” |
| Separator podpól | znak przed numerem pola w opisie operacji (~, ^, <, ?, > albo wpisany inny znak); puste = program rozpoznaje go sam |
| Kody tytułu przelewu | numery pól, z których składa się tytuł, np. 20-25 albo 20, 21, 27 |
| Kody nazwy kontrahenta | numery pól z nazwą (i ewentualnie adresem) kontrahenta, np. 32-33 |
| Kody rachunku kontrahenta | numery pól z numerem rachunku, np. 38, 31 — liczy się kolejność: bierzemy pierwsze wypełnione pole z listy |
Numery pól wpisujemy liczbami od 00 do 99, zakres z łącznikiem (20-25), kolejne pozycje po
przecinku. Tytuł i nazwę program składa w kolejności, w jakiej pola stoją w pliku. Błędny wpis
(np. 20- albo 25-20) pole oznacza na czerwono, a przy zapisie program pokazuje komunikat
i przechodzi do tego pola.
Puste pole = ustawienie automatyczne. W pustych polach kodów program podpowiada, co wtedy przyjmie (np. „automatycznie: 20-29”), a pod polami pisze to samo dla wykrytego separatora. Wystarczy więc zmienić tylko to, co ma działać inaczej — reszta zostaje jak przy rozpoznaniu automatycznym.
Podgląd na pliku próbnym
Prawa część okna pokazuje, co z pliku wyczyta bieżące, jeszcze niezapisane ustawienie:
- Plik próbny… — wskazujesz wyciąg pobrany z banku; podgląd niczego nie importuje,
- tabela operacji — data, kwota (wpływy dodatnie, wypływy ze znakiem minus), kontrahent i tytuł; zmienia się sama po każdej zmianie pola, bez klikania,
- Pola źródłowe — pola opisu zaznaczonej operacji: znacznik (np.
^20), kolumna Użyte jako (tytuł, kontrahent, rachunek, typ operacji, kod transakcji) i wartość z pliku. Tu widać, w którym polu bank zapisał to, czego szukasz.
Przykład z ilustracji: bank zapisuje nazwę kontrahenta w polach ^32–^33, a jego adres
w ^62–^63. Automatycznie program bierze samą nazwę. Po wpisaniu w Kody nazwy kontrahenta
wartości 32-33, 62-63 kontrahent wczytuje się razem z adresem — widać to od razu w podglądzie.
Format CSV

Układ pliku:
| Pole | Znaczenie |
|---|---|
| Separator pól | znak oddzielający kolumny, zwykle ; albo ,; tabulator wpisz jako \t |
| Cudzysłów | znak otaczający tekst z separatorem w środku, zwykle " |
| Pomiń wierszy | liczba linii z informacjami o rachunku przed wierszem nagłówków |
| Pierwszy wiersz to nagłówki kolumn | zaznacz, gdy pierwsza wczytywana linia zawiera nazwy kolumn |
| Format daty | np. yyyy-MM-dd, dd.MM.yyyy, dd-MM-yyyy, dd/MM/yyyy, yyyyMMdd (można wpisać inny) |
| Separator dziesiętny | , albo . |
Numery kolumn liczymy od 0 (pierwsza kolumna ma numer 0), a -1 oznacza, że pliku nie ma takiej kolumny: data księgowania, data operacji, kwota ze znakiem, Winien, Ma, tytuł, opis, kontrahent, rachunek, waluta i referencja. Kwota musi skądś pochodzić: albo jedna kolumna ze znakiem (zaznaczone Kierunek: ze znaku kwoty, minus = obciążenie), albo para kolumn Winien i Ma (odznaczone). Program wymaga też kolumny z datą księgowania.
W podglądzie Pola źródłowe pokazują kolumny pierwszego wiersza danych z numerem i nagłówkiem (np. „4 – Nadawca/Odbiorca”) oraz tym, do czego dana kolumna jest teraz przypisana — numerów nie trzeba liczyć ręcznie.
Jak dobrać kody pól MT940 dla banku
Gdy pola kodów są puste, program stosuje ustawienia zależne od separatora wykrytego w pliku:
| Separator | Banki (przykłady) | Tytuł | Kontrahent | Rachunek |
|---|---|---|---|---|
~ | ING, PKO BP, mBank (bankowość detaliczna) | 20-28 | 32-33 | 38, 29 |
^ | Pekao, BNP Paribas | 20-29 | 32-33 | 38, 31 |
< | Millennium, Alior, Nest Bank, banki spółdzielcze | 20-26 | 27-28 (gdy puste: 32-33) | 38 |
? | Erste (format „zgodny z DB”), Citi | 25 | 24 | 23 |
> | Erste (.mt940x), Raiffeisen, Credit Agricole | 20-25 | 32-33 | 31, 38 |
Separator spoza tej listy (wpisany ręcznie) dostaje ustawienia jak dla >.
Niektóre banki nie używają numerowanych pól wcale — program rozpoznaje je po treści:
słowa kodowe /PY/, /BN/ (Citi), /REMI/, /BENM/ (BNP), etykiety „od:”, „dla:”, „tyt.:”
(mBank CompanyNet), „Nadawca”, „Tytuł przelewu” (Credit Agricole) albo kolejne linie bez znaczników
(VeloBank, część banków spółdzielczych). Dla takich plików format przydaje się głównie do ustawienia
strony kodowej. Jeśli plik Citi albo Credit Agricole ma numerowane pola, a w formacie wpiszesz
kody pól, program bierze dane z tych pól zamiast szukać słów kodowych.
Strony kodowe podawane przez banki w specyfikacjach MT940: CP852 (ING, iPKO biznes, Millennium, Alior), ISO-8859-2 (mBank CompanyNet), MAZOVIA (systemy SoftNet banków spółdzielczych), Windows-1250 albo UTF-8. Program wybiera ją sam; ręczne ustawienie jest potrzebne tylko wtedy, gdy polskie litery wczytują się błędnie.
Uwagi
- Zmiana formatu nie dubluje operacji. To, czy operacja jest już w programie, program ocenia na podstawie odczytu pliku bez formatu użytkownika. Ten sam wyciąg wczytany raz z formatem, a raz bez niego (albo po zmianie formatu) daje przy drugim imporcie same „duplikaty”.
- Format działa przy kolejnych importach. Operacje zaimportowane wcześniej zostają takie, jakie były — format ich nie poprawia.
- Formaty są zapisywane w bazie danych, więc przy pracy kilku stanowisk na wspólnej bazie wszyscy widzą te same formaty.
Import wyciągu krok po kroku opisuje strona Wyciągi bankowe.
Czy ta strona była pomocna?