Skip to main content
Italy SDI FatturaPA E-Invoicing — Build-to-order Odoo module that generates, validates and exchanges FatturaPA XML through It — 1/1Illustrative preview

Build-to-order Odoo module that generates, validates and exchanges FatturaPA XML through Italy's SdI

— B2B, B2G and B2C.

What is Italy SDI FatturaPA E-Invoicing?

Build-to-order Odoo module that generates, validates and exchanges FatturaPA XML through Italy's SdI — B2B, B2G and B2C. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

FatturaPA 1.2.x XML generation from account.move, mapping CedentePrestatore, CessionarioCommittente, DatiGenerali, DettaglioLinee, DatiRiepilogo and DatiPagamento blocks
XSD + business-rules validator that blocks non-conformant invoices before submission to prevent SdI 'Scarto' (NS) rejections
SdI transmission through your chosen channel — certified intermediary/provider, PEC, or SdI web service — with FormatoTrasmissione FPR12 (private) / FPA12 (public administration)
Full B2B, B2G and B2C support with correct handling of Codice Destinatario, code '0000000' and PEC-based routing per customer
Inbound notifiche parsing (RC, MC, NS, NE, DT, AT) written back to the invoice via automated actions, updating a live SdI status lifecycle
Digital signature support (CAdES .p7m) for B2G and any flow requiring a signed document
Esterometro / cross-border reporting via SdI using TD17, TD18 and TD19 for foreign purchases, services and self-invoicing
TipoDocumento coverage: TD01 invoices, TD04 credit notes, TD24 deferred, TD16 internal reverse charge and related document types
Split payment (scissione dei pagamenti / EsigibilitaIVA='S'), ritenuta d'acconto and bollo virtuale handling in the XML riepilogo
Computed FatturaPA fields using @api.depends so the XML payload stays in sync with taxes, lines and partner data automatically
ir.model.access.csv + record rules restricting SdI data to correct accounting roles and companies in a multi-company setup
QWeb human-readable FatturaPA PDF/HTML rendering plus a searchable SdI log with progressivo di invio tracking
XML-RPC / JSON-RPC endpoints so submission, status checks and retrieval can be driven from external systems or scheduled jobs
Configurable numbering, Regime Fiscale (RF01–RF19), Natura codes (N1–N7) and tax mapping aligned to your Piano dei Conti

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Italian invoicing law makes the Sistema di Interscambio (SdI) mandatory: every fattura elettronica must be produced as a schema-valid FatturaPA XML, routed to the Agenzia delle Entrate exchange platform, and reconciled against the notifiche (RC, MC, NS, NE, DT) that SdI sends back. Out of the box, Odoo's core Invoicing does not speak FatturaPA end to end, and generic apps.odoo.com connectors rarely cover the full B2G, B2C and cross-border picture your commercialista signs off on.

This is a BUILD-TO-ORDER Odoo module. It is not an existing instant download — ECOSIRE designs, builds, installs and supports it against your exact Piano dei Conti, VAT setup and SdI channel over a typical one working week lead time, on Odoo 17, 18 or 19 (Community or Enterprise).

The module extends account.move with a compliant FatturaPA layer. A dedicated builder maps every mandatory block — CedentePrestatore, CessarioCommittente, DatiGeneraliDocumento, DettaglioLinee, DatiRiepilogo, DatiPagamento — into the correct FatturaPA 1.2.x XML, driven by Odoo fields, taxes and partner data. Computed fields with @api.depends keep the XML in sync with the invoice, while an XSD/business-rules validator blocks non-conformant documents before they ever reach SdI so you avoid the dreaded "Scarto" (NS) rejection.

Transmission is handled through your chosen channel — a certified intermediary/provider, PEC, or the SdI web service — with the correct TipoDocumento (TD01, TD24, TD16-19 reverse charge, etc.), FormatoTrasmissione (FPR12 for private, FPA12 for public administration) and Codice Destinatario or PEC routing resolved per customer. Inbound and status notifiche are parsed and written back onto the invoice via automated actions, so accounting always sees the live SdI lifecycle: sent, delivered, accepted, rejected or "mancata consegna". Digital signature (CAdES .p7m) is supported for B2G flows that require it, and self-billing / integration documents plus Esterometro (cross-border, now folded into SdI via TD17/TD18/TD19) are covered so foreign purchases and sales are reported correctly.

Security follows Odoo conventions — ir.model.access.csv grants plus record rules keep FatturaPA data scoped to the right accounting roles and companies in a multi-company database. QWeb-rendered human-readable copies, a searchable SdI log, and clean XML-RPC/JSON-RPC access mean the same compliant flow works from the UI, from scheduled jobs, and from any upstream system you integrate. You get a documented, upgrade-friendly module — not a fragile one-off — plus training and a support window after go-live.

What you get

  • Custom Odoo module (source code) with __manifest__.py declaring dependencies, targeted to your Odoo 17, 18 or 19 edition (Community or Enterprise)
  • Installation and configuration on your instance: SdI channel/intermediary wiring, PEC/Codice Destinatario setup, Regime Fiscale, tax and Natura-code mapping
  • FatturaPA validation profile tuned to current AdE schema and business rules, tested against sample B2B, B2G and B2C invoices
  • Digital signature (CAdES .p7m) and Esterometro/cross-border (TD17-19) configuration where in scope
  • Technical documentation: data model, field mapping, security matrix (ir.model.access.csv + record rules) and admin runbook
  • User training session for accounting staff plus a walkthrough of the SdI status lifecycle and error handling
  • Post-go-live support window with bug fixes and compliance clarifications, and a migration path for future Odoo versions
  • Source-controlled handover so your team (or another partner) can maintain and extend the module

