OPT070 – Formaty elektronicznej wymiany danych z bankiem (eksport/ import przelewów)

image_print

Data aktualizacji: 20-07-2020

O Elektronicznej Wymianie Danych

Program Comarch ERP Optima umożliwia zarówno import zrealizowanych przelewów bankowych do programu
z pliku dostarczonego przez bank, jak i eksport poleceń przelewu do pliku, który następnie można zaczytać
w aplikacji bankowej.

Oprócz eksportu/importu przelewów poprzez pliki istnieje również możliwość wymiany danych bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową a Comarch ERP Optima.

Jak wykonać import poleceń przelewu?

W celu zaimportowania zapisów z pliku z banku należy wejść w Kasa/Bank/ Zapisy kasowe/bankowe, następnie
w polu Rejestr wybrać odpowiedni rejestr bankowy i w polu Raport odpowiedni raport, do którego ma być wykonany import zapisów oraz nacisnąć na ikonę „Importuj polecenia przelewu.

Po naciśnięciu na ikonę „Importuj polecenia przelewu” pojawi się okno „Import przelewów”, w którym należy uzupełnić następujące dane:

  1. Format wymiany – z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku uzyskanego z banku; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący.
  2. Plik źródłowy – należy wskazać właściwy plik do zaczytania. Służy do tego ikona  (pole pokazuje ścieżkę dostępu do pliku, z którego wykonywany jest import)
  3. Definicja KP – symbol numeracji dla dokumentów typu przychód
  4. Definicja KW – symbol numeracji dla dokumentów typu rozchód

Jeżeli jako format wymiany wybierzemy format MT940 pojawią się 2 dodatkowe parametry:

  • Dodawaj zapisy dotyczące innych rachunków – wyciąg w formacie MT-940 może zawierać dane dotyczące wielu rachunków, jednak jest on importowany do raportu dotyczącego jednego rejestru, czyli jednego rachunku bankowego. W związku z tym istnieje możliwość zaznaczenia parametru Dodawaj zapisy dotyczące innych rachunków. Jeżeli przed importem zaznaczymy parametr, zostaną wczytane wszystkie przelewy znajdujące się w importowanym pliku. Jeżeli parametr będzie odznaczony ‑ zaimportowane zostaną tylko przelewy powiązane z rachunkiem dotyczącym rejestru, do którego importowane są dane.
  • Strona kodowa – określenie strony kodowej – wybór spośród następujących możliwości: Windows (1250), Latin II, iso-8859-2, Mazovia, UTF8 (ustawienie właściwego kodowania ma wpływ na prawidłowe rozpoznawanie polskich znaków przy imporcie).

Po uzupełnieniu wszystkich pól należy nacisnąć na ikonę  aby wczytać plik. Po wczytaniu pliku, tabela tymczasowa wypełniana jest informacjami odczytanymi z pliku. Pozycje znajdujące się w tabeli nie podlegają edycji.

Import zapisów do bazy następuje po naciśnięciu na ikonę Uruchom import.

Uwaga
Identyfikacja podmiotu odbywa się w pierwszej kolejności po Akronimie podmiotu oraz w drugiej kolejności po numerze rachunku bankowego (taki numer jaki jest w przelewie w pliku musi być wpisany na karcie kontrahenta, na zakładce [Płatności]). Jeżeli kontrahent nie zostanie rozpoznany zapis trafia na !Nieokreślonego!

Jak wykonać eksport poleceń przelewu do pliku?

W celu wyeksportowania poleceń przelewu do pliku, który następnie można zaczytać w aplikacji bankowej, należy wejść w Kasa/Bank/ Preliminarz płatności, w polu Rejestr wybrać odpowiedni rejestr bankowy, z którego ma być wykonany eksport i nacisnąć na ikonę  Eksportuj polecenia przelewu.

Aby ikona Eksportuj polecenia przelewu była aktywna w polu Rejestr musi być wybrany rejestr bankowy i lista wyświetlanych zapisów musi być zawężona do pozycji nierozliczonych i/lub rozliczonych częściowo  (należy odznaczyć opcje Rozliczone: Całkowicie i Nie podlega).

Dodatkowo można zaznaczyć parametr „Przelewy do wysłania”, co spowoduje zawężenie listy tylko do tych zdarzeń, które mogą zostać wysłane do banku.

Przelewy do wysłania muszą mieć:

  • status nierozliczone lub częściowo rozliczone,
  • stan zatwierdzone do realizacji,
  • kierunek przepływu – rozchód,
  • poprawnie wypełnione pola podmiot, bank oraz numer rachunku podmiotu.

Po naciśnięciu na ikonę  Eksportuj polecenia przelewu pojawia się okno Eksport przelewów do pliku,
w którym należy uzupełnić następujące dane:

1. Eksport poleceń – do wyboru eksport tylko zaznaczonych lub wszystkich zatwierdzonych do realizacji

2. Format wymiany – z listy dostępnych formatów należy wybrać odpowiedni format wymiany danych, zgodny ze strukturą pliku, jaki zaczytuje bank; gdyby żaden z dostępnych formatów nie działał prawidłowo z poziomu Ogólne/ Inne/ Formaty przelewów można dodać nowy lub zmodyfikować już istniejący. Domyślnie podpowiadany jest format, który jest przypisany jako domyślny dla banku związanego z rejestrem, z którego wykonywany jest eksport (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów zwykłych).

