The lifecycle
Submission
The send step reports SDI’s immediate answer. When SDI takes charge of the file it returns an identifier for the submission, and every later notification about that invoice refers to it. When SDI refuses the file outright it returns an error code instead, and the step fails withKO.
Being taken in charge is not the same as being accepted. Validation comes next, and an invoice can still be rejected minutes later.
Business invoices
For invoices to businesses and consumers, the lifecycle is short: SDI validates, then either delivers or parks the invoice.
A rejected invoice has no legal existence. Correct it and send a fresh one — this is not a case for a credit note.
MC is not a failure. The invoice is filed and the recipient can collect it from their cassetto fiscale, which is why it counts as acknowledged rather than an error.
Public administration invoices
Invoices to public administrations are not yet supported for sending. This section describes the lifecycle they follow, and applies once they are.
AT — the invoice never arrived, and you must deliver it yourself
AT — the invoice never arrived, and you must deliver it yourself
SDI gave up delivering to the public body, and issues an attestation: legal proof that you transmitted the invoice and that the failure is not yours.This is not a fix-and-resubmit like
NS. The invoice stands, but it is now on you to send both the invoice and the attestation to the public body directly, outside SDI. That direct delivery is required for the invoice to be payable — the attestation is what authorises the public body to process an invoice that did not reach it through SDI.It reports as an error because it needs you to act, not because anything is wrong with the invoice.DT — silence, which in practice means accepted
DT — silence, which in practice means accepted
The public body had 15 days to accept or reject and did neither, so SDI closes the process. From then on it discards any further communication about that invoice, which means the public body can no longer reject it.SDI does not call this an acceptance. In practice the invoice proceeds as one: rejection is off the table, and it appears as accepted in the PCC (Piattaforma dei Crediti Commerciali), which tracks what public administrations owe. Any remaining dispute is settled between you and the buyer, outside SDI.
Receiving the notifications
Each notification runs the status workflow configured on the Italy app, which records it against the invoice it belongs to.- Workflow
- Code
acknowledged differently from rejected.
What a status entry holds
Every entry carries theSDI series and the SDI message identifier as its code, with the submission identifier in its metadata so it can be traced back to the invoice.
The status line records the outcome as one of GOBL’s own keys — acknowledged, accepted, rejected, error or processing — with the exact Italian notification code preserved alongside it in the it-sdi-notification extension, and a plain-language description of what happened.
Entries are typed by who is speaking. Notifications from SDI are an update, since the platform is reporting; a NE is a response, because there the buyer is answering.
FAQ
How do I configure my workspace for Italian invoicing?
How do I configure my workspace for Italian invoicing?
Install the Italy app for structured invoicing through SDI, or the Smart Receipts app for B2C-only AdE CF receipts. Run invoices through a workflow with the Send invoice to SDI step — see the issuing guide.
How do I issue a documento commerciale (scontrino)?
How do I issue a documento commerciale (scontrino)?
Retail receipts (documento commerciale, commonly called scontrino) are not SDI invoices — they are reported to the tax authority as corrispettivi through a separate channel. Use the Smart Receipts Italy app for those, and see the Smart Receipts issuing guide.
Where do I find Italy-specific GOBL documentation?
Where do I find Italy-specific GOBL documentation?
See the Italy tax regime in GOBL for tax categories, codice fiscale rules, and SDI-specific extensions. The
it-sdi-v1 addon documents required FatturaPA fields.Why is my invoice processing taking so long?
Why is my invoice processing taking so long?
The Send invoice to SDI step completes as soon as SDI accepts the file — it doesn’t wait for SDI’s verdict. What takes time is SDI’s own processing: a rejection usually arrives within minutes, but delivery confirmations can take up to 5 days. Each verdict is recorded against the invoice as a status entry, so nothing is stuck while you wait. See the status guide for the full lifecycle.
How do I know if my invoice was delivered successfully?
How do I know if my invoice was delivered successfully?
SDI confirms delivery with an
RC (ricevuta di consegna) notification, recorded on the invoice as a status entry with the GOBL status acknowledged. A rejection arrives as NS with status error. Every notification and what it means is covered in the status guide.How do I test different SDI outcomes in the sandbox?
How do I test different SDI outcomes in the sandbox?
Set a reserved codice destinatario on the customer — for example
SIMNS00 to simulate a rejection. The sandbox simulates SDI end to end and feeds back the notifications a real exchange would produce; any ordinary code resolves to a successful delivery. The full list of reserved codes is in the issuing guide.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:
- Partita IVA (VAT number): Automatically extracted from the
tax_id/codefield. - Codice Fiscale (fiscal code): Must be specified as an identity with the key
it-fiscal-code.
Supplier with Partita IVA and Codice Fiscale
🇮🇹 Invopop resources for Italy
🇮🇹 Invopop resources for Italy
Participate in our community
Ask and answer questions about invoicing in Italy →