{"categories":[{"label":"Markup","url":"https://skillfed.io/packages/category/text-processing-markup/2"}],"enrichment":{"capability":"Generates and parses ZUGFeRD XML invoice documents, and attaches them to PDF files for digital B2B invoicing compliance.","skillfed_tags":["invoice-generation","xml-processing","compliance"],"use_cases":["Generate compliant ZUGFeRD invoices programmatically for B2B transactions in Germany and EU markets.","Parse received ZUGFeRD XML from incoming invoices to extract seller, buyer, and line-item data.","Embed ZUGFeRD XML into PDF/A-3 files to create machine-readable digital invoices for archival.","Validate invoice XML against ZUGFeRD 2.3 specification before transmission or storage.","Integrate invoice generation into billing systems like pretix to meet upcoming German B2B digital invoice requirements."],"what_it_does":"drafthorse is a low-level Python implementation of the ZUGFeRD XML format, a German standard for digital B2B invoicing. It models the ZUGFeRD data structure directly without abstraction, allowing you to set and parse all parameters defined in ZUGFeRD 2.3. The library can generate ZUGFeRD XML from Python objects, parse existing ZUGFeRD XML files, validate output against official XSD schemas, and attach the resulting XML to PDF files for transmission. Profile level (basic, comfort, extended) is detected automatically from the XML data.\n\nThe library does not parse PDF files themselves\u2014it only attaches pre-generated ZUGFeRD XML to existing PDFs. All generated XML is validated against the official schemas, though profile-level compliance is not enforced. It depends on lxml for XML handling and pypdf for PDF manipulation, keeping the dependency footprint small.","worth_installing":"Yes, if you need to generate or parse ZUGFeRD invoices for German or EU B2B workflows. The library is actively maintained, has low install friction, carries no known vulnerabilities, and is permissively licensed. Install with caution if your invoices require strict profile-level validation or if you need to parse PDF files directly\u2014neither is supported."},"id":"drafthorse","links":{"html":"https://skillfed.io/packages/drafthorse","md":"https://skillfed.io/packages/drafthorse.md","pypi":"https://pypi.org/project/drafthorse/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2025-09-15","license_spdx":null,"license_treatment":"permissive","name":"drafthorse","python_support":"unspecified","summary":"Python ZUGFeRD XML implementation"},"popularity":{"monthly_downloads":132686,"position":11542,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2025.2.0"}
