3.0 KiB
ZPŠ — Podávání žádostí o výpis registrovaných pojištěnců
Co skript dělá
PodejZadostSeznamZPS.py provede v jednom spuštění tři kroky:
-
Přihlásí se certifikátem na portál ZPŠ (čistý Python, bez NMSigneru) — uloží cookies do sdíleného
StahováníZpráv/209 ZPŠ/zps_cookies.json -
Stáhne nové výpisy pojištěnců ze schránky
schranka-vypis-pojistencu-v-kapitaci— stahuje jen.001soubory, jejichž obsah začínáH09305001— ukládá doU:\Dropbox\Ordinace\Dokumentace_ke_zpracování\Zúčtovací zprávy\SeznamyPojištěnců\— zastaví se při první již stažené zprávě — po stahování se znovu přihlásí (Playwright invaliduje předchozí requests session) -
Podá žádost o výpis pro 1 následující měsíc (poslední den daného měsíce)
Flow přihlášení
- 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
Sestavení XML žádosti
<SchrankaZadost NazevSchranky="VypisPojKap" NazevFiltru="ZZ_VYP_REG">
<PolozkaFiltru Nazev="icz">25520</PolozkaFiltru>
<PolozkaFiltru Nazev="datum">DD.MM.YYYY</PolozkaFiltru>
<PolozkaFiltru Nazev="razeni">jmeno</PolozkaFiltru>
<PolozkaFiltru Nazev="typ">soubor</PolozkaFiltru>
</SchrankaZadost>
Konce řádků: \r\n (NMSigner normalizace)
Podpis XML
PKCS7/SHA-256, bez certifikátu v podpisu (NoCerts):
- Server při odesílání formuláře zná certifikát z registrace
- Certifikát v podpisu server odmítá ("Podepsaná data obsahují certifikát")
- Rozdíl oproti přihlášení: login certifikát potřebuje, formulář ne
Odeslání
POST https://portal.zpskoda.cz/json-api/formular-schranky/29-vypis-registrov-pojistencu/ulozit-formular
Body: {"schrXml": "...", "schrSign": "-----BEGIN PKCS7-----...", "schrFiles": []}
Klíčový objev
Portál používá NMSigner (Chrome extension + lokální app) pro podepisování formulářů. Přišli jsme na to odposlechem síťového provozu v DevTools — stačil jeden XHR request. NMSigner dělá přesně to co my: PKCS7 DetachedSignature bez certifikátu. Výsledek: žádný prohlížeč ani NMSigner není potřeba.
Soubory
| Soubor | Popis |
|---|---|
PodejZadostSeznamZPS.py |
Hlavní skript — stažení výpisů + podání žádosti |
stav.json |
Poslední úspěšně podaný měsíc {"mesic": 4, "rok": 2026} |
log_podani.json |
Historie podání s referenčními čísly |
Parametry
- IČZ: 25520 (IČP: 09305001, MUDr. Michaela Buzalková)
- Certifikát:
Insurance/Certificates/MBQualifiedCert.pfx - Typ výstupu:
soubor(Soubor dle datového rozhraní) - Řazení:
jmeno(příjmení a jména)
Stav
Podáno: 01/2025 – 04/2026 (16 měsíců). Příští spuštění podá 05/2026 (jakmile bude k dispozici).