1. Informacje ogólne

Dokumentacja wygenerowana dla wersji:

  • 1.3.4 aplikacji Rejestru Zastrzeżeń

  • 2.0.8 kontraktu OpenAPI

Rejestr Zastrzeżeń udostępnia usługi REST umożliwiające pobieranie danych o statusach zastrzeżeń poszczególnych numerów PESEL.

Dostęp do API odbywa się poprzez sieć publiczną za pomocą połączenia HTTPS.
Istnieje również możliwość dostępu do API poprzez wydzieloną sieć SRP-NET/GOV-NET. W tym celu należy złożyć wniosek i spełnić wymagania opisane na stronie: https://www.gov.pl/web/cyfryzacja/udostepnianie-danych-z-rejestru-pesel1.

Wszystkie dane wejściowe i wyjściowe są w formacie JSON.

Razem z niniejszą dokumentacją został przekazany:

  • kontrakt usługi w formacie OpenAPI 3

  • stub (zaślepka) umożliwiający lokalne testowanie integracji

  • plik "test-data-usluga-weryfikacji.csv" zawierający numery PESEL oraz ich statusy, które są dostępne na środowisku integracyjnym

1.1. Opis usług

W ramach API Rejestru Zastrzeżeń udostępnione zostały usługi umożliwiająca pobranie:
- aktualnego statusu zastrzeżenia numeru PESEL /status-zastrzezenia/aktualny
- wszystkich statusów zastrzeżenia numeru PESEL w danym dniu /status-zastrzezenia/na-dzien

W rozdziale Przykłady wywołań opisane są scenariusze, jakie mogą wystąpić podczas korzystania z usług.

1.2. CHANGELOG

Historia zmian wykonywanych w kontrakcie OpenAPI.
Kontrakt jest wersjonowany semantycznie: https://semver.org/lang/pl/.
Wersja kontraktu jest zapisana w pliku kontraktu w polu "info.version".

2.0.8

  • zwiększono długość pola "powodWeryfikacji" do 512 znaków - dotyczy usług /status-zastrzezenia/aktualny oraz /status-zastrzezenia/na-dzien

  • poprawiono regex opisujący dozwolone znaki w polu "powodWeryfikacji" - dotyczy usług /status-zastrzezenia/aktualny oraz /status-zastrzezenia/na-dzien. Zmiana dotyczyła doprecyzowania zapisu regex - dodania znaku początku '^' i znaku końca '$' wyrażenia.

  • w pliku "test-data-usluga-weryfikacji.csv" zostały zmienione numery PESEL. Jest to działanie jednorazowe i było niezbędne z uwagi na awarię. Po wystąpieniu awarii plik ten został rozesłany newsletterem do adresów e-mail wskazanych we wnioskach dostępowych.

  • rozdział SLA został przeredagowany i uzupełniony o informacje na temat czasów odpowiedzi oraz maksymalnych czasów usługi (timeout).

  • w rozdziale Filtr adresów IP zaktualizowano informację o dopuszczalnej geolokalizacji adresów IP

  • w rozdziale Środowiska zaktualizowano adres środowiska produkcyjnego oraz dodano łańcuch certyfikatów SSL

  • zmieniono numery PESEL w niektórych scenariuszach stub’a na takie, które mają prawidłową sumę kontrolną

  • w rozdziale Wymagania do uruchomienia stuba dodano dodatkowe informacje rozwiązujące problemy uruchomienia stub’a na systemie Windows

  • w rozdziałach Komunikat o planowanej niedostępności i Komunikat o planowanej niedostępności dodano przykład żądania i odpowiedzi dla endpointu /na-dzien

  • w rozdziałach Komunikat o nieplanowanej niedostępności i Komunikat o nieplanowanej niedostępności dodano przykład żądania i odpowiedzi dla endpointu /na-dzien

  • w rozdziałach Podano powód weryfikacji, który zawiera niedozwolone znaki i Podano powód weryfikacji, który zawiera niedozwolone znaki zmieniono treść komunikatu błędu w przypadku podania niedozwolonych znaków

  • dodano rozdziały Timeout i Timeout

  • rozbudowano zachowanie stuba. W momencie, gdy zostanie podany numer PESEL, który nie został zdefiniowany w przykładach, stub odpowiada scenariuszem "PESEL niezastrzeżony"

2.0.3

  • zmiana niekompatybilna w usługach /status-zastrzezenia/aktualny oraz /status-zastrzezenia/na-dzien wprowadzono listę dozwolonych znaków dla pola powodWeryfikacji

  • zmiana niekompatybilna w niektórych odpowiedziach błędów HTTP 403 nie będzie zwracane pole data

  • zmiana niekompatybilna w odpowiedziach błędów o niedostępności (HTTP 503) zostało usunięte pole data

  • dodanie w odpowiedziach kodu HTTP 429 - scenariusz opisany w rozdziale Zbyt wiele żądań zwracających kod HTTP 401 i 403

  • w rozdziale [informacje_ogolne] wskazano możliwość połączenia poprzez sieć dedykowaną

  • w rozdziale [informacje_ogolne] wskazano ograniczenie geolokalizacji do adresów IP z UE i USA

  • w rozdziale SLA dodano rekomendację, aby system integrujący się był w stanie awaryjnie przełączyć się na komunikację po adresie IP zamiast adresu domenowego

  • w rozdziale SLA dodano informację jak będzie traktowana przedłużona niedostępność planowana

  • zmiana niekompatybilna w rozdziale SLA rozbudowano odpowiedź dla komunikatu o niedostępności planowanej o pole planowanaNiedostepnoscDo

  • w rozdziale Wymagania do uruchomienia stuba dodano informację o konieczności posiadania dostępu do internetu

  • w rozdziale Dane testowe dodano informację o danych testowych na środowisku integracyjnym. Do archiwum z dokumentacją dołączono również plik z numerami PESEL i ich statusami.

  • w rozdziale Przykłady wywołań dodano informację o niezmienności kodów błędów

  • w rozdziale Przykłady wywołań dodano przypadki błędów zwracanych dla pola powodWeryfikacji

  • w rozdziale Usługa /status-zastrzezenia/aktualny dodano informację o założeniu, że w jednej sekundzie nie może odbyć się weryfikacja i zmiana statusu zastrzeżenia

  • w rozdziale Usługa /status-zastrzezenia/na-dzien uszczegółowiono opis usługi

  • dodano rozdział Przykłady błędów wspólnych dla wielu usług

1.3.3

  • usunięcie błędu w opisie usługi - usługa od wersji 1.3.1 nie zwraca informacji o aktualności (czy istnieje, czy jest anulowany) numeru PESEL

1.3.2

  • aktualizacja adresu środowiska testowego

  • doszczegółowienie informacji w rozdziale "SLA"

1.3.1

W tej wersji została wprowadzona zmiana niekompatybilna wstecz.
Z uwagi na to, że kontrakt nie jest jeszcze traktowany jako "zamknięty", została podbita wersja minor.

  • zmiana niekompatybilna z odpowiedzi usługi /status-zastrzezenia/aktualny usunięto pole statusNumeruPesel