3. Format wymiany dla MPP – rozwijalna lista ze zdefiniowanymi w programie formatami eksportu przelewów. Program proponuje format, który został wskazany na formularzu banku, do którego przygotowujemy zlecenie przelewów. Wskazane formaty wymiany powinny mieć ten sam rodzaj. Nie wykonamy eksportu jeśli jeden z formatów będzie typu webservice a drugi nie. Rodzaje formatów wymiany muszą być z sobą zbieżne. Jeśli w danej organizacji nie stosujemy metody podzielonej płatności nie ma konieczności wskazywania formatu wymiany dla Mechanizmu podzielonej płatności. 

Uwaga
Mechanizm eksportu działa w taki sposób, że program próbuje wysyłać 3 rodzaje przelewów za każdym razem (przelewy zwykłe, do US i do ZUS), a do każdego z takich przelewów wymagana jest inna struktura plików, stąd inny format wymiany. W polu Format wymiany wybierany jest format dla przelewów zwykłych, natomiast format służący do eksportu przelewów do ZUS i US pobierany jest z karty banku związanego z rejestrem (na formularzu banku, na zakładce [Dodatkowe], pole: Format eksportu dla przelewów do US/ ZUS).

4. Katalog docelowy – należy wskazać katalog, w którym ma być zapisany plik z przelewami

5. Nazwa pliku – nazwa pliku, do którego chcemy wyeksportować zdarzenia

6. Dopisz do pliku – możliwość dopisania przelewów do już istniejącego pliku. Aby dopisać przelewy do pliku należy zaznaczyć parametr, a następnie w polu Plik docelowy wskazać plik, do którego informacje powinny być dopisane. Jeśli podczas eksportu przelewów wskażemy istniejący plik i nie zaznaczymy parametru Dopisz do pliku ‑ spowoduje to wykasowanie dotychczasowej zawartości pliku i nadpisanie nowych informacji.

7. Data przelewu – domyślnie wybrana jest data realizacji, istnieje również możliwość wybrania terminu płatności, daty bieżącej lub innej – z możliwością wpisania daty. Data wybrana w polu Data przelewu zostanie zapisana w eksportowanym pliku, jeżeli w formacie wymiany znajduje się pozycja Data operacji. (Jeżeli w formacie jest wybrana „Data dokumentu” eksportowana jest zawsze data dokumentu ze zdarzenia w preliminarzu płatności.)

8. Aktualizuj przy eksporcie informacje na zdarzeniach – zaznaczenie tego parametru powoduje, iż informacje Opis do banku pobierane są bezpośrednio z deklaracji DRA i dodatkowo aktualizowane są również na zdarzeniu w Preliminarzu. Odznaczony parametr sprawia, iż informacje do pliku pobierane są ze zdarzenia w Preliminarzu.

9. Przelewy zbiorczo dla poszczególnych podmiotów – zaznaczenie parametru spowoduje, iż w momencie eksportu kilku zdarzeń dla tego samego podmiotu w pliku powstanie jeden zbiorczy przelew na tego kontrahenta, na łączną kwotę. Przelewy te zostaną pogrupowane według podmiotu, numeru rachunku bankowego oraz waluty.

  • Grupuj wg dat– po zaznaczeniu tej opcji utworzonych zostanie tyle zbiorczych przelewów, ile jest różnych dat (terminów płatności/ dat realizacji/ dat dokumentu).
  • Eksportuj wszystkie linie opisu do banku– zaznaczenie tego parametru spowoduje, że w zbiorczym przelewie będziemy starali się umieścić wszystkie uzupełnione linie opisu do banku odczytane z agregowanych przelewów.
  • Dziel przelewy wg długości opisu– zaznaczenie tego parametru spowoduje, że program utworzy dla danego podmiotu kilka przelewów zbiorczych, przy czym na każdym z nich będzie umieszczony pełny opis do banku z przelewów cząstkowych. Może on być stosowany razem z pozostałymi parametrami dotyczącymi przelewów zbiorczych.

10. Wysyłaj przelewy w jednym pliku – zaznaczenie tego parametru powoduje, że wysyłając kilka przelewów tworzymy jeden plik xml, w którym zapisujemy wszystkie pojedyncze przelewy. Jeśli parametr nie jest zaznaczony to każdy z tych przelewów zapisywany jest w osobnym pliku. Parametr dostępny do zaznaczenia przy eksporcie do plików XML oraz webservice.

 

Eksport przelewów do pliku następuje po naciśnięciu na ikonę  Uruchom eksport.

Tworzenie formatów przelewów

Formaty wykorzystywane przy imporcie/eksporcie przelewów dostępne są w menu Ogólne/ Inne/ Formaty przelewów.

Z tego poziomu można zarówno dodawać nowe, jak i modyfikować istniejące formaty – Użytkownik może sam zdefiniować format w oparciu o informacje dostarczane przez bank.

Aby skopiować format należy go zaznaczyć (podświetlić) na liście, a następnie wcisnąć <CTRL>+<INSERT> lub <CTRL> i ikona plusa, a następnie zapisać.

Uwaga
Program umożliwia import przelewów z plików MT940, jednak jest to mechanizm zaszyty w programie, nie ma możliwości jego edycji/ modyfikacji, stąd też te formaty nie są dostępne na liście formatów przelewów.

Tworzenie formatów – informacje ogólne

Dodanie nowego formatu otwiera okno Format elektronicznej wymiany danych z bankami, składające się z czterech zakładek: [Ogólne], [Nagłówek], [Pozycje], [Stopka].

Uwaga
Przy tworzeniu nowego/dostosowywaniu istniejącego formatu przelewów należy zwrócić uwagę na to, aby wszystkie ustawienia były zgodne z dokumentacją banku (ze strukturą plików wyeksportowanych z banku/ do zaimportowania do aplikacji bankowej).

