atgp / factur-x
PHP library to manage your Factur-X / ZUGFeRD 2.0 PDF invoices files
Installs: 493 854
Dependents: 2
Suggesters: 0
Security: 0
Stars: 96
Watchers: 11
Forks: 22
Open Issues: 1
Requires
- php: >=7.4
- ext-dom: *
- ext-fileinfo: *
- ext-libxml: *
- ext-simplexml: *
- ext-zlib: *
- setasign/fpdf: ^1.8
- setasign/fpdi: ^2.0
- smalot/pdfparser: ^0.19.0|~1.0|~2.0
Requires (Dev)
README
Factur-X is a Franco-German e-invoicing standard which complies with the European e-invoicing standard EN 16931. The Factur-X specifications are available on the FNFE-MPE website in English and French. The Factur-X standard is also called ZUGFeRD 2.2 in Germany.
This library enable you to manage your Factur-X PDF invoices files :
- Generate Factur-X PDF invoice from regular PDF invoice and Factur-X XML file
- Using setasign\Fpdi
- Extract Factur-X XML from Factur-X PDF invoice
- Using Smalot\PdfParser
- Validate Factur-X XML against the official Factur-X XML Schema Definition
- Using PHP native libxml functions
Table of contents:
Requirements
Installation
Install with Composer
composer require atgp/factur-x
Usage
You can see the code from test page from "tests" directory, also here some simple examples of implementation :
<?php // Include or autoload (with Composer) all library classes // Generates Factur-X PDF invoice from PDF and Factur-X XML $writer = new \Atgp\FacturX\Writer(); $facturxPdf = $writer->generate($pdf, $facturxXml); // Extracts Factur-X XML $reader = new \Atgp\FacturX\Reader(); $facturxXml = $reader->extractXML($facturxPdf); // Validates Factur-X XML against official Factur-X XML Schema Definition $validator = new \Atgp\FacturX\XsdValidator(); if (false === ($isValid = $validator->validate($facturxXml)) { var_dump($validator->getErrors()); } // ... or throw exceptions if error(s) are occurred $validator->validateWithException($facturxXml);
More options are available, look at source code for more information.
License
This project is licensed under MIT License
Changelog
- v2.0.0 [BC] : 2023-11-06
- Requires php 7.4+
- Refactor classes to clarify uses
- Simplify requirements for "smalot/pdfparser"
- Import external links on generated factur-x pdf
- v1.1.0 : 2019-01-09
- Upgrade Factur-x xsd to v1.0.06
- Fix PDF-A compliance regarding endobj and ICC profile
- v1.0.0 : 2019-01-09
- Requires php 5.6+
- First version of the library to read, check and write factur-x documents