Rejestry API to część platformy DebtStrike — sprawdzania kontrahentów i windykacji.Sprawdź firmę bez integracji →

Rejestry API → API białej listy VAT

API białej listy VAT

Status podatnika

GET /v1/vat/{nip}
Parametr Gdzie Opis
nip ścieżka NIP podatnika (10 cyfr, separatory dozwolone).
date query Dzień, na który sprawdzamy status. Domyślnie dziś.
fresh, certificate query Jak wyżej.

data: statusVat (Czynny/Zwolniony/Niezarejestrowany), name, regon, krs, accountNumbers[], registrationLegalDate, removalDate, restorationDate, hasVirtualAccounts, adresy.

Weryfikacja rachunku bankowego

GET /v1/vat/{nip}/bank-account/{account}

Odpowiada na pytanie „czy ten rachunek należał do tego podatnika tego dnia” — czyli na pytanie, które decyduje o odpowiedzialności solidarnej i o kosztach uzyskania przychodu. account to NRB (26 cyfr) albo IBAN.

Skąd bierzemy potwierdzenie. Utrzymujemy własny indeks dziennego pliku płaskiego MF (3,3 mln par NIP+rachunek, odświeżany codziennie o 4:00). Gdy indeks obejmuje wskazany dzień, potwierdzenie idzie z niego (data.provider = "flat_file") — bez zużywania limitów MF. To dlatego weryfikacja rachunków skaluje się u nas do dziesiątek tysięcy dziennie.

Semantyka, na której łatwo się przejechać. Trafienie w pliku jest dowodem pozytywnym. Brak trafienia nie jest dowodem negatywnym — rachunki wirtualne są w pliku opisane maskami, których nie rozwijamy. Dlatego przy braku trafienia zawsze dopytujemy API MF (data.provider = "wl_api"), żeby nigdy nie odpowiedzieć „rachunek nie należy do podatnika”, gdy w rzeczywistości należy.

Limity MF, których nie musisz znać, bo trzymamy je po swojej stronie: 100 zapytań wyszukujących na dobę na adres IP (do 30 podmiotów w zapytaniu) i 5000 podmiotów metodą sprawdzającą. Przekroczenie blokuje adres IP do północy — razem z wyszukiwarką WWW.

Przykład zapytania i odpowiedzi

Status podatnika VAT na wskazany dzień. Parametr date (format RRRR-MM-DD) jest opcjonalny, domyślnie liczy się dziś.

curl -s "https://api.debtstrike.eu/v1/vat/7740001454?date=2026-10-22" \
  -H "Authorization: Bearer ds_test_TWOJ_KLUCZ"

Zapytanie działa z kluczem testowym ds_test_. Taki klucz zwraca stałe, syntetyczne dane podmiotu testowego (NIP 7740001454, KRS 0000028860, REGON 610188201), nie dotyka rejestrów i nie zdejmuje ani jednej jednostki pakietu ("billed": 0). Każdy inny numer zwraca status: not_found, więc przećwiczysz też tę ścieżkę. Z kluczem ds_live_ zmienia się tylko klucz, a dane są prawdziwe.

{
  "status": "found",
  "data": {
    "name": "PODMIOT TESTOWY SPÓŁKA AKCYJNA (SANDBOX)",
    "nip": "7740001454",
    "statusVat": "Czynny",
    "regon": "610188201",
    "krs": "0000028860",
    "workingAddress": "CHEMIKÓW 7, 09-411 PŁOCK",
    "residenceAddress": null,
    "accountNumbers": ["12345678901234567890123456"],
    "registrationLegalDate": "2001-07-19",
    "registrationDenialDate": null,
    "restorationDate": null,
    "removalDate": null,
    "hasVirtualAccounts": false
  },
  "meta": { "billed": 0 }
}

Fragment odpowiedzi: koperta (apiVersion, requestId, subject, source, timestamps) jest opisana na stronie przeglądowej. Weryfikację rachunku wywołasz tak samo, zmieniając ścieżkę na /v1/vat/{nip}/bank-account/{account}.

Pola odpowiedzi w data

Pole Typ Znaczenie
name string Nazwa podatnika z Wykazu.
nip, regon, krs string Identyfikatory podatnika. regon i krs mogą być null, gdy Wykaz ich nie zawiera.
statusVat string Czynny, Zwolniony albo Niezarejestrowany.
workingAddress, residenceAddress string albo null Adres siedziby lub prowadzenia działalności oraz adres zamieszkania, o ile Wykaz je podaje.
accountNumbers string[] Rachunki bankowe podatnika (NRB, 26 cyfr), widniejące w Wykazie na wskazany dzień.
registrationLegalDate string albo null Data rejestracji jako podatnika VAT, format RRRR-MM-DD.
registrationDenialDate string albo null Data odmowy rejestracji.
restorationDate string albo null Data przywrócenia do rejestru VAT.
removalDate string albo null Data wykreślenia z rejestru VAT.
hasVirtualAccounts boolean Czy podatnik ma rachunki wirtualne.

Pola odpowiedzi weryfikacji rachunku

curl -s "https://api.debtstrike.eu/v1/vat/7740001454/bank-account/12345678901234567890123456" \
  -H "Authorization: Bearer ds_live_TWOJ_KLUCZ"
Pole Typ Znaczenie
accountAssigned boolean true, gdy rachunek należał do podatnika w danym dniu.
requestId string albo null Identyfikator zapytania zwrócony przez źródło, jeśli odpowiedź szła z API Ministerstwa Finansów.
provider string flat_file (potwierdzenie z naszego indeksu pliku płaskiego, bez zużywania limitu MF) albo wl_api (odpowiedź z API Ministerstwa Finansów).
statusVat string Opcjonalnie: Czynny albo Zwolniony, wyprowadzony z pliku płaskiego przy trafieniu w indeksie.

Odpowiedzi i błędy tego endpointu

HTTP Kod lub status Kiedy
200 found Podatnik znaleziony albo rachunek rozstrzygnięty.
200 not_found Wykaz nie zawiera podmiotu. To fakt, na którym wolno oprzeć decyzję.
200 unavailable Wykaz nie odpowiedział. To brak wiedzy, nie dowód braku podmiotu.
400 invalid_identifier NIP bez 10 cyfr lub z błędną sumą kontrolną albo rachunek, który nie jest poprawnym NRB lub IBAN (26 cyfr).
403 source_not_in_plan Klucz nie ma zakresu vat.
422 unsupported_parameter Parametr date w złym formacie albo z datą z przyszłości.

Pozostałe kody (401, 429, 500) są wspólne dla wszystkich źródeł i opisane w tabeli błędów. Błędy mają format application/problem+json (RFC 9457) z polami code i requestId.

Pozostałe rejestry w tym samym API

Wszystkie źródła mają tę samą kopertę, ten sam sposób uwierzytelniania i te same kody błędów:

Zanim wyślesz pierwsze zapytanie

Zasady wspólne dla wszystkich źródeł opisuje strona przeglądowa: uwierzytelnianie kluczem, koperta odpowiedzi, różnica między not_found a unavailable, rozliczenie zapytań i limity. Pełny kontrakt: /v1/openapi.json.

Uzyskaj dostęp do API →