Zakładka [Ogólne]

Zakładka ta zawiera parametry wspólne dla wszystkich pozycji definiowanego formatu.

Poszczególne pola należy uzupełnić zgodnie z wymaganiami banku, np. w oparciu o przykładowe pliki z przelewami lub dokumentację banku opisującą strukturę takich plików.

  1. Nazwa formatu – nazwa, która będzie widoczna na liście dostępnych do wyboru formatów – zarówno na formatce banku, jak i na formatce eksportu/importu. Pole obowiązkowe.
  2. Rozszerzenie pliku – należy podać rozszerzenie pliku udostępnianego/ wymaganego przez bank, np. csv, txt, pli.
  3. Kodowanie – określenie strony kodowej dokumentu; do wyboru są opcje: Windows (1250), Latin II, ISO 8859-2, Mazovia, UTF8 i Flat (bez polskich znaków)
  4. Oddzielaj pola – jeżeli parametr jest odznaczony oznacza to, że format nie posiada separatorów pól. Zazwyczaj jednak w plikach są separatory pól, a w taki przypadku parametr należy zaznaczyć.
  5. Separator pól – wybór znaku, którym są od siebie oddzielane poszczególne pola w pliku, np. przecinek (,), spacja, Tab, Enter. Oprócz wyboru z dostępnej listy istnieje również możliwość ręcznego wpisania np. średnika (;) czy pipe (|)
  6. Separator wierszy – wybór znaku końca wiersza, którym są od siebie oddzielane poszczególne wiersze
    w pliku. Najczęściej jest to „<Enter>”. Oprócz wyboru z dostępnej listy (spacja, przecinek (,), Tab, Enter) istnieje również możliwość ręcznego wpisania innego separatora. Obsługiwany jest również import z pliku ze znacznikiem końca wiersza w formacie Unix (LF). W przypadku wybrania w formacie, jako separator wiersza <ENTER>, program automatycznie rozpozna odpowiednią sekwencję CR+LF czy LF.
  7. Ograniczniki tekstu – pola tekstowe w pliku będą otaczane tym znakiem, najczęściej jest nim cudzysłów.
  8. Zamiana ograniczników w tekście na – pole aktywne po zaznaczeniu „Ograniczniki tekstu„. Jeżeli pola tekstowe są otaczane znakiem ogranicznika tekstu np. cudzysłowem to cudzysłów wpisany w środku pola zostanie zamieniony na znak wpisany w tym polu.
  9. Zmienna szerokość pola – parametr należy zaznaczyć, jeżeli szerokość pól w pliku jest zmienna (poszczególne pola są różnej długości). Zazwyczaj parametr powinien być zaznaczony.
  10. Format daty – określenie formatu daty, w jakim jest ona zapisywana w pliku. Oprócz wyboru z dostępnej listy (DD-MM-RR, DD-MM-RRRR, RR-MM-DD, RRRR-MM-DD, RRRRMMDD, DD/MM/RR, MM/RR/DD) istnieje również możliwość ręcznego wpisania np. DD/MM/RRRR.
  11. Separator dziesiętny – znak jakim w pliku oddzielana jest część całkowita od części ułamkowej liczby, np. złoty od groszy. Do wyboru: kropka (.), przecinek (,) i puste (brak separatora).
  12. Separator dziesiętny dla kwoty VAT – znak jakim w pliku oddzielana jest część całkowita od części ułamkowej liczby w kwocie VAT. Do wyboru: kropka (.), przecinek (,) i puste (brak separatora). Domyślnie ustawiony jest przecinek.
  13. Separator tysięcy – separator grupujący. Dostępne opcje do wyboru to: puste (brak separatora), kropka (.), przecinek (,).
  14. Sekwencja podziału pola na części – to znak, który jest używany w celu oddzielenia poszczególnych części w ramach danego pola. Wykorzystywany głównie w formatach służących do eksportu, np. w polach
    z opisem do banku.
  15. Separator w opisie przelewów zbiorczych – parametr ma znaczenie przy zbiorczym eksporcie przelewów. Oprócz wyboru z dostępnej listy (spacja, średnik (;), przecinek (,)) istnieje również możliwość ręcznego wpisania innego separatora.

Zakładki [Nagłówek] i [Stopka]

W przypadku, gdy plik importowany przez Użytkownika posiada nagłówek niezbędne jest odpowiednie uzupełnienie zakładki. Jeżeli w pliku nie ma nagłówka, zakładka powinna pozostać pusta.

Jako każdą z pozycji można wybrać „Stałą wartość”. Należy tylko zwrócić uwagę, aby ilość pozycji odpowiadała ilości pól w nagłówku w pliku oraz odpowiednio ustawić typ: Tekst (dla pól zapisanych w ograniczniku tekstu, np.
w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu).

Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany, przed wykonaniem importu niezbędna jest modyfikacja pliku.
Uwaga
Format służący do importu nie może zawierać stopki. W przypadku gdy w pliku z banku jest stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku.

Zakładka [Pozycje]

Na tej zakładce definiujemy poszczególne pozycje formatu. Bardzo ważne jest, aby ilość pozycji zgadzała się
z ilością pól przelewu w pliku z banku. Należy także zachować odpowiednią kolejność pozycji oraz ustawić prawidłowy Typ pozycji: Tekst (dla pól zapisanych w ograniczniku tekstu, np. w cudzysłowie) lub Liczba (dla pól zapisanych bez ogranicznika tekstu).

Jeżeli liczba pozycji formatu, ich kolejność czy typ nie będą się zgadzać z tym co jest zapisane w pliku z banku, import przelewów do programu się nie powiedzie. Podobnie w przypadku eksportu przelewów z programu do pliku i próbie zaczytania ich w aplikacji bankowej.

