Monitoring · Wykaz VAT MF

Monitoring kontrahentów
na Białej Liście VAT

Podajesz NIP-y firm, z którymi pracujesz, a my raz na dobę porównujemy ich wpis w Wykazie Podatników VAT ze stanem z poprzedniego dnia. Gdy kontrahentowi zmieni się status VAT, lista rachunków bankowych albo dane rejestrowe widoczne w Wykazie — nazwa, adres, KRS lub REGON — dostajesz wiadomość e-mail, a jeśli integrujesz to z własnym systemem, także wywołanie zwrotne albo odpowiedź z API. Obserwujemy do 10 numerów NIP na adres, bez opłat i bez zakładania konta.

Jak działa monitoring

Cztery kroki. Pierwsze powiadomienie przychodzi zwykle dobę po potwierdzeniu zapisu — wcześniej, jeśli dany numer jest już u nas obserwowany.

1. Zapisujesz NIP-y

Podajesz adres e-mail i numery kontrahentów — do dziesięciu. Nie zakładasz konta i nie ustawiasz hasła.

2. Potwierdzasz zapis

Klikasz link z wiadomości, którą wysyłamy na podany adres. Na stronie potwierdzenia pokazujemy raz klucz API — zapisz go, jeśli planujesz integrację, bo nie wydajemy go ponownie.

3. Sprawdzamy raz na dobę

O 6:00 czasu UTC odpytujemy oficjalne API Ministerstwa Finansów. Gdy numer trafia do nas po raz pierwszy, zapisujemy jego stan wyjściowy i celowo nie wysyłamy powiadomienia — nie ma jeszcze z czym porównywać.

4. Odzywamy się przy zmianie

Wiadomość wychodzi tylko wtedy, gdy wpis faktycznie się zmienił. Cisza zwykle oznacza, że w Wykazie nic się nie wydarzyło — pełną historię i tak masz w API.

Do dziesięciu numerów na jeden adres. Obserwujemy po numerze NIP, więc spółki i jednoosobowe działalności sprawdzamy tak samo.

Zapisując się, potwierdzasz adres e-mail linkiem i akceptujesz przetwarzanie danych opisane w polityce prywatności (punkt 6). Link potwierdzający jest ważny 24 godziny; na jeden adres wysyłamy najwyżej dwie takie wiadomości dziennie. Rezygnacja w każdej chwili, linkiem z każdej wiadomości.

Status kontrahenta zmienia się między umową a przelewem

Weryfikacja kontrahenta jest zwykle jednorazowa: sprawdzasz firmę, gdy zaczynasz współpracę, i wracasz do tematu dopiero przy problemie. Tymczasem wpis w Wykazie Podatników VAT żyje własnym życiem — podatnik bywa wykreślony z rejestru, przywrócony, zmienia też zgłoszone rachunki bankowe. O żadnym z tych zdarzeń nikt Cię nie zawiadamia.

Ma to praktyczne znaczenie przy płatnościach firmowych od 15 000 zł: zapłata na rachunek spoza Wykazu może oznaczać brak zaliczenia wydatku do kosztów oraz odpowiedzialność solidarną za VAT kontrahenta. Numer konta, który sprawdziłeś kwartał temu, nie musi być tym, który obowiązuje dzisiaj.

Monitoring zamyka tę lukę: zamiast pamiętać o cyklicznym sprawdzaniu każdego kontrahenta, dostajesz sygnał wtedy, gdy coś się zmieniło. Nadal warto zweryfikować rachunek w dniu przelewu — tylko takie sprawdzenie daje identyfikator potwierdzenia z MF. To informacja ogólna, nie porada podatkowa; skutki konkretnej płatności omów z księgowością.

Co monitorujemy, a czego nie

Porównujemy wpis w Wykazie Podatników VAT pole po polu i wykrywamy dwie grupy zdarzeń — status i rozliczenia oraz dane rejestrowe podmiotu, wszystkie tak, jak figurują w Wykazie VAT:

  • status_vat — zmiana statusu podatnika, na przykład wykreślenie z rejestru albo przywrócenie.
  • account_added — w Wykazie pojawił się nowy rachunek bankowy.
  • account_removed — rachunek zniknął z Wykazu.
  • name — zmiana nazwy podmiotu (dla jednoosobowych działalności bywa to imię i nazwisko).
  • address — zmiana adresu podmiotu.
  • krs — zmiana numeru KRS, na przykład nadanie numeru.
  • regon — zmiana numeru REGON.

Nazwa, adres, KRS i REGON pochodzą z tego samego wpisu w Wykazie VAT — nie odpytujemy odrębnie rejestru KRS ani bazy REGON (GUS), więc zmianę tych danych wykryjemy dopiero wtedy, gdy odzwierciedli ją Wykaz.

Poza zakresem pozostają natomiast dane, których w Wykazie VAT nie ma: postępowania i szczegóły w KRS oraz CEIDG (skład zarządu, kody PKD, forma prawna), dane z REGON poza samym numerem, postępowania upadłościowe i restrukturyzacyjne, sprawozdania finansowe, rejestry dłużników oraz status w VIES. Monitorujemy wpis w Wykazie Podatników VAT, a nie kondycję firmy.

W wiadomości e-mail numer rachunku pokazujemy w postaci zamaskowanej — 12…3456 — wraz z odnośnikiem do pełnych danych. Pełny numer przekazujemy kanałami technicznymi: w odpowiedzi API i w wywołaniu zwrotnym. Sam alert jest sygnałem, a nie dowodem należytej staranności — tym pozostaje weryfikacja rachunku z identyfikatorem potwierdzenia.

Kto z tego korzysta

Najczęściej biura rachunkowe pilnujące stałej listy klientów, firmy rozliczające się z powtarzalnym gronem dostawców oraz zespoły, które wpinają sygnał o zmianie wprost w swój system finansowy. Jeśli zamiast obserwowania stałej listy potrzebujesz jednorazowo sprawdzić wiele numerów naraz, użyj sprawdzania zbiorczego.

Integracje: REST, MCP i wywołania zwrotne

Monitoring od początku jest dostępny nie tylko dla ludzi. Ten sam stan obsługują trzy kanały: interfejs REST, serwer MCP dla agentów AI oraz wywołanie zwrotne (webhook). Klucz API dostajesz raz, na stronie potwierdzenia zapisu — nie ma endpointu do jego odzyskania ani rotacji.

Authorization: Bearer sk_live_…
X-API-Key: sk_live_…            # alternatywnie
?api_key=sk_live_…              # alternatywnie, także jako argument w MCP

Zapis nie wymaga klucza — to ten sam endpoint, z którego korzysta formularz wyżej:

POST https://skanfirmy.pl/observe
Content-Type: application/json

{"email":"ksiegowosc@example.com","nips":["1234563218"]}

Historię zmian pobierasz metodą GET. Parametr limit ma wartość domyślną 100 i jest ograniczany do zakresu 1–500; since porównujemy po dacie doby skanu, nie po dokładnym znaczniku czasu:

GET https://skanfirmy.pl/changes?since=2026-08-01&limit=100
Authorization: Bearer sk_live_…

{
  "since": "2026-08-01",
  "count": 1,
  "changes": [{
    "nip": "1234563218",
    "changed_at": "2026-08-14",
    "field": "account_removed",
    "old_value": "61109010140000071219812874",
    "new_value": null,
    "name": "PRZYKŁADOWA SP. Z O.O.",
    "current_status_vat": "Czynny",
    "current_vat_active": true,
    "current_status_vat_code": "active"
  }]
}

Obok surowego literału current_status_vat (to, co dosłownie powiedział rejestr MF) każdy wpis niesie pola pochodne, niezależne od języka: current_vat_active (wartość logiczna, true tylko dla „Czynny”) oraz current_status_vat_code (active/exempt/not_registered). Gdy numer nie był jeszcze ani razu sprawdzony, pól pochodnych po prostu nie ma — ich brak to nie to samo co „niezarejestrowany”. Analogicznie GET /api/observations zwraca vat_active i status_vat_code obok status_vat.

Listą zarządzasz trzema wywołaniami: POST /api/observe dodaje numery, GET /api/observations zwraca obserwowane wpisy wraz z ostatnim sprawdzeniem, a POST /api/unobserve usuwa pojedynczy numer. Wartość last_changed: null oznacza, że dla tego numeru nie odnotowaliśmy dotąd żadnej zmiany — albo że nie zdążyliśmy go jeszcze ani razu sprawdzić. Data w tym polu dotyczy numeru, nie Twojego zapisu.

Wywołanie zwrotne ustawiasz metodą POST /api/webhook; w odpowiedzi jeden raz pokazujemy sekret. Wyłączasz je metodą DELETE — pusty adres w POST zwraca błąd. Przyjmujemy wyłącznie adresy https, bez adresów IP i nazw lokalnych, a przekierowań nie śledzimy. Wysyłka to dwie próby w jednym przebiegu, potem ponowienie przy kolejnym sprawdzeniu; dostarczanie jest „co najmniej raz”, więc deduplikuj po nagłówku X-Skanfirmy-Delivery:

X-Skanfirmy-Event: nip.change
X-Skanfirmy-Delivery: 4821
X-Skanfirmy-Timestamp: 1786089600
X-Skanfirmy-Signature: sha256=9f2c…

{"id":4821,"type":"nip.change","nip":"1234563218","field":"account_added",
 "old_value":null,"new_value":"61109010140000071219812874",
 "name":"PRZYKŁADOWA SP. Z O.O.","changed_at":"2026-08-14"}

Podpis liczymy algorytmem HMAC-SHA256 z sekretu, nad tekstem złożonym ze znacznika czasu, kropki i surowego ciała żądania. Porównuj go w sposób odporny na pomiar czasu i odrzucaj znaczniki starsze niż kilka minut.

Agenci AI korzystają z serwera MCP pod adresem /mcp — narzędzia observe_nip, unobserve_nip, list_observations, changes_since i set_webhook działają na tym samym stanie co REST. Dwie różnice warto znać: changes_since zwraca maksymalnie 200 zmian i nie zawiera pola current_status_vat, a set_webhook z pustym adresem wyłącza kanał (w REST służy do tego DELETE). Pełny opis maszynowy jest w llms.txt.

Twoje dane i rezygnacja

Adres e-mail służy wyłącznie do wysyłki powiadomień, które sam zamówiłeś, oraz do obsługi zapisu i rezygnacji. Poza adresem zapisujemy adres IP z chwili potwierdzenia zapisu — jako dowód zgody — oraz log wysyłek przez 12 miesięcy. Historię zmian obserwowanych numerów trzymamy 90 dni.

Żeby w ogóle wykryć zmianę, przechowujemy ostatni znany stan każdego obserwowanego numeru. Nie budujemy kopii całego rejestru — aktualny stan trzymamy wyłącznie dla numerów, które ktoś obserwuje, i usuwamy go, gdy ostatnia osoba przestaje dany NIP obserwować. Same wykryte zmiany zostają jeszcze w 90-dniowej historii, także po rezygnacji.

Rezygnujesz linkiem ze stopki każdego powiadomienia — po jego otwarciu potwierdzasz wypis jednym przyciskiem, a my wyłączamy wszystkie Twoje obserwacje naraz. Pojedynczy numer usuniesz przez API. Adres możemy też zablokować ręcznie, na przykład gdy wiadomości na niego odbijały się lub trafiały do zgłoszeń spamu; jeśli zapis nie dochodzi do skutku, napisz na firma@bartosza.pl. Szczegóły opisuje polityka prywatności w punkcie 6.

Zakres usługi i limity

Usługa działa bez opłat, w granicy dziesięciu numerów NIP na jeden adres e-mail. Wszystkie kanały — powiadomienia e-mail, klucz API, dostęp przez MCP i wywołania zwrotne — mieszczą się w tym samym zakresie. Nie ma cennika ani wariantu płatnego.

Utrzymuję to w ramach jednoosobowej działalności, bez umowy o gwarantowanym poziomie usług. Sprawdzenia zależą od dostępności API Ministerstwa Finansów: po wyczerpaniu jego dobowego limitu część numerów jest sprawdzana dopiero następnego dnia. To nie jest monitoring w czasie rzeczywistym — między zmianą w rejestrze a powiadomieniem może upłynąć do doby. Większe listy i integracje z systemami księgowymi ustalam indywidualnie — napisz na firma@bartosza.pl lub zobacz zakres usług.

Najczęstsze pytania

Czy obserwowanie NIP-ów kontrahentów jest legalne?

Tak. Wykaz Podatników VAT jest jawnym rejestrem publicznym prowadzonym przez Ministerstwo Finansów i każdy może go odpytywać. Monitoring automatyzuje wyłącznie czynność, którą i tak wolno Ci wykonywać ręcznie — sprawdzenie statusu firmy, z którą prowadzisz rozliczenia. Nie informujemy obserwowanego podmiotu o tym, że ktoś go obserwuje, i nie przekazujemy tej informacji nikomu innemu.

Skąd pochodzą dane w powiadomieniach?

Wyłącznie z Wykazu Podatników VAT (Biała Lista) prowadzonego przez Ministerstwo Finansów, odpytywanego przez jego oficjalne API. Żeby w ogóle wykryć zmianę, przechowujemy ostatni znany stan każdego obserwowanego numeru i historię zmian przez 90 dni — nie budujemy jednak kopii całego rejestru, a zapis znika, gdy nikt już danego NIP-u nie obserwuje.

Jak często sprawdzacie kontrahentów?

