Skip to main content

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.

AI tools default to a read-only allowlist (AI_ENABLED_TOOLS). SDI/PEC send stays off unless you add send_invoice_to_sdi there, and AI_TOOLS_REQUIRE_CONFIRMATION (default true) requires an explicit human yes before any transmit. The model cannot confirm itself. Interactive TTY sessions may prompt; source="human" with confirmed=True is an API for human-facing callers. No built-in UI uses that path yet (there is no TUI).

For a terminal conversation:

uv run openfatture interactive start

Public CLI

The supported surface is intentionally small:

  • init creates local state and guides setup.
  • assistant handles business requests in natural language.
  • interactive start opens a conversational session.
  • config reads or updates configuration.
  • status reports local readiness without mutation.

See docs/CLI_REFERENCE.md.

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.4.0, Python 3.12+ and uv. Credit notes (TD04), real XML generation, professional PDF templates, and natura/DatiCassaPrevidenziale support — see docs/STATUS.md, docs/releases/v2.4.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

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.

Metadata

Release files for openfatture 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openfatture 2.4.0
File Size Uploaded Provenance Actions
openfatture-2.4.0.tar.gz 824.5 kB Without provenance Details for openfatture-2.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for openfatture 2.4.0
File Interpreter ABI Platform Actions
openfatture-2.4.0-py3-none-any.whl Python 3 none any Details for openfatture-2.4.0-py3-none-any.whl

Total release size: 1.6 MB

Release files / openfatture-2.4.0.tar.gz

Download URL openfatture-2.4.0.tar.gz
Size 824.5 kB
Tags Source
SHA-256 checksum
How to use checksums
54e2a5752c578c72cf8025223846fca3da7b6fceddf8bc6280d3c3041716eede
BLAKE2b-256 checksum
How to use checksums
6d4ce89399e7e3d84eae48b625306af14d4e438ffb10e3f325609b3162d7e0cd
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.4.0-py3-none-any.whl

Download URL openfatture-2.4.0-py3-none-any.whl
Size 728.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a972579a72acee94ec21a05461f1c225d7e691cb465bf6fb7b720f0ad178bcc8
BLAKE2b-256 checksum
How to use checksums
ef880873ccec1471cdd18ae7af56476b8efa5d1ff56de1c240824d78ac915500
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for openfatture 2.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page