1.2.1

W tej wersji została wprowadzona zmiana niekompatybilna wstecz.
Z uwagi na to, że kontrakt nie jest jeszcze traktowany jako "zamknięty", została podbita wersja minor.

  • zmiana niekompatybilna dodanie wymagalnego pola w danych wejściowych obu usług: "powodWeryfikacji"

  • usunięcie z obu usług weryfikacji pola w danych wejściowych: "podmiotWeryfikujacy"

  • uzupełnienie informacji dotyczących dostępności usług

1.1.0

W tej wersji została wprowadzona zmiana niekompatybilna wstecz.
Z uwagi na to, że kontrakt nie jest jeszcze traktowany jako "zamknięty", została podbita wersja minor.

  • zmiana niekompatybilna wywołanie usługi /status-zastrzezenia/aktualny nie będzie zależne od dostępności Rejestru PESEL. W związku z tym w momencie, kiedy zostanie podany numer PESEL, który nigdy nie istniał w Rejestrze Zastrzeżeń w polu statusNumeruPesel zostanie zwrócona wartość BRAK_W_REJESTRZE_ZASTRZEZEN. Został usunięty też komunikat błędu, który był zwracany w momencie, kiedy podany numer PESEL nie istniał w Rejestrze PESEL.

  • poprawienie działania stub’a dla przypadków:

    • "Zapytanie po numerze PESEL, który nie istnieje w Rejestrze Zastrzeżeń oraz nie istnieje w rejestrze PESEL"

    • "Brak uprawnień do przekazania pola podmiotWeryfikujacy"

    • poprawienie struktury zwracanych błędów - dla większości wywołań błąd powinien zostać zwrócony w strukturze typu lista, a był zwracany jako pojedynczy błąd

    • poprawienie przykładów wywołań dla przypadku "Usługa została wywołana z niedozwolonego adresu IP" w usłudze /status-zastrzezenia/na-dzien

1.0.13

Inicjalna wersja kontraktu

1.3. Uwierzytelnienie i autoryzacja

1.3.1. Uwierzytelnienie

Dostęp do API Rejestru Zastrzeżeń jest możliwy tylko dla integratorów, których wniosek o dostęp został pozytywnie rozpatrzony. W odpowiedzi na pozytywnie rozpatrzony wniosek zostanie przekazany sekret w postaci klucza API.
Wartość tą należy traktować jako daną wrażliwą np. hasło. Dlatego należy ograniczyć liczbę osób znających tę wartość.

Podczas wywołania usługi w nagłówku HTTP o nazwie X-API-KEY należy przekazywać klucz API.

1.3.2. Filtr adresów IP

Dostęp do API Rejestru Zastrzeżeń jest możliwy tylko z adresów IP wskazanych we wniosku o dostęp do Rejestru Zastrzeżeń.
Możliwe jest wywoływanie API tylko z adresów IP, których geolokalizacja wskazuje na państwo UE, Wielkiej Brytanii, Szwajcarii i USA.

1.4. Identyfikator wywołania

Przy każdym żądaniu w nagłówku HTTP o nazwie X-REQUEST-ID należy przekazywać unikalny identyfikator (UUID) żądania.
W przypadku wystąpienia problemów z żądaniem w zgłoszeniu należy przekazywać ten identyfikator, co przyspieszy obsługę.

1.5. Korzystanie ze stub’a usług

Razem z dokumentacją został przekazany stub (zaślepka) usług, który obejmuje odpowiedzi dla scenariuszy opisanych rozdziale Przykłady wywołań.
Stub można uruchomić lokalnie w celu testowania integracji. Nie wymaga posiadania konta systemowego w Rejestrze Zastrzeżeń. Można też wpiąć go w proces automatycznych testów.
Różnice w integracji ze stubem w stosunku do integracji ze środowiskiem testowym:

  • stub działa po HTTP, a środowisko testowe działa po HTTPS

  • stub nie wymaga posiadania klucza API

  • do stuba można łączyć się z dowolnego adresu IP

  • stub działa tylko na danych, które są podane w scenariuszach opisanych w rozdziale Przykłady wywołań

1.5.1. Wymagania do uruchomienia stuba

  • java >=8 lub docker

  • dostęp do internetu (stub pobiera z internetu bibliotekę potrzebną do uruchomienia i zapisuje ją w katalogu ~/.m2)

1.5.2. Uruchomienie za pomocą Java

  1. Rozpakowanie do katalogu 'stubs' zawartości pliku jar z definicją stubów

    unzip -d stubs rejestr-zastrzezen-proxy-{projectVersion}-stubs.jar
  2. Pobranie aplikacji, która będzie wystawiała API na podstawie definicji stubów

    wget -O stub-runner.jar 'https://search.maven.org/remote_content?g=org.springframework.cloud&a=spring-cloud-contract-stub-runner-boot&v=3.1.5'
  3. Uruchomienie aplikacji z tego samego katalogu, w którym zostało uruchomione polecenie z pkt 1

    STUB_PORT=8080
    java -jar stub-runner.jar --stubrunner.ids=pl.gov.coi.rejestr-zastrzezen-proxy:rejestr-zastrzezen-proxy:+:stubs:$STUB_PORT --stubrunner.stubsMode=LOCAL --stubrunner.repositoryRoot=stubs://file://$(pwd)/stubs

    Uwaga:
    na Windows ścieżka "file://$(pwd)/stubs" może nie zadziałać poprawnie. Należy wtedy podać bezwzględny URL do katalogu z plikami stub’a (ścieżka musi mieć postać URL - ukośniki w prawą stronę, nie filepath)
    Przykład:

    STUB_PORT=8080
    java -jar stub-runner.jar --stubrunner.ids=pl.gov.coi.rejestr-zastrzezen-proxy:rejestr-zastrzezen-proxy:+:stubs:$STUB_PORT --stubrunner.stubsMode=LOCAL --stubrunner.repositoryRoot=stubs://file:///C:/PROJEKTY/instrukcja%20dla%20integratorow/stubs

1.5.3. Uruchomienie za pomocą dockera

  1. Rozpakowanie do katalogu 'stubs' zawartości pliku jar z definicją stubów

    unzip -d stubs rejestr-zastrzezen-proxy-{projectVersion}-stubs.jar
  2. Uruchomienie kontenera docker (z tego samego katalogu, w którym był wykonany pkt. 1), który wystawia API

    STUB_PORT=8080
    docker run  --rm \
    -e "STUBRUNNER_IDS=pl.gov.coi.rejestr-zastrzezen-proxy:rejestr-zastrzezen-proxy:+:stubs:8080" \
    -e "STUBRUNNER_REPOSITORY_ROOT=stubs://file:///stubs" \
    -e "STUBRUNNER_STUBS_MODE=LOCAL" \
    -p "${STUB_PORT}:8080" \
    -v "${PWD}/stubs:/stubs" \
    springcloud/spring-cloud-contract-stub-runner:3.1.5

