MT940 z mBanku do Excela (ISO-8859-2, pole :86: bez podpól)

Plik MT940 z bankowości elektronicznej mBanku dla korporacji i MSP (np. CompanyNet) ma kodowanie ISO-8859-2, a pole :86: to ciągły tekst ze słowami kodowymi, jak „tyt.:” czy „od:”. Usługa Raport MT940 daje inny plik: UTF-8 z podpolami. Oba zamienisz na CSV, ale w pierwszym tytuł wyciągniesz dopiero formułą w Excelu.

Otwórz narzędzie: Konwerter MT940 do Excela

Dwa różne pliki pod jedną nazwą

mBank publikuje dwie specyfikacje MT940 i różnią się one niemal wszystkim, co ważne przy imporcie:

CechaBankowość elektroniczna dla korporacji i MSP (CompanyNet, MultiCash)Usługa Raport MT940 w serwisie transakcyjnym
Polskie znakiISO-8859-2UTF-8
Pole :20:data i numer, np. ST050112CYC/1stały tekst MT940
Pole :86:ciągły tekstdwa pola na operację, drugie z podpolami ~
Kod w :61:N i trzy znaki, np. NTRFS i trzy cyfry, np. S303
Zawartość plikumoże obejmować kilka rachunkówjeden rachunek, nazwa domyślna mt940_xxx_RRRRMMDD.txt

Najszybszy test: otwórz plik w edytorze tekstu i spójrz na pierwszą linię :20:. ST…CYC/1 oznacza pierwszy wariant, MT940 drugi.

Usługę Raport MT940 aktywujesz w serwisie transakcyjnym: Finanse → Historia → raport MT940 → Włącz Raport MT940. Strona banku podaje opłatę 50 zł miesięcznie za jeden rachunek.

ISO-8859-2: krzaczki, które łatwo przeoczyć

Ten plik psuje się mniej widocznie niż pliki w CP852. ISO-8859-2 i Windows-1250 mają inne kody tylko dla 6 z 18 polskich liter: ą, ś, ź, Ą, Ś, Ź. Reszta wygląda poprawnie, więc ZAKŁAD UBEZPIECZEŃ czytasz bez problemu, ale Gąsior zmienia się w G±sior, a Łódź w ŁódĽ.

Pobieżny rzut oka tego nie wyłapie. Problem wyjdzie dopiero wtedy, gdy wyszukiwanie po nazwisku nic nie znajdzie. Więcej o przyczynie przeczytasz w sekcji o krzaczkach zamiast polskich liter.

Jak czytać pole :86: bez podpól

Zamiast numerowanych podpól, opisanych w sekcji o polu :86:, mBank zapisuje ciąg danych. Przelew przychodzący według specyfikacji banku:

:86:770 Przelew krajowy; z rach.: 96106000341513020000253224;
od: PHU Test ul. Dolna 1 00-950 Warszawa; tyt.: f-ra 4545;
data stempla: 17.10.2007; TNR: 145351015641957.000001

Reguły z dokumentacji:

  • Na początku stoi kod transakcji i jego opis: 770 to przelew przychodzący z ELIXIR, 944 przelew krajowy z CompanyNet, 824 opłata za przelew.
  • Dane rozdziela średnik ze spacją, a słowo kodowe jest oddzielone od wartości spacją.
  • Słowa kodowe zależą od kodu transakcji. We wpływie masz z rach.:, od: i tyt.:, w wydatku na rach.:, dla: i tyt.:.
  • Gdy pole jest puste, jego słowo kodowe się nie pojawia. kurs: czy waluta: zobaczysz tylko przy przewalutowaniu.
  • Wielkość liter bywa różna (TYT.: i tyt.:), a specyfikacja ma też wersję angielską słów (title:, from:, for:).
  • Przy płatności podzielonej opis ma dopisek SP, a tytuł strukturę /VAT/…/IDC/…/INV/….

