Weryfikacja unijnego numeru VAT w europejskiej usłudze VIES jest prosta na papierze: jedno wywołanie, odpowiedź ważny lub nieważny. Na produkcji zderza się z usługą, której dostępność zmienia się w zależności od państwa członkowskiego, z niejednorodnymi formatami numerów i z klientem czekającym na odpowiedź, podczas gdy strona się kręci.
Ten artykuł dotyczy implementacji. Podatkowe warunki zwolnienia to inny temat, a weryfikacja jest tylko jednym z czterech.
Gdzie umieścić pole
Dwie możliwe lokalizacje, o różnych konsekwencjach.
Przy rejestracji, w formularzu zakładania konta firmowego. Weryfikacja odbywa się raz, wynik jest zapisany przy kliencie, a składanie zamówienia pozostaje płynne. To zalecane podejście, gdy tylko zatwierdzasz konta firmowe.
Przy zamówieniu, w formularzu adresu rozliczeniowego. Bardziej elastyczne dla klientów kupujących bez konta, ale weryfikacja przypada na najgorszy moment: spowolnienie lub błąd na tym etapie kosztuje zamówienie.
W obu przypadkach pole wiąże się z adresem rozliczeniowym, nigdy z adresem dostawy. Numer należy do podmiotu, który kupuje, a nie do miejsca, gdzie dociera paczka.
Formaty, pierwsze źródło niepowodzeń
Unijny numer VAT zaczyna się od dwuliterowego kodu kraju, po którym następuje ciąg o długości i składzie różnym w zależności od państwa. Polska używa dziesięciu cyfr, Francja dwóch znaków kontrolnych i dziewięciu cyfr, Niemcy dziewięciu cyfr, Hiszpania kombinacji liter i cyfr, a Irlandia dopuszcza kilka formatów historycznych.
Trzy operacje do wykonania przed każdym wywołaniem.
- Normalizacja danych. Usuń spacje, kropki, myślniki i zamień na wielkie litery. Co trzeci klient wpisuje swój numer z separatorami.
- Oddzielenie kodu kraju od reszty. Usługa oczekuje ich osobno, a klient często wpisuje wszystko jednym ciągiem.
- Walidacja formatu przed wywołaniem. Kontrola formatu według kraju pozwala nie odpytywać usługi przy ewidentnie błędnym wpisie i wyświetlić natychmiastowy komunikat.
Uwaga na przypadek Grecji, której kod kraju VAT różni się od kodu ISO, oraz Irlandii Północnej, która od wystąpienia Zjednoczonego Królestwa ma odrębny prefiks.
Weryfikacja Numerów VAT UE w VIES i Odwrotne Obciążenie B2BZweryfikowany numer VAT UE, automatyczne odwrotne obciążenie, dowody ze znacznikiem czasu.€79,00
Wywołanie usługi
Usługa europejska odpytuje przy każdym żądaniu krajową bazę danego państwa. Dwie bezpośrednie konsekwencje.
Latencja mocno się waha w zależności od odpytywanego kraju. Weryfikacja niemiecka zwykle odpowiada szybko, inne administracje są wyraźnie wolniejsze.
Dostępność jest niezależna między państwami. Usługa może działać dla Belgii i być w tym samym momencie niedostępna dla Włoch. Udany test nie gwarantuje więc, że wszystkie weryfikacje się powiodą.
Ustal maksymalny czas oczekiwania, pięć do dziesięciu sekund, po którym uznajesz usługę za niedostępną. Wywołanie bez limitu czasu blokuje stronę.
Tryb awaryjny
To punkt, który odróżnia użyteczną implementację od kruchej. Trzy stany do rozróżnienia, a nie dwa.
Numer ważny. Zapisujesz wynik, znacznik czasu i stosujesz swoje reguły podatkowe.
Numer nieważny. Jasny komunikat dla klienta, z możliwością poprawy. Nie blokuj zamówienia: klient może kupić z VAT i uregulować sprawę później.
Usługa niedostępna. Najgorzej obsługiwany przypadek. Zamówienie musi przejść, z naliczonym VAT, a weryfikacja musi trafić do kolejki ponownej próby. Traktowanie niedostępności jak nieważności powoduje utratę zamówień; traktowanie jej jak ważności naraża Cię podatkowo.
Kolejka ponownej weryfikacji, która automatycznie sprawdza niezweryfikowane numery kilka godzin później, załatwia ten przypadek bez ingerencji.
Komunikaty dla klienta
Liczą się tak samo jak mechanika. Trzy sformułowania do przygotowania.
Przy numerze nieważnym wyjaśnij, co może tłumaczyć odmowę: nowy numer jeszcze niezarejestrowany w bazie europejskiej, firma niepodlegająca podatkowi lub błąd we wpisie. Samo „numer nieważny” zostawia klienta bez wyjścia.
Przy niedostępności powiedz prawdę: weryfikacja nie mogła dojść do skutku, zamówienie można złożyć z VAT, a Ty się odezwiesz. To bardziej uspokajające niż techniczny komunikat błędu.
Przy sukcesie potwierdź wizualnie, z nazwą firmy zwróconą przez usługę, gdy jest dostępna. To potwierdzenie ogranicza błędy wpisu numeru należącego do innej spółki.
Przechowywanie dowodu
Usługa europejska dostarcza numer konsultacji dla każdego żądania. Zapisz go, wraz z datą, godziną, testowanym numerem i pełną odpowiedzią.
To ten ślad pozwala wykazać, dwa lata później, że numer był ważny w momencie sprzedaży. Bez niego nie możesz uzasadnić zwolnienia, nawet jeśli weryfikacja faktycznie się odbyła.
Powiąż ten dowód z zamówieniem, a nie tylko z klientem: klient może zmienić numer, a liczy się stan w momencie transakcji.
Cache i ponowna weryfikacja
Dwa uzupełniające się ustawienia.
Nie wywołuj usługi na każdej stronie. Udaną weryfikację można bez ryzyka przechować kilka dni, co pozwala nie odpytywać usługi przy każdym przeładowaniu koszyka.
Okresowo weryfikuj ponownie stałych klientów. Numer wycofany w ciągu roku pozostaje ważny w Twojej bazie, jeśli nikt go nie sprawdzi. Miesięczna ponowna weryfikacja aktywnych kont wystarczy.
Moduł Walidacji VAT UE w VIES obsługuje cały ten łańcuch w PrestaShop 8 i 9: normalizacja i kontrola formatu według kraju, wywołanie usługi z maksymalnym czasem oczekiwania, tryb awaryjny z kolejką ponownej weryfikacji, przechowywanie numeru konsultacji i okresowa ponowna weryfikacja kont.