1.5.4. Wywołanie API stuba

Domyślnie stub wystawia API na porcie 8080, co można zmienić.
W celu przetestowania komunikacji ze stubem wystarczy skopiować jedno z żądań opisanych w rozdziale Przykłady wywołań.
Pamiętaj, jeżeli zmieniłeś/aś port, to w podanych przykładach również należy zmienić port na inny.

1.6. Środowiska

O dostęp do każdego środowiska należy wnioskować osobno.

Do testów integracyjnych zalecamy korzystanie z załączonego do dokumentacji stuba.
Testy na środowisku integracyjnym warto przeprowadzić w celu sprawdzenia, czy:

  • dostęp po wskazanym we wniosku adresie IP działa poprawnie,

  • aplikacja prawidłowo przekazuje klucz API.

Lista środowisk:

Łańcuch certyfikatów SSL w formacie PEM

-----BEGIN CERTIFICATE-----
MIIG0DCCBbigAwIBAgIQLG92gDKtehv9tz2uS2YUkDANBgkqhkiG9w0BAQsFADCB
izELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G
A1UEAxMmQ2VydHVtIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIFNIQTIwHhcN
MjMxMTEzMDcwNDIwWhcNMjQxMTEyMDcwNDE5WjB0MQswCQYDVQQGEwJQTDEUMBIG
A1UECAwLbWF6b3dpZWNraWUxETAPBgNVBAcMCFdhcnN6YXdhMSAwHgYDVQQKDBdN
aW5pc3RlcnN0d28gQ3lmcnl6YWNqaTEaMBgGA1UEAwwRKi5vYnl3YXRlbC5nb3Yu
cGwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzvhPH85EdRIm+CABE
QJg3hx2PbNAsBJ8BWeNFCljj8xvPC9x0NFM/MgTR4fZrBuBQggiY3JJDJKSWoyUw
fzhPBXfCaQyJCZ0oM1NCGwPZn9EW/+TyHCeKpUawWZpbIocNpxsZPXCAIeQgqb9g
YuzkV3dupzDma2zrTua6T2tbBFmJWsQFWcrb7CPgj9O4oTYsObezXwmecsoBpxS4
Vt0B5hz4wVVA0tDDIXWOs3Dbg1QEsL7U59eFlQ3owLhLZkJ+uJ/+M4ChCTAZBUAO
ADofcGZfvJSsklXP/OSuUvL5NJJotKNPXsWnyH6Y1j3+GO8OhNPVqL037vc53XJU
FjNxAgMBAAGjggNEMIIDQDAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFO7t6FRg
Ews1g6D6a3pGOvc+MLtmMB0GA1UdDgQWBBTFGlvmPLcZgi0XfaTH+3rHDyc1ejAd
BgNVHRIEFjAUgRJvdmNhc2hhMkBjZXJ0dW0ucGwwcQYIKwYBBQUHAQEEZTBjMCsG
CCsGAQUFBzABhh9odHRwOi8vb3ZjYXNoYTIub2NzcC1jZXJ0dW0uY29tMDQGCCsG
AQUFBzAChihodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvb3ZjYXNoYTIuY2Vy
MEsGA1UdIAREMEIwCAYGZ4EMAQICMDYGCyqEaAGG9ncCBQECMCcwJQYIKwYBBQUH
AgEWGWh0dHBzOi8vd3d3LmNlcnR1bS5wbC9DUFMwMgYDVR0fBCswKTAnoCWgI4Yh
aHR0cDovL2NybC5jZXJ0dW0ucGwvb3ZjYXNoYTIuY3JsMB0GA1UdJQQWMBQGCCsG
AQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwLQYDVR0RBCYwJIIRKi5v
Ynl3YXRlbC5nb3YucGyCD29ieXdhdGVsLmdvdi5wbDCCAX0GCisGAQQB1nkCBAIE
ggFtBIIBaQFnAHYA7s3QZNXbGs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGL
x37XtwAABAMARzBFAiEAvUbQrq7T1wfG2eaUVenAYmoSpDz7KInRwsGBrFug9ocC
IHQGO5Bd+fjpRdhR8ec7vxxi54ToV2ayED2V15Bws1iYAHUASLDja9qmRzQP5WoC
+p0w6xxSActW3SyB2bu/qznYhHMAAAGLx37X4wAABAMARjBEAiA07FCnM6jDY/vm
DHbVmdPeGSz+jOyHn+LmDamIQMVbUgIgE3dQZvhGDqGhGkspHlU8nDbNGwgc+kr0
+LdouleCAvEAdgBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcvo6odBxPTDAAAAYvH
fthGAAAEAwBHMEUCIQDVuBEZ/LHQUszNbkB20lECOIMrvrQqbMEaA2JuqSbyrAIg
dBJmn9CyRqS9Yb+XWnhYc6hw3MOo0imRyyoHD3bUIZEwDQYJKoZIhvcNAQELBQAD
ggEBAFup7c+wfA2MHBRfdgRIUCzvcaz7g7MIDHw9aLafNzWd21W7iuZzav2Oc472
IY+xsKHKD3y1p0U7jVTO7bWT8EkH6i/McbGeaHqyE9Ho/F1satDT89FNlC6cVDz5
vjGjIkhOaL7Cat195krs2UoUWLZ2p/CPd/zWMPnsfsn+eFVLRg/EwRGq5GiQN1hF
TGUO8FhiQIyth9j4bZCp63FC4xavZFO7/Yj2u5SL2oNVrmDKpsGZ/bgp+MkUTCbR
QfFMan6hKr0jJHQjCh3ech3Hl11GnmRGzekrISz1+BJG3XLjvEaUEgUSGNGiib/z
3/oc+6auUb3H66DIvjHqqtZD09g=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE1TCCA72gAwIBAgIRALWtD2OFTMRiLks5I7KQAhYwDQYJKoZIhvcNAQELBQAw
fjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAG
A1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNDA5MTExMjAwMDBa
Fw0yNzA2MDkxMDQ2MzlaMIGLMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0
byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRp
b24gQXV0aG9yaXR5MS8wLQYDVQQDEyZDZXJ0dW0gT3JnYW5pemF0aW9uIFZhbGlk
YXRpb24gQ0EgU0hBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQu
1QDMW2HpTB+NQ14+w+dvSV0k/bXvNTz9K6KrTKgXDm1eJZ44QNMo9Hb5230nvrJh
wenVEmOsJRD/Ux/oSGDASK58+ckfgY8CeMMsk7rNkwAlBgDp3mBpdhBADMFevgxb
B+ADq01B91Mit5Tbkc2wP1VlMr2bglVZxmGS39NjpwFRmrzEdxpWdWSX48Ksowt7
QH7QGQ0Af/972ZIam1ctsRGcOkA5h6t/iZXlV5Y2+H4/4pcr4uF4z30I5VHyJWqx
dhbFlaBnmnj/ChLa4wdpObqZl7IUz3MOBioMzH8DyiuEAZ5O1+wPALidIlc3GbVJ
gl6/SwKwh4O4EywWxZMCAwEAAaOCAT4wggE6MA8GA1UdEwEB/wQFMAMBAf8wHQYD
VR0OBBYEFO7t6FRgEws1g6D6a3pGOvc+MLtmMB8GA1UdIwQYMBaAFAh2zcsH/yT2
xc3tu5C84oQ3RnX3MA4GA1UdDwEB/wQEAwIBBjAvBgNVHR8EKDAmMCSgIqAghh5o
dHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYS5jcmwwawYIKwYBBQUHAQEEXzBdMCgG
CCsGAQUFBzABhhxodHRwOi8vc3ViY2Eub2NzcC1jZXJ0dW0uY29tMDEGCCsGAQUF
BzAChiVodHRwOi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY3RuY2EuY2VyMDkGA1Ud
IAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmNlcnR1bS5w
bC9DUFMwDQYJKoZIhvcNAQELBQADggEBACNWGnCyexPgGwHHefwKh8dJHoTEPxbM
M7C2+8tFUiTHKroVdqfPHywdmZ7k0H/0lm0uP1wlcbj1k/dLPb4gugp0UYNB7qk8
os22unSI9Yy/1xpMqNH9Udg7zK4F81YC2YtD942HVWQ1/8GYRNWbMmZmPSJ8ijXz
G6xOSIu3WZgh+qm/B5UpdA1kVXeWL6IcGIj5vnNVwVQiSRroPT+qqHcgVxrs5IAj
BFUNKdQQrInpvGFqiQ8uwOde6gp58IpH1e1h8DIoc/vNa9v/7lZ5s48Q172lFkug
v4FHHMdGV2C1grGQtXyS876ZGk9D5b9Q+SerjBC80hlfGAOt96PK+j0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
-----END CERTIFICATE-----

1.7. SLA

Czas dostępności usług na środowisku produkcyjnym wynosi 99,9% w skali miesiąca. Do czasu niedostępności nie są wliczane planowane niedostępności (przerwy serwisowe).
Maksymalny czas odpowiedzi usług (timeout) jest ustawiony na 5 sekund. Błąd związany z przekroczeniem maksymalnego czasu odpowiedzi może zostać zwrócony szybciej niż po 5 sekundach od wywołania.
Zakładany czas odpowiedzi usługi weryfikacji aktualnego statusu zastrzeżenia numeru PESEL dla 95 percentyla wywołań wynosi poniżej sekundy.
Zakładany czas odpowiedzi usługi pobrania statusów zastrzeżenia numeru PESEL w podanym dniu dla 95 percentyla wywołań wynosi poniżej 3 sekund.

1.7.1. Wykaz niedostępności

Na stronie Biuletynu Informacji Publicznej (BIP) Ministerstwa Cyfryzacji będzie prowadzony wykaz niedostępności usługi weryfikacji statusu zastrzeżenia numeru PESEL.
Adres pod jakim jest udostępniany wykaz niedostępności: https://mc.bip.gov.pl/rejestry-ewidencje-archiwa-prowadzone-w-ministerstwie-cyfryzacji/rejestr-pelnomocnikow-ochrony-cyberprzestrzeni-rzeczypospolitej-polskiej.html
Wykaz będzie obejmował niedostępności planowane (przerwy serwisowe) oraz nieplanowane, całkowite niedostępności, które trwały dłużej niż 15 minut. Wykaz niedostępności będzie zwierała datę i godzinę początku niedostępności oraz datę i godzinę końca niedostępności. Wykaz będzie aktualizowany:

  • na 7 dni przed wystąpieniem planowanej niedostępności

  • 3 dni robocze po wystąpieniu nieplanowanej niedostępności

1.7.2. Planowane niedostępności

Planowane niedostępności (przerwy serwisowe) będą realizowane w późnych godzinach nocnych/wczesnych porannych, aby ograniczyć ich wpływ na systemy korzystające z Rejestru Zastrzeżeń. Na ten moment ciężko przewidzieć, jak długo będą trwały takie przerwy, ale zostaną one skrócone do niezbędnego minimum. Informacje o planowanych niedostępnościach będą wysyłane na 7 dni przed wystąpieniem niedostępności na adresy e-mail, które zostały podane we wniosku o dostęp do środowiska produkcyjnego oraz publikowane w wykazie niedostępności dostępnym w BIP Ministerstwa Cyfryzacji.
Planowana niedostępność może zakończyć się wcześniej, niż zostało to wskazane w wykazie niedostępności.
Jeżeli minie data i czas końca niedostępności planowanej, a system nadal nie odpowiada prawidłowo, należy uznać, że trwa niedostępność nieplanowana.

W momencie wywołania usług podczas planowanej niedostępności usługi będą zwracały kod HTTP 503 – Service Unavailable i odpowiedź:

{
  "kod" : "20230613:000000",
  "komunikat" : "Planowana niedostępność systemu do godziny 01:00 w dniu 31.12.2022",
  "planowanaNiedostepnoscDo" : "2022-12-31T01:00:00+01:00"
}

1.7.3. Nieplanowana niedostępność

Jako nieplanowaną niedostępność rozumie się sytuację, w której usługa zwróciła błędną odpowiedź (status odpowiedzi HTTP 5xx - z wykluczeniem komunikatu błędu dla planowanej niedostępności) lub nie zwróciła żadnej odpowiedzi.
Brak zwrócenia odpowiedzi może wynikać z awarii po stronie systemu, który wywołuje usługę np. przecięty kabel w centrum danych instytucji integrującej się z Rejestrem Zastrzeżeń. Taka sytuacja nie jest traktowana jako niedostępność.

Przykładowe odpowiedzi ze statusem HTTP 5xx dla niedostępności nieplanowanej:

500 – Internal Server Error i odpowiedź:

{
  "kod" : "20221103:143921",
  "komunikat" : "Wystąpił wewnętrzny błąd serwera",
  "data" : "2024-04-17T09:26:01.478+02:00"
}

503 – Service Unavailable i odpowiedź:

{
  "kod" : "20230826:000000",
  "komunikat" : "System Rejestr Zastrzeżeń jest niedostępny - trwa rozwiązywanie awarii. Spróbuj ponownie później."
}

504 – Gateway Timeout i odpowiedź:

{
  "kod" : "20240406:000001",
  "komunikat" : "Wystąpiło przekroczenie maksymalnego czasu realizacji procesu"
}

W momencie wystąpienia jednego ze scenariuszy oznaczających niedostępność należy ponawiać próby wywołania usługi, za każdym razem zwiększając czas pomiędzy kolejnymi wywołaniami.

Należy rozróżnić 2 rodzaje niedostępności nieplanowanych:

  • całkowitą

  • częściową

