Więcej

Bezpłatna rozmowa
Stała cena na piśmie przed startem

Biała lista VAT w n8n: sprawdzanie kontrahentów z arkusza przed przelewem

Lista kontrahentów w Google Sheets, a przed każdym przelewem ktoś ręcznie wkleja NIP-y do wyszukiwarki Ministerstwa Finansów. Ten workflow n8n robi to sam: waliduje NIP, pyta API białej listy, porównuje numer rachunku i zwraca prosty werdykt.

Autor

Opublikowano:
Ostatnia weryfikacja:
Wersja n8n:
2.8.4

W skrócie

Co robi

  • Czyta kontrahentów z Google Sheets ręcznie albo w dni robocze o 7:00
  • Normalizuje NIP i sprawdza sumę kontrolną lokalnie
  • Pyta API wykazu podatników VAT Ministerstwa Finansów o status na dziś
  • Porównuje numer rachunku z arkusza z rachunkami z wykazu
  • Zwraca werdykt ACTIVE, NOT_ACTIVE, NOT_FOUND albo INVALID_NIP

Czego nie robi

  • Nie zapisuje wyników z powrotem do arkusza
  • Nie przechowuje identyfikatora zapytania jako dowodu weryfikacji
  • Nie obejdzie limitu 100 zapytań dziennie
  • Nie jest poradą podatkową

Czego wymaga

  • n8n (sprawdzone na 2.8.4)
  • Konto Google z dostępem do arkusza
  • Kolumny: NIP, nazwa firmy, opcjonalnie numer rachunku

Biała lista VAT w n8n: sprawdzanie kontrahentów z arkusza przed przelewem

Każdy, kto płaci faktury powyżej 15 tysięcy złotych, powinien przed przelewem sprawdzić, czy rachunek kontrahenta jest w wykazie podatników VAT, czyli na tak zwanej białej liście. W małych firmach wygląda to zwykle tak samo: arkusz z kontrahentami i ktoś, kto wkleja NIP-y jeden po drugim do wyszukiwarki Ministerstwa Finansów.

Ten workflow n8n robi tę pracę za człowieka. Czyta arkusz, odsiewa błędne NIP-y, pyta oficjalne API i zwraca jeden z czterech werdyktów dla każdego wiersza.

Canvas workflow białej listy VAT: dwa wyzwalacze, ustawienia kolumn, odczyt kontrahentów z arkusza, walidacja NIP, zapytanie do API Ministerstwa Finansów i werdykt
Cały workflow po imporcie. Walidacja sumy kontrolnej NIP stoi przed zapytaniem do API, więc błędny numer nie zużywa limitu.

Najpierw suma kontrolna, potem API

NIP ma cyfrę kontrolną. Literówka w arkuszu da się wykryć bez pytania kogokolwiek, więc pierwszy krok to normalizacja (usuwamy myślniki i spacje) i sprawdzenie wag.

normalize-and-validate-nip.js
function checksumOk(nip) {
  if (!/^\d{10}$/.test(nip)) return false;
  const w = [6, 5, 7, 2, 3, 4, 5, 6, 7];
  const sum = w.reduce((acc, weight, i) => acc + weight * Number(nip[i]), 0);
  return sum % 11 === Number(nip[9]);
}

NIP, który nie przechodzi tej kontroli, dostaje werdykt INVALID_NIP niezależnie od tego, co odpowie API.

Cztery werdykty zamiast surowej odpowiedzi

API zwraca obiekt result.subject z polem statusVat. Czynny podatnik ma tam wartość „Czynny”. Workflow sprowadza to do czterech stanów, które da się przeczytać bez znajomości API:

WerdyktZnaczenie
ACTIVEczynny podatnik VAT na dzień sprawdzenia
NOT_ACTIVEjest w wykazie, ale ze statusem innym niż czynny
NOT_FOUNDwykaz nie zna tego NIP-u na ten dzień
INVALID_NIPnumer nie przeszedł sumy kontrolnej

Jeśli w arkuszu jest kolumna z numerem rachunku, workflow porównuje go z listą accountNumbers z wykazu (po usunięciu spacji). Pole account_on_white_list przyjmuje wtedy wartość prawda albo fałsz. Gdy kolumny nie ma, zostaje puste, bo brak danych to nie to samo co negatywny wynik.

Na początku wyniku pojawia się podsumowanie w rodzaju „3 z 40 kontrahentów wymaga uwagi przed płatnością”. To jest jedyna liczba, którą ktoś przegląda codziennie rano.

Limit API

Przy dłuższej liście trzeba przejść na zapytania zbiorcze (do 30 NIP-ów naraz) albo dzielić arkusz na dni.

Konfiguracja

ParametrDomyślniePo co
whiteListApihttps://wl-api.mf.gov.pl/api/search/nip/adres metody wyszukiwania po NIP
nipColumnNIPnazwa kolumny z NIP-em w arkuszu
nameColumnCompanykolumna z nazwą, gdy wykaz jej nie zwróci
accountColumnBank accountkolumna z rachunkiem do porównania

Harmonogram to dni robocze o 7, przed tym, jak ktoś zacznie robić przelewy.

Ograniczenia

Wynik zostaje w wykonaniu n8n. Szablon nie zapisuje werdyktów do arkusza ani nie wysyła alertu, więc przy uruchamianiu z harmonogramu trzeba dopiąć jeden z tych kroków. Bez tego poranny przebieg nikogo nie informuje.

NIP odrzucony przez sumę kontrolną i tak trafia do node'a HTTP, który kończy się błędem i jest pomijany. Przy limicie 100 zapytań dziennie lepiej odfiltrować takie wiersze przed zapytaniem.

Odpowiedź API zawiera identyfikator zapytania, który może służyć jako dowód, że rachunek był sprawdzony. Szablon go nie zapisuje.

Sprawdzenie dotyczy dnia uruchomienia, a nie dnia przelewu. Jeśli płatność idzie kilka dni później, warto sprawdzić jeszcze raz.

Kiedy to nie ma sensu

Przy kilku stałych kontrahentach ręczne sprawdzenie zajmuje minutę. Część banków sprawdza też rachunek w wykazie przy zlecaniu przelewu. Workflow ma sens, gdy kontrahentów są dziesiątki, a lista płatności powstaje w arkuszu, zanim trafi do banku. Jeśli to samo powinno dziać się w systemie księgowym albo w panelu dla zespołu, to już zadanie dla automatyzacji procesów w konkretnej firmie, a do danych rejestrowych przyda się też wzbogacanie firm po NIP z KRS.

Weź to do siebie

Jak to zacytować

Adrian Hunia (2026). Biała lista VAT w n8n: sprawdzanie kontrahentów z arkusza przed przelewem. SEVENEDGE. https://sevenedge.pl/pl/workflows/biala-lista-vat-weryfikacja-kontrahentow (dostęp: 5 listopada 2026)

Źródła

  1. Ministerstwo Finansów — Jak korzystać z wykazu podatników VATdokumentacja API
  2. n8n docs — Google Sheetsdokumentacja n8n
  3. n8n docs — HTTP Requestdokumentacja n8n

Kto za tym stoi

Adrian Hunia

Współzałożyciel SEVENEDGE

Współzałożyciel SEVENEDGE. Projektuje i wdraża systemy biznesowe dla małych firm — od zarządzania produkcją po rejestrację czasu pracy. Pracuje na Next.js, FastAPI i PostgreSQL. SEVENEDGE działa bez podwykonawców: kod piszą dwaj właściciele.

Powiązane dokumenty

Inne przepływy, które opisaliśmy tak samo dokładnie.

7SVENAsystent AI, nie człowiek

Rozmawiasz z asystentem AI. Odpowiedzi generuje sztuczna inteligencja (Cerebras) i mogą zawierać błędy. Nie podawaj w czacie danych wrażliwych.

Administratorem Twoich danych jest SEVENEDGE ADRIAN HUNIA. Wiadomości z czatu wykorzystamy, żeby odpowiedzieć na pytania, a jeśli poprosisz, umówić spotkanie. Szczegóły i Twoje prawa: Polityka prywatności.

Cześć! Jestem SVEN, asystent AI SEVENEDGE. Robimy apki, SaaS i automatyzacje AI. W czym pomóc?
SVEN, maskotka SEVENEDGE, analizuje zgłoszenieSVEN, maskotka SEVENEDGE, zastanawia się przy kawieSVEN, maskotka SEVENEDGE, pracuje przy laptopie
Masz pomysł na apkę?