Każdy przelew na kwotę powyżej 15 000 zł, który wykonasz na rachunek nieznajdujący się na białej liście VAT Ministerstwa Finansów, potrafi kosztować Cię więcej niż sama transakcja. A i tak większość polskich MŚP sprawdza tę listę ręcznie — otwiera się w przeglądarce, wkleja NIP, klika „szukaj", porównuje numer konta w Wordzie z numerem na fakturze. Codziennie, kilkanaście razy.
Robimy integracje białej listy VAT z ERP-ami regularnie i za każdym razem widzimy ten sam schemat. Firma płaci 40–100 przelewów dziennie. Kilkanaście z nich przekracza próg 15 000 zł. Księgowa — albo jeszcze gorzej, właściciel wieczorem po godzinach — otwiera po kolei stronę Ministerstwa Finansów i sprawdza każdy rachunek. Zajmuje to 30–60 sekund na przelew. Godzina dziennie schodzi w klik. A wystarczyłoby raz podpiąć API MF do ERP-a i mieć spokój.
U jednego z naszych klientów — 18-osobowej hurtowni farb i chemii budowlanej z Wielkopolski — główna księgowa spędzała 45 minut dziennie na ręcznym sprawdzaniu białej listy VAT dla 60–90 przelewów, z czego 12–15 przekraczało próg 15 000 zł. Po integracji Comarch Optima z API Ministerstwa Finansów weryfikacja odbywa się automatycznie w momencie tworzenia przelewu — ostrzeżenie pojawia się od razu, jeśli rachunek nie jest zgłoszony. Ręczne sprawdzanie zniknęło. Zwrot z inwestycji po niecałych trzech miesiącach.
Dlaczego to nie jest opcjonalne
Biała lista VAT to nie jest zalecenie — to obowiązek prawny wynikający z art. 96b ustawy o VAT. Jeśli wpłacasz kwotę powyżej 15 000 zł brutto (od 2026 r. próg dotyczy również transakcji rozliczanych w częściach) na rachunek, którego nie ma w wykazie MF na dzień wykonania przelewu, konsekwencje są dwie i obie są dotkliwe.
Po pierwsze, tracisz prawo do zaliczenia tego wydatku do kosztów uzyskania przychodu. Cała kwota wraca do podstawy opodatkowania CIT/PIT. Przy 19% podatku i fakturze na 30 000 zł to 5 700 zł, których nie odzyskasz. Za jedno kliknięcie mniej.
Po drugie, ponosisz solidarną odpowiedzialność za VAT niezapłacony przez kontrahenta. Jeżeli dostawca nie odprowadzi VAT-u, urząd może upomnieć się o niego u Ciebie. Nie musisz nawet wiedzieć, że dostawca nie zapłacił — wystarczy, że przelew poszedł na nierejestrowany rachunek.
Jest wyjście awaryjne — zawiadomienie ZAW-NR do naczelnika urzędu skarbowego w ciągu 7 dni od zapłaty. Ale to jest procedura naprawcza po fakcie. Znacznie taniej jest po prostu nie zapłacić na zły rachunek.
Ręczne sprawdzanie: dlaczego zawodzi
Ktoś powie: „przecież sprawdzamy". Tak, sprawdzacie. Problem w tym, że sprawdzacie inaczej, niż wymaga tego przepis.
Ręczna weryfikacja w MŚP zwykle wygląda tak: księgowa otwiera fakturę, kopiuje NIP, wkleja na stronie MF, patrzy czy „numer rachunku jest w wykazie", i idzie dalej. To bardzo blisko celu, ale nie do końca. Trzy najczęstsze błędy, które kosztują pieniądze:
- Sprawdzenie w złym dniu. Przepis wymaga, żeby rachunek był na liście w dniu zlecenia przelewu, nie w dniu wystawienia faktury. Jeśli sprawdzasz przy księgowaniu, a płacisz trzy dni później — i w międzyczasie dostawca zniknął z listy — masz problem, nawet jeśli udokumentowałeś pierwsze sprawdzenie.
- Brak archiwum weryfikacji. MF prowadzi historyczny wykaz, ale jeśli nie masz własnego zapisu, że „w dniu 15.07 rachunek X był aktywny", udowadnianie tego po dwóch latach na kontroli jest kłopotliwe.
- Sprawdzenie jednego rachunku, gdy faktura ma kilka. Faktury proforma i faktury sprzedażowe czasem mają różne rachunki. Zdarza się, że dostawca zmienił bank i wysłał aneks mailem, o którym księgowa nie wiedziała. Pieniądze idą na stary rachunek — który już zniknął z listy.
Automatyzacja rozwiązuje wszystkie trzy — bo weryfikacja dzieje się dokładnie w momencie tworzenia przelewu, a jej wynik ląduje w bazie ERP-a razem z płatnością. Zawsze wiadomo, co i kiedy zostało sprawdzone.
Trzy poziomy automatyzacji
Nie wszystko trzeba robić od razu w skomplikowany sposób. W praktyce widzimy trzy poziomy, które opłaca się zrobić po kolei.
Poziom 1 — plik płaski. Ministerstwo Finansów udostępnia codziennie plik CSV z całą listą zarejestrowanych rachunków (kilkaset MB). Ściągasz go raz dziennie i porównujesz lokalnie. Prosty, tani, działa nawet w Excelu z makrem. Wada: plik jest jednym dużym zrzutem i nie ma w nim historii — jeśli chcesz udowodnić, że „w tym dniu rachunek był na liście", musisz sam archiwizować kolejne pliki.
Poziom 2 — API JSON. MF wystawia REST API (https://wl-api.mf.gov.pl), które pozwala pytać punktowo po NIP-ie lub numerze rachunku. Odpowiedź zawiera identyfikator zapytania — to jest ten „dowód", który potem możesz pokazać na kontroli. API jest bezpłatne, ale ma limit ok. 30 zapytań na sekundę per IP. Dla MŚP z zapasem wystarczy.
Poziom 3 — wbudowana walidacja w ERP. Najlepsza wersja. Weryfikacja uruchamia się automatycznie w chwili, gdy księgowa (albo automat) tworzy przelew. Jeśli rachunek nie jest zarejestrowany, ERP nie pozwala kontynuować bez świadomej decyzji operatora (i zapisania powodu). Wynik weryfikacji — z datą i identyfikatorem zapytania — trafia do bazy razem z płatnością.
Comarch Optima ma tę funkcję wbudowaną od 2020 roku (moduł „Biała lista VAT"). enova365 też ma natywne wsparcie. Subiekt GT/nexo — po stronie Insertu jest wtyczka, ale można też zrobić własną integrację przez API. Microsoft Dynamics 365 BC — dla polskiej lokalizacji z reguły trzeba doinstalować dodatek lub napisać własny konektor. W każdym z tych scenariuszy koszt to raczej dni robocze niż miesiące.
Co jeszcze warto sprawdzić przy okazji
Skoro już piszesz kod, który dziesięć razy dziennie odpytuje API MF o NIP kontrahenta, warto rozejrzeć się, co jeszcze można zweryfikować przy tym samym ruchu.
- Status VAT (czynny/zwolniony/wykreślony). To samo API MF zwraca też status podatnika. Czynny podatnik VAT wykreślony z rejestru to jasny sygnał ostrzegawczy — nie zawsze złodziej, ale zawsze temat do rozmowy.
- Dane w KRS przez API MS. Ministerstwo Sprawiedliwości ma darmowe API do KRS-u. Możesz automatycznie pobierać skład zarządu, kapitał, status spółki. Jeżeli kontrahent jest w upadłości albo w likwidacji, warto o tym wiedzieć zanim wyślesz przelew.
- Weryfikacja NIP przez GUS/REGON. Darmowa API GUS pozwala potwierdzić, że firma naprawdę istnieje pod danym NIP-em, sprawdzić nazwę i adres. Dobre miejsce, żeby wyłapać literówki i pomyłki w NIP-ie przy zakładaniu kartoteki.
- Numer rachunku w formacie IBAN. Prosta walidacja sumy kontrolnej — jeśli suma się nie zgadza, gdzieś jest błąd, jeszcze zanim MF cokolwiek powie.
Cała ta warstwa razem to nie tyle „ochrona przed białą listą", co porządna kartoteka kontrahentów, którą chce się mieć niezależnie od podatków. AI, o którym piszemy w innych postach, potrzebuje właśnie tego — czystych, zweryfikowanych, spójnych danych o kontrahentach.
Od czego zacząć
Praktyczna kolejność, którą stosujemy z klientami:
- Sprawdź, czy Twój ERP ma wbudowaną obsługę białej listy (Optima, enova mają — spytaj serwisanta, może wystarczy włączyć i skonfigurować).
- Jeśli nie, oszacuj skalę: ile przelewów dziennie, ile z nich przekracza próg 15 000 zł, ile czasu księgowa realnie na to poświęca.
- Zdecyduj poziom automatyzacji z listy wyżej. Dla większości MŚP wystarczy poziom 2 (API JSON) z zapisem identyfikatora zapytania do bazy.
- Zrób proces: co się dzieje, kiedy weryfikacja mówi „nie". Kto podejmuje decyzję, kto podpisuje zgodę, kiedy wypełniamy ZAW-NR.
- Zarchiwizuj wyniki weryfikacji. Dwa lata to minimum, pięć lat to komfort na wypadek kontroli.
Jeśli nie masz pewności, którego kroku szuka Twoja firma, pół godziny rozmowy zwykle wystarczy, żeby to ustalić. Bez oferty na projekt za 100 000 zł — najczęściej to jest robota na tygodnie, nie na kwartały.
Biała lista VAT nie jest o podatkach. Jest o tym, żeby nikt w Twojej firmie nie musiał codziennie ręcznie wklejać NIP-ów do formularza w przeglądarce.