OpenFatture
OpenFatture is an agentic, CLI-first workspace for Italian electronic invoicing. Describe the work you need; the assistant coordinates the domain tools and returns an auditable result.
Why
Italian freelancers must issue invoices as FatturaPA XML and deliver them through SDI. The usual answer is a SaaS subscription that owns your client list, your invoices, and your archive. OpenFatture keeps all of it local: your data stays in a database on your machine, the XML is generated and validated offline, and every action is recorded in an event audit trail you can inspect. AI assistance is optional — the domain tools work without it.
Built for one-person businesses and small studios comfortable in a terminal.
Start
# Full stack (AI + RAG + ML + …). Core-only: uv sync
uv sync --all-extras
uv run openfatture init
uv run openfatture status
uv run openfatture assistant "Help me prepare an invoice for a software project"
Optional feature extras: ai, rag, ml, all.
See docs/CONFIGURATION.md.
For a terminal conversation:
uv run openfatture interactive start
Public CLI
The supported surface is intentionally small:
initcreates local state and guides setup.assistanthandles business requests in natural language.interactive startopens a conversational session.configreads or updates configuration.statusreports local readiness without mutation.
What it covers
- FatturaPA XML generation and validation
- PEC/SDI delivery and notification processing
- Client, invoice, quote, payment, and batch workflows
- Event audit trail, reports, and hooks
- Optional AI assistance (assistant + domain tools), RAG, and forecasting extras
Status
Version 2.2.0, Python 3.12+ and uv. Professional PDF templates, first-class
CLI commands, FatturaPA XML validation, and natura/DatiCassaPrevidenziale support
shipped in 2.2 — see docs/STATUS.md,
docs/releases/v2.2.0.md, and
docs/ARCHITECTURE.md.
Explicit non-goal: there is no browser frontend or web application surface, and adding one would be a separate product decision.
Documentation
- Quick start
- Configuration
- Architecture
- AI architecture
- AI-era redesign
- Current status
- Contributing
- Changelog
Development
uv sync --all-extras
uv run python -m pytest -q
uv run ruff check .
uv run ruff format --check .
uv run mypy openfatture/
OpenFatture is released under the MIT License.
Release files for openfatture 2.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openfatture-2.3.0.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openfatture-2.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / openfatture-2.3.0.tar.gz
| Download URL | openfatture-2.3.0.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea38a8b53c06c686fd9533a6f47db4fa22d9cf0216df5c2bf31644a706c460f8
|
|
BLAKE2b-256 checksum How to use checksums |
318362532d6ad4471a67d568ea0cab6bb06e0f89120cd0c223d12a8c46bf6b58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / openfatture-2.3.0-py3-none-any.whl
| Download URL | openfatture-2.3.0-py3-none-any.whl |
|---|---|
| Size | 695.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6c6226c6e05cfbd4316a3a71522ce16fec40cb12852c5b3426da9f3989e02565
|
|
BLAKE2b-256 checksum How to use checksums |
c751f4e0ae0f04fa2383f24df86c4296b3afb0a6a29217a4b7fdec195e966480
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|