atgp/factur-x

PHP library to manage your Factur-X / ZUGFeRD 2.0 PDF invoices files

v2.1.0 2024-02-26 12:42 UTC

This package is auto-updated.

Last update: 2024-03-26 12:58:28 UTC


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
  • Extract Factur-X XML from Factur-X PDF invoice
  • Validate Factur-X XML against the official Factur-X XML Schema Definition

Table of contents:

Requirements

  • PHP 7.4+
  • Composer
  • FPDI (MIT License)
  • Smalot (LGPL License)

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