Files
ordinaceprojekt/Insurance/StahováníSeznamuPojištěnců/209 ZPŠ/NOTES.md
T
Vladimir Buzalka 1619d78241 notebookvb
2026-05-12 22:03:09 +02:00

2.6 KiB
Raw Blame History

ZPŠ — Podávání žádostí o výpis registrovaných pojištěnců

Co skript dělá

PodejZadostSeznamZPS.py podává žádost o výpis registrovaných pojištěnců ZPŠ za jeden měsíc (poslední den daného měsíce). Bez prohlížeče, bez NMSigneru — čistý Python.

Flow

  1. Přihlášení — stejný certifikátový login jako ostatní ZPŠ skripty (01_prihlaseni.py):

    • 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
  2. 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)

  3. 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
  4. Odeslání:

    • POST https://portal.zpskoda.cz/json-api/formular-schranky/29-vypis-registrov-pojistencu/ulozit-formular
    • Body: {"schrXml": "...", "schrSign": "-----BEGIN PKCS7-----...", "schrFiles": []}
    • Odpověď obsahuje referenční číslo podání

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 — přihlášení + 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ČZ: 09305000, 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).