XML pro ČSSZ: přehled OSVČ a e-Podání

OSVČ, která má datovou schránku zpřístupněnou ze zákona, musí podat Přehled o příjmech a výdajích pro ČSSZ výhradně elektronicky ve formátu XML. ČSSZ pro každý rok zveřejňuje popis datové věty, schéma XSD a vzorový soubor. Pro vývojáře je důležité, že schéma kontroluje hlavně strukturu: většinu hodnot ČSSZ ověřuje až při zpracování.

Autor: Aktualizováno

Kdo musí podávat přehled v XML

Povinnost platí pro OSVČ s datovou schránkou zpřístupněnou ze zákona. Přehled o příjmech a výdajích podává výhradně v elektronické podobě ve formátu XML. Ostatní tiskopisy, pro které ČSSZ formát XML nestanovila, se posílají v čitelném formátu, nejčastěji PDF, a k jejich podání v XML se nepřihlíží.

KanálCo pošlešPoznámka
ePortál ČSSZformulář vyplněný na webuXML vytvoří ePortál sám
Datová schránka e-Podání (ID 5ffu6xk)XML datové věty jako přílohu zprávypřípadně do schránky příslušné OSSZ
Veřejné rozhraní e-Podání (VREP/APEP)XML z vlastního programuvyžaduje uznávaný elektronický podpis

Lhůty a výpočet pojistného se mění podle roku a podle toho, jestli OSVČ podává daňové přiznání a kdo ho podává. Řiď se pokyny ČSSZ k příslušnému roku, tato kapitola řeší jen formát souboru.

Kde najít XSD a vzorový soubor

Na stránce Definice e-Podání OSVČ má každý rok vlastní balíček: popis datové věty a datových typů, zadání pro programátory, pokyny, ukázku formuláře, schéma OSVC25.xsd a příklad datové věty OSVC25 vzor.xml (pro rok 2025).