Kolejne pozycje formatu dodajemy ikoną .

  1. Nazwa pola z rozwijalnej listy należy wybrać odpowiednią opcję, np. Data dokumentu, Kwota płatności, Nazwa podmiotu, Pełny numer rachunku podmiotu.
  2. Typ pola opcje do wyboru: Tekst, Liczba <#, Liczba <#.##, Liczba <#.####. Konsekwencją wybrania typu pola Tekst, w formatach służących do eksportu, będzie otoczenie go w pliku ogranicznikiem tekstu (np. zapisanie w cudzysłowie). Podobnie w formatach służących do importu przelewów – jeżeli w pliku z banku pole jest zapisane w ograniczniku tekstu, jako typ należy wybrać: Tekst, w pozostałych przypadkach: Liczba.
  3. Wartość – pole ma znaczenie w formatach służących do eksportu przelewów; jest aktywne przy wyborze takich pól jak: „Inne informacje”, „Stała wartość”, „Zapytanie SQL”
  4. Szerokość – ilość znaków przewidziana na dane pole, pole wykorzystywane głównie w formatach do eksportu przelewów
  5. Opcje pola – określają, czy dane pole będzie nowym polem, czy ma zostać połączone z poprzednim na jeden z trzech sposobów. Najczęściej wybierane jest „nowe pole”. Opcja „łącz z poprzednim (…)” ma znaczenie w formatach służących do eksportu przelewów, przykładowo bank może wymagać, aby w pliku opis przelewu był zapisany jako jedno pole składające się z kilku podpól oddzielonych od siebie znakiem „|”.
  6. Usuwaj znaki rozdzielające w numerze rachunku – parametr jest aktywny tylko w przypadku wybrania pola związanego z numerem rachunku, np. numer rozliczeniowy banku, pełny numer rachunku podmiotu. Zaznaczenie parametru powoduje, iż numer rachunku będzie zapisany w pliku jako ciąg cyfr, bez znaków rozdzielających.
  7. Wymagane – parametr ma znaczenie przy formatach do eksportu przelewów. Zaznaczenie tego pola oznacza, iż brak danej wartości na przelewie będzie powodował błąd i w konsekwencji dany przelew nie zostanie wyeksportowany.

Przykład tworzenia formatu służącego do importu danych z pliku z banku

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia prawidłowego importu danych z pliku należy odpowiednio zmodyfikować istniejący format lub dodać nowy.

Na podstawie pliku otrzymanego z banku (np. pliku w formacie *.csv, *.txt) lub dokumentu z opisem struktury takich plików Użytkownik może zdefiniować w programie własny format celem zaczytania w/w pliku.

Uwaga
Wyjątek stanowią pliki MT940 – program umożliwia import z takich plików, jednak jest to mechanizm zaszyty w programie i nie ma możliwości jego edycji/ modyfikacji.

Użytkownik może spotkać się z różnymi dokumentami o odmiennej strukturze, które mogą wymagać ręcznej modyfikacji. Spowodowane to jest faktem, iż każdy zapis jest zróżnicowany i żaden „uniwersalny” format nie jest w stanie wczytać wszystkich dokumentów. Ponadto zdarza się, że banki zmieniają strukturę generowanych plików,
a w wielu przypadkach pliki nawet z tego samego banku potrafią się diametralnie od siebie różnić.

Uwaga
Każdy Bank posiada inny format wymiany danych. Przed próbą zaimportowania pliku zalecane jest dokładne sprawdzenie i porównanie go z danym formatem.

W poniższym ćwiczeniu na podstawie otrzymanego z banku pliku z przelewami zdefiniujemy format dla importu przelewów.

Pliki w formatach *.csv, *.pli, *.txt Użytkownik może otworzyć za pomocą zwykłego edytora tekstowego (notatnik, WordPad) bądź poprzez MS Excel.

Załóżmy, że nasz plik z przelewami z banku wygląda następująco (na zrzucie znajdują się dane testowe, np. numery rachunków bankowych):

Analizując zamieszczony wyżej plik można wywnioskować, że:

  • ,,Oddzielaj pola”: parametr zaznaczony
  • Separator pól: ; (średnik – bo widzimy, że w pliku poszczególne pola są od siebie oddzielone średnikiem)
  • Separator wierszy: <Enter>
  • Ograniczniki tekstu: ” (cudzysłów – bo widać, że w pliku część pól jest zapisana w cudzysłowie)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola: zaznaczone (widać, że poszczególne pola w pliku różnią się długością)
  • Format daty: RRRR-MM-DD (przykładowa data z pliku to: 2013-01-03)
  • Separator dziesiętny: , (przecinek – bo przykładowa kwota w pliku zapisana jest jako: 297,49)
  • Separator tysięcy: puste
  • Sekwencja podziału pola na części: zostawić puste
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne

Dodatkowo:

  • Rozszerzenie pliku to: txt
  • Kodowanie: Windows (1250)

 

Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco:

Dodatkowo w pliku jest Nagłówek, w związku z tym w formacie przelewów również trzeba zdefiniować pozycje nagłówka.

Ważne jest, aby ilość pozycji na zakładce [Nagłówek] odpowiadała ilości pól w nagłówku w pliku (w tym przykładzie jest ich 7). Należy również zwrócić uwagę na to, że w pliku żadne z pól nagłówka nie jest zapisane w ograniczniku tekstu (w cudzysłowie), w związku z tym w formacie przelewów w każdym polu należy wybrać typ: Liczba.

