Moduł eFaktury służy do prowadzenia elektronicznej wysyłki faktur sprzedaży oraz archiwizacji faktur zakupu. Funkcjonalność pokrywa następujące wymagania:
Moduł spełnia wymagania ustawy o podatku od towarów i usług, w tym art. 106m (tj. zapewnienie autentyczności pochodzenia, integralności treści i czytelności faktury poprzez wygenerowany przez system eDokumenty podpis elektroniczny załączany do każdego maila. Ponadto spełnia wymagania art. 112a dot. przechowywania faktur w podziale na okresy rozliczeniowe, z łatwym dostępem i wyszukiwaniem, oraz zapewnieniem bezzwłocznego dostępu dla organów podatkowych i organów kontroli skarbowej.
Przed rozpoczęciem wymiany dokumentów zaleca się (nie jest to konieczne, ale ułatwia prowadzenie spraw przed sądem z kontrahentami którzy mieliby uchylać się od płatności) otrzymanie oświadczenia podpisanego przez odbiorcę.
PRZYKŁADOWA TREŚĆ OŚWIADCZENIA: "Zgodnie z §3 rozporządzenia Ministra Finansów z 20 grudnia 2012 roku w sprawie przesyłania faktur w formie elektronicznej, zasad ich przechowywania oraz trybu udostępniania organowi podatkowemu lub organowi kontroli skarbowej, akceptujemy przesyłanie i udostępnianie faktur, ich korekt oraz duplikatów w formie elektronicznej od wskazanego powyżej Wystawcy faktury."
Dokumenty faktur widoczne w podziale na okresy rozliczeniowe w osobnych zakładkach w zależności od swojego stanu:
System działa w dwojaki sposób jeśli chodzi o podpisywanie wysyłanych faktur.
W przypadku jeśli w systemie eDokumenty istnieje tylko sam nagłówek faktury (bez załączników pdf) wtedy system wygeneruje podpisany plik pdf. Podpis zostanie umieszczony w pliku pdf.
Jeśli dokument posiada już załączniki i jeden w nich został oznaczony jako treść, system eDokumenty wygeneruje podpis jako osobny plik. Podpis zostanie umieszczony w pliku o tej samej nazwie co plik z treścią faktury. Plik podpisu zawiera rozszerzenie *.sign i może służyć późniejszej weryfikacji - szczególnie w przypadkach spornych np. przed sądem jeśli kontrahent przedstawi zmienioną wersję faktury niż oryginalnie wysłana będzie tego można łatwo dowieść posługując się plikiem podpisu.
Dla faktur korygujących wymagane jest uzyskanie potwierdzeń odbioru przez kontrahenta. Faktury oznaczone jako "Korekta" (atrybut iscorc) automatycznie przy wysyłce tworzą żądanie potwierdzenia przeczytania. Ponadto podczas odbioru maili z potwierdzeniami potrafią odczytywać zapisane dane i automatycznie zmieniać status wysłanych wcześniej korekt (patrz niżej).
Aby wyświetlić pole korekta i uzyskać pożądane zachowanie należy w pliku config.inc włączyć funkcję poprzez ustawienie wartości stałej.
define('SHOW_CORRECTION_ON_VATNOTE', TRUE);
W rezultacie na fakturze pojawi się dodatkowe pole "korekta" w prawym górnym rogu kartoteki.
Ekran modułu:
Do konfiguracji służy plik einvoices_tabs.ini w którym można ustawić wyrażenia filtrujace dokumenty pojawiające się w poszczególnych zakładkach:
[maps] Exposed = "(tpstid = 85 OR tpstid = 86) AND state_ = 1" Outgoing = "tpstid = 87 AND state_ = 1" Incoming = "tpstid = 74 AND state_ = 2" CorrectionAwaiting = "documents_view.doc_id IN (SELECT doc_id FROM vatnote) AND documents_view.tpstid = 87" CorrectionConfirmed = "documents_view.doc_id IN (SELECT doc_id FROM vatnote) AND documents_view.tpstid = 88"
Zasadniczo każda faktura przechodzi przez następujące czynności:
Import certyfikatu następuję poprzez "Ustawienia -> Panel sterowania -> Pozostałe ustawienia -> Certyfikaty pieczęci elektronicznej". Certyfikat musi być w postaci base64 w tagach -----BEGIN CERTIFICATE----- oraz -----END CERTIFICATE-----.
Podobnie dla klucza prywatnego musi on być w formacie base64 oraz w tagach -----BEGIN ENCRYPTED PRIVATE KEY----- i -----END ENCRYPTED PRIVATE KEY-----.
Jeśli użycie klucza wymaga podania hasła wymagane jest zaznaczenie pola Wymaga hasła.
Najczęściej zasilenie fakturami odbywa się z systemu ERP. Aby faktury pobrane z ERP otrzymały właściwy status należy zainicjować go w pliku apps/edokumenty/etc/sync/1_documents_map.ini
<?php /** * Tabela TYP_DOKUMENTU_HANDLOWEGO */ $documentsMap = array( 'sFVS' => array( 'document' => 'VatNote', 'state' => OUTGOING, 'dscrpt' => Translator::translate('Faktura sprzedaży'), 'tpstid' => 14, 'prtpid'=> 2 ), ); ?>
Szablony maili służących do wysyłania eFaktur wprowadza się poprzez mechanizm szablonów jako pliki szablonów html (HTML + flexy). Przykładowy wzór szablonu z kilkoma znacznikami m.in. danymi z faktury dostępny jest w katalogu tpl_default/email.
Dla kreatorów generowania i podpisywania plików PDF oraz wysyłania faktur emailem możliwe jest skonfigurowanie domyślnego statusu ustawianego dla dokumentu. W tym celu, w pliku config.inc należy określić odpowiednie identyfikatory statusów dla poniższych stałych.
Definicja domyślnego statusu dokumentu po wygenerowaniu i podpisaniu pliku PDF:
define('EINVOICE_MASS_PDF_DEFAULT_TPSTID', 28);
Definicja domyślnego statusu dokumentu po wysłaniu emailem:
define('EINVOICE_MASS_EMAIL_DEFAULT_TPSTID', 30);
Moduł eFaktury może wykorzystywać mechanizm automatycznego przesyłania raportów z informacją o stanie doręczenia wiadomości email do adresatów, w celu ustawiania odpowiedniego statusu na dokumencie faktury.
Funkcjonalność wymaga obsługi takich żądań przez serwer poczty wychodzącej. Jest to rozszerzenie protokołu SMTP (RFC 3461), które na nie wszystkich serwerach jest implementowane. Co więcej, włączenie tej opcji podczas wysyłania wiadomości email może spowodować, że wiadomość nie zostanie wysłana, ponieważ serwer SMTP nie będzie mógł prawidłowo sparsować adresatów wiadomości (do nagłówków adresatów doklejone zostaną dyrektywy 'NOTIFY=SUCCESS,DELAY,FAILURE' np. '"Beta User" <betauser@…> NOTIFY=SUCCESS,DELAY,FAILURE', co spowoduje wygenerowanie błędu 501).
Odesłanie raportu przez serwer poczty przychodzącej odbiorcy jest z kolei uzależnione od tego, czy ten serwer wysyła raporty dot. stanu doręczenia wiadomości.
Z opisanych wyżej powodów mechanizm nie daje stuprocentowej gwarancji działania we wszystkich przypadkach. Należy go traktować jako mechanizm wspomagający ustawianie statusów na dokumentach.
W celu aktywowania mechanizmu automatycznego ustawiania statusów, należy zdefiniować w pliku config.inc dwie stałe określające status dla dokumentu, który została dostarczony do adresata (EMAIL_DELIVERY_SUCCESS_TPSTID) oraz dla dokumentu, którego dostarczenie nie powiodło się (EMAIL_DELIVERY_FAILURE_TPSTID). Dodatkowe informacje dot. pliku config.inc można znaleźć w artykule Konfiguracja opcji zawartych w config.inc?.
Po odebraniu raportu ze statusem doręczenia wiadomości email z e-fakturą, raport zostanie zarchiwizowany, w powiązanym dokumencie automatycznie ustawiony zostanie odpowiedni status, utworzone zostanie także powiązanie pomiędzy raportem i fakturą.
Dodano możliwość definicji tytułu do szablonów dokumentów w Ustawienia -> Panel sterowania -> Dokumenty -> Szablony dokumentów. Załadowanie szablonu html do wysyłki eFaktur skutkuje tym, że jeśli dany szablon ma zdefiniowany tytuł wtedy ten tytuł jest brany jak temat mailingu eFaktur. Temat pozwala na wpisanie również SQL
Możliwe komunikaty błędów i ograniczenia: