Context
Sub-story of #767. CiiHandler (UN/CEFACT Cross Industry Invoice) 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). Handles native CII syntax directly, which is the base format ZUGFeRD/Factur-X profile rules layer on top of.
Note: the package's own maintainers point new projects at horstoeko/invoicesuite as an eventual successor, but it's not yet mature enough (v0.0.32) to depend on here.
Scope
Implement CiiHandler::generateXml() using horstoeko/zugferd's CII document builder.
Acceptance criteria
Sequencing note
Shares horstoeko/zugferd with #778 and #779 (Factur-X and ZUGFeRD sub-stories) — recommend doing these three together or back-to-back to amortize the integration work. See #767 for full package-research context.
Context
Sub-story of #767.
CiiHandler(UN/CEFACT Cross Industry Invoice) currently throwsRuntimeException('... not yet implemented ...')instead of generating real XML.Recommended package
horstoeko/zugferd(MIT, actively maintained — v1.0.132 as of Aug 2026). Handles native CII syntax directly, which is the base format ZUGFeRD/Factur-X profile rules layer on top of.Note: the package's own maintainers point new projects at
horstoeko/invoicesuiteas an eventual successor, but it's not yet mature enough (v0.0.32) to depend on here.Scope
Implement
CiiHandler::generateXml()usinghorstoeko/zugferd's CII document builder.Acceptance criteria
CiiHandler::generateXml()returns real, well-formed CII XMLPeppolXmlValidatorPeppolBisHandlerTestpatternFormatHandlersTest's unimplemented-formats test is updated to drop CII from the listSequencing note
Shares
horstoeko/zugferdwith #778 and #779 (Factur-X and ZUGFeRD sub-stories) — recommend doing these three together or back-to-back to amortize the integration work. See #767 for full package-research context.