Jako całkowitą niedostępność rozumie się sytuację, w której wszystkie żądania (od wszystkich instytucji) do Rejestru Zastrzeżeń zwróciły błędną odpowiedź (status HTTP 5xx) lub nie zwróciły żadnej odpowiedzi.
Niedostępność częściowa może wystąpić np. kiedy Rejestr Zastrzeżeń będzie przeciążony atakiem DDOS. Zanim zadziałają mechanizmy anty-DDOS, część wywołań może kończyć się poprawną odpowiedzią, a część może kończyć się np. timeoutem lub brakiem odpowiedzi. Częściowe niedostępności nie są uwzględniane w wykazie niedostępności.

W związku z możliwością występowania częściowych niedostępności ustawowo określony czas 15 minut niedostępności należy liczyć osobno dla każdego numeru PESEL.

W celu zabezpieczenia się przed awarią DNS warto rozważyć dodanie awaryjnej komunikacji bezpośrednio po adresie IP.
Aktualny adres IP najlepiej sprawdzać za pomocą narzędzia DNS lookup.

1.7.4. Nieplanowane niedostępności częściowe

Rejestr niedostępności nie obejmuje niedostępności częściowych. Może się tak zdarzyć, że w momencie dużego obciążenia systemu, część żądań w ciągu 15 minut nie otrzyma poprawnej odpowiedzi, a część otrzyma poprawną odpowiedź. W takim przypadku system zewnętrzny powinien liczyć czas od pierwszego zapytania o dany numer PESEL, które zwróciło niepoprawną odpowiedzi, do ostatniego zapytania o dany numer PESEL, które zwróciło niepoprawną odpowiedź. Jeżeli pomiędzy tymi zapytaniami minęło więcej niż 15 minut, można uznać, że usługa nie była dostępna.

Należy również przygotować się na sytuację niespodziewanego błędu - w takiej sytuacji zwracany jest kod HTTP 500 - Internal Error i odpowiedź o niespodziewanym błędzie:

{
  "kod" : "20221103:143921",
  "komunikat" : "Wystąpił wewnętrzny błąd serwera",
  "data" : "2024-04-17T09:26:01.478+02:00"
}

1.8. Dane testowe

W stubie można użyć numerów PESEL z przypadków opisanych poniżej.
W tabelach poniżej dane posortowane są malejąco według daty rejestracji statusu. Pierwszy wiersz przedstawia aktualny status.

Na środowisku integracyjnym można użyć numerów PESEL, które są zawarte w pliki test-data-usluga-weryfikacji.csv dołączonym do archiwum razem z dokumentacją.
Podane statusy mogą się różnić od wskazanych w pliku CSV. Codziennie między godzina 02:00 - 05:00 dane są przywracane do stanu opisanego w pliku CSV.

1.8.1. Numer PESEL 80103193344

Nazwa statusu Data rejestracji statusu

Niezastrzeżony

2022-12-08T10:35:13+01:00

Zastrzeżony

2022-11-10T19:21:54+01:00

1.8.2. Numer PESEL 70030158839

Przypadek, gdzie numer PESEL miał zmieniany status zastrzeżenia kilka razy w tej samej minucie.
Numer PESEL nie może mieć dwóch statusów w tej samej sekundzie.

Nazwa statusu Data rejestracji statusu

Zastrzeżony

2022-12-08T10:35:58+01:00

Niezastrzeżony

2022-12-08T10:35:56+01:00

Zastrzeżony

2022-12-08T10:35:41+01:00

Niezastrzeżony

2022-12-08T10:35:17+01:00

Zastrzeżony

2022-12-06T22:15:21+01:00

1.8.3. Numer PESEL 88030111637

Numer PESEL, który jest numerem PESEL historycznym - przed zmianą numeru PESEL.
Nowy numer PESEL nie ma automatycznie kontynuacji statusu zastrzeżenia z poprzedniego numeru PESEL.
Zastrzeżenie musi być zarejestrowane na nowy numer PESEL.

Nazwa statusu Data rejestracji statusu

Zastrzeżony

2022-12-09T11:51:13+01:00

2. Przykłady wywołań

Zawarte w przykładowych odpowiedziach kody błędów są stałe i takie same będą na środowisku testowym i produkcyjnym.

2.1. Przykłady błędów wspólnych dla wielu usług

W żądaniach wskazana jest usługa /status-zastrzezenia/aktualny, ale opisane odpowiedzi będą zwracane również dla innych usług. Opisane są zarówno żądania, jak i odpowiedzi, aby można było wywołać dany scenariusz w stubie.

2.1.1. Zbyt wiele żądań zwracających kod HTTP 401 i 403

API jest zabezpieczone blokowaniem adresów IP, których wywołania powodują zwracanie statusów HTTP 401 i 403. Jeżeli w 60 minutowym oknie czasowym pojawi się więcej niż 20 odpowiedzi ze statusem 401 i 403 to adres IP zostaje zablokowany na 60 minut od czasu pierwszego zapytania, które zwróciło błąd w 60 minutowym oknie czasowym.

  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 49082cec-d23a-489c-aa25-6aaf6b323e6e' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"73052379718"}'
  • odpowiedź

HTTP/1.1 429 Too Many Requests
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 126

{
  "kod" : "20240207:000001",
  "komunikat" : "Zbyt wiele nieprawidłowych żądań - została włączona czasowa blokada."
}

2.1.2. Blokada żądań potencjalnie niebezpiecznych

System jest zabezpieczony różnymi mechanizmami bezpieczeństwa, które działają m.in. na podstawie sygnatur oraz blokują podejrzane adresy IP. W momencie blokady żądania zwracany jest komunikat opisany poniżej. Jeżeli Twoje żądanie jest prawidłowe, a mimo to system zwraca poniższy błąd, należy wysłać zgłoszenie wraz z informacją o żądaniu (pełne żądanie HTTP zawierające nagłówki i ciało żądania).

  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 89ce9ad7-05dd-4d8b-a606-d4546ca90d02' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"84100718324"}'
  • odpowiedź

HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 109

{
  "kod" : "20240207:000002",
  "komunikat" : "Zapytanie zostało zablokowane z przyczyn bezpieczeństwa."
}

2.2. Usługa /status-zastrzezenia/aktualny

Usługa zwraca aktualny status zastrzeżenia numeru PESEL.
Powinna być wykorzystywana w celu weryfikacji statusu zastrzeżenia numeru PESEL np. przed podpisaniem umowy.
W Rejestrze Zastrzeżeń nie jest możliwe, aby w jednej sekundzie odbyła się weryfikacja i zmiana statusu zastrzeżenia.

2.2.1. Zwrócony status zastrzeżenia

Zapytanie po numerze PESEL, którego status jest "zastrzeżony"
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"70030158839"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 185

{
  "aktualnyStatus" : {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:58+01:00"
  },
  "dataICzasWeryfikacji" : "2022-12-09T11:23:13+01:00"
}
Zapytanie po numerze PESEL, którego status jest "niezastrzeżony"
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"80103193344"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 188

{
  "aktualnyStatus" : {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:13+01:00"
  },
  "dataICzasWeryfikacji" : "2022-12-09T13:13:25+01:00"
}
Zapytanie po numerze PESEL, który nigdy nie był zarejestrowany w Rejestrze Zastrzeżeń