Who this is for

Italian SME finance manager

Runs invoicing on Odoo and must send every fattura through SdI, reconcile notifiche, and hand the commercialista a compliant, audit-ready flow without manual XML fiddling.

EU / international Odoo partner

Delivers Odoo to clients trading with Italy and needs a robust, upgrade-friendly FatturaPA + SdI module that covers B2B, B2G, B2C and Esterometro rather than a brittle off-the-shelf connector.

Accountant / commercialista

Responsible for regulatory correctness — Regime Fiscale, Natura codes, split payment, ritenuta — and wants validation that stops rejections before they reach the Agenzia delle Entrate.

Cross-border seller / importer

Buys and sells abroad from an Italian entity and must report foreign transactions to SdI via TD17/TD18/TD19 accurately alongside domestic e-invoicing.

How Italy SDI FatturaPA E-Invoicing Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
FatturaPA XML generation with full block mappingIncludedPartial supportPartial supportNot included
SdI transmission + notifiche write-back (RC/MC/NS/NE/DT)IncludedPartial supportPartial supportNot included
Pre-submission XSD + business-rule validationIncludedPartial supportPartial supportNot included
B2B, B2G and B2C with Codice Destinatario / PEC routingIncludedPartial supportPartial supportNot included
Digital signature (CAdES .p7m) for B2GIncludedPartial supportNot includedNot included
Esterometro / cross-border (TD17/TD18/TD19)IncludedPartial supportPartial supportNot included
Tailored to your Piano dei Conti, Regime Fiscale and tax setupIncludedIncludedNot includedNot included
Support window, updates and Odoo version migration pathIncludedNot includedPartial supportNot included
Source handover + documentation for future maintenanceIncludedPartial supportNot includedPartial support

Frequently Asked Questions about Italy SDI FatturaPA E-Invoicing

How long until the module is delivered and live?

This is a build-to-order module, not an instant download. Typical lead time is one working week from confirmed scope and access. We start by mapping your Odoo edition, SdI channel, VAT setup and Piano dei Conti, then build, validate against sample B2B/B2G/B2C invoices, install on your instance, and go live with you. Timelines shorten when your SdI intermediary and PEC/Codice Destinatario details are ready at kickoff.

What support and updates do I get after go-live?

Every build includes a post-go-live support window covering bug fixes and compliance clarifications, plus documentation and a source handover. Because FatturaPA schemas and AdE business rules evolve, we can update the validation profile and mappings under support or a maintenance agreement, and we provide a migration path so the module carries forward when you upgrade Odoo versions.

Does this work with Odoo Community, or only Enterprise?

Both. The module is built against Odoo 17, 18 or 19 and works on Community or Enterprise. We confirm your exact version and edition at kickoff and declare the right dependencies in __manifest__.py so it installs cleanly without pulling in features you don't have.

How does it actually send invoices to SdI — do I need a separate provider?

SdI does not accept direct connections from arbitrary systems, so the module transmits through a channel you choose: a certified intermediary/provider, PEC, or the SdI web service where applicable. It builds the correct FatturaPA XML (FPR12/FPA12), resolves Codice Destinatario or PEC per customer, and then parses the notifiche SdI returns so the invoice status updates automatically.

Will it prevent SdI rejections (Scarto / NS notifications)?

That's a core goal. Before anything leaves Odoo, the module runs XSD schema validation plus AdE business-rule checks (Natura codes, Regime Fiscale, riepilogo totals, required blocks). Invoices that would be rejected are flagged in Odoo instead of bouncing back as an NS notification, which keeps your rejection rate down and your bookkeeping clean.

Can it handle cross-border and self-billing documents (Esterometro)?

Yes. Esterometro is now handled inside SdI, and the module produces the correct document types — TD17 (self-invoice for foreign services), TD18 (intra-EU goods) and TD19 (Art. 17 c.2) — so your foreign purchases and sales are reported through the same compliant pipeline as domestic e-invoices.

Request a quote

Italy SDI FatturaPA E-Invoicing

Build-to-order Odoo module that generates, validates and exchanges FatturaPA XML through Italy's SdI — B2B, B2G and B2C.

  • FatturaPA 1.2.x XML generation from account.move, mapping CedentePrestatore, CessionarioCommittente, DatiGenerali, DettaglioLinee, DatiRiepilogo and DatiPagamento blocks
  • XSD + business-rules validator that blocks non-conformant invoices before submission to prevent SdI 'Scarto' (NS) rejections
  • SdI transmission through your chosen channel — certified intermediary/provider, PEC, or SdI web service — with FormatoTrasmissione FPR12 (private) / FPA12 (public administration)
  • Full B2B, B2G and B2C support with correct handling of Codice Destinatario, code '0000000' and PEC-based routing per customer

Request a Quotation

Tell us about your Italy SDI FatturaPA E-Invoicing requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.