ZUGFeRD a Factur-X: PDF faktura s XML

Hybridní faktura kombinuje čitelné PDF s vloženými strojově zpracovatelnými daty XML. ZUGFeRD a Factur-X jsou společně vyvíjené německé a francouzské specifikace.

Autor: Aktualizováno

Obálka a strukturovaná data

PDF/A-3 nese XML faktury v modelu UN/CEFACT CII. Samotné přejmenování PDF nebo přiložení libovolného XML nevytvoří vyhovující fakturu; musí souhlasit obálka, metadata, profil a datový obsah.

Verze a profily

Ověřeno 1. 10. 2026: FeRD publikuje ZUGFeRD 2.5.2 / Factur-X 1.09.2. Sada obsahuje pět profilů s vlastními XSD a Schematron pravidly. Vyber profil dohodnutý s příjemcem; ne každý profil obsahuje totéž a nelze všechny automaticky zaměnit za plnou EN 16931 fakturu.

Co kontrolovat

Vytáhni XML z PDF nástrojem podporujícím vložené soubory. Ověř XML proti XSD a obchodním pravidlům z téže release sady. Nakonec zkontroluj PDF obálku a shodu viditelných a strukturovaných údajů. Zdejší XML nástroj kontroluje vytažené XML, nikoli celý hybridní dokument.

Co kontrolovat
PDF/A-3 → vložené XML → XSD → Schematron → profil příjemce
          ↘ vizuální faktura musí odpovídat datům

Vztah k Peppol

Peppol je samostatný výměnný rámec s vlastními pravidly dokumentů a přepravy. Hybridní PDF není automaticky dokument Peppol BIS Billing. Při převodu respektuj požadovanou syntaxi a profil příjemce, včetně zaokrouhlování a identifikátorů.

Vytažení strukturované faktury z PDF

Poppler pdfdetach — číslo přílohy vyber podle skutečného seznamu
pdfdetach -list faktura.pdf
pdfdetach -save 1 -o faktura.xml faktura.pdf
xmllint --noout faktura.xml

První příkaz vypíše vložené soubory. Zvol právě přílohu s XML fakturou; číslo 1 v druhém příkazu je příklad, ne záruka stejného pořadí u každého PDF. Pokud jsou přiložené další dokumenty, nezpracovávej první přílohu automaticky. Třetí příkaz ověří pouze XML syntaxi.

Reprodukovatelný historický testovací PDF je v oficiálním repozitáři Mustang. Slouží pro nácvik extrakce, nikoli jako vzorek právě nejnovějšího profilu. Pro integraci zvol vzorek z přesné release sady FeRD požadované příjemcem.

Co hledat v CII a jak pokračovat ve validaci

Pouze orientační fragment context/header; chybí obchodní část faktury
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
 xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
 <rsm:ExchangedDocumentContext><ram:GuidelineSpecifiedDocumentContextParameter>
  <ram:ID>urn:cen.eu:en16931:2017</ram:ID>
 </ram:GuidelineSpecifiedDocumentContextParameter></rsm:ExchangedDocumentContext>
 <rsm:ExchangedDocument><ram:ID>DEMO-1</ram:ID><ram:TypeCode>380</ram:TypeCode></rsm:ExchangedDocument>
</rsm:CrossIndustryInvoice>

ExchangedDocumentContext identifikuje profil, ExchangedDocument číslo a druh dokumentu. SupplyChainTradeTransaction v úplné faktuře obsahuje položky a údaje o stranách, dodání a vypořádání. Celá faktura musí splnit XSD i pravidla profilu; samotná existence čísla faktury nebo uvedeného URI nestačí. Fragment výše není kompletní validní faktura.

Alternativní extrakce a validace v Mustang CLI; jar přejmenuj na uvedený název
java -jar Mustang-CLI.jar --action extract --source faktura.pdf --out faktura.xml
java -jar Mustang-CLI.jar --action validate --source faktura.pdf

CLI stáhni z oficiálních release a ověř podporu své verze Factur-X. Report vyhodnoť podle vrstev: syntaktická/XSD chyba, Schematron obchodní chyba a PDF/A či metadata. Příkaz pro validaci neznamená, že každý historický validátor zná aktuální release. XML.cz neumí kontrolovat celou PDF obálku.

Typická obchodní chyba je nesoulad daně, základu a součtu; typická obálková chyba chybějící či neodpovídající metadata přílohy. Oprava formátováním XML je nevyřeší. U hybridní faktury zkontroluj i soulad viditelného PDF s XML a ponech originál. Pro samostatné fakturační XML navazuje UBL, CII a Peppol.