Jeżeli osoba nigdy nie zastrzegła swojego numeru PESEL w Rejestrze Zastrzeżeń, to status jej numeru PESEL będzie "niezastrzeżony". Dodatkowo w odpowiedzi nie będzie zwracane pole dataICzasPoczatkuWaznosciStatusu.
W żądaniu można podać dowolny poprawny numer PESEL, nie wymieniony w innych przypadkach.

  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"51072127458"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 118

{
  "aktualnyStatus" : {
    "status" : "NIEZASTRZEZONY"
  },
  "dataICzasWeryfikacji" : "2022-12-09T13:13:25+01:00"
}

2.2.2. Błędy związane z uwierzytelnieniem i autoryzacją

W wywołaniu nie podano klucza API
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"96051843572"}'
  • odpowiedź

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
Content-Length: 130

{
  "kod" : "20221120:000015",
  "komunikat" : "Niepoprawne dane uwierzytelniające",
  "data" : "2024-04-17T09:26:01.649+02:00"
}
Podano nieprawidłowy klucz API
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-000000000000' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"48012683871"}'
  • odpowiedź

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
Content-Length: 130

{
  "kod" : "20221120:000015",
  "komunikat" : "Niepoprawne dane uwierzytelniające",
  "data" : "2024-04-17T09:26:01.532+02:00"
}
Konto powiązane z podanym kluczem API jest nieaktywne
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 6bc55854-55ad-4bc0-8ad7-06067726321c' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"98022253771"}'
  • odpowiedź

HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
Content-Length: 120

{
  "kod" : "20221120:000016",
  "komunikat" : "Brak wymaganego uprawnienia",
  "data" : "2024-04-17T09:26:01.1+02:00"
}
Usługa została wywołana z niedozwolonego adresu IP
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865","dataWeryfikacji":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
Content-Length: 122

{
  "kod" : "20221120:000016",
  "komunikat" : "Brak wymaganego uprawnienia",
  "data" : "2024-04-17T09:25:58.089+02:00"
}

2.2.3. Błędy zwracane, gdy żądanie nie jest zgodne z kontraktem

Nie podano wymaganego pola numer PESEL
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 242

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.567+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' nie może mieć wartości null"
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - zawiera inne znaki niż cyfry
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"8908151152a"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 323

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.249+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' zawiera niedopuszczone znaki. Wyrażenie regularne z dopuszczalnymi znakami znajduje się w kontrakcie usługi."
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - mniej niż 11 znaków
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"123456789"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 259

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.05+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' wielkość musi należeć do zakresu od 11 do 11"
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - więcej niż 11 znaków
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"930101129131"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 260

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.677+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' wielkość musi należeć do zakresu od 11 do 11"
  } ]
}
Nie podano wymaganego nagłówka X-REQUEST-ID
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 250

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.508+02:00",
  "bledy" : [ {
    "kod" : "20221120:000009",
    "komunikat" : "Niepoprawny nagłówek 'X-REQUEST-ID' lub jego brak"
  } ]
}
Podano nagłówek HTTP w nieprawidłowym formacie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c2951ZX' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"58081889687"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 325

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.219+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Wartość: 7a48c9f2-2b64-4374-ab4c-c3a68c2951ZX pola: X-REQUEST-ID jest nieprawidłowa i nie może być skonwertowana na: UUID"
  } ]
}
Nie podano powodu weryfikacji
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"PESEL":"62021494138"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 253

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.352+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' nie może mieć wartości null"
  } ]
}
Podano powód weryfikacji, który ma niedozwoloną długość
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"PESEL":"67070919876","powodWeryfikacji":"UNYZCVXPKQRAGTVYTEDZGCVJSBZVRJGPVMYEFGLWWMEYZTZKHZPQHDEABPYSWUUUVTPWQFJMPPTSYTFAGBJTKDYFAXMKNGTNPXCGXNMLNRZRLUATCRTYZRMKWJSRMNJGAFLDUZYNPJWTEZYJCZRABLDAVEGBZSZKXCKQDHKKKBWFGLQJPGNGTHSVHJTAPJHKLRVSMKULRSFRPHNQCJRKRCTPCNGAZHHVDFHYGRXLETZCJGKUHHFBFHCDDLRTSYGCWQMMJYKJMCVNDHQSELEFZKFSLCVQHHXYKHLBQCMYCBSXZUNYZCVXPKQRAGTVYTEDZGCVJSBZVRJGPVMYEFGLWWMEYZTZKHZPQHDEABPYSWUUUVTPWQFJMPPTSYTFAGBJTKDYFAXMKNGTNPXCGXNMLNRZRLUATCRTYZRMKWJSRMNJGAFLDUZYNPJWTEZYJCZRABLDAVEGBZSZKXCKQDHKKKBWFGLQJPGNGTHSVHJTAPJHKLRVSMKULRSFRPHNQCJRKRCTPCNGAZHHVDFHYGRXLETZCJGKUHHFBFHCDDLRTSYGCWQMMJYKJMCVNDHQSELEFZKFSLCVQHHXYKHLBQCMYCBSXZ"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 271

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.437+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' wielkość musi należeć do zakresu od 3 do 512"
  } ]
}
Podano powód weryfikacji, który zawiera niedozwolone znaki
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Na końcu tego zdania występuje niedozwolony znak <","PESEL":"79111427376"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 334

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.409+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' zawiera niedopuszczone znaki. Wyrażenie regularne z dopuszczalnymi znakami znajduje się w kontrakcie usługi."
  } ]
}

2.2.4. Błędy biznesowe

Podano numer PESEL z nieprawidłową sumą kontrolną
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"89082605421"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 240

{
  "kod" : "20221120:000001",
  "komunikat" : "Wystąpiły błędy biznesowe",
  "data" : "2024-04-17T09:26:01.71+02:00",
  "bledy" : [ {
    "kod" : "20221120:000010",
    "komunikat" : "Nieprawidłowa suma kontrolna numeru PESEL"
  } ]
}

2.2.5. Inne błędy

Niespodziewany błąd systemu
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"95092627312"}'
  • odpowiedź

HTTP/1.1 500 Internal Server Error
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 132

{
  "kod" : "20221103:143921",
  "komunikat" : "Wystąpił wewnętrzny błąd serwera",
  "data" : "2024-04-17T09:26:01.478+02:00"
}
Timeout
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"74120662145"}'
  • odpowiedź

HTTP/1.1 504 Gateway Timeout
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 114

{
  "kod" : "20240406:000001",
  "komunikat" : "Wystąpiło przekroczenie maksymalnego czasu realizacji procesu"
}
Komunikat o planowanej niedostępności
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"73011955915"}'
  • odpowiedź

HTTP/1.1 503 Service Unavailable
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 180

