eFaktury

Opis modułu

Moduł eFaktury służy do prowadzenia elektronicznej wysyłki faktur sprzedaży oraz archiwizacji faktur zakupu. Funkcjonalność pokrywa następujące wymagania:

  • Import faktur sprzedaży z systemów ERP
  • Podpisywanie faktur pieczęcią elektroniczną
  • Wysyłkę faktur mailem
  • Generowanie żądań potwierdzeń przeczytania emaila
  • Obsługę korekt
  • Przyjmowanie i przechowywanie faktur zakupu z maila

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:

  • Wystawione (faktury przeznaczone do wysyłki)
  • Wysłane (faktury wysłane)
  • Przychodzące (faktury otrzymane w formie elektronicznej)
  • Korekty oczekujące (faktury korekty wystawione i wysłane do klientów, oczekujące na potwierdzenie)
  • Korekty potwierdzone (faktury korekty potwierdzone przez klientów)

Generowanie i podpisywanie plików

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.

Wysyłanie żądania potwierdzenia odebrania faktury dla korekt

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.

Zrzuty ekranu

Ekran modułu:

Ekran wysyłania:

Konfiguracja

Konfiguracja zakładek

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:

  • Exposed - Wystawione i podpisane
  • Outgoing - Wysłane
  • Incoming - Przychodzące
  • CorrectionAwaiting - Wysłane korekty
  • CorrectionConfirmed - Potwierdzone korekty
[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:

  • Wystawienie/pobranie z ERP (status POBRANY - 85)
  • Podpisanie kluczem certyfikatu pieczęci (import poprzez Panel Sterowania > Certyfikaty prieczęci elektronicznej) (status PODPISANY - 86)
  • Wysyłka (status WYSŁANY - 87)

Certyfikaty do podpisu

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.

Import faktur z ERP

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 do wysyłania

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.

Domyślne statusy

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);

Obsługa raportów o stanie doręczenia wiadomości email

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ą.

Ładowanie szablonu HTML

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

Troubleshooting

Możliwe komunikaty błędów i ograniczenia:

  • "Faktura o numerze nie jest poprawna - Sprawdź listę załączników"

Załączniki