PS PrestaShop Średnio zaawansowany

Weryfikacja VAT UE w VIES i odwrotne obciążenie B2B

Instalacja i konfiguracja weryfikacji VIES, odwrotnego obciążenia zależnego od kraju dostawy oraz niezmiennego dziennika dowodów.

Zaktualizowano Wersja modułu 1.1.1

Ten moduł weryfikuje numery VAT UE w bazie VIES Komisji Europejskiej, stosuje odwrotne obciążenie (faktura z 0% VAT) do sprzedaży B2B dostarczanej do innego państwa członkowskiego i prowadzi dziennik dowodów z sygnaturą czasową: dokument, którego urząd skarbowy żąda podczas kontroli.

Najważniejsze ustawienie to Twój własny numer VAT. Bez niego VIES nie wydaje oficjalnego numeru zapytania, najmocniejszego dowodu podczas kontroli.

Wymagania

  • PrestaShop 8.0 do 9.x, jeden sklep lub multistore.
  • PHP 7.4 do 8.3 (PrestaShop 9 wymaga PHP 8.1 lub nowszego). Zalecane jest rozszerzenie SOAP; bez niego moduł korzysta z API REST VIES.
  • Wychodzący dostęp HTTPS do ec.europa.eu z Twojego serwera.
  • Pole Numer VAT musi być w formacie adresu krajów UE, do których wysyłasz. Strona konfiguracji pokazuje kraje, w których go brakuje.

Instalacja

  1. W panelu administracyjnym otwórz Moduły > Menedżer modułów > Załaduj moduł.
  2. Wybierz plik ZIP i uruchom instalację.
  3. Kliknij Konfiguruj.

Instalacja tworzy dziennik zapytań i zakładkę Dziennik VIES B2B w menu Zamówienia.

Moduł PrestaShop do weryfikacji VAT UE w VIES: statystyki zapytań, diagnostyka i adres URL crona
Góra strony konfiguracji: statystyki z ostatnich 30 dni, diagnostyka i adres URL crona.

Aktualizacja z wersji 1.1.0

Załaduj plik ZIP 1.1.1 na poprzedni. Ta wersja naprawia błąd, przez który odwrotne obciążenie nie było stosowane w PrestaShop 8 i 9: skrypt aktualizacji podłącza moduł do właściwego hooka obliczania podatków (actionTaxManager). Ustawienia i dziennik zostają zachowane. Jeśli używasz wersji 1.1.0, zaktualizuj ją od razu: w tych wersjach PrestaShop wewnątrzwspólnotowe zamówienia B2B były nadal fakturowane z VAT.

Aktualizacja z wersji 1.0.0

Załaduj nowy plik ZIP na stary. Skrypt aktualizacji dodaje nowe kolumny dziennika, rejestruje nowe hooki i zastępuje domyślne adnotacje na fakturze, chyba że je zmieniłeś. Istniejący dziennik zostaje zachowany.

Jak moduł decyduje o zwolnieniu

Zamówienie przechodzi na 0% VAT tylko wtedy, gdy spełnione są wszystkie warunki:

  • zwolnienie jest włączone w konfiguracji;
  • klient ma numer VAT z innego państwa członkowskiego niż Twoje;
  • towar jest dostarczany do innego państwa członkowskiego niż Twoje;
  • VIES potwierdził numer w ciągu wybranego okresu ważności.

Przykład: Twój sklep działa w Polsce, klient ma niemiecki numer VAT, ale odbiera towar w Krakowie. Sprzedaż nadal podlega polskiemu VAT.

Używany jest numer VAT z adresu, od którego sklep nalicza podatki (ustawienie PrestaShop, domyślnie adres dostawy). Jeśli ten adres nie ma numeru, używany jest numer z adresu do faktury tego samego zamówienia. Kraj dostawy jest zawsze sprawdzany, nawet gdy sklep nalicza podatki od adresu do faktury.

Dla Irlandii Północnej, zapisanej w PrestaShop jako Wielka Brytania, numer XI jest akceptowany dla adresu z kodem pocztowym zaczynającym się od BT.

