Skąd się wziął format i czyj opis obowiązuje
Elixir to prowadzony przez KIR system rozliczeń międzybankowych w złotych. Plik, który wgrywasz do bankowości, nie jest jednak wewnętrznym komunikatem izby. PKO BP pisze, że jego format jest na tym komunikacie wzorowany, a Millennium, że jest zgodny z polskim standardem Electronic Banking Council.
Dlatego ten sam układ występuje pod kilkoma nazwami: ELIXIR-O, Multicash PLI, PLI. Dla Twojego importu liczy się aktualny opis Twojego banku. mBank zastrzega wprost, że może zmienić strukturę danych bez uprzedzenia.
Znaczenie każdego z 16 pól znajdziesz w tabeli na stronie generatora, a gotowy rekord w przykładowej linii. Poniżej jest to, czego tabela nie pokazuje: jak czytać dokumentację banków i gdzie banki się rozchodzą.
Jak czytać oznaczenia w opisach banków
Każdy bank używa trochę innej notacji, a ta sama litera potrafi znaczyć co innego.
| Oznaczenie | Znaczenie | Gdzie |
|---|---|---|
M / O | pole obowiązkowe / opcjonalne | PKO BP, Alior |
W / E | pole wymagane / ewentualne | mBank |
mand. / opt. | pole obowiązkowe / opcjonalne | ING |
F / V | stała / zmienna długość | PKO BP, mBank, ING |
n | same cyfry | wszystkie banki |
a | pole tekstowe (alfanumeryczne) | PKO BP, mBank, ING |
a | tylko litery | Alior, Millennium |
x | tekst ze znakami dodatkowymi | Alior, Millennium |
4*35 | do 4 wierszy po 35 znaków | wszystkie banki |
! | dokładnie tyle znaków, np. 26!n | Alior, Millennium |
Długość w tabeli banku to często limit pola, a nie długość danych. PKO BP, mBank i ING podają dla rachunku do 34 znaków, ale polski NRB ma 26 cyfr, co wprost widać w zapisie 26!n u Aliora i Millennium.
Pól nie wolno też przesuwać. Bank rozpoznaje je po pozycji, więc puste pola 13 i 14 muszą zostać w rekordzie jako "". Pola 4 i 11 Millennium dopuszcza jako puste, a PKO BP i Alior oznaczają je jako obowiązkowe.
Gdzie banki się różnią
Przelew zwykły wygląda wszędzie podobnie: typ 110, tryb 0, klasyfikacja 51. Rozjazdy zaczynają się przy innych rodzajach zleceń.
| Bank | Express Elixir | SORBNET | Przelew do US | ZUS |
|---|---|---|---|---|
| PKO BP | pole 5: 7 | zlecenia wysokokwotowe, typ 110 | 110, kod 71 | 110, kod 51 |
| mBank | pole 5: 1 | pole 5: 5 | 190, kod 71 lub 74 | typ 110 |
| ING | brak w opisie PLI | typ 510 | 110, kod 71 | typ 110 |
| Millennium | pole 15: 41 | 110, kod 51 | 110, kod 71 | 120, kod 51 |
| Alior | brak w opisie PLI | rozszerzenie PLS | 110, kod 71 | 120, kod 51 |
Takiego rekordu nie przeniesiesz więc między bankami bez zmian. Przelewy do urzędu skarbowego mają dodatkowo własną strukturę tytułu ze znacznikami /TI/, /OKR/, /SFP/.
Podobnie jest z polem 16:
- PKO BP: referencja własna do 16 znaków, bez polskich liter.
- mBank: referencja w postaci
REF:i do 16 znaków. Dopisanie/WL!/IDC/NIP/zleca sprawdzenie rachunku na białej liście. - ING: numer referencyjny do 32 znaków. Biała lista działa tu przez tytuł, w postaci
/NIP/1234512345/tekst wolny. - Millennium: referencja między
$$$(do 16 znaków), a sprawdzenie białej listy włącza zapisIDC/NIP/. - Alior: znacznik Split Payment,
1albo0.
Także kod przelewu MPP nie wszędzie działa tak samo. W mBanku poprawny komunikat z kodem 51 lub 53 zostanie zaimportowany jako płatność podzielona. Błędny komunikat z kodem 51 stanie się zwykłym przelewem, a z kodem 53 zostanie odrzucony. mBank zabrania też wpisywania rachunków VAT w polach 6 i 7: podajesz rachunek w PLN powiązany z rachunkiem VAT. Budowę komunikatu opisuje sekcja o MPP.
Różnią się również listy dozwolonych znaków. Millennium wymaga przede wszystkim rozpoznawalnych separatorów pól, a lista x Aliora jest krótka i nie zawiera np. dwukropka ani znaku #. Jeśli tytuły mają nietypowe symbole, porównaj je z opisem banku.
Kodowanie: jak rozpoznać problem po objawach
Zalecane strony kodowe zebrano w tabeli banków. Warto jednak wiedzieć, skąd bierze się samo zniekształcenie. Ta sama litera ma w każdej stronie inny bajt:
| Litera | Windows-1250 | ISO-8859-2 | CP852 |
|---|---|---|---|
| ą | B9 | B1 | A5 |
| Ą | A5 | A1 | A4 |
| ś | 9C | B6 | 98 |
| Ś | 8C | A6 | 97 |
| ź | 9F | BC | AB |
| Ź | 8F | AC | 8D |
| ł | B3 | B3 | 88 |
Windows-1250 i ISO-8859-2 różnią się tylko przy sześciu polskich literach: Ą, ą, Ś, ś, Ź, ź. Zgadza się to z ostrzeżeniem PKO BP, które wskazuje błędy przy Ś, ź i Ą. Pozostałe litery wyglądają poprawnie, więc taki błąd łatwo przeoczyć.
Objaw podpowiada przyczynę. Oto słowo „Łąkowa” zapisane w jednej stronie i odczytane w innej:
Łškowa: psują się tylko ą, ś, ź i ich wielkie odpowiedniki. To pomylenie Windows-1250 z ISO-8859-2.ú╣kowa: psują się niemal wszystkie polskie litery, również ł. Jedna ze stron to CP852.ĹÄ…kowa: litery rozpadają się na dwa znaki. Plik jest w UTF-8, a bank czyta go jako stronę ośmiobitową.
Strona kodowa dotyczy tylko polskich znaków. Przecinki, cudzysłowy i kreska | mają wszędzie ten sam bajt, więc plik może przejść import, a mimo to mieć zniekształcone nazwy odbiorców.
Co sprawdzić przy imporcie
Opisy formatu nie prowadzą po menu bankowości, ale zawierają kilka reguł ważnych przy wgrywaniu pliku:
- Rozszerzenie: Alior rozpoznaje rodzaj zlecenia także po rozszerzeniu (PLI albo PLS). PKO BP dopuszcza dowolną nazwę pliku.
- Limit: PKO BP przyjmuje w jednym pliku do 5000 rekordów.
- Szablon: ING Business korzysta z szablonów w module Import/Eksport. W szablonie własnym ustawiasz m.in. stronę kodową.
- Drugi etap kontroli: Millennium najpierw sprawdza pola pliku, a poprawne zlecenia przenosi do wersji roboczych, gdzie można je jeszcze poprawić.
- Termin: data z pola 2 to data wykonania, a moment rozliczenia zależy od sesji Elixir.
Jeśli import się nie uda, zacznij od listy typowych błędów.
Jak generator stosuje te reguły
Generator zapisuje przelewy zwykłe i MPP: typ 110, tryb 0, klasyfikację 51 lub 53, puste pola 13 i 14, a na końcu linii CR LF. Warianty PKO BP, mBanku, Aliora i Millennium uwzględniają różnice w polach 8, 15 i 16 oraz domyślną stronę kodową. Dla ING i innych banków służy wariant standardowy.
Generator nie tworzy zleceń Express Elixir, SORBNET, przelewów do US ani ZUS. Nie zapisuje też referencji ani znaczników białej listy w polu 16. Proces od arkusza do importu opisuje poradnik Jak zrobić paczkę przelewów z Excela.
Najczęstsze pytania
Czym różni się Elixir-O od PLI?
To w praktyce ten sam format pod różnymi nazwami. ING pisze o „Multicash PLI (Elixir 0)”, Millennium o „Elixir O (Multicash PLI)”, a Alior o plikach z rozszerzeniem PLI. Szczegóły sprawdzaj w opisie swojego banku.
Czy pola 13 i 14 można pominąć?
Nie zakładaj tego. PKO BP, ING, Millennium i Alior oznaczają je jako obowiązkowe, choć puste. Tylko mBank dopuszcza opuszczanie pól ewentualnych, dlatego bezpieczniej zawsze zapisywać puste cudzysłowy.
Czy plik Elixir-O można zapisać w UTF-8?
Opisy Elixir-O z PKO BP, mBanku, Millennium i Aliora wymieniają tylko strony ośmiobitowe, a ING w tej części nie podaje konkretnej strony. Użyj kodowania wskazanego przez bank lub ustawionego w szablonie importu.
Czy w jednym pliku mogą być różne typy zleceń?
Millennium i mBank CompanyNet na to pozwalają. mBank zastrzega jednak, że system BRESOK przyjmuje w pliku jeden typ poleceń. W innych bankach sprawdź to przed przygotowaniem mieszanej paczki.
Czym otworzyć plik .pli, żeby go nie zepsuć?
Użyj edytora tekstu, w którym możesz wybrać kodowanie, i nie zapisuj pliku, jeśli tylko go przeglądasz. Excel nie nadaje się do tego, bo rozbija linię na kolumny i po zapisie zmienia układ pliku.
Źródła
- KIR — Elixir system: rozliczenia w PLN i sesje rozliczeniowe
- PKO Bank Polski — struktura pliku wejściowego ELIXIR-O (iPKO biznes)
- mBank CompanyNet — struktura zbioru importu i eksportu danych w formacie Elixir
- ING Bank Śląski — opis formatów plików importu i eksportu w ING Business
- Bank Millennium — format pliku płatności krajowych Elixir O (Multicash PLI)
- Alior Bank — import danych do systemu bankowości elektronicznej