factur-x
Factur-X and Order-X: electronic invoicing and ordering standards
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has low install friction, no known vulnerabilities, and a permissive BSD license. Install it if you need to generate, validate, or extract European e-invoicing standards (Factur-X, Order-X, UBL) or integrate EN 16931 compliance into invoice workflows. It is production-stable and suitable for both command-line and programmatic use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; lxml has compiled dependencies that may require build tools on some systems.
- Low install friction with five common runtime dependencies (lxml, pypdf, requests, python-stdnum, importlib-resources).
- Actively maintained with a release dated 2026-08-08, 303 GitHub stars, and no known vulnerabilities.
License · maintenance · safety
permissive license (permissive) — Published under the BSD License (permissive), the same license as pypdf on which it depends. No restrictions on commercial or proprietary use.
last release 2026-08-08 (6 days) · last repo commit 2026-08-08 · 303 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 318,194 downloads/mo, #7,655 on PyPI
Alternatives
Verify before relying
pip install factur-x
from facturx import generate_from_file
generate_from_file('invoice.pdf', 'factur-x.xml', 'output.pdf')- Whether the package handles all Factur-X profile variants (Basic, EN16931, Extended) or only a subset
- Performance characteristics when processing large PDF files or batch operations
- Whether the webservice component is production-ready or requires external deployment infrastructure
What it is and what it does
Factur-X is a Python library for working with electronic invoicing standards used in Europe, particularly Factur-X (France/Germany), Order-X (purchase orders), and UBL (Universal Business Language). It embeds structured XML invoice data into PDF files to create compliant e-invoices that meet the EN 16931 European standard. The library can generate e-invoices from a regular PDF and XML file, extract embedded XML from existing e-invoice PDFs, validate XML against official schemas and schematrons, and generate CII or UBL XML from Python dictionaries using standard EN-16931 tag keys.
The package includes command-line tools (facturx-pdfgen, facturx-pdfextractxml, facturx-xmlcheck) for common operations and an optional Flask-based webservice for remote PDF generation. It depends on lxml for XML processing, pypdf for PDF manipulation, requests for HTTP operations, python-stdnum for number validation, and importlib-resources for resource management. The library is actively maintained, supports current Python versions, and has no known security vulnerabilities.
Use it for
- Generate compliant Factur-X invoices from existing PDF invoices and XML metadata for German/French e-invoicing requirements
- Extract and validate embedded XML from received e-invoice PDFs to verify compliance with EN 16931 standards
- Create Order-X purchase order documents with embedded XML for electronic procurement workflows
- Validate Factur-X, Order-X, or UBL XML files against official schemas and schematron rules before submission
- Build a webservice or batch system to convert regular PDF invoices to e-invoices with embedded structured data
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has low install friction, no known vulnerabilities, and a permissive BSD license. Install it if you need to generate, validate, or extract European e-invoicing standards (Factur-X, Order-X, UBL) or integrate EN 16931 compliance into invoice workflows. It is production-stable and suitable for both command-line and programmatic use.
Install
factur-x on PyPI
Before you install
Low install friction with five common runtime dependencies (lxml, pypdf, requests, python-stdnum, importlib-resources). Actively maintained with a release dated 2026-08-08, 303 GitHub stars, and no known vulnerabilities.
Requires Python 3.8 or later; lxml has compiled dependencies that may require build tools on some systems.
License in practice
Published under the BSD License (permissive), the same license as pypdf on which it depends. No restrictions on commercial or proprietary use.
Quickstart
pip install factur-x
from facturx import generate_from_file
generate_from_file('invoice.pdf', 'factur-x.xml', 'output.pdf')
Verify before relying
- Whether the package handles all Factur-X profile variants (Basic, EN16931, Extended) or only a subset
- Performance characteristics when processing large PDF files or batch operations
- Whether the webservice component is production-ready or requires external deployment infrastructure
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesimportlib-resourceslxmlpypdfpython-stdnumrequests |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 318,194 / month, #7,655 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyTopic :: Office/Business :: Financial :: Accounting |
Evidence: factur_x-6.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “factur-x invoice generation”
- factur-xGenerates, validates, and extracts Factur-X, Order-X, and UBL…
- drafthorseGenerates and parses ZUGFeRD XML invoice documents, and attaches them…
- BrazilFiscalReportConverts Brazilian electronic invoice XML files (NF-e, CT-e, MDF-e,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Financial packages
statsmodels provides statistical models, inference methods, and descriptive statistics for Python, complementing scipy with regression, time series, discrete choice, survival analysis, and multivariate methods.
Install it if you need publication-quality statistical models, hypothesis tests, or time series analysis beyond what scipy or pandas provide.
Generates country- and subdivision-specific government holiday calendars on demand, supporting 250 country codes with optional language localization and holiday categories.
Fetches financial and market data from Yahoo Finance's public APIs, including ticker information, historical prices, and live streaming data.
However, do not use it for commercial applications or high-volume data collection without confirming compliance with Yahoo's terms of service.
Bokeh is an interactive visualization library that creates browser-based plots, dashboards, and data applications from Python code, with support for large and streaming datasets.
Install it if you need browser-based interactivity.
Parses, validates, and reformats standard numbers and codes across many countries and industries—tax IDs, bank accounts, identity numbers, VAT codes, and financial identifiers.
Install it if you validate or reformat standardized numbers.
Provides elementary financial functions (IRR, NPV, PMT, and others) that were deprecated and removed from NumPy, offering a dedicated replacement for financial calculations.
However, given the aging status (no releases since 2019) and unclear compatibility with modern Python and recent numpy versions, verify that it works with your target…
See also drafthorse · BrazilFiscalReport · saxonche · kreuzberg · doclang · endesive · docx · peakrdl-ipxact · pdfminer · textract