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:
- 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 - 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) - 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Š)
- GET
/app/prihlaseni→ session cookie - POST
/json-api/prihlaseni/prihlasovaci-zprava→ challenge (zprava) - Podpis challenge certifikátem (PKCS7/SHA-256, s certifikátem)
- 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.