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

Rejestry API → SUDOP API

SUDOP API

GET /v1/sudop/{nip}

Zdarzenia pomocowe zarejestrowane przez UOKiK: kto udzielił, kiedy, w jakiej formie i za ile (PLN oraz EUR według przelicznika organu). Parametr limit (domyślnie 200, maksimum 1000) ogranicza listę events.

{
  "status": "found",
  "data": {
    "totalEvents": 296, "returnedEvents": 2, "truncated": true,
    "summary": {
      "firstAidOn": "2017-01-17", "lastAidOn": "2026-07-20",
      "totalGrossPln": 3106694545.94, "totalGrossEur": 713913825.44,
      "deMinimisEvents": 1
    },
    "deMinimis": {
      "pools": [], "windowFrom": "2023-07-26", "windowTo": "2026-07-26",
      "totalGrantedEur": 0,
      "note": "Wyliczenie ORIENTACYJNE, nie zastępuje zaświadczeń o pomocy de minimis…"
    },
    "events": [
      {
        "grantedOn": "2026-07-20",
        "grantorName": "Polskie Sieci Elektroenergetyczne S.A.",
        "measureName": "Polski mechanizm rynku mocy",
        "legalBasis": "ustawa z dnia 8 grudnia 2017 r. o rynku mocy",
        "formName": "dotacja lub inne bezzwrotne świadczenie",
        "value": { "nominalPln": 108098.97, "grossPln": 108098.97, "grossEur": 24931.15 },
        "isDeMinimis": false, "deMinimisPool": null
      }
    ]
  }
}

De minimis — co liczymy, a czego nie obiecujemy

Sekcja data.deMinimis sumuje pomoc w ruchomym oknie trzech lat, oddzielnie dla każdej puli (e1, e1t, e1c, e2, e2c), bo pule mają różne limity i różne podstawy prawne — od 100 tys. EUR dla transportu drogowego towarów po 750 tys. EUR dla usług w ogólnym interesie gospodarczym.

Nie sprzedajemy jednej liczby „zostało Ci X limitu” i chcemy być w tym wprost. Powody: limit dotyczy jednego przedsiębiorstwa w rozumieniu rozporządzenia, czyli obejmuje podmioty powiązane — więc suma dla samego NIP-u bywa zaniżona. Do tego pomoc sprzed 2024 r. podlega innemu rozporządzeniu i innemu sposobowi liczenia okresu. Pole headroomEur jest orientacyjne, oznaczone ostrzeżeniem de_minimis_indicative i nie zastępuje zaświadczeń o pomocy de minimis. Wiążącą wykładnię daje organ udzielający pomocy.

Sumy zawsze pochodzą z kompletu zdarzeń, także gdy lista events została przycięta parametrem limit — wtedy truncated = true i ostrzeżenie sudop_truncated. Przycięcie listy nigdy nie zafałszuje podsumowania.

Przykład zapytania i odpowiedzi

Zdarzenia pomocy publicznej beneficjenta po NIP-ie. Parametr limit (domyślnie 200, maksimum 1000) ogranicza listę events. Klucz testowy zwraca jedno syntetyczne zdarzenie de minimis, żeby pokazać też kształt sekcji deMinimis.

curl -s "https://api.debtstrike.eu/v1/sudop/7740001454?limit=100" \
  -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": {
    "beneficiary": { "nip": "7740001454",
                     "name": "PODMIOT TESTOWY SPÓŁKA AKCYJNA (SANDBOX)" },
    "totalEvents": 1, "returnedEvents": 1, "truncated": false,
    "events": [
      { "grantedOn": "2025-06-30", "grantorName": "URZĄD TESTOWY (SANDBOX)",
        "formCode": "A1.1", "formName": "dotacja lub inne bezzwrotne świadczenie",
        "value": { "nominalPln": 40000, "grossPln": 40000, "grossEur": 9000 },
        "isDeMinimis": true, "deMinimisPool": "e2" }
    ],
    "summary": { "firstAidOn": "2025-06-30", "lastAidOn": "2025-06-30",
                 "totalGrossPln": 40000, "totalGrossEur": 9000,
                 "deMinimisEvents": 1 },
    "deMinimis": { "windowFrom": "2023-01-01", "windowTo": "2026-01-01",
                   "pools": [ { "pool": "e2", "regulation": "rozporządzenie KE 2023/2831",
                                "limitEur": 300000, "grantedEur": 9000,
                                "headroomEur": 291000, "events": 1 } ],
                   "totalGrantedEur": 9000 }
  },
  "meta": { "billed": 0 }
}

Wartości w przykładzie są wymyślone. Pominięto część pól zdarzenia (m.in. measureName, legalBasis, beneficiarySize, sectorCode, communeName) oraz notę w deMinimis.note. Wyliczenie de minimis jest orientacyjne i nie zastępuje zaświadczenia.

Pola odpowiedzi w data

Pole Typ Znaczenie
beneficiary object nip i name beneficjenta.
totalEvents number Ile zdarzeń rejestr ma łącznie dla tego NIP-u.
returnedEvents number Ile zdarzeń zwróciliśmy w tej odpowiedzi (ogranicza je limit).
truncated boolean true, gdy zwróciliśmy mniej, niż rejestr ma. Nie ucinamy listy po cichu.
events[] array Zdarzenia pomocowe. Każde ma m.in. grantedOn (data udzielenia), grantorNip, grantorName, legalBasis, formCode, formName, destinationCode, destinationName.
events[].value object nominalPln, grossPln i grossEur. Równowartość w euro liczy organ według swojego przelicznika.
events[].isDeMinimis, deMinimisPool boolean, string albo null Czy zdarzenie to pomoc de minimis i do której puli się zalicza.
summary object firstAidOn, lastAidOn, totalGrossPln, totalGrossEur, deMinimisEvents.
deMinimis object Wyliczenie orientacyjne w ruchomym oknie (windowFrom, windowTo): pools[] z polami pool, regulation, limitEur, grantedEur, headroomEur, events, a do tego totalGrantedEur i note.

Odpowiedzi i błędy tego endpointu

HTTP Kod lub status Kiedy
200 found Zawsze przy poprawnym NIP-ie. SUDOP to rejestr zdarzeń, więc brak pomocy to pusta lista events i totalEvents: 0, a nie not_found. Przed policzeniem sum po stronie klienta sprawdź truncated.
200 unavailable SUDOP nie odpowiedział. To brak wiedzy, nie dowód braku pomocy.
400 invalid_identifier NIP bez 10 cyfr lub z błędną sumą kontrolną.
403 source_not_in_plan Klucz nie ma zakresu sudop.

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 →