Italia — Sistema di Interscambio (SDI)
In sintesi
- La fatturazione elettronica è obbligatoria in Italia dal 2019 per B2B e B2G; B2C dal 2022.
- Ogni fattura deve transitare dall'hub SDI dell'Agenzia delle Entrate; non si può aggirare.
- Il formato nativo è FatturaPA XML. Flowie converte automaticamente UBL ↔ FatturaPA e instrada via SDI per te.
- Ogni fattura deve essere indirizzata tramite un Codice Destinatario (7 caratteri) o, per i destinatari non registrati, tramite posta elettronica certificata (PEC).
- SDI restituisce tre ricevute per fattura: RC (consegnata), NS (rifiutata), o MC (destinatario irraggiungibile). Flowie le espone come eventi webhook.
Contesto — il flusso SDI
L'Italia è stato il primo paese al mondo a imporre la fatturazione elettronica B2B tramite un hub centralizzato. Il flusso:
ERP mittente → Intermediario (Flowie) → SDI → Destinatario
↓
Ricevute (RC/NS/MC) ← di ritorno tramite Flowie
Flowie agisce come tuo intermediario registrato. Trasmettiamo le fatture per tuo conto, le conserviamo per i 10 anni di legge e inoltriamo le ricevute SDI al tuo webhook.
Codice Destinatario
Ogni destinatario italiano ha un Codice Destinatario (CD) — un codice di routing di 7 caratteri che indica a SDI dove consegnare. Tre varianti:
| Tipo destinatario | Formato del codice | Fonte |
|---|---|---|
| Ha un proprio canale SDI | 7 caratteri alfanumerici (es. M5UXCR1) | Fornito dal destinatario. |
| Pubblica amministrazione | Codice a 6 cifre (es. UFY9MC) | Indice PA — indicepa.gov.it. |
| Solo PEC | 0000000 + campo recipientPec | SDI usa il fallback PEC. |
| Sconosciuto / privato | 0000000 | SDI consegna tramite il portale dell'Agenzia. |
Per risolvere un CD da un Codice Fiscale italiano:
curl …/v1/companies/resolve?countryCode=IT&vatNumber=IT01234567890 \
-H "Authorization: Bearer $KEY"
# → response.additionalIdentifiers includes "codiceDestinatario"
FatturaPA & UBL — quando importa
SDI accetta solo FatturaPA XML 1.2.2. Se invii a Flowie UBL o JSON, transcodifichiamo in FatturaPA prima della trasmissione a SDI. L'inverso vale in ricezione: trascriviamo FatturaPA → UBL così il tuo stack lavora sempre con un solo formato.
Se devi inviare FatturaPA grezza (es. il tuo ERP la genera già):
curl -X POST …/v1/documents/send \
-H "Authorization: Bearer $KEY" \
-d '{
"type":"invoice",
"format":"ubl-xml",
"from":"comp_…",
"to":"0211:01234567890",
"xml":"<?xml version=\"1.0\"?><p:FatturaElettronica …>…</p:FatturaElettronica>"
}'
Campi obbligatori per le fatture italiane
-
seller.additionalIdentifiers[codiceFiscale]obbligatorio
Codice fiscale italiano di 11 o 16 caratteri. Auto-popolato alla creazione dell'azienda dal registro.
-
buyer.additionalIdentifiers[codiceDestinatario]obbligatorio
CD a 7 caratteri o
0000000+buyer.contact.pec. -
document.note (TipoDocumento)obbligatorio
Tipo documento SDI:
TD01fattura standard,TD04nota di credito,TD16reverse-charge,TD17servizi intra-UE,TD24fattura differita, … -
document.lines[].vatCategoryobbligatorio
L'Italia usa codici Natura (
N1–N7) sopra alle aliquote standard. Obbligatorio quandovatRate = 0. -
payment.discountTermsopzionale ma controllato
Se presente,
endDatedeve precederedocument.dueDate. SDI rifiuta altrimenti (00400).
Ciclo di vita & ricevute SDI
SDI restituisce una di quattro ricevute asincrone. Ognuna mappa a un evento Flowie:
| Ricevuta SDI | Significato | Evento Flowie |
|---|---|---|
RC (Ricevuta di Consegna) | Consegnata al destinatario. | document.delivered |
NS (Notifica di Scarto) | Rifiutata da SDI per motivi di formato/schema. | document.failed |
MC (Mancata Consegna) | Destinatario irraggiungibile — SDI l'ha resa disponibile sul portale dell'Agenzia. | document.delivered con deliveryStatus="delivered_via_portal" |
EC (Esito Committente) | L'acquirente ha accettato o rifiutato a livello di business (solo B2G). | lifecycle.updated |
Codici di errore SDI (selezionati)
| Codice | Significato | Correttivo |
|---|---|---|
00200 | Errore di validazione di schema. | Ispezionare error.details[]. |
00306 | Codice Destinatario sconosciuto. | Usare Indice PA per gli enti pubblici; altrimenti chiedere al cliente. |
00311 | Formato Codice Destinatario non valido. | Esattamente 6 (PA) o 7 (privati) caratteri alfanumerici. |
00400 | End-date dello sconto pagamento successiva alla data di scadenza. | Riordinare le date. |
00404 | Documento già esistente (stesso numero + mittente + anno). | Dedupe SDI — incrementare la numerazione. |
00417 | Calcolo IVA non corrispondente. | Ricontrollare gli arrotondamenti su quantity * unitPrice * vatRate. |
00471 | Mittente estero — usare TD17/TD18/TD19. | Impostare il giusto TipoDocumento. |
Testare la tua integrazione italiana
| Cosa vuoi testare | Come |
|---|---|
| Cas standard SDI | VAT mittente IT00000000010, destinatario 0211:00000000099 con CD FLOWIE0. |
| Rifiuto Codice Destinatario | simulateCompliance: "reject_00306". |
| Mismatch IVA | Inviare una riga con quantity: 0.333 e forzare l'arrotondamento → genera 00417. |
| Fallback MC (consegna su portale) | Destinatario CD 0000000 senza PEC → arriva come document.delivered_via_portal. |
FAQ
Serve un'autorizzazione separata in Italia?
No. Le credenziali di intermediario di Flowie coprono tutti i nostri clienti. Devi solo concedere a noi la delega SDI nel tuo Fisconline una volta — la dashboard ti accompagna.
E il requisito di archiviazione di 10 anni?
La legge italiana richiede che ogni fattura B2B sia archiviata per 10 anni in un ambiente di "conservazione sostitutiva". L'archivio di Flowie è conforme alle specifiche tecniche dell'Agenzia delle Entrate (DPCM 03/12/2013). Senza costi aggiuntivi.
Posso inviare in parallelo una fattura cartacea?
Per legge no — solo la versione trasmessa via SDI ha valore. Puoi inviare una copia di cortesia in PDF via email, ma non ha valore fiscale.
Riferimenti
Fonti primarie (governo italiano & regolatore UE):
- Agenzia delle Entrate · Fatturazione elettronica — Portale ufficiale per i contribuenti; specifiche tecniche, FAQ, calendario.
- FatturaPA · portale ufficiale — Sito di riferimento FatturaPA (formati, schema, esempi).
- Specifiche tecniche fatturazione B2B v1.9 — Schema XML e regole di validazione (PDF).
- IndicePA — Indice della pubblica amministrazione per la ricerca dei Codici Univoci B2G.
- Fisconline / Servizi IVA — Dove deleghi Flowie come intermediario per la trasmissione SDI.
- Decreto Legge n. 66/2014 (Normattiva) — Legge fondante che impone la fatturazione elettronica B2G.
- Legge di Bilancio 2018 · Art. 1 cc. 909-928 — Estensione alla fatturazione B2B universale dal 2019.
- Commissione europea · eInvoicing in Italy — Scheda di riferimento pan-europea.
- OpenPeppol · profilo Italia — Interazione tra Peppol BIS e SDI.
Analisi settoriali (riferimenti incrociati per il funzionamento dello SDI):
- Sovos · guida al mandato SDI in Italia — Tracker settoriale — dettagli del modello di clearance.
- Pagero · aggiornamenti normativi Italia — Tracker compliance settoriale.