Introduction
Electronic invoicing is mandatory for all businesses in Italy. The Sistema di Interscambio (SDI) serves as the Italian government’s central hub for transmitting, validating, and delivering all electronic invoices throughout the country. The SDI system operates using a standardized XML format called FatturaPA, which ensures all invoices contain the required information and comply with the strict validation rules established by the Italian tax authority (Agenzia delle Entrate). To ensure proper routing of invoices to the correct recipient, the SDI system uses a unique identifier called a Recipient Code, which is assigned to each registered SDI provider. Invopop simplifies SDI integration by allowing you to work with GOBL format instead of XML, providing synchronous validation before submission, and offering a simple API integration with automatic handling of SDI notifications and status updates. For receiving invoices through SDI, see our companion guide: Italy - SDI: Receiving Invoices.Setup
1
Connect the SDI Italy app
- Navigate to Configuration → Apps
- Locate SDI Italy in the app discovery list
- Tap Connect to activate

2
Configure sending workflow
SDI does not have a sandbox environment. When
sandbox
mode is selected, Invopop’s third-party submission service, A-Cube, simulates a response from SDI.Sending Invoices
Invopop uses the GOBL FatturaPA library to process conversions. When creating invoices for SDI, you need to:- Set the
regime
field toIT
in your GOBL invoice - Add the
it-sdi-v1
addon to enable Italian-specific validations and extensions
How the Send step works
This step generates the FatturaPA XML and sends it to SDI through our integration partner. Upon successful completion, the XML file is attached to the invoice entry. The SDI service usually responds within seconds but may take up to 24 hours. While waiting, this step remains in aQueued
state.
When the Send step completes, it returns one of three results:
OK
if successfulKO
for unrecoverable errorsSKIP
if the invoice was already sent
Example Invoices
B2C Standard Invoice
B2C Standard Invoice
SDI B2C Invoice
B2B Invoice
B2B Invoice
SDI B2B Invoice
B2B Invoice with Additional Fields
B2B Invoice with Additional Fields
SDI B2B Invoice with additional fields
Credit Note
Credit Note
SDI Credit Note
FAQ
Is electronic invoicing mandatory in Italy?
Is electronic invoicing mandatory in Italy?
Yes, electronic invoicing through SDI is mandatory in Italy for B2G, B2B, and B2C transactions.All invoices must be issued in FatturaPA format and transmitted through the SDI (Sistema di Interscambio) platform.
How can I correct an invoice?
How can I correct an invoice?
There are two main ways to correct an invoice in the Italian SDI system:
- Issue a credit note (Nota di Credito - TD04) to fully or partially cancel the original invoice.
- Issue a debit note (Nota di Debito - TD05) to integrate/correct the original invoice with additional charges.
Why is my invoice processing taking so long?
Why is my invoice processing taking so long?
The SDI system can take up to 24 hours to process invoices, especially during peak periods. While waiting, the “Send to SDI” step will remain in the
QUEUED
state. The system will automatically check for updates, and the status will change once SDI has processed the invoice.How do I know if my invoice was delivered successfully?
How do I know if my invoice was delivered successfully?
Once the SDI process is complete, the workflow will show one of several status codes:
delivered
- The invoice was successfully delivered to a B2B recipientaccepted-pa
- The invoice was accepted by a Public Administrationnot-delivered
- The invoice couldn’t be delivered, but was processed correctly by SDI
Can I use the same workflow for both sending and receiving invoices?
Can I use the same workflow for both sending and receiving invoices?
No, sending and receiving invoices require different workflows:
- For sending invoices, a workflow with the Generate FatturaPA and Send to SDI steps is needed
- For receiving invoices, two workflows are required:
- A Customer Registration workflow (run once for each company that needs to receive invoices)
- An Import Invoices workflow (configured to run automatically)
How do I add codice fiscale and Partita IVA
How do I add codice fiscale and Partita IVA
Invopop handles both Italian tax identification numbers in the supplier and customer sections of invoices:For more information on receiving invoices, see our Italy - SDI: Receiving Invoices guide.
- Partita IVA (VAT number): Automatically extracted from the
tax_id/code
field. - Codice Fiscale (fiscal code): Must be specified as an identity with the key
it-fiscal-code
.
Supplier with Partita IVA and Codice Fiscale
Technical Details
SDI Response Codes and Statuses
SDI Response Codes and Statuses
When the SDI step processes a document, it returns detailed status codes that provide information about the response from SDI:
Some SDI notifications (File metadati - MT, Esito committente - EC, Scarto esito committente - SE) don’t directly change the code of the invoice.These codes map to different step results as follows:
Code | Description |
---|---|
rejected | Notifica di scarto (NS) SDI has rejected the invoice because it contains errors. |
delivered | Ricevuta consegna (RC) SDI has successfully delivered a B2B invoice to the recipient. |
delivered-pa | Ricevuta consegna (RC) SDI has successfully delivered an invoice to a Public Administration (PA). |
not-delivered | Mancata consegna (MC) SDI could not deliver the invoice to the recipient. |
not-delivered | Attestazione trasmissione con impossibilità di recapito (AT) SDI couldn’t deliver an invoice to PA after 10 days. |
accepted-pa | Notifica esito (NE) A PA has decided to accept an invoice (outcome EC01). |
rejected-pa | Notifica esito (NE) A PA has decided to reject an invoice (outcome EC02). |
deadline-terms | Notifica decorrenza termini (DT) A PA didn’t reply with acceptance or rejection within 15 days. |
invoice-error | An error occurred during the acquisition of a notification. |
sent | The invoice has been submitted to SDI and is awaiting a response. |
not-received | The invoice was not received by the recipient. |
- OK Result:
delivered
,not-delivered
,not-received
,accepted-pa
- KO Result:
rejected
,rejected-pa
,invoice-error
,deadline-terms
- QUEUED Result:
sent
,delivered-pa
QUEUED
, the workflow will check again later for updates from SDI.