Jako każdą z pozycji można wybrać „Stałą wartość”.

Liczba pozycji w formacie powinna zgadzać się z liczbą pól w przelewie w pliku – w naszym przykładzie jest ich 7, są to kolejno: data, inne informacje, nazwa podmiotu, numer rachunku podmiotu, opis do banku, kwota płatności, inne informacje.

Należy również zwrócić uwagę, aby pola zapisane w pliku w cudzysłowie w formacie miały typ: Tekst (w naszym przykładzie są to pola 4) numer rachunku podmiotu i 5) Opis do banku), pozostałe mają mieć typ: Liczba.

Zakładka [Pozycje] powinna więc wyglądać następująco:

Tak zdefiniowanym formatem bez problemu uda się zaczytać przelewy z analizowanego pliku.

Uwaga
Program Comarch ERP Optima obsługuje tylko jedną linijkę nagłówka. Format służący do importu nie może również zawierać stopki. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany i/lub jest uzupełniona stopka, przed wykonaniem importu niezbędna jest modyfikacja pliku

Załóżmy, że przykładowy plik z banku wygląda następująco (na zrzucie plik *.csv otworzony w MS Excel):

Jak widać w pliku jest bardzo rozbudowany nagłówek, przed wykonaniem importu należy zatem odpowiednio zmodyfikować plik tak, aby zostały w nim tylko dane związane z przelewami i maksymalnie jedna linijka nagłówka. (Można np. zaznaczyć linijki z przelewami, skopiować je, otworzyć Notatnik, wkleić dane przelewów i zapisać plik. W momencie importu wskazywać już ten „nowy” plik txt.).

Przykład tworzenia formatu służącego do eksportu przelewów do pliku

Jeżeli okaże się, że żaden z dostępnych w programie formatów przelewów nie umożliwia eksportu do pliku, którego struktura jest zgodna z tym, co zaczytuje bank należy odpowiednio zmodyfikować istniejący format lub dodać nowy.

Na podstawie przykładowego pliku z banku lub dokumentu z opisem struktury takich plików użytkownik może zdefiniować w programie własny format służący do eksportu przelewów.

W poniższym ćwiczeniu na podstawie dokumentu z opisem struktury plików otrzymanego z banku zdefiniujemy przykładowy format do eksportu przelewów.

Przykładowe informacje z banku:

Opis formatów plików – Struktura pliku przesyłki płatności krajowych:

Standard polskich liter – CP 852 ( LATIN II ).

Polecenia płatnicze można podzielić wg typu operacji na trzy grupy.

W zależności od tego, do której grupy należą polecenia umieszczane w przesyłce, program nadaje dla pliku przesyłki odpowiednie rozszerzenie:

– przelewy, wypłaty gotówkowe i płatności ZUS: „.PLI”

– specjalne i specjalne ZUS: „.PLE”

– polecenia zapłaty: „.PLD”

W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych.

W jednym pliku mogą być zapisane dane kilku poleceń płatniczych; każdy wiersz zawiera dane innego polecenia.

Każdy wiersz kończy się znakiem końca wiersza <CR><LF> (Hex 0D0A) i rozpoczyna się kodem oznaczającym typ operacji:

110 = Przelew, wypłata gotówkowa, płatność US,

120 = Płatność ZUS,

210 = Polecenie zapłaty.

Pola alfanumeryczne (tekstowe) są zapisane w cudzysłowach (” „) (Hex 22). Długość pól podana w tabeli nie uwzględnia cudzysłowów.

Poszczególne dane są oddzielone przecinkiem „,” (Hex 2C).

Pola: dane zleceniodawcy, dane kontrahenta, szczegóły płatności oraz informacje Klient-Bank składają się z kilku linii (podpól). W tych przypadkach znakiem oddzielającym poszczególne linie jest „|” (Hex 7C).

Pola: dane zleceniodawcy, dane kontrahenta składają się z czterech podpól: pierwsze i drugie zawiera nazwę zleceniodawcy lub kontrahenta, trzecie – nazwę ulicy oraz nr domu/nr lokalu, czwarte – kod pocztowy
i miejscowość.

Wszystkie pola danych obowiązkowe powinny być wypełnione. Wyjątek stanowi pole „informacje Klient-Bank”, które nie jest obowiązkowe.

Jeśli w poleceniu płatniczym nie są wypełnione szczegóły płatności to w pliku przesyłki pole „szczegółów płatności” będzie puste, rozpoczynające się znakiem ” (Hex 22) i kończące się znakiem ” (Hex 22).

W polu numer banku zleceniodawcy należy umieścić 8 cyfrowy numer rozliczeniowy banku.

W polu numer rachunku zleceniodawcy należy umieścić 26 cyfrowy numer rachunku zleceniodawcy

Numer rachunku bankowego jest ciągiem o stałej liczbie znaków 26 cyfr.

Opis formatu pliku płatności krajowych PLI (PLD,PLE,PLS)

Struktura pliku przesyłki, Wykaz zastosowanych skrótów:

O / F = Rodzaj pola:

O = obowiązkowe

F = fakultatywne

D / F = Długość i format pola:

a = alfanumeryczne

n = numeryczne (0 – 9)

d = data w formacie RRRRMMDD

S = pole stałej długości

Z = pole zmiennej długości

Przykładowy plik przesyłki z danymi jednego polecenia przelewu:

110,20000121,555500,12401066,0,”27124010661111222233339999″,”79106000761234123412341234″,
„1_PODPOLE-NAZWA_ZLECENIODAWCY|2_PODPOLE-NAZWA_ZLECENIODAWCY|3_PODPOLE-ULICA_ZLECENIODAWCY|4_PODPOLE-MIEJSCOWOSC_ZLECENIODAWCY”,”1_PODPOLE-NAZWA KONTRAHENTA|2_PODPOLE-NAZWA_KONTRAHENTA|3_PODPOLE-ULICA KONTRAHENTA|4_PODPOLE-MIEJSCOWOSC_KONTRAHENTA”,0,10600076,”1_PODPOLE-SZCZEGOLY PLATNOSCI|2_PODPOLE-SZCZEGOLY_PLATNOSCI|3_PODPOLE-SZCZEGOLY PLATNOSCI|4_PODPOLE-SZCZEGOLY_PLATNOSCI”,””,””,”51″,”1_PODPOLE-INFORMACJE_KLIENT-BANK|2_PODPOLE-INFORMACJE_KLIENT-BANK|3_PODPOLE-INFORMACJE_KLIENT-BANK|4_PODPOLEINFORMACJE_KLIENT-BANK|5_PODPOLE-INFORMACJE_KLIENT-BANK|6_PODPOLE-INFORMACJE_KLIENT-BANK”

 

Analizując zamieszczone wyżej informacje można wywnioskować, że:

  • Rozszerzenie pliku to: pli
  • „Oddzielaj pola”: zaznaczone
  • Separator pól: , (przecinek – wynika to z informacji udostępnionych przez bank: „Poszczególne dane są oddzielone przecinkiem „,” (Hex 2C)”)
  • Separator wierszy: <Enter> (zgodnie z informacją „Każdy wiersz kończy się znakiem końca wiersza <CR><LF>”)
  • Ograniczniki tekstu: ” (cudzysłów – zgodnie z informacją „Pola alfanumeryczne (tekstowe) są zapisane
    w cudzysłowach (” „)
    ”)
  • Zamiana ograniczników w tekście na: zostawić puste
  • Zmienna szerokość pola”: zaznaczone (poszczególne pola są różnej długości)
  • Kodowanie: LATIN II
  • Format daty: RRRRMMDD (zgodnie z informacją podaną w tabelce, w polu 2)
  • Separator dziesiętny: brak (zgodnie z informacją podaną w tabelce, w polu 3)
  • Separator tysięcy: puste (zgodnie z informacją podaną w tabelce, w polu 3)
  • Sekwencja podziału pola na części: | (zgodnie z informacją „(…)znakiem oddzielającym poszczególne linie jest „|””)
  • Separator w opisie przelewów zbiorczych: może zostać ustawienie domyślne

Pierwsza zakładka [Ogólne] naszego formatu musi więc wyglądać następująco:

W pliku nie ma być żadnego nagłówka (zgodnie z informacją „W pliku przesyłki nie ma wiersza nagłówkowego z nazwami pól danych”), w związku z tym zakładka [Nagłówek] w naszym formacie ma pozostać nieuzupełniona.

Następnie należy dokładnie przeanalizować informacje niezbędne do prawidłowego uzupełnienia zakładki [Pozycje].

Wszystkie pola, które w pliku mają być zapisane w cudzysłowie powinny mieć wybrany typ: Tekst, wszystkie pozostałe: Liczba.

NrNazwa polaO/FD/FPozycja w formacie przelewów w programie
1Typ operacji
110 = Polecenie przelewu, wypł. gotówk.
120 = Płatność ZUS
210 = Polecenie zapłaty
O3 n SPozycja „stała wartość”, w polu wartość: 110
2Data płatności RRRRMMDDO8 d SData operacji
3Kwota bez kropek tysięcznych i przecinka oddzielającego wartość groszyO15 n ZKwota płatności
4Numer banku zleceniodawcy (NRB)O8 n ZNumer rozliczeniowy banku własnego
5Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
6Numer rachunku zleceniodawcyO34 a ZPełny numer rachunku własnego
7Numer rachunku kontrahentaO34 a ZPełny numer rachunku podmiotu
8Dane zleceniodawcyO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa własna 1
2) Nazwa własna 2
3) Adres własny – ulica
4) Adres własny – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
9Dane kontrahentaO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) Nazwa podmiotu 1
2) Nazwa podmiotu 2
3) Adres podmiotu – ulica
4) Adres podmiotu – kod i miasto
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
10Pole zerowe (wypełnione cyfrą "0")O1 n ZPozycja „stała wartość”, w polu wartość: 0
11Numer banku kontrahenta.O8 n ZNumer rozliczeniowy banku podmiotu
12Szczegóły płatnościO4*35 a Z4 pozycje w formacie:
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).1) opis do banku (pierwsza linijka)
2) opis do banku (druga linijka)
3) opis do banku (trzecia linijka)
4) opis do banku (czwarta linijka)
Poz. 1 ustawiona jako „nowe pole”, poz. 2-4 jako „łącz z poprzednim (znak podziału pola na części)”
13Niewykorzystane : wartość pusteOS aStała wartość
14Niewykorzystane : wartość pusteOS aStała wartość
15Kod "51" dla przelewów i poleceń specjalnych, natomiast kod "01" dla poleceń zapłaty, ”71” dla płatności podatkowych USO1*2 a SPozycja „stała wartość”, w polu wartość: 51
16Informacje klient-BankF6*35 a Z6 pozycji w formacie – wszystkie pozycje to „stała wartość”
Poszczególne podpola są oddzielone znakiem "|" (Hex 7C).Poz. 1 ustawiona jako „nowe pole”, poz. 2-6 jako „łącz z poprzednim (znak podziału pola na części)”

Zakładka [Pozycje] naszego formatu powinna więc wyglądać następująco:


