NIP, biała lista i KRS w jednym wierszu: wzbogacanie danych firm w n8n
Masz w arkuszu same NIP-y, a potrzebujesz nazwy, REGON-u, formy prawnej, zarządu, PKD i rachunków. Ten workflow n8n pyta dwa publiczne rejestry, białą listę VAT i KRS, i wpisuje wynik z powrotem do tego samego wiersza.
Autor
- Adrian HuniaWspółzałożyciel SEVENEDGE
- Opublikowano:
- Ostatnia weryfikacja:
- Wersja n8n:
- 2.8.4
W skrócie
Co robi
- Czyta NIP-y z Google Sheets i sprawdza ich sumę kontrolną
- Pobiera status VAT, REGON, adres i rachunki z białej listy
- Bierze numer KRS z odpowiedzi białej listy i pobiera odpis z KRS
- Wyciąga formę prawną, zarząd, główne PKD i adres siedziby
- Zapisuje wszystko z powrotem do tego samego wiersza arkusza
Czego nie robi
- Nie obsługuje jednoosobowych działalności poza danymi z białej listy (CEIDG wymaga klucza)
- Nie pyta rejestru stowarzyszeń i fundacji
- Nie ocenia kontrahenta, tylko zbiera dane
- Nie obejdzie limitu 100 zapytań dziennie do API Ministerstwa
Czego wymaga
- n8n (sprawdzone na 2.8.4)
- Konto Google z dostępem do arkusza
- Kolumna z NIP-em w arkuszu
NIP, biała lista i KRS w jednym wierszu: wzbogacanie danych firm w n8n
Lista leadów, kontrahentów albo dostawców często zaczyna się od samego NIP-u. Reszta, czyli nazwa, REGON, forma prawna, kto zasiada w zarządzie, czym firma się zajmuje i na jakie rachunki przyjmuje płatności, leży w dwóch publicznych rejestrach. Oba mają darmowe API.
Ten workflow n8n łączy je w jeden wiersz arkusza. Nie wymaga klucza do żadnego z rejestrów.

Numer KRS bierzemy z białej listy
API KRS przyjmuje numer KRS, nie NIP. Zamiast prosić użytkownika o drugi identyfikator, workflow najpierw pyta białą listę VAT, która w odpowiedzi zwraca pole krs, i dopiero wtedy idzie do KRS po aktualny odpis:
wl-api.mf.gov.pl/api/search/nip/{NIP}?date={dziś}
api-krs.ms.gov.pl/api/krs/OdpisAktualny/{KRS z odpowiedzi}?rejestr=P&format=json
Firma bez wpisu w KRS (na przykład jednoosobowa działalność) dostaje dane z białej listy, a pola z KRS zostają puste.
Odpis z KRS nie ma jednego kształtu
Struktura odpisu zależy od formy prawnej. Zarząd spółki z o.o. i wspólnicy spółki jawnej siedzą pod innymi kluczami, a imiona bywają tablicą obiektów albo zwykłym tekstem. Zamiast mapować każdą ścieżkę osobno, kod szuka kluczy w głąb drzewa:
const dane = odpis ? findDeep(odpis, 'danePodmiotu') : null;
const header = odpis ? findDeep(odpis, 'naglowekA') : null;
const pkd = odpis ? findDeep(odpis, 'przedmiotDzialalnosci') : null;
Osoby są zbierane z działu 2 odpisu jako „imię nazwisko (funkcja)”, bez duplikatów, maksymalnie 12.
Dwa szczegóły, przez które Google Sheets odrzuca zapis
Drugi szczegół: aktualizacja z automatycznym mapowaniem nie lubi mieszanych typów. Wartość logiczna w jednej kolumnie i tekst w drugiej potrafią dać błąd. Wszystko idzie więc jako tekst, a puste wartości jako puste komórki, a nie słowo „null”.
Co ląduje w arkuszu
| Kolumna | Źródło |
|---|---|
vat_status, name_vat, regon, address_vat | biała lista |
bank_accounts | biała lista, do 5 rachunków, reszta jako „+N more” |
legal_form, name_krs, krs_registered_since | KRS |
people | KRS, dział 2 |
pkd_main | KRS, przeważająca działalność |
checked_at | data sprawdzenia |
Ograniczenia
Jednoosobowe działalności nie mają wpisu w KRS. Ich dane rejestrowe są w CEIDG, której API wymaga tokenu, więc ten workflow go nie używa.
Zapytanie idzie tylko do rejestru przedsiębiorców (rejestr=P). Stowarzyszenia i fundacje są w rejestrze S i zostaną bez danych z KRS.
Każda firma to dwa zapytania. Limit API Ministerstwa wynosi 100 zapytań dziennie, więc dłuższe listy trzeba dzielić na kilka dni. NIP z błędną sumą kontrolną i tak trafia do zapytania (kończy się błędem i jest pomijany), więc warto go odfiltrować wcześniej.
Wyszukiwanie kluczy w głąb to heurystyka. Przy nietypowej formie prawnej któreś pole może zostać puste, mimo że informacja jest w odpisie.
Kiedy to nie ma sensu
Przy kilku firmach szybciej sprawdzić je w wyszukiwarkach rejestrów. Workflow przydaje się przy listach liczonych w setkach, na przykład przy przygotowaniu bazy do sprzedaży albo przeglądzie dostawców. Przed samą płatnością lepiej sprawdza się osobny workflow, który weryfikuje kontrahentów na białej liście. Gdy dane z rejestrów mają trafiać prosto do CRM albo systemu zakupowego, to już zadanie dla automatyzacji procesów.
Weź to do siebie
Jak to zacytować
Adrian Hunia (2026). NIP, biała lista i KRS w jednym wierszu: wzbogacanie danych firm w n8n. SEVENEDGE. https://sevenedge.pl/pl/workflows/nip-krs-biala-lista-wzbogacanie-firm (dostęp: 5 listopada 2026)
Źródła
- Ministerstwo Finansów — Jak korzystać z wykazu podatników VATdokumentacja API
- Portal Rejestrów Sądowych — API KRSdokumentacja API
- n8n docs — Google Sheetsdokumentacja 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.
- Obsługa zgłoszeń z trzema agentami AI: triage, dokumentacja, odpowiedź i bramka człowiekaJeden agent klasyfikuje zgłoszenie, drugi szuka odpowiedzi we własnej dokumentacji, trzeci pisze odpowiedź. Sama wychodzi tylko odpowiedź, która przeszła trzy warunki naraz. Resztę widzi człowiek, a każde pytanie bez pokrycia w dokumentacji staje się zadaniem do dopisania.
- Agent pisarz i agent krytyk: pętla w n8n, która kończy się na rubryce, a nie na zmęczeniuJeden agent pisze, drugi ocenia według rubryki i reguł domu, a pętla wraca do pisarza, dopóki tekst nie przejdzie progu. Najważniejsze w tym workflow nie są prompty, tylko trzy warunki stopu i to, że krytyk nie ma prawa podbijać oceny, żeby pętla się skończyła.


