E-invoicing in Italy, without the heavy lifting
Every invoice in Italy flows through SDI, together with the XML formats, closed code lists and notification streams that come with it. Latitude App is a directly accredited SDI transmission channel: issue, receive and track your FatturaPA invoices in one modern platform, and let us handle the plumbing.
Updated: 31 July 2026 · 7 min read
- Accredited SDI transmission channel
- Certified Peppol Access Point
In short
- Nearly every invoice issued by operators established in Italy, whether B2B, B2C or B2G, must go through SDI (Sistema di Interscambio) as FatturaPA XML; the notable exception is healthcare services to private individuals, which are barred from SDI.
- Invoices must be issued within 12 days of the transaction. A rejected invoice (scarto) can be corrected and resubmitted within 5 days.
- Cross-border transactions are reported through SDI too, ever since the old "esterometro" was retired in 2022: foreign purchases as TD17–TD19 self-invoices, sales to foreign customers as ordinary invoices with the XXXXXXX recipient code.
- Since 2024 the mandate covers everyone, including flat-rate (forfettario) businesses.
- Latitude App is a directly accredited SDI transmission channel: issue, receive and track every invoice in one platform, with a certified Peppol Access Point built in for your invoices beyond Italy.
Context
What are SDI and FatturaPA?
SDI, short for Sistema di Interscambio, is the national invoice exchange platform run by Agenzia delle Entrate. Unlike most countries, in Italy an invoice never travels directly from supplier to customer: every invoice passes through SDI first, which validates it and only then delivers it to the recipient. An invoice that never went through SDI simply doesn't exist for tax purposes.
FatturaPA is the mandatory XML format, currently at version 1.2, with the FPR12 profile for invoices between businesses and to consumers. On the ordinary B2B and B2C flow, SDI accepts no PDFs and no other formats: only FatturaPA, with strict structural rules and closed code lists (document types TD01–TD29, "Natura" exemption codes, payment method codes, and so on).
Every recipient has a codice destinatario, which is a 7-character code identifying the channel where they receive invoices, or alternatively a certified PEC e-mail address. When neither is known, the generic code 0000000 is used and the invoice stays available to the recipient in the tax authority's portal. For foreign customers, XXXXXXX is used. Latitude App customers receive their invoices through our public code U5NW3BH, which we cover in more detail below.
Timeline
A decade of mandatory e-invoicing
Mandatory towards the public sector (B2G)
Invoices to the Italian public administration are transmitted exclusively through SDI.
Mandatory B2B and B2C
Italy becomes the first EU country with generalized e-invoicing for operators established on its territory.
"Esterometro" disappears
Cross-border transactions are reported through SDI as well: purchases as TD17–TD19 self-invoices, sales with the XXXXXXX recipient code.
The mandate becomes universal
Flat-rate businesses (forfettari) also fall under the e-invoicing obligation.
Latitude App becomes an accredited SDI channel
We transmit and receive invoices directly in SDI, through our own accredited channel and with no intermediaries.
The mandate
Who has to invoice through SDI?
The obligation covers operators established in Italy, meaning Italian companies of every size as well as branches and fixed establishments of foreign groups. Since 2024 there are no thresholds or regime exemptions left: even flat-rate (forfettario) taxpayers invoice electronically.
Foreign companies that are merely VAT-registered in Italy (without a fixed establishment) are not required to issue through SDI, but their Italian partners report those transactions with self-invoices, and many Italian customers simply expect invoices via SDI.
Latitude App accommodates Italian businesses directly, from a ditta individuale all the way to a corporate group. Activation is a few steps (a signed channel agreement and a short verification), not a migration project. And when your business reaches beyond Italy, the same platform speaks Peppol.
The flow
How an invoice travels through SDI
Four steps, fully automated in Latitude App. Follow the invoice:
- You issue the invoice in the app, upload the European XML (UBL), or we connect your system through a custom integration
- Latitude App converts it to FatturaPA and validates it locally, before SDI
- SDI runs its checks and delivers the invoice to the recipient
- The ricevuta di consegna comes back automatically and the status updates in the platform
Statuses
SDI notifications, in plain language
After submission, SDI answers with one of the notifications below. In Latitude App each one becomes a clear status on the invoice, with no XML to decipher.
Ricevuta di consegna
The invoice was delivered to the recipient, with the delivery officially attested; fiscally, it was already issued the moment SDI accepted it.
→ in the app: "Sent OK", lifecycle "Sent"
Notifica di scarto
The invoice was rejected by SDI's checks. You have 5 days to correct and resubmit without penalties.
→ in the app: "Error", with the error list on the invoice
Mancata consegna
SDI could not deliver (recipient channel unavailable). The invoice remains valid and available to your customer in the tax authority's portal.
→ in the app: "Made available (not delivered)"
Esito & decorrenza termini (B2G)
Public-sector customers can accept (EC01) or refuse (EC02) the invoice; after 15 days without an answer, it closes automatically.
→ in the app: "Accepted" / "Refused" / "Closed (deadline passed)"
days to issue an invoice from the transaction date
days to resubmit after a rejection (scarto)
the year B2B e-invoicing became mandatory in Italy
years of mandatory archiving (conservazione)
The solution
How Latitude App helps
We're not another upload portal: Latitude App is a directly accredited SDI transmission channel, connected straight to the Italian tax authority and wrapped in a platform your whole team can actually use.
A direct, accredited SDI channel
We transmit and receive invoices over our own secure connection with SDI, so there are no intermediaries between you and the tax authority.
No FatturaPA expertise needed
Issue invoices in the app or upload the European standard XML (UBL / EN 16931). Conversion to FatturaPA and validation happen automatically, before anything reaches SDI. And if your system only exports a proprietary format, we build a custom integration that picks it up automatically.
Real-time statuses, zero limbo
Every SDI notification, whether delivered, rejected or undeliverable, becomes a clear status on the invoice, and we regularly reconcile with SDI's own registers so no invoice is ever left unknown.
Receive through one public code
Register our codice destinatario U5NW3BH once with Agenzia delle Entrate, and every supplier invoice lands in the platform automatically, already converted to the European format and paired with a readable PDF in the official AdE layout.
Self-invoices & reverse charge
Issue the TD16–TD21 self-invoices for cross-border purchases and reverse charge, the very reporting that replaced esterometro, from the same flow.
Beyond Italy, same platform
We are a certified Peppol Access Point and run e-invoicing across 24 European countries, including Romania (ANAF e-Factura), Belgium, Germany and France. When your business crosses borders, your invoicing doesn't have to fragment.
One code, all your incoming invoices
This is the recipient code Latitude App customers use to receive their electronic invoices. Register it once in your Fatture e Corrispettivi area, under "Registrazione dell'indirizzo telematico", and every invoice addressed to your company arrives in Latitude App automatically, whatever code your suppliers write in their invoices.
Routing to your company is done by your Partita IVA / Codice Fiscale, since the code is shared by all our customers, with no setup on your suppliers' side.
Invoices in FatturaPA 1.2 XML (FPR12), with strict structure and closed code lists
Automatic conversion from the European standard, from invoices created in the app or from a proprietary format picked up through a custom integration, validated before sending
Transmission exclusively through SDI, via a technical channel
Our own accredited channel, connected directly to SDI and activated with a simple signed agreement
Tracking the notifications (delivery, rejection, non-delivery)
Clear statuses on every invoice, with SDI's error list shown right in the app
Receiving invoices on a codice destinatario
Register U5NW3BH once with Agenzia delle Entrate and your invoices flow into the platform automatically
Reporting cross-border purchases (TD17–TD19 self-invoices)
Self-invoices issued from the same flow, over the same direct SDI channel
A complete archive of XML files and delivery evidence
Every file, whether sent, received or a notification, stored and downloadable at any time
Inside the app
What it looks like in Latitude App
Real screenshots from the platform, from issuing all the way to the final SDI status.
We already receive invoices through another provider. How hard is it to switch?
One step: change your registered indirizzo telematico to U5NW3BH in the Fatture e Corrispettivi portal. Once registered, this address takes precedence over whatever code your suppliers write in their invoices, so informing key suppliers of the new code is optional good practice, not a requirement. From that moment SDI delivers your invoices to Latitude App. Outgoing invoices move just as simply, once the channel activation agreement is signed.
What happens if an invoice is rejected (scarto)?
SDI sends a notifica di scarto with the list of errors. You have 5 days to correct and resubmit the invoice with the same number and date, without penalties. In Latitude App you see the errors directly on the invoice and resubmit from the same screen.
Do we need to know the FatturaPA format?
No. You issue invoices in the app or upload the European standard XML (UBL / EN 16931), and the platform converts to FatturaPA and validates before sending. The Italian specifics, such as document types, Natura codes and payment methods, are handled automatically.
Our software can only export invoices in its own format. What can we do?
Contact us and we set up a custom implementation project: we build an integration that takes the format your system exports and loads it into Latitude App automatically, where it is converted to FatturaPA and validated like any other invoice. We support custom development for exactly these cases, where the standard format isn't available.
Can you handle our invoices outside Italy too?
Yes. Latitude App is a certified Peppol Access Point and runs e-invoicing across 24 European countries, including Romania, Belgium, Germany and France, so invoices to customers across Europe travel through the same platform. Cross-border purchases are covered as well, with the TD17–TD19 self-invoices submitted to SDI from the same flow.
We're an international group with an Italian entity. Does this work for us?
Perfectly. The Italian entity invoices through SDI like any Italian company, while the rest of the group runs its own countries in the same platform: Romania's ANAF e-Factura, Peppol in Belgium, Germany and France, 24 European countries in total.
This article is for information purposes only and does not constitute tax or legal advice. Italian e-invoicing rules may change; the information reflects the situation at the date of the last update.
Beyond Italy
The same platform, across 24 European countries
Start sending FatturaPA the easy way
Activate the SDI channel in a few steps and your first invoice can leave Latitude App today. No hand-written XML, no legacy portals, no intermediaries.