Wskazówki praktyczne

  • Ilość pozycji w formacie, ich kolejność i typ muszą się zgadzać z danymi w pliku z banku.
  • W pozycjach formatu należy odpowiednio wybierać typ pola: Tekst/ Liczba. Konsekwencją wybrania typu pola Tekst, w formatach służących do eksportu, będzie otoczenie go w pliku ogranicznikiem tekstu (np. zapisanie w cudzysłowie). Podobnie w formatach służących do importu przelewów – jeżeli w pliku z banku pole jest zapisane w ograniczniku tekstu, jako typ należy wybrać: Tekst, w pozostałych przypadkach: Liczba (niezależnie od tego, czy w danej pozycji pliku wpisana jest data, kwota przelewu, numer rachunku czy np. dane adresowe kontrahenta).2013-01-03;przelew zewnętrzny; ABC sp. z o.o.;”02124011121111222233334444″;”za FV/02/01/2013″; „252,53”;370,39
  • w formacie przelewów pozycje 4, 5 i 6 muszą mieć ustawiony typ Tekst (ponieważ w pliku są one zapisane w cudzysłowie – „02124011121111222233334444”;”za FV/02/01/2013″;”252,53″); pozostałe pozycje
    w pliku nie są zapisane w ograniczniku tekstu, więc w formacie muszą mieć typ Liczba.
  • Przykładowo, dla pliku:
  • Program obsługuje tylko jedną linijkę nagłówka. W przypadku gdy w pliku z banku nagłówek jest bardziej rozbudowany, przed wykonaniem importu niezbędna jest modyfikacja pliku.
  • Format służący do importu nie może zawierać stopki.
  • Identyfikacja podmiotu odbywa się w pierwszej kolejności po Akronimie podmiotu oraz w drugiej kolejności po numerze rachunku bankowego (taki numer jaki jest w przelewie w pliku musi być wpisany na karcie kontrahenta, na zakładce Płatności). Jeżeli kontrahent nie zostanie rozpoznany zapis trafia na !Nieokreślonego!.
  • Jeżeli kwota w pliku zapisana jest w groszach (np. 18450 zamiast 184,50) w formacie przelewów należy zostawić puste pole z Separatorem dziesiętnym, a w pozycji z kwotą płatności wybrać typ: Liczba<#.##
  • W formatach służących do importu przelewów muszą znajdować się pozycje Data dokumentu oraz Kwota płatności.
  • W przypadku, gdy eksportujemy przelewy na pracowników i chcemy, aby w pliku oprócz nazwiska było również imię pracownika w formacie przelewów należy dodać pozycję „Nazwa podmiotu 2” (Nazwa podmiotu 2 odpowiada za eksport imienia, Nazwa podmiotu 1 za nazwisko pracownika).
  • Opis wszystkich pól możliwych do wyboru w pozycjach formatu przelewów można znaleźć w podręczniku do modułu Kasa/Bank (podręczniki są dostępne np. na Indywidualnych Stronach Klienta/Partnera)
  • W programie dostępnych jest 5 formatów MT940 (MT940 – standard, MT940 (BGŻ), MT940 (BRE), MT940 (PBS), Citi Handlowy – MT940 i MT942 (standardowy)), są one niedostępne do edycji. Formaty te obsługują import plików MT940 z większości banków. Jeżeli jednak okaże się, że żaden z nich nie importuje prawidłowo zapisów z pliku najlepiej skontaktować się z Asystą Comarch ERP Optima i przesłać dokument z opisem struktury takiego pliku (takie dokumenty są udostępniane przez banki).
  • W formatach służących do eksportu przelewów można używać bezpośrednich odwołań do pól zapisanych w bazie danych poprzez wykorzystanie składni SQL. W tym celu jako pozycję formatu należy wybrać „Zapytanie SQL”, a w polu Wartość wpisać odpowiednie zapytanie; Aby np. pobrać tylko miasto z adresu podmiotu i aby to miasto było pobierane dla podmiotu, który znajduje się na aktualnie wysyłanym zdarzeniu, w części WHERE zapytania należy umieścić odwołanie do wysyłanego zdarzenia: Bzd_BzdId={ZdarzenieID}
  • Przykładowo aby pobrać miasto z adresu kontrahenta, w wartości należy wkleić: Select Pod_Miasto FROM CDN.PodmiotyView JOIN CDN.BnkZdarzenia ON BZd_PodmiotID = Pod_PodId WHERE BZd_PodmiotTyp = Pod_PodmiotTyp AND Bzd_BzdId={ZdarzenieID}

Najczęstsze komunikaty błędów przy eksporcie/imporcie

Problemy przy eksporcie przelewów

  • Przelew [fz 10/2013] nie został wyeksportowany z powodu błędów.

W polu Nazwa pliku zastosowano niedozwolone znaki, np. \/:*?<>|

  • Przelew [fz 10/2013] nie został wyeksportowany z powodu błędów. Właściwość [Opis do banku (pierwsza linijka)] jest wymagana i musi zostać wypełniona.

Pewne pola oznaczone w formacie przelewów jako wymagane nie są uzupełnione (w powyższym komunikacie mowa dokładnie o polu: Opis do banku (pierwsza linijka)). Należy uzupełnić odpowiednie dane lub zmodyfikować format (Ogólne/ Inne/ Formaty przelewów/ na konkretnym formacie, zakładka [Pozycje] i tam pole „Wymagane”)

  • Brak domyślnego formatu eksportu dla US. Wybierz format na karcie banku.

Na karcie banku należy ustawić domyślny format eksportu dla przelewów do US. (Można wejść w Kasa/Bank/ Rejestry, na formularz rejestru z którego jest wykonywany eksport, nacisnąć na przycisk Bank, edytować formularz danego banku i przejść na zakładkę „Dodatkowe”.)

