{"id":20895605,"url":"https://github.com/gflohr/e-invoice-eu","last_synced_at":"2026-04-12T10:11:34.809Z","repository":{"id":261042829,"uuid":"876271443","full_name":"gflohr/e-invoice-eu","owner":"gflohr","description":"🇪🇺 💶 Generate e-invoices (E-Rechnung in German) conforming to EN16931 (Factur-X/ZUGFeRD, UBL, CII, XRechnung aka X-Rechnung) from LibreOffice Calc/Excel data or JSON.","archived":false,"fork":false,"pushed_at":"2025-04-06T20:58:18.000Z","size":7966,"stargazers_count":55,"open_issues_count":13,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T21:31:43.978Z","etag":null,"topics":["cii","e-invoice","e-rechnung","en16931","factur-x","nestjs","nodejs","pdfa","ubl","xrechnung","zugferd"],"latest_commit_sha":null,"homepage":"https://www.guido-flohr.net/creating-electronic-invoices-with-free-and-open-source-software/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gflohr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2024-10-21T17:27:19.000Z","updated_at":"2025-04-06T20:57:35.000Z","dependencies_parsed_at":"2024-11-04T12:18:25.123Z","dependency_job_id":"11c48aa0-7f30-4101-ae62-03ada533864e","html_url":"https://github.com/gflohr/e-invoice-eu","commit_stats":null,"previous_names":["gflohr/e-invoice-eu"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflohr%2Fe-invoice-eu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflohr%2Fe-invoice-eu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflohr%2Fe-invoice-eu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflohr%2Fe-invoice-eu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gflohr","download_url":"https://codeload.github.com/gflohr/e-invoice-eu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248339287,"owners_count":21087213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cii","e-invoice","e-rechnung","en16931","factur-x","nestjs","nodejs","pdfa","ubl","xrechnung","zugferd"],"created_at":"2024-11-18T10:29:35.399Z","updated_at":"2026-04-04T18:07:51.745Z","avatar_url":"https://github.com/gflohr.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Electronic Invoicing"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg\n\t\tsrc=\"https://raw.githubusercontent.com/gflohr/e-invoice-eu/main/assets/e-invoice-eu-logo-2.webp\"\n\t\twidth=\"256\" height=\"256\" /\u003e\n\u003c/p\u003e\n\n[![licence](https://img.shields.io/badge/licence-WTFPL-blue)](http://www.wtfpl.net/)\n[![price](https://img.shields.io/badge/price-FREE-green)](https://github.com/gflohr/e-invoice-eu/blob/main/LICENSE)\n[![coverage](https://img.shields.io/coverallsCoverage/github/gflohr/e-invoice-eu?branch=main)](https://coveralls.io/github/gflohr/e-invoice-eu?branch=main)\n[![downloads](https://img.shields.io/npm/dw/%40e-invoice-eu%2Fcore)](https://www.npmjs.com/package/@e-invoice-eu/core)\n[![documentation](https://img.shields.io/badge/documentation-read-green)](https://gflohr.github.io/e-invoice-eu)\n[![help](https://img.shields.io/badge/help-ask--a--question-green)](https://notebooklm.google.com/notebook/f5783dde-ebe6-4610-bac1-f181fdf45f94)\n[![listed on](https://img.shields.io/badge/listed%20on-awesome--europe-ffcc00?logo=europeanunion\u0026logoColor=ffcc00\u0026labelColor=003399)](https://github.com/GeiserX/awesome-europe#readme)\n[![stand with](https://img.shields.io/badge/stand%20with-Ukraine🇺🇦-ffc107)](https://www.standwithukraineeurope.com/en/)\n\n# E-Invoice-EU\u003c!-- omit from toc --\u003e\n\nFree and open source tool chain for generating EN16931 conforming e-invoices\n(Factur-X/ZUGFeRD, UBL, CII, XRechnung) from popular spreadsheet formats or\nJSON with free and open source software.\n\n- [Why?](#why)\n- [How?](#how)\n- [What?](#what)\n- [Description](#description)\n- [Documentation](#documentation)\n- [Validation](#validation)\n- [BUGS](#bugs)\n\t- [PDF/A](#pdfa)\n- [Reporting Bugs](#reporting-bugs)\n- [Copyright](#copyright)\n- [Disclaimer](#disclaimer)\n\n## Why?\n\nElectronic invoicing in the EU is mandatory, but most available solutions are\nproprietary, commercial, closed, and costly. E-Invoice-EU takes a different approach:\n\n- ✅ **100% free \u0026 open source** – no licence fees, no vendor lock-in\n- ✅ **Standards-compliant** – EN16931, Factur-X, ZUGFeRD, UBL, CII, XRechnung\n- ✅ **Flexible integration** – use the CLI tool, the REST API, or the TypeScript/JavaScript library\n- ✅ **Modern ERP-friendly** – JSON-based input/output makes it trivial to integrate into any contemporary ERP infrastructure\n- ✅ **Proven in production** – already used by organizations ranging from freelancers to multinational enterprises\n\nWhether you need to automate a few invoices per month or integrate e-invoicing\ninto a large-scale workflow: E-Invoice-EU gives you a reliable foundation.\n\n## How?\n\nThere are several ways to use the software:\n\n- a [commandline tool `e-invoice-eu`](apps/cli/README.md)\n- a [web service with a RESTful API](apps/server/README.md)\n- a [JavaScript/TypeScript library](packages/core/README.md)\n\nThe JavaScript/TypeScript library works both on the commandline and in the\nbrowser. The only limitation of the browser version is that it cannot generate\nPDF versions of invoices from spreadsheet data because this requires invocation\nof [LibreOffice](https://www.libreoffice.org/) which is not possible in the\nbrowser. Instead, you have to provide a PDF version yourself, in case it is\nneeded.\n\nThe [E-Invoice-EU documentation](https://gflohr.github.io/e-invoice-eu/)\ncontains a [fully working demo of invoice generation right in your\nbrowser](https://gflohr.github.io/e-invoice-eu/en/docs/other/browser-example/).\n\n## What?\n\nYou can currently create e-invoices in these formats:\n\n- `CII`: customization id `urn:cen.eu:en16931:2017`\n- `Factur-X-Minimum` customization id `urn:factur-x.eu:1p0:minimum`\n- `Factur-X-BasicWL` customization id `urn:factur-x.eu:1p0:basicwl`\n- `Factur-X-Basic-WL` is an alias for `Factur-X-BasicWL`\n- `Factur-X-Basic` customization id `'urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic'`\n- `Factur-X-EN16931` customization id `urn:cen.eu:en16931:2017`\n- `Factur-X-Comfort` is an alias for `Factur-X-EN16931`\n- `Factur-X-Extended` customization id `urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended`\n- `Factur-X-XRechung` customization id `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`\n- `UBL`: customization customization id `urn:cen.eu:en16931:2017`\n- `XRECHNUNG-CII`: customization id `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`\n- `XRECHNUNG-UBL`: customization id `urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0`\n- `ZUGFeRD-Minimum` is an alias for `Factur-X-Minimum`\n- `ZUGFeRD-BasicWL` is an alias for `Factur-X-BasicWL`\n- `ZUGFeRD-Basic-WL` is an alias for `Factur-X-BasicWL`\n- `ZUGFeRD-Basic` is an alias for `Factur-X-Basic`\n- `ZUGFeRD-EN16931` is an alias for `Factur-X-EN16931`\n- `ZUGFeRD-Comfort` is an alias for `Factur-X-EN16931`\n- `ZUGFeRD-Extended` is an alias for `Factur-X-Extended`\n- `ZUGFeRD-XRechnung` is an alias for `Factur-X-XRechnung`\n\nCase does not matter, when you specify a format.\n\n## Description\n\nThis repository is an attempt to aid businesses, especially in France and\nGermany but also in other parts of the European Union to create e-invoices\nconforming with EN16931 with only free and open-source software.\n\n## Documentation\n\nSee the [E-Invoice-EU online documentation](https://gflohr.github.io/e-invoice-eu/).\n\nThe blog post\n[Creating E-Invoices with Free and Open Source\nSoftware](https://www.guido-flohr.net/creating-electronic-invoices-with-free-and-open-source-software/)\nor the German version [Elektronische Rechnungen mit freier und quelloffener Software erzeugen](https://www.guido-flohr.net/elektronische-rechnungen-mit-freier-und-quelloffener-software-erzeugen/)\nalso provides in-depth information using a gentler approach!\n\nYou can also use the documentation interactively by asking questions in\nnatural language. See https://gflohr.github.io/e-invoice-eu/en/docs/basics/ai-supported-documentation/\nor go directly to https://notebooklm.google.com/notebook/f5783dde-ebe6-4610-bac1-f181fdf45f94.\n\n## Validation\n\nIt is strongly recommended that you validate all incoming and outgoing e-invoices.\nSee [Validation](./contrib/validators) for details.\n\nA new and very simple option is offered by the sister project to this one,\n[e-invoice-eu-validator](https://github.com/gflohr/e-invoice-eu-validator).\n\n## BUGS\n\n### PDF/A\n\nThe Factur-X resp. ZUGFeRD standard requires PDF/A compliance for the PDF that\nthe invoice is wrapped in. Please search the internet if you do not know what\nPDF/A means.\n\nThis library creates PDFs solely with [`pdf-lib`](https://github.com/cantoo-scribe/pdf-lib)\nand does some pretty complicated transformations on the PDF to achieve PDF/A\ncompliance. This is not battle tested and may fail.\n\nIf you encounter a PDF that does not meet the PDF/A requirements, please\nopen an issue and attach an anonymized version of the PDF. What you can do\nin the meantime:\n\n- If you have [GhostScript](https://www.ghostscript.com/) installed, convert the PDF to PDF/A with this command: `gs -dVERBOSE -dPDFA=3 -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=OUTPUT_FILE.pdf PDFA_def.ps INPUT_FILE.pdf`\n- Try to create the PDF again with [LibreOffice](https://www.libreoffice.org/).\n- If the normal settings in LibreOffice do not work, enable PDF/A support (in the General section of the PDF options).\n- If you want to automate the process, you can start LibreOffice in headless mode on the commandline: `libreoffice --headless \"-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}\" --convert-to 'pdf:writer_pdf_Export:{\"SelectPdfVersion\":{\"type\":\"long\",\"value\":\"3\"}}' SOURCE_FILE.ods`\n\nOn Un\\*x systems, `libreoffice` should be in your `$PATH`. On MacOS, you will\nfind it under `/Applications/LibreOffice.app/Contents/MacOS/soffice`. On\nMS Windows, it is probably somewhere like `C:\\\\Program Files\\\\LibreOffice\\\\libreoffice.exe` (corrections are welcome).\n\n## Reporting Bugs\n\nPlease report bugs at https://github.com/gflohr/e-invoice-eu/issues.\n\n## Copyright\n\nCopyright (C) 2024-2026 Guido Flohr \u003cguido.flohr@cantanea.com\u003e, all\nrights reserved.\n\nThis is free software available under the terms of the\n[WTFPL](http://www.wtfpl.net/).\n\n## Disclaimer\n\nThis free software has been written with the greatest possible care, but like\nall software it may contain errors. Use at your own risk! There is no\nwarranty and no liability.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgflohr%2Fe-invoice-eu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgflohr%2Fe-invoice-eu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgflohr%2Fe-invoice-eu/lists"}