horstoeko/zugferd-laravel
Laravel integration for the horstoeko/zugferd library, making it easy to create, read, and validate ZUGFeRD/Factur-X electronic invoices. Provides service provider, facade, and configuration to generate PDF/A-3 files with embedded XML in Laravel apps.
Adopt when:
horstoeko/zugferd library when edge cases appear.Look elsewhere when:
horstoeko/zugferd library may still apply, but this package adds little.To executives: “EU e-invoicing is becoming mandatory in our two largest target markets, and buyers will start rejecting non-compliant invoices. This package lets us ship compliant German and French invoice formats inside our existing Laravel product at effectively zero licensing cost, in weeks rather than a quarter. It converts a regulatory deadline into a competitive feature — ‘we’re already compliant’ — instead of a scramble or a per-invoice vendor bill. The main caveat is that it’s a small open-source project, so we should treat it as a component we own: pin versions, add our own contract tests, and keep the MIT-licensed fork option open. My recommendation is to prototype against a design partner this quarter and revisit a managed provider only if volume or audit requirements outgrow it.”
To engineering: “Thin Laravel wrapper — service provider plus facade — around the established horstoeko/zugferd PHP library. You get ZUGFeRD 2.x / Factur-X hybrid PDF generation (PDF/A-3 with embedded XML), standalone XRechnung XML, and parsing of inbound documents. It does not give you conformance validation, digital sealing, storage, or delivery. Plan the work as: (1) map our invoice domain model to the EN 16931 data model — this is the real cost, not the library; (2) wrap generation behind an internal interface so we can swap implementations; (3) build a fixture suite of golden files validated externally, since the library won’t validate for us; (4) pin the version and add a smoke test that runs on every dependency bump. Budget the integration at a few engineer-weeks, not days, and treat the dependency as ours to maintain.”
How can I help you explore Laravel packages today?