Skip to main content

zugferd-client

PyPI version Python Live API Health Check Standard Format License: MIT

Der offizielle, leichtgewichtige Python-Client für die E-Rechnung API.

Erstelle, verarbeite und validiere rechtskonforme elektronische Rechnungen nach EN 16931 (ZUGFeRD 2.2 / Factur-X & XRechnung) mit nur 3 Zeilen Python-Code.


📦 Installation

pip install zugferd-client

(Erfordert Python >= 3.8 und hat keine schweren C-Bibliotheks-Abhängigkeiten).


⚡ Schnellstart

Dank des integrierten öffentlichen Test-Keys kannst du sofort ohne API-Key oder Registrierung loslegen:

from zugferd_client import ZugferdClient

# Initialisierung (ohne Argumente wird automatisch der kostenlose Test-Key genutzt)
client = ZugferdClient()

# 1. ZUGFeRD PDF/A-3 Rechnung generieren
pdf_bytes = client.generate_invoice({
    "invoice_number": "RE-2026-001",
    "issue_date": "2026-10-09",
    "seller": {
        "name": "Muster GmbH",
        "street": "Hauptstraße 1",
        "city": "Berlin",
        "zip_code": "10115",
        "country": "DE",
        "vat_id": "DE123456789",
        "iban": "DE12345678901234567890"
    },
    "buyer": {
        "name": "Kunden AG",
        "street": "Nebenstraße 2",
        "city": "München",
        "zip_code": "80331",
        "country": "DE"
    },
    "line_items": [
        {
            "description": "Software-Entwicklung & Beratung",
            "quantity": 10,
            "unit_price": 120.00,
            "tax_rate_percent": 19
        }
    ]
}, output_path="rechnung.pdf")

print("✅ ZUGFeRD-Rechnung erfolgreich gespeichert!")

# 2. Vorhandene Rechnung auf EN 16931 Konformität validieren
report = client.validate("rechnung.pdf")
print("Ist konform:", report.is_valid)
print("Format:", report.format_detected)

🛠️ Funktionen & Methoden

1. Rechnungs-PDF generieren (generate_invoice)

Erstellt ein vollständiges, druckfertiges deutsches Rechnungs-PDF (PDF/A-3) mit unsichtbar eingebetteter factur-x.xml nach europäischer Norm EN 16931.

pdf_bytes = client.generate_invoice(invoice_data, output_path="meine_rechnung.pdf")

2. ZUGFeRD in bestehendes Kunden-PDF einbetten (embed_invoice)

Hast du bereits ein fertiges PDF-Design (z. B. aus InDesign, WeasyPrint oder ReportLab)? Bette das EN 16931 XML verlustfrei ein:

pdf_bytes = client.embed_invoice(
    pdf_file="vorlage.pdf",
    invoice_data=invoice_data,
    output_path="fertige_zugferd_rechnung.pdf"
)

3. XRechnung XML generieren (generate_xrechnung)

Erstellt eine reine EN 16931 XML-Datei (ohne visuelles PDF) – gesetzlich vorgeschrieben für Bundesbehörden und B2G in Deutschland.

xml_string = client.generate_xrechnung(invoice_data, output_path="xrechnung.xml")

4. PDF oder XML validieren (validate)

Prüft PDF/A-3 Konformität, XMP-Metadaten, strukturelle Pflichtknoten und führt eine offizielle XSD-Schemaprüfung durch.

result = client.validate("eingangsrechnung.pdf")

if result.is_valid:
    print(f"Gültige E-Rechnung ({result.format_detected})")
else:
    print("Fehler gefunden:", result.errors)

5. Guthaben abfragen (get_billing_status)

Fragt das verbleibende Dokumenten-Guthaben deines Keys ab:

status = client.get_billing_status()
print(f"Verbleibende Dokumente: {status.credits_remaining}")

🔑 Eigener API-Key & Produktion

Für produktive Rechnungen ohne Test-Wasserzeichen übergibst du deinen persönlichen Key oder setzt die Umgebungsvariable ZUGFERD_API_KEY:

export ZUGFERD_API_KEY="zg_live_..."
client = ZugferdClient(api_key="zg_live_...")


📄 Lizenz

MIT License - Siehe LICENSE für Details.

Metadata

Release files for zugferd-client 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zugferd-client 0.1.0
File Size Uploaded
zugferd_client-0.1.0.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zugferd-client 0.1.0
File Interpreter ABI Platform
zugferd_client-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / zugferd_client-0.1.0.tar.gz

Download URL zugferd_client-0.1.0.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2e53440ed47cf2c7db5e40e404f52c8a6894274fa07f800a1055c285c738e9f0
BLAKE2b-256 checksum
How to use checksums
fad1226c288b7d759fea9505de1bc56e80a0da13205ef20d2b369e198e5e6c1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / zugferd_client-0.1.0-py3-none-any.whl

Download URL zugferd_client-0.1.0-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
568e9b0014d67c08e00c3139143bdc15214b51a67d2078d133490f6e19b919f2
BLAKE2b-256 checksum
How to use checksums
4521bb4ddd30d30b9f7cfe260547bc6d69e07cbda53ee4cb6560e60170d362bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page