Wyjątek stanowi MT940 wysyłany przez sieć SWIFT: bez średników i do 6 linii po 65 znaków zamiast 15.

Tytuł i kontrahent w osobnych kolumnach Excela

W tym wariancie konwerter przenosi cały opis do kolumny „Tytuł” (K w CSV), a do „Rachunek kontrahenta” (J) trafia numer znaleziony w treści. Kolumna „Kontrahent” zostaje pusta. Sam tytuł wyciągnie formuła dla wiersza 2:

=JEŻELI.BŁĄD(USUŃ.ZBĘDNE.ODSTĘPY(FRAGMENT.TEKSTU(K2;SZUKAJ.TEKST("; tyt.:";K2)+7;SZUKAJ.TEKST(";";K2&";";SZUKAJ.TEKST("; tyt.:";K2)+1)-SZUKAJ.TEKST("; tyt.:";K2)-7));"")

SZUKAJ.TEKST nie rozróżnia wielkości liter, więc formuła działa dla tyt.: i TYT.:. Wiersze bez tytułu, np. opłaty, zostaną puste.

Nazwę nadawcy dostaniesz po zamianie "; tyt.:" na "; od:", a obu liczb 7 na 5. Dla odbiorcy wpisz "; dla:" i 6. Formuła utnie tytuł, jeśli zawiera on własny średnik, a przy opisach angielskich zmień słowo kodowe.

Przy opłatach pomaga kolumna „Referencja banku”. mBank zaznacza, że ten sam identyfikator może mieć operacja główna i powiązana z nią opłata, więc filtr po referencji pokaże przelew razem z jego kosztem.

W pliku z usługi Raport MT940 formuła nie jest potrzebna: tytuł, kontrahent i rachunek są w podpolach i trafiają do właściwych kolumn CSV.

Jak konwerter radzi sobie z plikami z mBanku

Konwerter działa w przeglądarce, a plik nie trafia na serwer. Sam rozpoznaje ISO-8859-2 i UTF-8 (a także Windows-1250 i CP852), usuwa znaki sterujące z początku i końca bloku, obsługuje oba układy :86: i zapisuje CSV w UTF-8, więc polskie litery zostają poprawne także w Excelu. Dalsze kroki opisuje sekcja o otwieraniu pliku w Excelu.

Najczęstsze pytania

Dlaczego w pliku z mBanku widzę podpola ~20, skoro :86: miało być ciągłym tekstem?

Masz drugi wariant pliku. Dokument mBanku dla usługi Raport MT940 opisuje podpola ~20–~28, dwa pola :86: na operację i UTF-8. Ciągły tekst i ISO-8859-2 dotyczą specyfikacji bankowości elektronicznej dla klientów korporacyjnych i MSP.

Dlaczego w CSV z mBanku kolumna Kontrahent jest pusta?

W wariancie z ciągłym tekstem konwerter nie dzieli opisu na części: cały trafia do kolumny Tytuł, a do kolumny Rachunek kontrahenta przechodzi numer znaleziony w treści. Nazwę kontrahenta wyciągniesz formułą z tego poradnika, szukając „; od:” albo „; dla:”.

Skąd dziwne znaki na początku i końcu bloku w pliku z mBanku?

W specyfikacji mBanku zestaw danych rachunku zaczyna się znakiem sterującym ASCII 1, a kończy myślnikiem i znakiem ASCII 3. W edytorze tekstu mogą wyglądać jak śmieci, ale należą do formatu. Konwerter usuwa je przed analizą pliku.

Czy mBank wycofuje MT940?

Bank pisze, że nie wprowadza ostatecznego terminu wycofania, ale zaleca przejście na CAMT.052 i CAMT.053. Zapowiada też, że po zmianach w systemach rozliczeniowych MT940 w CompanyNet i MultiCash nie będzie zawierać pełnych danych kontrahentów.

Źródła

Wszystkie darmowe narzędzia