horstoeko / invoicesuite
Extensible PHP library for creating, reading and validating electronic invoices such as XRechnung, ZUGFeRD and Factur-X, with support for custom formats.
Fund package maintenance!
Requires
- php: >=8.2
- ext-dom: *
- ext-fileinfo: *
- ext-json: *
- ext-libxml: *
- ext-simplexml: *
- ext-zip: *
- goetas-webservices/xsd2php-runtime: ^0.2.17
- horstoeko/mimedb: ^1.0
- horstoeko/stringmanagement: ^1
- jms/serializer: ^3
- mpdf/mpdf: ^8
- prinsfrank/pdfparser: ^2|^3
- setasign/fpdf: ^1.8.6
- setasign/fpdi: ^2.6.7
- symfony/console: ^5.4.46 || ^6.4.14 || ^7.1.7 || ^8
- symfony/finder: ^5.4.46 || ^6.4.14 || ^7.1.7 || ^8
- symfony/process: ^5.4.46 || ^6.4.14 || ^7.1.7 || ^8
- z4kn4fein/php-semver: ^3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- goetas-webservices/xsd2php: ^0
- nette/php-generator: ^4
- nikic/php-parser: ^5
- php-parallel-lint/php-parallel-lint: ^1.4
- phpdocumentor/reflection-docblock: ^5 || ^6
- phpstan/phpstan: ^1 || ^2
- phpstan/phpstan-deprecation-rules: ^2
- phpstan/phpstan-strict-rules: ^2
- phpunit/phpunit: ^9
- rector/rector: ^2
- smalot/pdfparser: ^2.12.3
- squizlabs/php_codesniffer: ^3 || ^4
Suggests
- smalot/pdfparser: A PDF parser under LGPL license (used in InvoiceSuitePdfExtractor)
Provides
None
Conflicts
Replaces
None
This package is auto-updated.
Last update: 2026-09-21 15:11:23 UTC
README
horstoeko/invoicesuite
Table of Contents
AI
InvoiceSuite deals with electronic invoicing and implements specifications, business rules, validation rules, and data structures that may have legal, regulatory, accounting, and tax-related implications.
A change that looks technically correct can still be wrong from a business, specification, legal, or tax perspective. Plausible-looking code is therefore not enough.
Contributors are expected to:
- understand the code they submit and its business context;
- verify requirements against the relevant standards and documentation;
- consider compatibility, edge cases, and existing behavior;
- write meaningful tests based on actual requirements;
- review their implementation critically;
- be able to explain why their implementation is correct.
AI-assisted development is welcome as a tool, but its output must be reviewed with particular care. If AI-generated or AI-assisted code is included in a pull request, the contributor must fully understand it, verify its assumptions, check it against the relevant specifications and requirements, and ensure that the tests actually cover the intended behavior.
Responsibility always remains with the person submitting the change. This is especially important for electronic invoices, validation, monetary values, taxes, document semantics, and regulatory requirements, where incorrect assumptions can have consequences beyond an ordinary software defect.
This policy is not about accepting or rejecting AI. It is about accountability, expertise, and informed engineering decisions.
Use the tools you find helpful. Understand the result. Review it critically. Take responsibility for the code you submit.
License
The code in this project is provided under the MIT license.
Overview
InvoiceSuite is a multi-format library for electronic invoices with the goal of supporting as many formats and real-world variants as possible — from international standards to country-specific profiles. This includes German formats such as ZUGFeRD (and Factur-X, which is closely aligned with it) as well as XRechnung, with XRechnung explicitly supported in UBL syntax. The library also aims to cover interoperability ecosystems such as Peppol.
InvoiceSuite is designed to be extensible: if you follow the defined conventions and interfaces, you can add your own formats, profiles, or converters independently, without having to bend or modify the core.
Dependencies
This package makes use of...
... and Optionally of...
Installation
There is one recommended way to install horstoeko/invoicesuite
composer require "horstoeko/invoicesuite"
Documentation
See our wiki...
- Installation
- Architecture
- Configuration
- Creating an electronic invoice document
- Creating an electronic invoice PDF document
- Reading an electronic invoice document
- Reading an electronic invoice PDF document
- Legacy Support for horstoeko/zugferd
- Validation
- Visualization
- BT-Rules for ZUGFeRD/Factur-X/XRechnung
- Available providers
- Class and method overview
