DebtStrike

Weryfikacja kontrahenta w systemie ERP — jak zaprojektować integrację

Sprawdzenie kontrahenta raz, przy zakładaniu kartoteki, daje złudzenie kontroli. Ryzyko zmienia się w czasie, a kartoteka zostaje taka, jak była.

10 sierpnia 2026 · 8 min czytania · ← wszystkie artykuły

BigDebt · Kontrahent nie zapłacił w terminie? Zgłoś to bezpłatnie — zgłoszenia wierzycieli budują bazę dyscypliny płatniczej obok KRS, VAT i KRZ.

Trzy momenty, w których pytanie ma sens

Przy zakładaniu kartoteki. Podstawowa tożsamość: czy podmiot istnieje, jaka jest nazwa i adres, czy NIP się zgadza. To pytanie o poprawność danych, nie o ryzyko.

Przed płatnością. Status VAT i rachunek bankowy — na dzień zlecenia przelewu, nie na dzień założenia kartoteki. Rachunek mógł zostać dopisany albo usunięty w międzyczasie.

Cyklicznie, dla całego portfela. Wpisy o niewypłacalności, zmiana właściciela, trafienie na listę sankcyjną. Tego nie wykryjesz pytaniem jednorazowym, bo zdarza się po nawiązaniu współpracy.

Co cache'ować, a czego nie

Rejestry zmieniają się w różnym tempie i to powinno rządzić czasem życia cache:

  • Tożsamość i PKD — zmieniają się rzadko, można trzymać dniami.
  • Status VAT i rachunki — zmieniają się codziennie; przed przelewem pytaj świeżo albo z indeksu odświeżanego dobowo.
  • Beneficjenci rzeczywiści — zmiana jest rzadka, ale dane wrażliwe; trzymaj krócej, niż pozwalałaby zmienność.
  • Wpisy o niewypłacalności — to sygnał, na którym opierasz decyzję; stary odczyt jest gorszy niż jego brak.

Dobra zasada: cache jest po to, żeby nie zamęczać rejestru, a nie po to, żeby udawać, że dane są aktualne. Każda odpowiedź powinna nieść datę ważności danych, a interfejs powinien ją pokazywać.

Niedostępność rejestru to stan, nie błąd

Rejestr publiczny bywa niedostępny — przerwa techniczna, limit, awaria. System musi umieć zapisać „nie wiem” i ponowić później. Sklejenie tego z „brak wpisu” tworzy fałszywe potwierdzenia, które trafiają do dokumentacji. Rozwinęliśmy to osobno: not_found kontra unavailable.

Praktycznie: w modelu danych rozdziel „sprawdzone, czysto” od „nie udało się sprawdzić”. Jeden boolean nie wystarczy.

Co zapisać, żeby dało się udowodnić

Jeśli weryfikacja ma być dowodem należytej staranności, musi zostawić ślad odporny na pytanie „a skąd wiadomo, że sprawdziliście”:

  • kiedy pytano i o co (identyfikator podmiotu),
  • które źródło odpowiedziało i z jaką datą ważności danych,
  • jaka była treść odpowiedzi, a nie tylko wniosek z niej,
  • które źródła były niedostępne.
Zapis „sprawdzono: OK” nie jest dowodem. Dowodem jest zamrożona treść odpowiedzi z datą i wskazaniem źródła.

Wolumen i idempotencja

Import dwustu kontrahentów to dwieście zapytań — chyba że API przyjmuje paczki. Warto sprawdzić, czy ponowienie tej samej operacji nie policzy się drugi raz i czy przerwany import da się wznowić bez duplikatów. Przy integracji wsadowej to różnica między spokojnym wdrożeniem a nocą z ręcznym sprzątaniem danych.

Gdzie to wpiąć

Najprościej: jedno wywołanie HTTP w miejscu, gdzie ERP zakłada kartotekę, drugie w ścieżce płatności, trzecie w zadaniu cyklicznym dla całego portfela. Reszta — mosty między identyfikatorami, budżety zapytań, ujednolicona koperta — powinna być poza Twoim kodem.

Kontrakt i przykłady: dokumentacja Rejestry API.

Jedno API do siedmiu polskich rejestrów publicznych.

KRS, biała lista VAT, REGON/GUS, CEIDG, CRBR, BZP i SUDOP — wspólna koperta odpowiedzi, jedno uwierzytelnianie, rozliczenie 1 zapytanie = 1 jednostka.

Zobacz dokumentację API →

Materiał ma charakter informacyjny i techniczny, nie stanowi porady prawnej ani podatkowej. Zakres obowiązków dokumentacyjnych zależy od branży i przepisów, którym podlega konkretny podmiot.