Skip to main content

๐Ÿ‡ฎ๐Ÿ‡น Italy

Authority: Agenzia delle Entrate (AdE) ยท Channel: SdI (Sistema di Interscambio).

Italy's clearance system has required domestic e-invoicing since 2019. This app builds the national FatturaPA XML and has a client built directly from SdI's published WSDL/XSD โ€” but that client has never exchanged a byte with the real service.

The channel mandate is not yet promoted in this app's own data

This app's channel-policy catalog records the sdi channel as requirement: "suggested", with provenance unverified. Its own resolution note is explicit about why, given how well known the real mandate is: the file has not yet been re-read against a primary legal text (D.Lgs. 127/2015 art. 1, Provvedimento AdE prot. 433608/2022) with its own verification date recorded in this file โ€” an internal audit elsewhere in this repository already cites that article, but this catalog only promotes a fact once a primary source has been read directly for the file itself, not borrowed from an adjacent document. So: SdI is Italy's real, long-standing mandatory channel, but this app's own record for it is still marked unverified, by design, until that direct reading happens.

Never run against the real service

transports/sdi/sdicoop.live.spec.ts targets SdI's real SdIRiceviFile.RiceviFile endpoint but its own header states plainly: implemented-awaiting-accreditation โ€” no environment available to this app holds a real Agenzia delle Entrate intermediary accreditation, so this spec has never been executed against the true endpoint. The SdiCoopClient was built by reading the published WSDL/XSD/instructions, not proven against them.

Selling to a government, or any, client

The routing rule sends an Italian government client's invoice through SdI, in FatturaPA, and requires the client's 6-character Codice Univoco Ufficio (from IndicePA) โ€” sourced (legal) to the Specifiche tecniche del formato FatturaPA v1.3.2, read directly 2026-09-01. The format builder correctly emits FormatoTrasmissione: FPA12 for a government recipient and FPR12 for a private one (the vendored XSD accepts both), and it validates against the official FatturaPA XSD rather than the generic EN 16931 Schematron โ€” a national schema, judged by its own rules.

Tax

VAT, standard rate 22% โ€” sourced to the EU's Taxes in Europe Database (TEDB), situation date 2026-07-01. This app has no fuller Italian rate catalog (vat-rates/) yet, so reduced rates are not modeled; an earlier, unsourced set of reduced rates was deliberately dropped rather than carried forward under a provenance that never covered them.

VAT and taxable amount in euros, on a foreign-currency invoice

DPR 633/1972 art. 13 c.4 and art. 21 c.2 lett. l) require BOTH the VAT amount and the taxable amount to also be stated in euros on an invoice issued in another currency. Italy is the only one of the three covered countries where the taxable base itself, not just the VAT, must be restated. This app resolves the conversion at the moment the invoice is numbered, using the ECB's daily reference rate for the day of the operation (approximated by the invoice's own issue date), and freezes both figures onto the invoice from then on. Both the PDF and the invoice detail page print the converted amounts next to the invoice's own currency.

DPR 633/1972 is repealed 2027-01-01 and replaced by a new Testo Unico IVA; every source checked describes this as a reorganisation rather than a substantive change to this rule, but the exact new article numbers (reported as 72/73 and 27 by secondary commentary) have not been read directly from Normattiva's own text; see countries/data/it.json's own notes for the caveat.

Identifiers

countries/data/it.json declares two schemes: VAT (the partita IVA, sourced legal to DPR 633/1972 art. 21 comma 2 lettera d) and LEGAL_ID, both with required: false.

The required: false is deliberate and worth understanding, because it is not a statement that the partita IVA is optional. Italy's seller-side rule IS unconditional โ€” no seller entitled to issue an Italian VAT invoice is exempt from it. But this catalog's only axis is the PARTY TYPE (company/individual), not the ROLE, and the same declaration feeds the seller screens and the client screen alike. Marking a scheme required is a hard save-block on all of them, so required: true would also refuse a lawful Italian CLIENT record โ€” the buyer-side rule (same article, lettera f) being conditional on whether the buyer is a taxable person, a distinction this catalog cannot carry. Each fact's own notes states the true, asymmetric position rather than encoding a boolean that cannot represent both roles at once.

Not declared here, deliberately: the Codice Destinatario / PEC (the recipient's SdI routing code). It is transmission data, not party identity, and it is established by the FatturaPA technical specifications rather than by DPR 633/1972's own invoice-content article. A consequence worth knowing: there is currently no screen on which to enter it for an ordinary business client, so a domestic Italian B2B invoice routes with the placeholder reserved for recipients with no Italian code.

Correcting or cancelling an invoice

8 of the 11 correction routes are sourced to Italian law. A credit note is legally allowed, a debit note and an internal credit note are legally required for the cases they cover, a plain corrective invoice is forbidden (Italy fixes a mistake through a credit note or a new document, never by editing/reissuing the original under the same act), and a ledger-only annotation is allowed.

Cancelling an already-sent invoice and reissuing it is implementable in this app for Italy, but only after SdI has rejected it (scarto) โ€” once an invoice has actually reached the recipient, this app will not cancel it. This matches the descriptor's own send_failed status: SdI's own rejection is what that status represents here, and cancellation stays available only from it.

Sources

backend/src/modules/documents/countries/data/it.json (one file, all of this country's own sections: action policy; correction routes; B2G routing; channel policy; the tax system; and VAT-currency conversion, VAT and taxable amount stated in euros), plus correction-routes/cancel-policy.ts, transports/sdi/sdicoop.live.spec.ts and formats/national/fatturapa-provider.ts for the accreditation and FPA12/FPR12 claims above.