{
  "kod" : "20230613:000000",
  "komunikat" : "Planowana niedostępność systemu do godziny 01:00 w dniu 31.12.2022",
  "planowanaNiedostepnoscDo" : "2022-12-31T01:00:00+01:00"
}
Komunikat o nieplanowanej niedostępności
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/aktualny' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"89031845871"}'
  • odpowiedź

HTTP/1.1 503 Service Unavailable
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 155

{
  "kod" : "20230826:000000",
  "komunikat" : "System Rejestr Zastrzeżeń jest niedostępny - trwa rozwiązywanie awarii. Spróbuj ponownie później."
}

2.3. Usługa /status-zastrzezenia/na-dzien

Usługa zwraca listę wszystkich statusów zastrzeżenia numeru PESEL we wskazanym dniu.
Jeżeli do połowy dnia numer PESEL miał status "zastrzeżony", który był wprowadzony kilka miesięcy temu, to ten status również zostanie uwzględniony w odpowiedzi.
Dzięki tej usłudze możliwe jest historyczne sprawdzenie, jakie były statusy zastrzeżenia numeru PESEL np. w dniu podpisania umowy.

Usługa NIE powinna służyć do weryfikacji statusu zastrzeżenia np. przed podpisaniem umowy.

2.3.1. Zwrócony status zastrzeżenia

Numer PESEL posiadał tylko jeden status "zastrzeżony" we wskazanym dniu
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"88030111637","data":"2022-12-10"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 182

{
  "statusy" : [ {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-09T11:51:13+01:00"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Numer PESEL posiadał tylko jeden status "niezastrzeżony" we wskazanym dniu
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"80103193344","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 185

{
  "statusy" : [ {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:13+01:00"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Numer PESEL posiadał dwa statusy w dniu pierwszej rejestracji zastrzeżenia
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"88030111637","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 221

{
  "statusy" : [ {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-09T11:51:13+01:00"
  }, {
    "status" : "NIEZASTRZEZONY"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Numer PESEL posiadał dwa statusy w dniu, w którym status uległ zmianie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"80103193344","data":"2022-12-08"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 221

{
  "statusy" : [ {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-09T11:51:13+01:00"
  }, {
    "status" : "NIEZASTRZEZONY"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Numer PESEL posiadał kilka statusów, które były zmieniane w tej samej minucie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"70030158839","data":"2022-12-08"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 612

{
  "statusy" : [ {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:58+01:00"
  }, {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:56+01:00"
  }, {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:41+01:00"
  }, {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:17+01:00"
  }, {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-06T22:15:21+01:00"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Numer PESEL posiadał kilka statusów, które były zmieniane w tej samej minucie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"70030158839","data":"2022-12-08"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 612

{
  "statusy" : [ {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:58+01:00"
  }, {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:56+01:00"
  }, {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:41+01:00"
  }, {
    "status" : "NIEZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-08T10:35:17+01:00"
  }, {
    "status" : "ZASTRZEZONY",
    "dataICzasPoczatkuWaznosciStatusu" : "2022-12-06T22:15:21+01:00"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Zapytanie po numerze PESEL, który nigdy nie był zarejestrowany w Rejestrze Zastrzeżeń

Jeżeli osoba nigdy nie zastrzegła swojego numeru PESEL w Rejestrze Zastrzeżeń, to zostanie zwrócony tylko jeden status - "niezastrzeżony". Dodatkowo w odpowiedzi nie będzie zwracane pole dataICzasPoczatkuWaznosciStatusu.
W żądaniu można podać dowolny poprawny numer PESEL, nie wymieniony w innych przypadkach.

  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"51072127458","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 115

{
  "statusy" : [ {
    "status" : "NIEZASTRZEZONY"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}
Zapytanie po numerze PESEL z datą przed pierwszą rejestracją zastrzeżenia

Podany numer PESEL ma zarejestrowane zastrzeżenie od "2022-12-09T11:51:13+01:00".
W momencie wywołania usługi z datą przed "2022-12-09" odpowiedź jest taka sama jak w przypadku, gdy dany numer PESEL nigdy nie miał zarejestrowanego zastrzeżenia w Rejestrze Zastrzeżeń.

  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"88030111637","data":"2022-12-08"}'
  • odpowiedź

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 115

{
  "statusy" : [ {
    "status" : "NIEZASTRZEZONY"
  } ],
  "dataICzasWeryfikacji" : "2022-12-17T19:21:19+01:00"
}

2.3.2. Błędy związane z uwierzytelnieniem i autoryzacją

W wywołaniu nie podano klucza API
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"86110413231","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
Content-Length: 130

{
  "kod" : "20221120:000015",
  "komunikat" : "Niepoprawne dane uwierzytelniające",
  "data" : "2024-04-17T09:26:02.436+02:00"
}
Podano nieprawidłowy klucz API
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-000000000000' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"85042122219","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
Content-Length: 129

{
  "kod" : "20221120:000015",
  "komunikat" : "Niepoprawne dane uwierzytelniające",
  "data" : "2024-04-17T09:26:02.35+02:00"
}
Konto powiązane z podanym kluczem API jest nieaktywne
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 6bc55854-55ad-4bc0-8ad7-06067726321c' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"72080474176","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
Content-Length: 122

{
  "kod" : "20221120:000016",
  "komunikat" : "Brak wymaganego uprawnienia",
  "data" : "2024-04-17T09:26:02.006+02:00"
}
Usługa została wywołana z niedozwolonego adresu IP
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Content-Type: application/json' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865","dataWeryfikacji":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
Content-Length: 122

{
  "kod" : "20221120:000016",
  "komunikat" : "Brak wymaganego uprawnienia",
  "data" : "2024-04-17T09:26:01.876+02:00"
}

2.3.3. Błędy zwracane, gdy żądanie nie jest zgodne z kontraktem

Podano pustą datę weryfikacji
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865","data":""}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 241

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.078+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'data' nie może mieć wartości null"
  } ]
}
Podano datę weryfikacji w nieprawidłowym formacie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865","data":"27.12.2022"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 254

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.205+02:00",
  "bledy" : [ {
    "kod" : "20230111:000001",
    "komunikat" : "Data weryfikacji musi być podana w formacie RRRR-MM-DD"
  } ]
}
Nie podano wymaganego pola numer PESEL
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","data":"2022-12-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 242

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.372+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' nie może mieć wartości null"
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - zawiera inne znaki niż cyfry
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"8908151152a","data":"2022-12-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 323

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.102+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' zawiera niedopuszczone znaki. Wyrażenie regularne z dopuszczalnymi znakami znajduje się w kontrakcie usługi."
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - mniej niż 11 znaków
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"123456789","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 260

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:01.985+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' wielkość musi należeć do zakresu od 11 do 11"
  } ]
}
Podano numer PESEL w nieprawidłowym formacie - więcej niż 11 znaków
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"930101129131","data":"2022-12-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 260

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.482+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'PESEL' wielkość musi należeć do zakresu od 11 do 11"
  } ]
}
Nie podano wymaganego nagłówka X-REQUEST-ID
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"91030684865","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 249

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.33+02:00",
  "bledy" : [ {
    "kod" : "20221120:000009",
    "komunikat" : "Niepoprawny nagłówek 'X-REQUEST-ID' lub jego brak"
  } ]
}
Podano nagłówek HTTP w nieprawidłowym formacie
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c2951ZX' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"58081889687","data":"2022-12-07"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 325

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.051+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Wartość: 7a48c9f2-2b64-4374-ab4c-c3a68c2951ZX pola: X-REQUEST-ID jest nieprawidłowa i nie może być skonwertowana na: UUID"
  } ]
}
Nie podano powodu weryfikacji
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"PESEL":"62021494138","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 253

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.153+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' nie może mieć wartości null"
  } ]
}
Podano powód weryfikacji, który ma niedozwoloną długość
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"PESEL":"67070919876","data":"2022-11-02","powodWeryfikacji":"UNYZCVXPKQRAGTVYTEDZGCVJSBZVRJGPVMYEFGLWWMEYZTZKHZPQHDEABPYSWUUUVTPWQFJMPPTSYTFAGBJTKDYFAXMKNGTNPXCGXNMLNRZRLUATCRTYZRMKWJSRMNJGAFLDUZYNPJWTEZYJCZRABLDAVEGBZSZKXCKQDHKKKBWFGLQJPGNGTHSVHJTAPJHKLRVSMKULRSFRPHNQCJRKRCTPCNGAZHHVDFHYGRXLETZCJGKUHHFBFHCDDLRTSYGCWQMMJYKJMCVNDHQSELEFZKFSLCVQHHXYKHLBQCMYCBSXZUNYZCVXPKQRAGTVYTEDZGCVJSBZVRJGPVMYEFGLWWMEYZTZKHZPQHDEABPYSWUUUVTPWQFJMPPTSYTFAGBJTKDYFAXMKNGTNPXCGXNMLNRZRLUATCRTYZRMKWJSRMNJGAFLDUZYNPJWTEZYJCZRABLDAVEGBZSZKXCKQDHKKKBWFGLQJPGNGTHSVHJTAPJHKLRVSMKULRSFRPHNQCJRKRCTPCNGAZHHVDFHYGRXLETZCJGKUHHFBFHCDDLRTSYGCWQMMJYKJMCVNDHQSELEFZKFSLCVQHHXYKHLBQCMYCBSXZ"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 271

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.278+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' wielkość musi należeć do zakresu od 3 do 512"
  } ]
}
Podano powód weryfikacji, który zawiera niedozwolone znaki
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"PESEL":"79111427376","data":"2022-11-02","powodWeryfikacji":"Na końcu tego zdania występuje niedozwolony znak <"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 334

{
  "kod" : "20221120:000000",
  "komunikat" : "Wystąpiły błędy walidacji",
  "data" : "2024-04-17T09:26:02.255+02:00",
  "bledy" : [ {
    "kod" : "20221120:000000",
    "komunikat" : "Pole 'powodWeryfikacji' zawiera niedopuszczone znaki. Wyrażenie regularne z dopuszczalnymi znakami znajduje się w kontrakcie usługi."
  } ]
}

2.3.4. Błędy biznesowe

Podano datę weryfikacji sprzed uruchomienia Rejestru Zastrzeżeń
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"80072223345","data":"2022-10-19"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 280

{
  "kod" : "20221120:000001",
  "komunikat" : "Wystąpiły błędy biznesowe",
  "data" : "2024-04-17T09:26:02.179+02:00",
  "bledy" : [ {
    "kod" : "20221120:000014",
    "komunikat" : "Data musi być większa niż 2022-10-20 (data uruchomienia rejestru zastrzeżeń)"
  } ]
}
Podano datę weryfikacji z przyszłości
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"58081178158","data":"2055-11-12"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 251

{
  "kod" : "20221120:000001",
  "komunikat" : "Wystąpiły błędy biznesowe",
  "data" : "2024-04-17T09:26:02.394+02:00",
  "bledy" : [ {
    "kod" : "20221120:000013",
    "komunikat" : "Nie można podawać daty weryfikacji z przyszłości"
  } ]
}
Podano numer PESEL z nieprawidłową sumą kontrolną
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"89082605421","data":"2022-11-02"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 241

{
  "kod" : "20221120:000001",
  "komunikat" : "Wystąpiły błędy biznesowe",
  "data" : "2024-04-17T09:26:02.506+02:00",
  "bledy" : [ {
    "kod" : "20221120:000010",
    "komunikat" : "Nieprawidłowa suma kontrolna numeru PESEL"
  } ]
}
Przykład zwrócenia dwóch błędów biznesowych
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"80072223342","data":"2055-10-19"}'
  • odpowiedź

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 352

{
  "kod" : "20221120:000001",
  "komunikat" : "Wystąpiły błędy biznesowe",
  "data" : "2024-04-17T09:26:02.458+02:00",
  "bledy" : [ {
    "kod" : "20221120:000010",
    "komunikat" : "Nieprawidłowa suma kontrolna numeru PESEL"
  }, {
    "kod" : "20221120:000013",
    "komunikat" : "Nie można podawać daty weryfikacji z przyszłości"
  } ]
}

2.3.5. Inne błędy

Niespodziewany błąd systemu
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"94112431474","data":"2022-11-05"}'
  • odpowiedź

HTTP/1.1 500 Internal Server Error
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 132

{
  "kod" : "20221103:143921",
  "komunikat" : "Wystąpił wewnętrzny błąd serwera",
  "data" : "2024-04-17T09:26:02.308+02:00"
}
Timeout
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"71081525478","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 504 Gateway Timeout
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 114

{
  "kod" : "20240406:000001",
  "komunikat" : "Wystąpiło przekroczenie maksymalnego czasu realizacji procesu"
}
Komunikat o planowanej niedostępności
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"73011955915","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 503 Service Unavailable
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 180

{
  "kod" : "20230613:000000",
  "komunikat" : "Planowana niedostępność systemu do godziny 01:00 w dniu 31.12.2022",
  "planowanaNiedostepnoscDo" : "2022-12-31T01:00:00+01:00"
}
Komunikat o nieplanowanej niedostępności
  • żądanie

$ curl 'http://localhost:8080/api/v1/status-zastrzezenia/na-dzien' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-REQUEST-ID: 7a48c9f2-2b64-4374-ab4c-c3a68c295130' \
    -H 'X-API-KEY: 902ee363-ec5a-478e-873b-2814b76acdae' \
    -d '{"powodWeryfikacji":"Zawarcie umowy na kredyt konsumencki","PESEL":"89031845871","data":"2022-12-09"}'
  • odpowiedź

HTTP/1.1 503 Service Unavailable
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains ; preload
X-Frame-Options: DENY
Content-Security-Policy: script-src 'none'
Content-Length: 155

{
  "kod" : "20230826:000000",
  "komunikat" : "System Rejestr Zastrzeżeń jest niedostępny - trwa rozwiązywanie awarii. Spróbuj ponownie później."
}