Rejestry API → Agregat podmiotu
Agregat podmiotu
Tożsamość + status VAT + dane KRS jednym zapytaniem. Zwraca „kopertę
kopert”: pole
sources zawiera pełne koperty poszczególnych źródeł, więc
każde z nich ma własny status i własne
timestamps.
Pole completeness mówi, ile źródeł odpowiedziało, a
notIncluded — które źródła z oferty
świadomie pominięto i dlaczego. Dziś są to CRBR
(minimalizacja danych osobowych), BZP i SUDOP (osobne, cięższe zapytania).
Przykład zapytania i odpowiedzi
REGON, VAT i KRS jednym zapytaniem. Każde źródło z zakresu klucza to osobne odpytanie rejestru i osobna jednostka pakietu, więc zapytanie o trzy źródła liczy się jako trzy.
curl -s https://api.debtstrike.eu/v1/subjects/7740001454 \
-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.
{
"apiVersion": "v1",
"requestId": "…",
"subject": { "nip": "7740001454", "regon": "610188201", "krs": "0000028860",
"countryCode": "PL", "resolvedVia": "direct" },
"sources": {
"regon": { "status": "found", "data": { … } },
"vat": { "status": "found", "data": { … } },
"krs": { "status": "found", "data": { … } }
},
"completeness": { "requested": ["regon", "vat", "krs"],
"found": ["regon", "vat", "krs"], "unavailable": [] },
"notIncluded": [
{ "source": "crbr", "reason": "Beneficjenci rzeczywiści to dane osobowe …" }
],
"meta": { "billed": 0 }
}
Wielokropki zastępują pełne koperty źródeł, takie jak na stronach REGON, białej listy VAT i KRS. Pole notIncluded pojawia się, gdy klucz ma zakres CRBR, BZP lub SUDOP.
Pola odpowiedzi w data
| Pole | Typ | Znaczenie |
|---|---|---|
apiVersion, requestId |
string | Wersja API i identyfikator zapytania do zgłoszeń. |
subject |
object | nip, regon, krs, countryCode (zawsze PL) i resolvedVia (jak doszliśmy do numeru KRS). |
sources |
object | Pełne koperty źródeł regon, vat, krs (tylko te, które ma klucz). Każda ma własny status, data i timestamps. |
completeness |
object | Trzy listy źródeł: requested (zapytane), found (znalezione), unavailable (rejestr nie odpowiedział). |
notIncluded[] |
array | Źródła z zakresu klucza, których agregat świadomie nie pobiera (CRBR, BZP, SUDOP), z powodem w polu reason. |
meta.billed |
number | Suma jednostek pakietu zdjętych za zapytane źródła. |
Odpowiedzi i błędy tego endpointu
| HTTP | Kod lub status |
Kiedy |
|---|---|---|
| 200 | completeness.found |
Źródła, które odpowiedziały. Status każdego źródła czytaj w jego własnej kopercie w sources. |
| 200 | completeness.unavailable |
Źródła, które nie odpowiedziały. To brak wiedzy, a pozostałe źródła zachowują swoje dane. |
| 400 | invalid_identifier |
Identyfikator nie jest NIP-em, KRS-em ani REGON-em. |
| 403 | source_not_in_plan |
Klucz nie obejmuje żadnego źródła w tej wersji API. |
| 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:
- KRS API: odpis aktualny po NIP, KRS albo REGON
- API białej listy VAT: status podatnika i weryfikacja rachunku
- API REGON / GUS: tożsamość, adres i PKD
- CRBR API: beneficjenci rzeczywiści
- BZP API: postępowania publiczne
- SUDOP API: pomoc publiczna i de minimis
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.