Files
ordinaceprojekt/Insurance/StahováníSeznamuPojištěnců/207 OZP/NOTES.md
T
Vladimir Buzalka 45c32a37c4 notebookvb
2026-06-17 05:22:34 +02:00

4.2 KiB

OZP (207) — Stahování seznamu registrovaných pojištěnců

Co skript dělá

StahniSeznamPojistencuOZP.py provede v jednom spuštění čtyři kroky:

  1. Přihlásí se certifikátem na portál OZP (čistý Python, bez NMSigneru) — uloží cookies do sdíleného StahováníZpráv/207 OZP/ozp_cookies.json
  2. Stáhne nové výpisy z výpisové schránky schranky-vypis-pojistencu-v-kapitaci — stahuje soubory, jejichž obsah začíná H09305001 — ukládá do …\Zúčtovací zprávy\SeznamyPojištěnců\ (Dropbox) — zastaví se při první již stažené zprávě — po stahování se znovu přihlásí (Playwright invaliduje requests session)
  3. Podá žádost o aktuální výpis (typ=soubor, třídění dle příjmení)

Platforma

OZP běží na stejné platformě jako ZPŠ, VoZP, RBP (portalzp.cz / json-api). Login je identický se ZPŠ. Liší se URL schránky, ID formuláře a názvy filtru/položek.

Flow přihlášení (stejné jako ZPŠ)

  1. GET /app/prihlaseni → session cookie
  2. POST /json-api/prihlaseni/prihlasovaci-zprava → challenge (zprava)
  3. Podpis challenge certifikátem (PKCS7/SHA-256, s certifikátem)
  4. POST /json-api/prihlaseni/prihlaseni-certifikatem → autentizovaná session

Stažení přílohy

GET /html/prehled-zprav-ve-schrankach/zobrazit-prilohu?zprava_id={fileId} fileId se získá z onclick="SchrPolOpenFile(<id>)" v řádcích tabulky schránky. Soubory ve schránce mají název F207MMRR.xxx (MM/RR = měsíc/rok generování).

Podání žádosti (KLÍČOVÝ ROZDÍL oproti ZPŠ)

OZP nemá pole „datum/měsíc" — výpis je aktuální snímek platných registrací („připraveno do příštího dne"). Nepodává se za konkrétní měsíc, nepočítá se „další měsíc". Při každém běhu se podá jedna žádost o aktuální výpis. Žádný stavový soubor s měsícem.

POST https://portal.ozp.cz/json-api/formular-schranky/108-vypis-pojistencu-v-registraci/ulozit-formular Body: {"schrXml": "...", "schrSign": "-----BEGIN PKCS7-----...", "schrFiles": []}

XML žádosti (řádky \r\n)

<SchrankaZadost NazevSchranky="SEZNAM_KAP" NazevFiltru="SEZNAM_KAP">
<PolozkaFiltru Nazev="nicoz">13074913</PolozkaFiltru>
<PolozkaFiltru Nazev="trideni">p</PolozkaFiltru>
<PolozkaFiltru Nazev="typ">soubor</PolozkaFiltru>
</SchrankaZadost>
Položka Hodnota Význam
nicoz 13074913 interní ID položky IČZ (zobrazené IČZ = 09305000). Ověřeno: posílá se interní ID, ne číslo IČZ.
trideni p p=podle příjmení, i=IČP+příjmení, r=rodná čísla
typ soubor soubor=datový soubor dle rozhraní, sestava=tiskový výstup

Podpis XML

PKCS7/SHA-256, bez certifikátu v podpisu (NoCerts) — stejně jako ZPŠ formulář. Server certifikát v podpisu odmítá.

Jak byly endpointy zjištěny

Odposlechem reálného podání v Chrome (MCP) — data-xml-* atributy formuláře daly názvy schránky/filtru a položek, odchycený XHR na ulozit-formular potvrdil přesný payload. První ostré podání: ref. 179774883 (17.06.2026).

Srovnání se ZPŠ

ZPŠ (209) OZP (207)
Schránka URL schranka-vypis-… (jedn.) schranky-vypis-… (množ.)
Formulář 29-vypis-registrov-pojistencu 108-vypis-pojistencu-v-registraci
NazevSchranky / NazevFiltru VypisPojKap / ZZ_VYP_REG SEZNAM_KAP / SEZNAM_KAP
Položka IČZ icz = 25520 nicoz = 13074913 (interní ID)
Pole datum ano (za měsíc) ne (aktuální snímek)
Stav stav.json (měsíc) jen log_podani.json

Soubory

Soubor Popis
StahniSeznamPojistencuOZP.py Hlavní skript — stažení výpisů + podání žádosti
log_podani.json Historie podání s referenčními čísly

Parametry

  • IČZ: 09305000 (IČP: 09305001, MUDr. Michaela Buzalková), interní ID 13074913
  • Certifikát: Insurance/Certificates/MBQualifiedCert.pfx

Stav

Hotovo a otestováno (17.06.2026): login ✓, stažení ✓ (3 výpisy), podání ✓ (ref. 179774883). Výpis z prvního podání dorazí do schránky do příštího dne.