Proces zamówienia B2B: VAT 0 € dzięki wewnątrzwspólnotowemu odwrotnemu obciążeniu
Klient z Włoch z numerem zweryfikowanym w VIES i dostawą do Włoch: koszyk bez VAT.

Konfiguracja

Ustawienia modułu: numer VAT sprzedawcy, automatyczne zwolnienie (odwrotne obciążenie), blokowanie nieprawidłowych numerów, grupa B2B
Wszystkie ustawienia modułu, opisane poniżej.

Numer VAT sprzedawcy

Wpisz numer VAT swojej firmy z prefiksem kraju. Każda weryfikacja odpytuje wtedy VIES z identyfikatorem wnioskodawcy i otrzymuje oficjalny numer zapytania z sygnaturą czasową. Jeśli VIES odrzuci Twój numer, klienci nadal są weryfikowani bez oficjalnego numeru, a czerwony komunikat Cię o tym informuje.

Kraj sprzedawcy

Twoje państwo członkowskie. Numer VAT z tego kraju ani dostawa do tego kraju nigdy nie dają prawa do zwolnienia.

Automatyczne zwolnienie

Po wyłączeniu weryfikacja i dziennik działają dalej, ale podatek nigdy nie jest zmieniany. Przydatne w okresie obserwacji.

Blokuj nieprawidłowe numery VAT

Po włączeniu formularz adresu lub rejestracji jest odrzucany, gdy VIES uzna numer za nieprawidłowy lub format jest błędny.

Gdy VIES jest niedostępny

  • Akceptuj (domyślnie): adres zostaje zapisany bez zwolnienia, dopóki VIES go nie potwierdzi.
  • Blokuj: formularz zostaje odrzucony.

W obu przypadkach klient, którego dowód mieści się jeszcze w okresie ważności, zachowuje zwolnienie podczas awarii.

Weryfikacja na żywo i pole rejestracji

Weryfikacja na żywo pokazuje oznaczenie pod polem VAT podczas wpisywania. Pole rejestracji dodaje opcjonalny numer VAT przy zakładaniu konta i na stronie danych osobowych. Numer jest zapisywany w profilu i wstępnie wpisywany w nowych adresach klienta.

Formularz rejestracji: numer VAT UE zweryfikowany w VIES w czasie rzeczywistym
Rejestracja: VIES weryfikuje numer już podczas wpisywania i podaje nazwę firmy.
Formularz rejestracji: numer VAT nierozpoznany przez VIES, zgłoszony klientowi
Numer nierozpoznany przez VIES jest od razu sygnalizowany klientowi.
Adres klienta z numerem VAT UE zweryfikowanym w VIES
To samo oznaczenie w formularzu adresu na koncie klienta.

Grupa klientów B2B

Opcjonalnie: klienci z numerem potwierdzonym w VIES są automatycznie dodawani do tej grupy.

Pamięć podręczna, ważność i ponowna weryfikacja

  • Pamięć podręczna zapytań (domyślnie 72 h): numer niedawno potwierdzony jako ważny nie jest ponownie sprawdzany. Odpowiedź negatywna jest sprawdzana ponownie po godzinie, ponieważ świeżo nadany numer może pojawić się w VIES dopiero po kilku dniach. Pamięć podręczna nigdy nie przekracza okresu ważności.
  • Okres ważności (domyślnie 90 dni): po nim zwolnienie przestaje działać do nowej weryfikacji. Moduł sprawdza automatycznie ponownie przy otwarciu zamówienia.
  • Odstęp ponownej weryfikacji (domyślnie 30 dni): wiek, od którego cron ponownie sprawdza numer.
  • Limit weryfikacji na żywo (20 na godzinę i IP): chroni VIES i sklep przed nadużyciami.

Adnotacja prawna na fakturze

Tekst do edycji dla każdego języka, ze zmiennymi %vat% (numer klienta), %date% (data zapytania VIES w formacie języka klienta), %consultation% (oficjalny numer zapytania) i %name% (nazwa firmy). Puste pole przejmuje pierwszy wpisany tekst.