Raz na dobę, o 6:00 czasu UTC — czyli 7:00 zimą i 8:00 latem czasu polskiego. Sam Wykaz jest aktualizowany w dni robocze, więc częstsze odpytywanie nie przyniosłoby nowych informacji. To nie jest monitoring w czasie rzeczywistym: między faktyczną zmianą w rejestrze a Twoim powiadomieniem może upłynąć do doby, a przy wyczerpaniu dobowego limitu API Ministerstwa Finansów sprawdzenie części numerów przesuwa się na kolejny dzień.

Kiedy dostanę pierwsze powiadomienie?

Zwykle dobę po potwierdzeniu zapisu. Jeśli dany numer trafia do nas po raz pierwszy, przy pierwszym sprawdzeniu zapisujemy jego stan wyjściowy i celowo nie wysyłamy wiadomości — nie ma jeszcze z czym porównywać. Gdy numer jest już obserwowany przez kogoś innego, powiadomienie może przyjść już przy najbliższym sprawdzeniu o 6:00 UTC. Potwierdź zapis od razu: zmian wykrytych, zanim potwierdzisz, nie wysyłamy wstecz.

Co dokładnie dostanę, gdy kontrahent zmieni rachunek bankowy?

Wiadomość e-mail z numerem NIP, nazwą podmiotu z Wykazu, informacją, czy rachunek został dodany czy usunięty, zamaskowanym numerem konta w postaci „12…3456” oraz datą sprawdzenia rejestru. Pełny numer rachunku i dokładną datę wykrycia zmiany przekazujemy tylko kanałami technicznymi — w odpowiedzi API i w wywołaniu zwrotnym. Usunięcie rachunku, na który regularnie płacisz, to sygnał, by przed najbliższym przelewem potwierdzić aktualny numer w narzędziu weryfikacji rachunku i zachować identyfikator potwierdzenia z MF. Skutki podatkowe konkretnej płatności omów z księgowością.

Czym to się różni od ręcznego sprawdzania Białej Listy?

Ręczne sprawdzenie pokazuje stan na dziś, ale wymaga pamiętania o nim przy każdym kontrahencie i każdej płatności. Monitoring porównuje stan z dnia na dzień i odzywa się tylko wtedy, gdy naprawdę coś się zmieniło, więc nie musisz odpytywać rejestru na wszelki wypadek. Nie zastępuje jednak weryfikacji rachunku w dniu przelewu — ta daje identyfikator potwierdzenia, którego alert nie generuje.

Jak zrezygnować i jak usunąć pojedynczy NIP?

W stopce każdego powiadomienia jest link rezygnacji: otwiera stronę, na której potwierdzasz wypis jednym przyciskiem. Wyłączamy wtedy wszystkie Twoje obserwacje naraz i wpisujemy adres na listę wykluczeń — nie blokuje to jednak ponownego zapisu, gdybyś kiedyś chciał wrócić. Programy pocztowe obsługujące nagłówek List-Unsubscribe pozwalają wypisać się jednym kliknięciem, bez otwierania strony. Pojedynczy numer usuwasz przez API, metodą POST /api/unobserve, albo narzędziem MCP unobserve_nip. Możesz też napisać na firma@bartosza.pl.

Czy monitoring działa dla jednoosobowych działalności?

Tak — obserwujemy po numerze NIP, więc jednoosobowa działalność jest sprawdzana dokładnie tak samo jak spółka. Warto pamiętać, że dla działalności jednoosobowej pole „nazwa” w Wykazie bywa imieniem i nazwiskiem osoby fizycznej i w takiej postaci pojawi się w powiadomieniu. Możesz też sam być obserwowany przez swoich kontrahentów — to normalny element ich weryfikacji.

Ile to kosztuje?

Nic. Zapis nie wymaga danych płatniczych, nie ma cennika ani wariantu płatnego. Zakres i limity opisuje sekcja „Zakres usługi i limity” wyżej. Większe listy oraz integracje z systemami księgowymi ustalam indywidualnie: napisz na firma@bartosza.pl.

Czy mój adres e-mail trafi do kogoś innego?

Nie. Adres służy wyłącznie do wysyłki powiadomień, które sam zamówiłeś, oraz do obsługi zapisu i rezygnacji — nie sprzedajemy go, nie wymieniamy i nie wysyłamy nim ofert. Poza adresem zapisujemy adres IP z chwili potwierdzenia zapisu i log wysyłek przez 12 miesięcy. Do dostarczania poczty korzystamy z Brevo (Sendinblue SAS, Francja), a bazę utrzymujemy w Cloudflare D1 w Unii Europejskiej; oba podmioty działają wyłącznie na nasze zlecenie. Szczegóły opisuje punkt 6 polityki prywatności.

← Wszystkie narzędzia