Context
Sub-story of #767. ZugferdHandler (ZUGFeRD 1.0/2.0 — Germany) currently throws RuntimeException('... not yet implemented ...') instead of generating real XML.
Recommended package
horstoeko/zugferd (MIT, actively maintained — v1.0.132 as of Aug 2026) — ZUGFeRD and Factur-X are closely aligned CII profiles, same library covers both.
A horstoeko/zugferd-laravel wrapper exists, but its last release (March 2025) is stale versus the base package's August 2026 release — recommend depending on horstoeko/zugferd directly rather than the wrapper.
Scope
Implement ZugferdHandler::generateXml() using horstoeko/zugferd. Reuses the same package as the CII and Factur-X sub-stories — do together or immediately after one another.
Acceptance criteria
Sequencing note
Shares horstoeko/zugferd with #777 and #778. See #767 for full package-research context.
Context
Sub-story of #767.
ZugferdHandler(ZUGFeRD 1.0/2.0 — Germany) currently throwsRuntimeException('... not yet implemented ...')instead of generating real XML.Recommended package
horstoeko/zugferd(MIT, actively maintained — v1.0.132 as of Aug 2026) — ZUGFeRD and Factur-X are closely aligned CII profiles, same library covers both.A
horstoeko/zugferd-laravelwrapper exists, but its last release (March 2025) is stale versus the base package's August 2026 release — recommend depending onhorstoeko/zugferddirectly rather than the wrapper.Scope
Implement
ZugferdHandler::generateXml()usinghorstoeko/zugferd. Reuses the same package as the CII and Factur-X sub-stories — do together or immediately after one another.Acceptance criteria
ZugferdHandler::generateXml()returns real, well-formed ZUGFeRD XMLPeppolXmlValidatorPeppolBisHandlerTestpatternFormatHandlersTest's unimplemented-formats test is updated to drop ZUGFeRD from the listSequencing note
Shares
horstoeko/zugferdwith #777 and #778. See #767 for full package-research context.