Faktura PDF bez VAT z adnotacją o odwrotnym obciążeniu (art. 138 i 196) i numerem zapytania VIES
Adnotacja pod sumami faktury bez VAT, z datą i numerem zapytania VIES.

Dziennik dowodów

Każde zapytanie widać w Zamówienia > Dziennik VIES B2B: data, kraj, numer, wynik, status, źródło (adres, zamówienie, rejestracja, weryfikacja na żywo, dowód zamówienia, ręcznie, cron), nazwa firmy, numer zapytania, zamówienie, kolumna Bez VAT, klient i IP.

Dziennik jest tylko do odczytu. Usuwanie i edycja są blokowane po stronie serwera, a tabela jest zachowywana po odinstalowaniu.

Dziennik zapytań VIES ze znacznikiem czasu i oficjalnym numerem zapytania, dowód na wypadek kontroli podatkowej
Dziennik VIES B2B: każde zapytanie, jego źródło, oficjalny numer i zamówienia bez VAT.

Dowód zamówienia

Przy zatwierdzeniu każdego zamówienia wewnątrzwspólnotowego dodawany jest wiersz Dowód zamówienia. Wskazuje on zapytanie VIES, na którym opiera się zwolnienie, i informuje, czy zamówienie zafakturowano bez VAT. Ten wiersz nigdy nie liczy się jako nowe zapytanie. Panel VIES na karcie zamówienia pokazuje datę zapytania, nazwę firmy i oficjalny numer.

Zamówienie B2B zafakturowane bez VAT (odwrotne obciążenie) z dowodem VIES zapisanym w panelu PrestaShop
Panel VIES w zamówieniu: zweryfikowany numer, oficjalny numer zapytania i faktura bez VAT.

Eksport CSV

Przycisk eksportu tworzy plik CSV ze wszystkimi kolumnami, w tym datą zapytania VIES, adresem firmy, kodem błędu i ID zapytania źródłowego.

Automatyczna ponowna weryfikacja (cron)

Strona konfiguracji pokazuje adres URL cron zabezpieczony tokenem. Wywołuj go raz dziennie. Każde uruchomienie obsługuje do 25 numerów: tych ze starą odpowiedzią VIES i tych, na które VIES nie odpowiedział. Gdy VIES nie działa, uruchomienie kończy się bez błędów.

0 4 * * * curl -s "https://twoj-sklep/index.php?fc=module&module=dfviesb2b&controller=cron&token=TWOJ_TOKEN" > /dev/null

Awarie VIES

Każde wywołanie jest ograniczone do 8 sekund. Gdy SOAP nie odpowiada, moduł próbuje API REST. Po awarii przez pięć minut nie odpytuje VIES, aby nie spowalniać zamówienia. Zatwierdzenie zamówienia wywołuje VIES tylko dla numeru nigdy niesprawdzonego.

RODO

Z modułem psgdpr klient może wyeksportować swoje zapytania. Żądanie usunięcia kasuje numer zapisany w profilu i adresy IP klienta z dziennika. Same dowody podatkowe są zachowywane, na co pozwala art. 17 ust. 3 lit. b RODO w przypadku obowiązków prawnych.

Rozwiązywanie problemów

Nie pojawia się numer zapytania

Sprawdź, czy numer VAT sprzedawcy jest wpisany i czy żaden czerwony komunikat nie informuje o odrzuceniu przez VIES.

Klient nie może wpisać numeru VAT

Pole brakuje w formacie adresu jego kraju. Dodaj vat_number w Międzynarodowe > Lokalizacje > Kraje.

Zwolnienie nie jest stosowane

Sprawdź cztery warunki opisane wyżej, zwłaszcza kraj dostawy, i obejrzyj ostatni wiersz dziennika dla tego numeru.

Oznaczenie pozostaje na VIES niedostępny

VIES miewa awarie. Sprawdź też, czy serwer łączy się z ec.europa.eu przez HTTPS. Cron nadrobi niesprawdzone numery.

Ten moduł automatyzuje weryfikację, zwolnienie i gromadzenie dowodów. Nie zastępuje księgowego: odpowiedzialność za obowiązki podatkowe pozostaje po Twojej stronie.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia