{"id":36409220,"url":"https://github.com/atgp/factur-x","last_synced_at":"2026-04-17T10:15:15.990Z","repository":{"id":48584473,"uuid":"162402123","full_name":"atgp/factur-x","owner":"atgp","description":"PHP library to manage your Factur-X / ZUGFeRD 2.0 PDF invoices files","archived":false,"fork":false,"pushed_at":"2026-03-12T08:38:58.000Z","size":285,"stargazers_count":135,"open_issues_count":0,"forks_count":26,"subscribers_count":14,"default_branch":"master","last_synced_at":"2026-03-17T02:50:54.224Z","etag":null,"topics":["e-invoice","factur-x","invoice","pdf","xml","zugferd"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atgp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-19T07:52:41.000Z","updated_at":"2026-03-12T08:38:34.000Z","dependencies_parsed_at":"2023-02-10T02:15:18.527Z","dependency_job_id":"baf9331a-388b-496d-b070-9db5eee39471","html_url":"https://github.com/atgp/factur-x","commit_stats":{"total_commits":19,"total_committers":9,"mean_commits":2.111111111111111,"dds":0.631578947368421,"last_synced_commit":"d262d2b192d94422be7062fa9c9a457b1cff47ac"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/atgp/factur-x","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atgp%2Ffactur-x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atgp%2Ffactur-x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atgp%2Ffactur-x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atgp%2Ffactur-x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atgp","download_url":"https://codeload.github.com/atgp/factur-x/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atgp%2Ffactur-x/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31924574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T09:10:15.403Z","status":"ssl_error","status_checked_at":"2026-04-17T09:10:14.455Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-invoice","factur-x","invoice","pdf","xml","zugferd"],"created_at":"2026-01-11T16:50:22.981Z","updated_at":"2026-04-17T10:15:15.985Z","avatar_url":"https://github.com/atgp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"PHP Factur-X library\n------------------\n\nFactur-X is a Franco-German e-invoicing standard which complies with the European e-invoicing standard [EN 16931](https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Obtaining+a+copy+of+the+European+standard+on+eInvoicing). \nThe Factur-X specifications are available on the [FNFE-MPE](http://fnfe-mpe.org/factur-x/) website in English and French. \nThe Factur-X standard is also called [ZUGFeRD](https://www.ferd-net.de/download-zugferd) in Germany.\n\nThis library enable you to manage your Factur-X PDF invoices files :\n* **Generate Factur-X PDF invoice** from regular PDF invoice and Factur-X XML file\n    * Using [setasign\\Fpdi](https://github.com/Setasign/FPDI) \n* **Extract Factur-X XML** from Factur-X PDF invoice\n    * Using [Smalot\\PdfParser](https://github.com/smalot/pdfparser)\n* **Validate Factur-X XML** against the official Factur-X XML Schema Definition\n    * Using PHP native libxml functions\n\nTable of contents:\n------------------\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n- [Changelog](#changelog)\n- [Contributing](CONTRIBUTING.md)\n\nRequirements\n------------\n- PHP 7.4+\n- Composer\n- [FPDI](https://github.com/Setasign/FPDI) (MIT License)\n- [Smalot](https://github.com/smalot/pdfparser) (LGPL License)\n\n\nInstallation\n------------\n\n#### Install with Composer\n\n```bash\ncomposer require atgp/factur-x\n```\n\nUsage\n-----\nYou can see the code from test page from \"tests\" directory, also here some simple examples of implementation :\n\n```php\n\u003c?php\n// Include or autoload (with Composer) all library classes\n\n// Generates Factur-X PDF invoice from PDF and Factur-X XML\n$writer = new \\Atgp\\FacturX\\Writer();\n$facturxPdf = $writer-\u003egenerate($pdf, $facturxXml);\n\n// Extracts Factur-X XML\n$reader = new \\Atgp\\FacturX\\Reader();\n$facturxXml = $reader-\u003eextractXML($facturxPdf);\n\n// Validates Factur-X XML against official Factur-X XML Schema Definition \n$validator = new \\Atgp\\FacturX\\XsdValidator();\nif (false === ($isValid = $validator-\u003evalidate($facturxXml)) {\n    var_dump($validator-\u003egetErrors());\n}\n// ... or throw exceptions if error(s) are occurred\n$validator-\u003evalidateWithException($facturxXml);\n```\n\nMore options are available, look at source code for more information.\n\nLicense\n-------\nThis project is licensed under MIT License\n\nChangelog\n---------\n\n- v3.3.0 : 2026-04-17\n    - Fix automatic tests for PHP 7.4\n    - Add .gitattributes to exclude files from composer\n- v3.2.0 : 2026-03-12\n    - Cover library with automatic tests\n- v3.1.0 : 2026-02-25\n    - (reader/validator/writer) Handle invalid XML\n    - (utils) Remove useless ProfileHandler::getFromXml() method\n- v3.0.0 : 2026-01-28\n    - (reader/validator/writer) Throw custom exception to facilitate exception handling\n- v2.5.0 : 2026-01-09\n    - (validator) Upgrade Factur-x XSD to v1.08 — Applicable from 15 January 2026\n    - (validator) Handle all codes that can be used for credit notes\n- v2.4.1 : 2025-11-18\n  - (reader) Remove backtrace from thrown exception message\n- v2.4.0 : 2025-09-24\n  - (validator) Upgrade Factur-x XSD to v1.07.3\n- v2.3.1 : 2025-03-14\n  - (writer) Fix binary content indicator in header\n- v2.3.0 : 2024-12-11\n  - (ci) Add Github CI : php-stan for PHP versions between 7.4 and 8.4\n- v2.2.1 : 2024-10-28\n  - (reader) Clarify reader extraction method\n- v2.2.0 : 2024-10-28\n  - (validator) Upgrade Factur-x XSD to v1.0.7 \n- v2.1.0 : 2024-02-26\n  - (reader) Allow to configure Smalot pdf parser\n- v2.0.0 [BC] : 2023-11-06\n  - Requires php 7.4+\n  - Refactor classes to clarify uses\n  - Simplify requirements for \"smalot/pdfparser\"\n  - Import external links on generated factur-x pdf\n- v1.1.0 : 2019-01-09\n  - Upgrade Factur-x xsd to v1.0.06\n  - Fix PDF-A compliance regarding endobj and ICC profile\n- v1.0.0 : 2019-01-09\n  - Requires php 5.6+\n  - First version of the library to read, check and write factur-x documents\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatgp%2Ffactur-x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatgp%2Ffactur-x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatgp%2Ffactur-x/lists"}