B2B VAT: walidacja VIES i wewnątrzwspólnotowe odwrotne obciążenie. Moduł B2B VAT sprawdza numery VAT UE w oficjalnym systemie VIES, automatycznie stosuje zwolnienie z VAT w ramach wewnątrzwspólnotowego odwrotnego obciążenia i przypisuje prawidłowych klientów B2B do konfigurowalnej grupy. Zawiera pamięć podręczną walidacji, historię w panelu administracyjnym z ręcznym nadpisaniem oraz narzędzie do ręcznego sprawdzania numerów VAT. Bez kodowania i bez zmian w szablonie.
Moduł B2B VAT sprawdza numery VAT UE w oficjalnym systemie VIES, automatycznie stosuje zwolnienie z VAT w ramach wewnątrzwspólnotowego odwrotnego obciążenia i przypisuje prawidłowych klientów B2B do konfigurowalnej grupy. Zawiera pamięć podręczną walidacji, historię w panelu administracyjnym z ręcznym nadpisaniem oraz narzędzie do ręcznego sprawdzania numerów VAT. Bez kodowania i bez zmian w szablonie.
1. Instalacja
- W panelu administracyjnym (back office) należy przejść do Modules → Module Manager → Upload a module i wybrać plik ZIP modułu.
- Po zainstalowaniu należy kliknąć Configure, aby otworzyć ekran konfiguracji.
.local, .test, localhost) są zawsze dozwolone. Gdy dostępna jest nowa wersja, widać to bezpośrednio w module.Jeśli zamiast potwierdzenia pojawi się komunikat „Upload failed”, PrestaShop mógł wyłączyć moduł bez powiadomienia: ustawienia i dane pozostają na swoim miejscu. Jak zaktualizować moduł i co zrobić, gdy pojawi się komunikat „Upload failed”.
2. Konfiguracja · krok po kroku
Panel administracyjny modułu ma trzy zakładki: Validation history, VAT lookup i Settings. Wszystkie opcje znajdują się w zakładce Settings, pogrupowane w sekcje Validation, Exemption & B2B group, Behaviour i Data.
Settings zakładka Settings
Tutaj ustawia się, kiedy i jak sprawdzane są numery VAT, do jakiej grupy trafiają kwalifikujący się klienci B2B oraz co się dzieje, gdy numer jest nieprawidłowy lub VIES jest niedostępny.
- Enable VAT validation: główny przełącznik całego modułu.
- Validate on registration: sprawdzanie numeru VAT podczas rejestracji klienta.
- Validate on address create / edit: sprawdzanie numeru VAT podczas zapisywania lub aktualizacji adresu.
- Validate at checkout: sprawdzanie numeru VAT w trakcie realizacji zamówienia.
- Require the VIES trader name to match: zwolnienie jest przyznawane tylko wtedy, gdy nazwa ujawniona przez VIES zgadza się z nazwą klienta lub firmy. Jeśli VIES nie ujawnia żadnej nazwy, zwolnienie jest odrzucane (zabezpieczenie).
- B2B group: klienci z numerem VAT UE zatwierdzonym przez VIES są dodawani do tej grupy. Jej price display method należy ustawić na bez podatku, aby nie płacili VAT (odwrotne obciążenie).
- Apply tax-exempt to qualifying customers: przyznaje zwolnienie z odwrotnego obciążenia (przez grupę B2B), gdy numer VAT jest prawidłowy, kraj należy do UE i jest inny niż kraj sklepu.
- Treat an invalid VAT as a hard error: gdy wyłączone (zalecane), nieprawidłowy numer VAT powoduje tylko ostrzeżenie i jest zapisywany; klient nie jest blokowany.
- When VIES is unavailable: do wyboru Allow (silent): never block the customer lub Allow but show a „could not verify, will retry” notice. Numer zostaje oznaczony jako „not verifiable” i sprawdzony ponownie później.
- Cache freshness (days): wynik prawidłowy lub nieprawidłowy jest używany ponownie przez tyle dni, zanim VIES zostanie zapytany ponownie (ochrona przed limitem zapytań).
0wyłącza pamięć podręczną. - Drop data on uninstall: po włączeniu odinstalowanie modułu usuwa całą historię walidacji. Pozostawienie wyłączonego zachowuje wpisy po ponownej instalacji.


Validation history zakładka History
Każde sprawdzenie numeru VAT jest tutaj rejestrowane: numer VAT, jego status (Valid, Not valid, Not verifiable lub Bad format), nazwa przedsiębiorcy zwrócona przez VIES (jeśli jest dostępna), źródło (zapytanie na żywo do VIES lub pamięć podręczna) oraz znacznik czasu. Wpis można znaleźć za pomocą pola wyszukiwania i filtra statusu, a następnie za pomocą akcji w wierszu ponownie sprawdzić go na żywo w VIES, wymusić status prawidłowy lub nieprawidłowy albo go usunąć.

VAT lookup zakładka Lookup
Narzędzie do ręcznego sprawdzenia dowolnego numeru VAT UE na żądanie, bez rejestracji klienta, adresu czy zamówienia. Należy wybrać kraj domyślny (używany tylko wtedy, gdy numer VAT wpisano bez prefiksu kraju), wpisać numer i kliknąć Check: wynik pojawia się natychmiast i jest też zapisywany w Validation history.

Gdzie klienci go wpisują Front office
Pole VAT number pojawia się obok pola Company w formularzu rejestracji i w formularzu adresu (My account → Addresses), jak każde inne pole adresu w PrestaShop. Jest opcjonalne: klienci, którzy zostawią je puste, są po prostu traktowani jak zwykli konsumenci, bez żadnego zwolnienia.

3. Sprawdzenie działania
- Należy zarejestrować się (lub złożyć zamówienie) z prawidłowym wewnątrzwspólnotowym numerem VAT z kraju innego niż kraj sklepu, a następnie sprawdzić, czy zamówienie nie zawiera VAT (zastosowano odwrotne obciążenie) i czy klient trafił do grupy B2B.
- Należy wpisać nieprawidłowy numer VAT i sprawdzić, czy zostaje odrzucony (lub, przy łagodnym ustawieniu, zapisany jako ostrzeżenie) oraz czy zwolnienie nie zostaje przyznane.
- Należy otworzyć zakładkę Validation history i sprawdzić, czy każda próba jest wymieniona wraz ze statusem (valid / invalid / not verifiable / bad format).
- Za pomocą zakładki VAT lookup można sprawdzić dowolny numer VAT UE na żądanie, bezpośrednio w VIES.
4. FAQ
Co jeśli VIES jest chwilowo niedostępny?
Klient nigdy nie jest blokowany. Numer zostaje oznaczony jako „not verifiable” i sprawdzony ponownie później. W Settings wybiera się, czy zachować milczenie, czy wyświetlić komunikat „could not verify, will retry”.
Czy numer VAT z własnego kraju (kraju sklepu) jest zwolniony?
Nie. Zwolnienie z odwrotnego obciążenia dotyczy wyłącznie sprzedaży wewnątrzwspólnotowej: prawidłowego numeru VAT z kraju UE innego niż kraj sklepu. Sprzedaż krajowa zachowuje zwykły VAT.
Czy trzeba edytować szablon?
Nie. B2B VAT działa przez standardowe hooki i jest zgodny z dowolnym szablonem.
Czy można ręcznie poprawić wynik walidacji?
Tak. W Validation history można ponownie sprawdzić wpis na żywo w VIES, wymusić status prawidłowy lub nieprawidłowy albo go usunąć.