Schéma samo nestačí. OSVC25.xsd importuje společné datové typy ze souboru baseTypes2.xsd (jmenný prostor http://schemas.cssz.cz/baseTypes/v2), který je na zvláštní stránce Definice a XSD schéma Datových typů. Ulož ho do stejné složky jako OSVC25.xsd, jinak validátor schéma nezkompiluje: libxml2 hlásí Failed to locate a schema at location 'baseTypes2.xsd' a WXS schema OSVC25.xsd failed to compile.

Jak vypadá datová věta

Přehled OSVČ 2025 (zkráceno, smyšlené údaje)
<?xml version="1.0" encoding="UTF-8"?>
<OSVC xmlns="http://schemas.cssz.cz/OSVC2025" version="1.0">
  <VENDOR productName="Moje účetnictví" productVersion="2026.1"/>
  <SENDER EmailNotifikace="jana@example.cz" ISDSreport="3" VerzeProtokolu="1"/>
  <prehledosvc for="prehledosvc" dep="122" vsdp="12345678" rok="2025" typ="N" dat="">
    <client>
      <name fir="Jana" sur="Nováková" tit=""/>
      <birth bno="0000000000" den="1985-01-01"/>
      <adr str="Dlouhá" num="12" pnu="41201" cit="Litoměřice" cnt="CZ"/>
      <idds>abc1234</idds>
      <druc>H</druc>
      <!-- hlavc, vedc, narok, sleva: měsíce m1 až m13 -->
    </client>
    <pvv pri="350000">
      <!-- údaje o daňovém a vyměřovacím základu, pojistné a zálohy -->
    </pvv>
    <!-- prihldp, zal, pre, prizn, opr, spo -->
    <dat dre="2026-04-20"/>
    <prilo coun="1" plnamoc="N" jina="A">
      <img nazev="potvrzeni.pdf" base64data="JVBERi0xLjcK..."/>
    </prilo>
  </prehledosvc>
</OSVC>

Kořen OSVC nese výchozí jmenný prostor s rokem (http://schemas.cssz.cz/OSVC2025) a atribut version="1.0". Jmenný prostor se mění každý rok: pro rok 2024 je to http://schemas.cssz.cz/OSVC2024. Podání obsahuje vždy právě jeden formulář prehledosvc. Hodnoty jsou převážně v atributech a krátkých elementech, data ve tvaru RRRR-MM-DD.

ElementOddíl tiskopisuObsah
OSVC–kořen: jmenný prostor roku a version="1.0"
VENDOR, SENDER–nepovinné: název programu, e-mail a typ odpovědi (ISDSreport 1 = XML, 2 = HTML, 3 = obojí)
prehledosvczáhlavídep (kód OSSZ), vsdp (variabilní symbol), rok, typ (N = řádný, O = opravný)
clientA, B, Cidentifikace, druh činnosti druc (H = hlavní, V = vedlejší), měsíce výkonu m1 až m13
pvvDdaňový základ, vyměřovací základ, pojistné a zálohy
prihldpEpřihláška k důchodovému pojištění u vedlejší činnosti
zalFzálohy na příští rok
preGpřeplatek a způsob vrácení
priznHdaňové přiznání a paušální režim
oprIopravný přehled: datum zjištění a důvod
spoJspolupracující osoba
dat, priloLdatum vyplnění a přílohy v Base64

Přílohy (plná moc, jiné doklady) jsou přímo v XML: každý element img má název souboru a jeho obsah zakódovaný v Base64 v atributu base64data. Pro ruční kontrolu přílohy poslouží dekódování Base64.

Co ověří XSD a co ne

Schéma OSVC25.xsd hlídá strukturu: jmenný prostor, pořadí a povinnost elementů a atributů. Typově přísně kontroluje jen kód okresu dep, který musí být číslo nezačínající nulou. Většina ostatních hodnot je typu xs:string. Proti schématu proto projde i datum 21.03.1985, rodné číslo s lomítkem nebo typ="R", ačkoli popis datové věty předepisuje formát data RRRR-MM-DD, rodné číslo bez lomítka a typ N nebo O. Tato pravidla (sloupec Kontroly v popisu datové věty) ověřuje až ČSSZ při zpracování.

Chyby, které validace proti schématu najde:

Problémlibxml2 (xmllint, PHP)Java (Xerces)
XML z jiného roku (jmenný prostor OSVC2024 proti OSVC25.xsd)Element '{http://schemas.cssz.cz/OSVC2024}OSVC': No matching global declaration available for the validation root.cvc-elt.1.a: Cannot find the declaration of element 'OSVC'.
Kód okresu dep="012" (nesmí začínat nulou)attribute 'dep': [facet 'pattern'] The value '012' is not accepted by the pattern '[1-9].*|0'.cvc-pattern-valid: Value '012' is not facet-valid with respect to pattern '[1-9].*|0' …
Chybí povinný element birthElement '…adr': This element is not expected. Expected is ( {http://schemas.cssz.cz/OSVC2025}birth ).cvc-complex-type.2.4.a: Invalid content was found starting with element … One of '{…birth}' is expected.

Hlášky jsou stejné jako u jiných schémat, podrobně je vysvětlují stránky cvc-elt.1.a, cvc-pattern-valid a cvc-complex-type.2.4.a.

Doporučený postup pro vlastní program

  1. Stáhni balíček definice pro správný rok a k němu baseTypes2.xsd.
  2. Generuj XML serializérem, ne skládáním řetězců. Uvozovky a ampersand v hodnotách atributů se pak správně escapují a kódování souboru odpovídá XML deklaraci.
  3. Zapisuj hodnoty podle popisu datové věty (data RRRR-MM-DD, čísla bez mezer), i když je schéma nevynucuje.
  4. Každý soubor ověř proti XSD. Ověř i vzorový soubor ČSSZ, abys vyloučil chybu v sadě schémat.
  5. Po odeslání zkontroluj odpověď ze zpracování (podle ISDSreport v XML, HTML nebo obou).

Podobně fungují podání pro finanční správu, viz XML pro finanční úřad. Obecný postup validace popisuje kapitola XML Schema (XSD).