Mechanizm eksportu działa w taki sposób, że program próbuje wysyłać 3 rodzaje przelewów za każdym razem (przelewy zwykłe, do US i do ZUS), a do każdego z takich przelewów wymagana jest inna struktura plików, stąd inny format wymiany. Jeżeli na liście przelewów będą zarówno przelewy zwykłe, jak również do US i ZUS wówczas utworzone zostaną 3 oddzielne pliki.

  • Brak domyślnego formatu eksportu dla ZUS. Wybierz format na karcie banku.

Analogicznie jak w poprzednim komunikacie – na karcie banku należy ustawić domyślny format eksportu dla przelewów do ZUS.

Problemy przy imporcie przelewów

  • Błąd analizy struktury formatu: Format nie zawiera pozycji określającej datę dokumentu

W formacie służącym do importu przelewów musi być pozycja Data dokumentu.

  • Nie można odczytać wartości pola – niespodziewany koniec pliku

Np. niezaznaczony parametr „zmienna szerokość pola”.

  • Błąd analizy struktury formatu: Nie ustawiony ogranicznik tekstu przy zmiennej szerokości kolumn.

Jeżeli w formacie przelewów zaznaczone jest „Zmienna szerokość pola” należy również podać „Ogranicznik tekstu”.

  • Błąd analizy struktury formatu: Separator dziesiętny ma wartość identyczną jak separator pól przy zmiennej szerokości kolumn.

W formacie przelewów wybrano taki sam separator pól jak separator dziesiętny – muszą być różne.

  • Błąd w importowanym wierszu – brak separatora pól.

W formacie przelewów wybrano błędny separator pól, niezgodny z danymi w pliku; lub w formacie zdefiniowano za dużo pozycji (więcej niż rzeczywiście jest w pliku).

  • Błąd w importowanym wierszu – brak prawego ogranicznika tekstu.

W formacie przelewów ustawiono błędny typ pozycji (tekst/liczba), niezgodny z danymi w pliku.

  • Błąd analizy struktury formatu: Format zawiera stopkę.

Format do importu przelewów nie może zawierać stopki.

  • Przelew Lp [] nie został zaimportowany z powodu błędów. Brak notowania podanego kursu waluty [waluta] na [data].

W programie nie ma wprowadzonego kursu waluty na wybrany dzień. Należy sprawdzić jakie typy kursów są ustawione na formularzu rejestru, do którego wykonywany jest import – Kasa/Bank/ Rejestry k/b/ na formularzu rejestru pola „Typ kursu sprzedaży” i „Typ kursu zakupu”. (Przy imporcie sprawdzane jest, czy w programie jest wprowadzony kurs na dany dzień dla typu kursu wybranego na formularzu rejestru bankowego.)

  • Przelew Lp [] nie został zaimportowany z powodu błędów. Niepoprawna data zapisu. Zapis nie może być dodany po dacie zamknięcia raportu.

Data na importowanym zapisie jest późniejsza niż data zamknięcia raportu. Przed wykonaniem importu należy wybrać odpowiedni raport (za odpowiedni okres – data otwarcia/zamknięcia raportu), do którego ma być wykonany import.

  • Przelew Lp [] nie został zaimportowany z powodu błędów.Niepoprawna data zapisu. Zapis nie może być dodany przed datą otwarcia raportu.

Data na importowanym zapisie jest wcześniejsza niż data otwarcia raportu. Przed wykonaniem importu należy wybrać odpowiedni raport (za odpowiedni okres – data otwarcia/zamknięcia raportu), do którego ma być wykonany import.

Eksport/ Import za pomocą usługi sieciowej

System Comarch ERP Optima obsługuje również wymianę danych z bankiem (eksport i import przelewów) za pomocą usługi sieciowej opartej o standard Comarch Data Connect 2.0 z bankami:Alior Bank, BNP Paribas, ING Bank Śląski, Pekao S.A., Bankiem Millenium(dla Klientów korzystających z systemu Millenet dla przedsiębiorstw oraz usługi Millenet Link),Citi Handlowy oraz zmBankiem(dla Klientów korzystających z systemu mBank CompanyNet).

Ten sposób wymiany danych umożliwia pobieranie wyciągów bankowych oraz historii operacji, a także eksport przelewów bezpośrednio z/do systemu bankowego, bez konieczności ręcznego przenoszenia plików pomiędzy aplikacją bankową a programem. Możliwe jest również pobieranie dla każdego wysłanego przelewu jego aktualnego statusu w banku (przelew może oczekiwać na realizację, zostać zrealizowany, odrzucony, anulowany itp.).

Szczegółowe informacje na temat wymiany danych poprzez usługę sieciową można znaleźć w podręczniku do modułu Kasa/Bank oraz w biuletynie OPT066 – Szybki eksport i import przelewów przez bankowość internetową ING, OPT072 – Szybki import i eksport przelewów przez bankowość internetową BNP Paribas, OPT073 – Szybki import i eksport przelewów przez bankowość internetową PekaoOPT075 – Szybki import i eksport przelewów przez bankowość internetową banku Citi Handlowy, OPT084 – Szybki import i eksport przelewów przez bankowość internetową Banku Millennium oraz OPT085 – Szybki import i eksport przelewów przez bankowość internetową mBank CompanyNet. Dostępne są również filmy instruktażowe, w których przedstawiony został proces konfiguracji oraz obsługi wymiany danych z bankiem za pomocą usługi sieciowej.

Czy ten artykuł był pomocny?