Najważniejsze w skrócie
- Czym jest MT940
- Komunikat SWIFT z wyciągiem bankowym zapisany jako plik tekstowy; każda informacja ma swój znacznik, np. :61: (transakcja) i :86: (jej opis).
- Pola wyciągu
- :20: referencja, :25: rachunek, :28C: numer wyciągu, :60F: saldo początkowe, :61: transakcja, :86: opis, :62F: saldo końcowe, :64: saldo dostępne.
- Daty
- RRMMDD w saldach i dacie waluty, MMDD w dacie księgowania (pole :61:).
- Kwoty
- Przecinek dziesiętny, bez separatora tysięcy; strona operacji osobno: C – uznanie, D – obciążenie, RC i RD – storna.
- Polskie znaki
- Według dokumentacji banków: CP852 (PKO BP iPKO biznes, ING Business, Millennium), ISO-8859-2 (mBank).
- Rozszerzenia plików
- .sta, .txt, .mt940, .940 — rozszerzenie zależy od banku, zawartość jest zwykłym tekstem.
- Wynik narzędzia
- CSV w UTF-8 z BOM, separator średnik, kwoty ze znakiem i przecinkiem dziesiętnym, daty RRRR-MM-DD.
- Prywatność
- Plik jest analizowany w przeglądarce i nie trafia na żaden serwer.
Jak otworzyć plik MT940 w Excelu?
Excel nie ma importu MT940, bo to nie jest plik tabelaryczny, tylko tekst z polami oznaczonymi znacznikami (np. :61: dla transakcji). Najprostsza droga to zamiana MT940 na CSV, a dopiero potem otwarcie CSV w Excelu. Konwerter powyżej robi to w trzech krokach:
- Wczytaj plik wyciągu (
.sta,.mt940,.940,.txt) albo kilka plików naraz. - Sprawdź podsumowanie: salda, liczbę i sumę uznań oraz obciążeń, kontrolę salda.
- Kliknij „Pobierz CSV (Excel)” i otwórz plik.
Plik CSV ma kodowanie UTF-8 ze znacznikiem BOM (dzięki temu Excel poprawnie pokazuje polskie litery), średnik jako separator kolumn i kwoty z przecinkiem dziesiętnym. Kwoty mają znak: dodatnie to uznania (wpływy), ujemne to obciążenia (wydatki), więc suma kolumny „Kwota” od razu daje zmianę salda.
Jeśli po dwukliku cały wiersz ląduje w jednej kolumnie, Excel używa innego separatora listy niż średnik. Microsoft opisuje dwie drogi: zmianę separatora listy w ustawieniach regionalnych Windows albo import przez Dane → Z tekstu/pliku CSV, gdzie ogranicznik wybierasz ręcznie. Przy imporcie ustaw kolumny „Referencja klienta” i „Referencja banku” jako Tekst. Excel przechowuje liczby z dokładnością do 15 cyfr, więc 16-cyfrowa referencja zapisana jako liczba straciłaby ostatnią cyfrę.
Czym jest format MT940 i jak jest zbudowany?
MT940 (Customer Statement Message) to standard komunikatu SWIFT, w którym bank przekazuje wyciąg z rachunku: saldo otwarcia, wszystkie operacje z danego okresu i saldo zamknięcia. Polskie banki udostępniają go firmom w bankowości internetowej jako plik tekstowy do importu w programach finansowo-księgowych. W jednym pliku może być kilka wyciągów, np. po jednym na każdy dzień roboczy albo na każdy rachunek.
Każda informacja zaczyna się od znacznika w dwukropkach. Najważniejsze pola:
| Znacznik | Znaczenie | Przykład |
|---|---|---|
:20: | Referencja wyciągu nadana przez bank (w PKO BP stała wartość „MT940”, w mBanku data i numer, np. ST050112CYC/1) | :20:MT940 |
:25: | Numer rachunku, którego dotyczy wyciąg (IBAN, czasem poprzedzony ukośnikiem) | :25:/PL08114020040000320276153301 |
:28C: | Numer wyciągu, zwykle kolejny w danym roku | :28C:00185/1 |
:60F: / :60M: | Saldo początkowe: C (dodatnie) lub D (ujemne), data RRMMDD, waluta, kwota | :60F:C260929PLN48210,40 |
:61: | Linia transakcji: daty, strona, kwota, kod typu, referencje | :61:2609290929CN12300,00NTRF… |
:86: | Opis transakcji: tytuł, kontrahent, jego rachunek | :86:051~00PRZELEW… |
:62F: / :62M: | Saldo końcowe (budowa jak :60F:) | :62F:C260929PLN57615,90 |
:64: | Saldo dostępne (informacyjne) | :64:C260929PLN57615,90 |
Litera M w :60M: i :62M: oznacza saldo pośrednie. Pojawia się, gdy wyciąg za jeden dzień jest podzielony na kilka komunikatów — mBank opisuje to przy MT940 wysyłanych siecią SWIFT.
Jak czytać pole :61: — datę, kwotę i stronę operacji?
Pole :61: ma stały układ, bez separatorów między częściami, dlatego trudno je czytać gołym okiem. Według dokumentacji mBanku, PKO BP, ING i Millennium kolejne części to:
- Data waluty — 6 cyfr RRMMDD.
- Data księgowania — 4 cyfry MMDD (bez roku; na przełomie roku może przypadać na inny rok niż data waluty).
- Strona operacji — C (uznanie), D (obciążenie), RC (storno uznania) albo RD (storno obciążenia).
- Trzecia litera kodu waluty — np. N dla PLN, R dla EUR (nie w każdym banku).
- Kwota — z przecinkiem dziesiętnym, bez znaku i bez separatora tysięcy.
- Kod typu transakcji — w mBanku litera N i trzy znaki (np.
NTRF– przelew,NCHG– opłata), w PKO BP litera N i trzycyfrowy kod operacji, w ING Business litera S i trzy cyfry. - Referencja klienta — do 16 znaków nadanych przez zlecającego (np. identyfikator płatności z programu księgowego) albo
NONREF, gdy jej brak. - Referencja banku — po dwóch ukośnikach
//.
Druga linia pola :61: bywa dodatkowym opisem, np. w mBanku numerycznym kodem operacji z nazwą (944-PRZEL.KRAJ.WYCH.MT.ELX).
Uwaga na podobne zapisy: w :61:2610021002CR10000,00 litera R nie oznacza storna, tylko trzecią literę waluty EUR — operacja to zwykłe uznanie. Storno ma literę R przed C lub D (RC, RD).
Co zawiera pole :86: i dlaczego każdy bank zapisuje je inaczej?
Pole :86: niesie to, czego najczęściej szukasz: tytuł przelewu, nazwę kontrahenta i jego rachunek. W komunikacie SWIFT to do 6 wierszy po 65 znaków, a wewnętrzny układ każdy bank opisuje we własnej dokumentacji formatu. Większość dzieli pole na numerowane podpola: na początku jest kod operacji banku, a dalej znacznik i dwucyfrowy numer podpola, np. ~20. Typowe podpola na przykładzie dokumentacji PKO BP:
| Podpole | Zawartość |
|---|---|
~00 | Typ operacji — kod lub opis, zależnie od banku |
~20–~25 | Tytuł operacji, do 27 znaków w każdym podpolu |
~30 | Numer rozliczeniowy banku kontrahenta |
~31 | Numer rachunku kontrahenta w jego banku (znaki 11–26 NRB) |
~32–~33 | Nazwa i adres kontrahenta |
~38 | Rachunek kontrahenta w formacie IBAN |
Tytuł jest cięty na odcinki o stałej długości, więc słowo potrafi zaczynać się w ~20 i kończyć w ~21. Konwerter skleja pełne odcinki bez spacji, a krótsze ze spacją — tak samo jak parser w aplikacji fakturoza.pl.
Różnice między bankami według ich dokumentacji formatu:
| Bank (system) | Pole :86: | Kodowanie polskich znaków |
|---|---|---|
| PKO BP (iPKO biznes) | podpola po znaku ~; puste podpole wypełnia znak ASCII 255 | CP852 |
| ING (ING Business) | podpola po znaku ~; dwa pola :86: na transakcję, nazwa kontrahenta w ~32–~33 | CP852 |
| Bank Millennium (wyciąg dla Przelewów VAT) | podpola po znaku <; nazwa i adres kontrahenta w <27–<29 | CP852 |
| mBank | ciągły tekst: części rozdzielone średnikiem, ze słowami kluczowymi „OD:”, „DLA:”, „TYT.:” | ISO-8859-2 |
Gdy bank pisze opis wolnym tekstem, konwerter przenosi go w całości do kolumny „Tytuł”, a numer rachunku kontrahenta wyszukuje w treści.
Przykład: jedna transakcja :61: i :86: rozpisana na części
Fragment przykładowego wyciągu (przycisk „Wczytaj przykładowy wyciąg” powyżej):
:61:2609290929DN5350,00NTRFZAP-0929-01//2609290000003
:86:020~00PRZELEW WYCHODZĄCY~20Zapłata za FV/341/09/2026
~27DRUKARNIA ŚLĄZAK SP. J.
~3861109010140000071219812874
| Fragment | Znaczenie |
|---|---|
260929 | data waluty: 29.09.2026 |
0929 | data księgowania: 29.09 (rok jak w dacie waluty) |
D | obciążenie — pieniądze wypłynęły z rachunku |
N | trzecia litera waluty (PLN) |
5350,00 | kwota: 5 350,00 zł (w CSV: −5350,00) |
NTRF | kod typu: przelew |
ZAP-0929-01 | referencja klienta nadana przy zleceniu przelewu |
2609290000003 | referencja banku |
020 | kod operacji banku |
~00PRZELEW WYCHODZĄCY | opis typu operacji |
~20Zapłata za FV/341/09/2026 | tytuł — tu numer opłaconej faktury |
~27DRUKARNIA ŚLĄZAK SP. J. | nazwa kontrahenta |
~3861109010140000071219812874 | rachunek kontrahenta (IBAN bez kodu kraju) |
W CSV ta operacja to jeden wiersz: data waluty 2026-09-29, kwota −5350,00, strona „Obciążenie”, kontrahent, rachunek PL61 1090 1014 0000 0712 1981 2874, tytuł i obie referencje. W ostatniej kolumnie zostaje oryginalne pole :86: — przydaje się, gdy bank zapisał coś nietypowo.
Gdzie pobrać wyciąg MT940 w banku?
MT940 jest dostępny przede wszystkim w bankowości internetowej dla firm, często jako osobno aktywowana usługa. Ścieżki potwierdzone w materiałach banków:
- PKO Bank Polski, iPKO biznes — menu Rachunki → Raporty → Raporty standardowe. Do wyboru są formaty MT940, Elixir, Kontakt i XML camt.053. Raporty standardowe są dostępne za ostatni rok, a jednorazowo pobierzesz zakres do 3 miesięcy. Plik ma rozszerzenie
.txt, a każdy dzień roboczy to osobny wyciąg; operacje z weekendu trafiają do wyciągu za następny dzień roboczy. - ING Bank Śląski, ING Business — na liście rachunków (albo na liście wyciągów) zaznacz pozycje i kliknij Pobierz wyciągi (MT940). Gotowe pliki są w Pliki do pobrania jako archiwum ZIP, które trzeba rozpakować. Lista przechowuje do 5 plików z ostatnich 2 dni.
- mBank — usługę włącza się w serwisie transakcyjnym: Finanse → Historia → raport MT940 → Włącz Raport MT940. Usługa jest płatna; strona banku podaje 50 zł miesięcznie za jeden rachunek.
W innych bankach szukaj w bankowości firmowej opcji eksportu historii lub wyciągów do „systemów finansowo-księgowych”, „formatu MT940” albo „raportów plikowych”. Wyciąg w PDF albo historia operacji w CSV to inne formaty — konwerter ich nie odczyta.
Dlaczego w pliku MT940 są krzaczki zamiast polskich liter?
Bo banki zapisują MT940 w starszych, jednobajtowych stronach kodowych. PKO BP (iPKO biznes), ING (ING Business) i Bank Millennium podają w dokumentacji stronę kodową CP852, a mBank ISO-8859-2. Notatnik, Excel i większość programów domyślnie zakładają UTF-8 albo Windows-1250, więc „ł” czy „ą” zamieniają się w przypadkowe znaki.
Konwerter sprawdza, w którym kodowaniu (UTF-8, Windows-1250, ISO-8859-2, CP852) tekst zawiera polskie litery, a nie przypadkowe symbole, i wybiera właściwe. Rozpoznane kodowanie widać w podsumowaniu. CSV jest zawsze zapisywany w UTF-8, więc problem znika także przy dalszej pracy w Excelu.
W wyciągach PKO BP puste podpola :86: są wypełnione znakiem ASCII 255. W złym kodowaniu wygląda on jak „˙” albo „ÿ”. Konwerter traktuje takie podpole jako puste.
Jak sprawdzić, czy wyciąg MT940 jest kompletny?
Najpewniejszy test to rachunek salda. Dla każdego wyciągu musi zachodzić:
saldo początkowe (:60F:) + suma uznań − suma obciążeń = saldo końcowe (:62F:)
Konwerter liczy to w groszach (bez błędów zaokrągleń) i przy każdym wyciągu pokazuje „Zgodne” albo różnicę z saldem wyliczonym. Różnica oznacza zwykle, że plik został ucięty, ręcznie poprawiony albo zawiera tylko część wyciągu podzielonego na komunikaty z saldami pośrednimi.
Przy wielu wyciągach sprawdź też ciągłość:
- Numeracja
:28C:— w PKO BP i ING to kolejny numer wyciągu w danym roku; luka w numeracji oznacza brakujący wyciąg. - Saldo końcowe = saldo początkowe następnego wyciągu — jeśli się różnią, między nimi brakuje operacji.
- Dni bez operacji — w części banków wyciąg dzienny powstaje tylko wtedy, gdy na rachunku była operacja (tak opisuje to Bank Millennium), więc brak dnia nie zawsze oznacza błąd.
Jak uzgodnić wyciąg MT940 z fakturami?
Uzgodnienie (rozliczenie) wyciągu polega na przypisaniu każdej operacji do dokumentu: wpływu do faktury sprzedaży, wydatku do faktury kosztowej, opłaty do kosztów bankowych. W Excelu najlepiej działa taka kolejność:
- Kwota i znak — wpływy dopasuj do kwot brutto otwartych faktur sprzedaży, wydatki do faktur kosztowych. Pamiętaj o zapłatach częściowych i o jednym przelewie za kilka faktur.
- Tytuł — wyszukaj numer faktury w kolumnie „Tytuł” (np. funkcją
ZNAJDŹlub filtrem tekstowym). Kontrahenci rzadko przepisują numer dokładnie, więc szukaj też fragmentu numeru bez prefiksu. - Rachunek kontrahenta — gdy tytuł nic nie mówi, porównaj rachunek nadawcy z rachunkami kontrahentów w kartotece.
- Referencja klienta — przy przelewach wychodzących zleconych z programu księgowego referencja wraca w
:61:i jednoznacznie wskazuje zlecenie. - Opłaty i odsetki — operacje bez kontrahenta (kody typu
NCHG,NCOM,NINTw mBanku) księguj jako koszty lub przychody finansowe.
Przelewy w mechanizmie podzielonej płatności mają tytuł o stałej budowie, opisanej w dokumentacji PKO BP: /VAT/23,00/IDC/1251251111/INV/FV 323-2018-02-22/TXT/tekst dowolny. Po znaczniku /VAT/ jest kwota podatku, po /IDC/ identyfikator dostawcy, po /INV/ numer faktury, a po /TXT/ dowolny tekst. Numer faktury wyciągniesz więc z tytułu bez zgadywania.
Po dopasowaniu operacji porównaj sumy: suma rozliczonych wpływów i wydatków plus nierozliczone pozycje musi dać obroty z podsumowania konwertera.
MT940 czy CAMT.053 — który format wybrać?
Oba formaty niosą te same informacje, różnią się budową. MT940 to tekst z polami oznaczonymi znacznikami, CAMT.053 to plik XML według normy ISO 20022 z jednoznacznie nazwanymi elementami (osobno nazwa kontrahenta, rachunek, tytuł). mBank udostępnia CAMT.053 jako odpowiednik MT940 od lipca 2024 r. w systemach CompanyNet, MultiCash i SWIFTNet, a PKO BP w iPKO biznes generuje raporty zarówno w MT940, jak i w XML camt.053.
Jeśli program księgowy obsługuje oba, CAMT.053 jest prostszy do automatycznego przetwarzania, bo nie wymaga zgadywania, które podpole :86: zawiera nazwę kontrahenta. Jeśli przyjmuje tylko MT940 albo chcesz po prostu obejrzeć operacje w arkuszu, wybierz MT940 — ten konwerter go odczyta.
Automatyczne rozliczanie wyciągów w fakturoza.pl
W fakturoza.pl wczytujesz wyciąg MT940, a system sam łączy uznania z fakturami sprzedaży i obciążenia z kosztami: po numerze faktury lub numerze KSeF w tytule, rachunku i NIP kontrahenta oraz kwocie. Automatycznie przypisuje tylko dopasowania jednoznaczne, resztę podpowiada do zatwierdzenia; obsługuje wpłaty częściowe i jeden przelew za kilka faktur. Import MT940 i rozliczanie wpłat są w planie Firma.
Najczęstsze pytania
Czy mój wyciąg jest gdzieś wysyłany?
Nie. Plik MT940 jest odczytywany i analizowany w całości przez JavaScript w Twojej przeglądarce. Treść wyciągu nie jest wysyłana na serwer fakturoza.pl ani do nikogo innego, a po zamknięciu karty nic nie zostaje zapisane.
Dlaczego po otwarciu CSV w Excelu wszystko jest w jednej kolumnie?
Excel otwierający CSV dwuklikiem dzieli kolumny według separatora listy z ustawień regionalnych systemu. Jeśli masz tam przecinek zamiast średnika, otwórz plik przez Dane → Z tekstu/pliku CSV i wybierz średnik jako ogranicznik.
Skąd krzaczki zamiast polskich liter w pliku MT940?
Banki zapisują MT940 w różnych stronach kodowych: PKO BP (iPKO biznes), ING Business i Millennium podają w dokumentacji CP852, mBank ISO-8859-2. Notatnik czy Excel zakładają zwykle inne kodowanie. Konwerter rozpoznaje je sam, a CSV zapisuje w UTF-8.
Co oznaczają RC i RD w polu :61:?
To storna. RC (reversal of credit) cofa wcześniejsze uznanie, więc zmniejsza saldo rachunku. RD (reversal of debit) cofa wcześniejsze obciążenie, więc saldo zwiększa. W CSV kwoty storn mają już właściwy znak, a kolumna Strona pokazuje rodzaj operacji.
Dlaczego kontrola salda pokazuje różnicę?
Najczęściej plik jest niekompletny: urwał się przy pobieraniu, został ręcznie edytowany albo zawiera wyciąg podzielony na części z saldami pośrednimi :60M: i :62M:. Pobierz wyciąg z banku ponownie i wczytaj wszystkie części razem.
Czy mogę wczytać kilka plików naraz?
Tak. Zaznacz lub przeciągnij kilka plików jednocześnie, np. wyciągi dzienne z całego miesiąca. Każdy wyciąg dostaje własny wiersz w tabeli wyciągów z kontrolą salda, a wszystkie transakcje trafiają do jednego pliku CSV z kolumnami Plik i Numer wyciągu.
Dlaczego Excel zamienia numer referencji na 3,37E+15?
Excel przechowuje liczby z dokładnością do 15 cyfr i dłuższy ciąg cyfr traktuje jak liczbę, zastępując końcowe cyfry zerami. Importuj CSV przez Dane → Z tekstu/pliku CSV i ustaw kolumny z referencjami jako Tekst — wtedy zachowasz wszystkie cyfry.
Czym różni się MT940 od CAMT.053?
MT940 to tekstowy format SWIFT z polami oznaczonymi znacznikami, CAMT.053 to wyciąg w XML według ISO 20022. Banki oferują oba: mBank udostępnia CAMT.053 jako odpowiednik MT940 od lipca 2024 r., PKO BP w iPKO biznes generuje oba formaty raportów.
Czy konwerter obsługuje raporty MT942?
Nie. Narzędzie czyta wyciągi MT940, które mają saldo początkowe :60F: i końcowe :62F:, bo na nich opiera się kontrola kompletności. Raport śróddzienny MT942 ma inną budowę — do rozliczeń księgowych pobierz z banku wyciąg dzienny MT940.
Dlaczego przy części transakcji brakuje nazwy kontrahenta?
Część banków nie dzieli pola :86: na podpola, tylko zapisuje opis jako ciągły tekst ze słowami kluczowymi, jak „DLA:” czy „TYT.:” w mBanku. Wtedy cały opis trafia do kolumny Tytuł, a rachunek kontrahenta jest wyszukiwany w tekście.
Źródła
- PKO Bank Polski — Struktura plików wyjściowych. Raporty plikowe iPKO biznes (MT940, camt.053)
- mBank — Description of the MT940 daily statement file format, wersja 1.6
- mBank — Wyciągi MT940 (usługa dla firm)
- mBank — Wyciągi w formacie ISO 20022 (CAMT.053)
- ING Bank Śląski — Opis formatów plików importu i eksportu w ING Business (MT940)
- ING Bank Śląski — Jak pobrać kilka wyciągów równocześnie w ING Business
- Bank Millennium — Opis formatu pliku wyciągów MT940 dla Przelewów VAT
- ING — MT940/MT942 Format description (znaczniki C, D, RC, RD)
- Microsoft — Importowanie lub eksportowanie plików tekstowych (txt lub csv)
- Microsoft — Zachowywanie zer wiodących i dużych liczb w Excelu (dokładność 15 cyfr)
Aktualizacja: . Opracowanie: zespół fakturoza.pl. Narzędzie i poradnik mają charakter informacyjny i nie zastępują porady prawnej ani podatkowej.