<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: S-Data</title>
    <description>The latest articles on DEV Community by S-Data (@s-data).</description>
    <link>https://dev.to/s-data</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4210943%2F606ddc2a-aeb7-4608-98c5-bda669112fdb.png</url>
      <title>DEV Community: S-Data</title>
      <link>https://dev.to/s-data</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/s-data"/>
    <language>en</language>
    <item>
      <title>Fattura elettronica XML: gli errori più comuni che fanno scartare il file dallo SdI (e come evitarli)</title>
      <dc:creator>S-Data</dc:creator>
      <pubDate>Tue, 27 Oct 2026 22:16:37 +0000</pubDate>
      <link>https://dev.to/s-data/fattura-elettronica-xml-gli-errori-piu-comuni-che-fanno-scartare-il-file-dallo-sdi-e-come-nk6</link>
      <guid>https://dev.to/s-data/fattura-elettronica-xml-gli-errori-piu-comuni-che-fanno-scartare-il-file-dallo-sdi-e-come-nk6</guid>
      <description>&lt;p&gt;Chi genera fatture elettroniche da PDF o da Excel scopre presto che «produrre un XML» e «produrre un XML che lo SdI accetta» sono due lavori diversi. Qui metto in ordine i motivi di scarto che un convertitore può provocare, con codici e significati presi dai documenti ufficiali.&lt;/p&gt;

&lt;p&gt;Fonti usate: &lt;em&gt;Allegato A – Specifiche tecniche&lt;/em&gt; versione 1.9.1 (Agenzia delle Entrate), &lt;em&gt;Elenco dei controlli&lt;/em&gt; versione 2.0 (fatturapa.gov.it) e lo schema &lt;code&gt;Schema_VFPR12&lt;/code&gt; versione 1.2.3. I link sono in fondo. &lt;/p&gt;

&lt;h2&gt;
  
  
  Due livelli di controllo, non uno
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validazione dello schema (XSD).&lt;/strong&gt; Controlla struttura, ordine degli elementi, tipi e formati. Un file che non la supera è, in pratica, «non conforme al formato»: &lt;strong&gt;00200&lt;/strong&gt;, e nel messaggio lo SdI indica il punto preciso. Se gli errori di formato sono più di 50, lo SdI si ferma con il &lt;strong&gt;00201&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controlli di contenuto.&lt;/strong&gt; Coerenza dei numeri, identificativi fiscali, codice destinatario, unicità. Qui lo schema non ti aiuta: un file può essere valido sull'XSD e venire scartato lo stesso.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Per questo conviene validare in locale sull'XSD, ma non fermarsi lì.&lt;/p&gt;

&lt;h2&gt;
  
  
  Codici di scarto da conoscere
&lt;/h2&gt;

&lt;p&gt;Significati come da &lt;em&gt;Elenco controlli&lt;/em&gt; v2.0 e Allegato A 1.9.1:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Codice&lt;/th&gt;
&lt;th&gt;Significato&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00200&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;File non conforme al formato (il messaggio indica la non conformità puntuale)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00300 / 00301 / 00305&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Identificativo fiscale non valido: &lt;code&gt;IdCodice&lt;/code&gt; del trasmittente (00300), del cedente/prestatore (00301), del cessionario/committente (00305). Il controllo verifica la presenza in anagrafe tributaria; non si applica agli identificativi assegnati da autorità estere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00311&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CodiceDestinatario&lt;/code&gt; non valido&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00400&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Natura&lt;/code&gt; assente con &lt;code&gt;AliquotaIVA&lt;/code&gt; pari a zero&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00401&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Natura&lt;/code&gt; presente con &lt;code&gt;AliquotaIVA&lt;/code&gt; diversa da zero (con l'eccezione del TipoDocumento TD16)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00404&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fattura duplicata: stesso cedente, stesso anno della data, stesso numero di una fattura già trasmessa e non scartata&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00421 / 00422 / 00423&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Imposta&lt;/code&gt;, &lt;code&gt;ImponibileImporto&lt;/code&gt; e &lt;code&gt;PrezzoTotale&lt;/code&gt; non calcolati secondo le regole delle specifiche&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00424&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;AliquotaIVA&lt;/code&gt; non espressa in termini percentuali&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;00427&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CodiceDestinatario&lt;/code&gt; di lunghezza non ammessa per il &lt;code&gt;FormatoTrasmissione&lt;/code&gt; (7 caratteri con FPA12, 6 con FPR12)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Altri due: &lt;strong&gt;00417&lt;/strong&gt; (del cessionario/committente deve esserci almeno uno tra partita IVA e codice fiscale) e &lt;strong&gt;00425&lt;/strong&gt; (il &lt;code&gt;Numero&lt;/code&gt; documento deve contenere almeno un carattere numerico).&lt;/p&gt;

&lt;h2&gt;
  
  
  Dove sbaglia un convertitore PDF/Excel → XML
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Date.&lt;/strong&gt; Nello schema &lt;code&gt;Data&lt;/code&gt; è un &lt;code&gt;xs:date&lt;/code&gt;: formato &lt;code&gt;2026-10-27&lt;/code&gt;. Una data letta dal PDF come &lt;code&gt;27/10/2026&lt;/code&gt; non passa l'XSD (l'ho provato). La data non può nemmeno essere successiva alla ricezione da parte dello SdI (&lt;strong&gt;00403&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decimali e arrotondamenti.&lt;/strong&gt; Qui nascono molti scarti 00421–00423. Le regole:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;PrezzoTotale&lt;/code&gt; deve essere uguale a &lt;code&gt;(PrezzoUnitario ± ScontoMaggiorazione) × Quantita&lt;/code&gt;, con tolleranza di ±1 centesimo (00423);&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Imposta&lt;/code&gt; è &lt;code&gt;AliquotaIVA × ImponibileImporto / 100&lt;/code&gt;, arrotondata alla seconda cifra decimale (per difetto se la terza è inferiore a 5, per eccesso se uguale o maggiore), tolleranza ±1 centesimo (00421);&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ImponibileImporto&lt;/code&gt; per ogni aliquota è la somma dei &lt;code&gt;PrezzoTotale&lt;/code&gt; delle righe con quell'aliquota (più contributo cassa e arrotondamento, se presenti), con tolleranza di ±1 euro (00422).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nello schema &lt;code&gt;Imposta&lt;/code&gt; e &lt;code&gt;ImportoTotaleDocumento&lt;/code&gt; ammettono esattamente due decimali: &lt;code&gt;8.250&lt;/code&gt; è respinto, &lt;code&gt;8.25&lt;/code&gt; passa. &lt;code&gt;PrezzoUnitario&lt;/code&gt; ne accetta da 2 a 8, la &lt;code&gt;Percentuale&lt;/code&gt; di sconto solo 2. L'Agenzia stessa segnala nelle sue FAQ che il 00423 compare spesso con gli sconti quando il sistema di origine lavora con più decimali di quelli previsti dal tracciato. In un convertitore: calcola con tipi decimali (mai float), arrotonda come da specifica e confronta i totali ricostruiti con quelli del documento sorgente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aliquote e Natura.&lt;/strong&gt; &lt;code&gt;AliquotaIVA&lt;/code&gt; va scritta come &lt;code&gt;22.00&lt;/code&gt;, non &lt;code&gt;22&lt;/code&gt; e non &lt;code&gt;0.22&lt;/code&gt;. Attenzione: &lt;code&gt;0.22&lt;/code&gt; è valido per l'XSD, perché ha due decimali, ma non è «in termini percentuali» e lo SdI risponde 00424. Con aliquota &lt;code&gt;0.00&lt;/code&gt; serve la &lt;code&gt;Natura&lt;/code&gt; (00400), con aliquota diversa da zero non va messa (00401). I codici generici N2, N3 e N6 non sono più ammessi come natura dell'operazione (controllo &lt;strong&gt;00445&lt;/strong&gt;), ma l'XSD li accetta ancora: serve il sottocodice (per esempio &lt;code&gt;N2.2&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codice destinatario e PEC.&lt;/strong&gt; Il &lt;code&gt;CodiceDestinatario&lt;/code&gt; ha 7 caratteri per i privati (FPR12) e 6 per la PA. &lt;code&gt;0000000&lt;/code&gt; si usa quando il destinatario riceve via PEC indicata in &lt;code&gt;PECDestinatario&lt;/code&gt; o quando non si conosce il canale. &lt;code&gt;XXXXXXX&lt;/code&gt; è solo per soggetti non residenti: con un IdPaese italiano del cessionario viene scartato con &lt;strong&gt;00313&lt;/strong&gt;. Un codice a 6 caratteri in una fattura FPR12 supera l'XSD (che accetta 6–7 caratteri) ma fa scattare il 00427.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partita IVA e codice fiscale.&lt;/strong&gt; L'esistenza la verifica lo SdI (00300, 00301, 00305), non lo schema. Dal PDF possono arrivare spazi, prefissi «IT» ripetuti o zeri persi: normalizza prima di scrivere &lt;code&gt;IdCodice&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ordine degli elementi.&lt;/strong&gt; Lo schema è una sequenza: mettere &lt;code&gt;PrezzoUnitario&lt;/code&gt; prima di &lt;code&gt;Quantita&lt;/code&gt; produce un errore (&lt;code&gt;Element 'Quantita': This element is not expected&lt;/code&gt;). Se generi l'XML da un dizionario, non dare per scontato l'ordine delle chiavi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encoding e caratteri.&lt;/strong&gt; Le descrizioni ammettono solo caratteri Basic Latin e Latin-1 Supplement: &lt;code&gt;è&lt;/code&gt;, &lt;code&gt;à&lt;/code&gt; passano, mentre il trattino lungo &lt;code&gt;–&lt;/code&gt; e il simbolo &lt;code&gt;€&lt;/code&gt;, comunissimi nel testo copiato da un PDF, vengono respinti dall'XSD. Sostituiscili prima di scrivere. Anche &lt;code&gt;Numero&lt;/code&gt; è limitato a 20 caratteri Basic Latin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Numero e duplicati.&lt;/strong&gt; Il numero deve avere almeno una cifra (00425). Ritrasmettere lo stesso numero è un problema solo se la fattura precedente non è stata scartata (00404): dopo uno scarto, la stessa fattura corretta può essere inviata di nuovo con lo stesso numero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimensioni e nome file.&lt;/strong&gt; Il singolo file fattura non può superare 5 MB. Il nome segue &lt;code&gt;IdPaese + codice trasmittente&lt;/code&gt;, underscore, progressivo alfanumerico di massimo 5 caratteri, ad esempio &lt;code&gt;IT01234567890_00001.xml&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Un frammento corretto
&lt;/h2&gt;

&lt;p&gt;Il blocco righe e riepilogo di una fattura TD01 con due aliquote (22% e operazione con natura N2.2). Ho validato il file completo da cui è estratto sull'XSD 1.2.3 con libxml2: l'esito riguarda solo lo schema. I controlli di contenuto dello SdI (anagrafe, destinatario) non si possono riprodurre in locale, e i dati sono inventati.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;DatiBeniServizi&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;DettaglioLinee&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;NumeroLinea&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/NumeroLinea&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Descrizione&amp;gt;&lt;/span&gt;Consulenza tecnica&lt;span class="nt"&gt;&amp;lt;/Descrizione&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Quantita&amp;gt;&lt;/span&gt;3.00&lt;span class="nt"&gt;&amp;lt;/Quantita&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;UnitaMisura&amp;gt;&lt;/span&gt;ore&lt;span class="nt"&gt;&amp;lt;/UnitaMisura&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;PrezzoUnitario&amp;gt;&lt;/span&gt;12.50&lt;span class="nt"&gt;&amp;lt;/PrezzoUnitario&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;PrezzoTotale&amp;gt;&lt;/span&gt;37.50&lt;span class="nt"&gt;&amp;lt;/PrezzoTotale&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;AliquotaIVA&amp;gt;&lt;/span&gt;22.00&lt;span class="nt"&gt;&amp;lt;/AliquotaIVA&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/DettaglioLinee&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;DettaglioLinee&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;NumeroLinea&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/NumeroLinea&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Descrizione&amp;gt;&lt;/span&gt;Rimborso spese documentate&lt;span class="nt"&gt;&amp;lt;/Descrizione&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;PrezzoUnitario&amp;gt;&lt;/span&gt;100.00&lt;span class="nt"&gt;&amp;lt;/PrezzoUnitario&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;PrezzoTotale&amp;gt;&lt;/span&gt;100.00&lt;span class="nt"&gt;&amp;lt;/PrezzoTotale&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;AliquotaIVA&amp;gt;&lt;/span&gt;0.00&lt;span class="nt"&gt;&amp;lt;/AliquotaIVA&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Natura&amp;gt;&lt;/span&gt;N2.2&lt;span class="nt"&gt;&amp;lt;/Natura&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/DettaglioLinee&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;DatiRiepilogo&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;AliquotaIVA&amp;gt;&lt;/span&gt;22.00&lt;span class="nt"&gt;&amp;lt;/AliquotaIVA&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ImponibileImporto&amp;gt;&lt;/span&gt;37.50&lt;span class="nt"&gt;&amp;lt;/ImponibileImporto&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Imposta&amp;gt;&lt;/span&gt;8.25&lt;span class="nt"&gt;&amp;lt;/Imposta&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;EsigibilitaIVA&amp;gt;&lt;/span&gt;I&lt;span class="nt"&gt;&amp;lt;/EsigibilitaIVA&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/DatiRiepilogo&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;DatiRiepilogo&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;AliquotaIVA&amp;gt;&lt;/span&gt;0.00&lt;span class="nt"&gt;&amp;lt;/AliquotaIVA&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Natura&amp;gt;&lt;/span&gt;N2.2&lt;span class="nt"&gt;&amp;lt;/Natura&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ImponibileImporto&amp;gt;&lt;/span&gt;100.00&lt;span class="nt"&gt;&amp;lt;/ImponibileImporto&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Imposta&amp;gt;&lt;/span&gt;0.00&lt;span class="nt"&gt;&amp;lt;/Imposta&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;RiferimentoNormativo&amp;gt;&lt;/span&gt;Esempio di riferimento normativo&lt;span class="nt"&gt;&amp;lt;/RiferimentoNormativo&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/DatiRiepilogo&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/DatiBeniServizi&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Per validare in locale basta qualche riga (serve lo schema scaricato dal sito dell'Agenzia):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;lxml&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;etree&lt;/span&gt;

&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;etree&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;XMLSchema&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;etree&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Schema_VFPR12_v1.2.3.xsd&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;etree&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;fattura.xml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error_log&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nota: lo schema importa lo schema &lt;code&gt;xmldsig&lt;/code&gt; del W3C; se la rete non è disponibile, scaricane una copia e sostituisci il percorso nell'&lt;code&gt;import&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checklist finale
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Date in formato &lt;code&gt;AAAA-MM-GG&lt;/code&gt;, non successive all'invio.&lt;/li&gt;
&lt;li&gt;Importi con punto decimale, due decimali dove richiesto; calcoli con tipi decimali.&lt;/li&gt;
&lt;li&gt;Ricalcola &lt;code&gt;PrezzoTotale&lt;/code&gt;, &lt;code&gt;Imposta&lt;/code&gt; e &lt;code&gt;ImponibileImporto&lt;/code&gt; e verifica le tolleranze prima di scrivere.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;AliquotaIVA&lt;/code&gt; in percentuale (&lt;code&gt;22.00&lt;/code&gt;); &lt;code&gt;Natura&lt;/code&gt; solo con aliquota zero, e mai N2, N3 o N6 generici.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;CodiceDestinatario&lt;/code&gt; di 7 caratteri per FPR12; &lt;code&gt;0000000&lt;/code&gt; con &lt;code&gt;PECDestinatario&lt;/code&gt;; &lt;code&gt;XXXXXXX&lt;/code&gt; solo per non residenti.&lt;/li&gt;
&lt;li&gt;Partita IVA e codice fiscale normalizzati; almeno uno dei due per il cessionario.&lt;/li&gt;
&lt;li&gt;Elementi nell'ordine dello schema.&lt;/li&gt;
&lt;li&gt;Testo ripulito dai caratteri fuori da Basic Latin e Latin-1 (trattini lunghi, &lt;code&gt;€&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Numero&lt;/code&gt; con almeno una cifra, massimo 20 caratteri; file sotto 5 MB; nome file corretto.&lt;/li&gt;
&lt;li&gt;Validazione sull'XSD ufficiale aggiornato alla versione in vigore, a ogni cambio di specifiche.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Per approfondire
&lt;/h2&gt;

&lt;p&gt;Se ti serve generare questi file da documenti esistenti, qui trovi come funziona un &lt;a href="https://www.s-data.it/convertitore-pdf-xml.html" rel="noopener noreferrer"&gt;convertitore da PDF a XML per la fattura elettronica&lt;/a&gt;; il quadro generale è nella pagina sulla &lt;a href="https://www.s-data.it/fatturazione-elettronica.html" rel="noopener noreferrer"&gt;fatturazione elettronica&lt;/a&gt;. S-Data sviluppa convertitori su misura: se il tuo caso non rientra negli strumenti già pronti, se ne può parlare.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fonti ufficiali&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.agenziaentrate.gov.it/portale/documents/d/guest/allegato-a-specifiche-tecniche-vers-1-9-1" rel="noopener noreferrer"&gt;Allegato A – Specifiche tecniche 1.9.1&lt;/a&gt; (Agenzia delle Entrate)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.4/Elenco-Controlli-versione-2.0.pdf" rel="noopener noreferrer"&gt;Elenco dei controlli, versione 2.0&lt;/a&gt; (fatturapa.gov.it)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.agenziaentrate.gov.it/portale/documents/d/guest/schema_vfpr12_v1-2-3" rel="noopener noreferrer"&gt;Schema VFPR12 1.2.3&lt;/a&gt; (Agenzia delle Entrate)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.agenziaentrate.gov.it/portale/controlli-sdi-motivi-di-errore" rel="noopener noreferrer"&gt;Controlli SdI / motivi di errore (FAQ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>xml</category>
      <category>italy</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Software su misura o pacchetto: come decidere (e come fare il conto su 3-5 anni)</title>
      <dc:creator>S-Data</dc:creator>
      <pubDate>Tue, 27 Oct 2026 12:56:38 +0000</pubDate>
      <link>https://dev.to/s-data/software-su-misura-o-pacchetto-come-decidere-e-come-fare-il-conto-su-3-5-anni-50g0</link>
      <guid>https://dev.to/s-data/software-su-misura-o-pacchetto-come-decidere-e-come-fare-il-conto-su-3-5-anni-50g0</guid>
      <description>&lt;p&gt;La domanda «meglio su misura o a pacchetto?» ha una risposta onesta in due righe, e va detto subito: &lt;strong&gt;se il pacchetto ti basta, è la scelta giusta.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Il &lt;strong&gt;pacchetto&lt;/strong&gt; basta quando siete in pochi e il vostro modo di lavorare è standard. Il primo anno costa quasi sempre meno.&lt;/li&gt;
&lt;li&gt;Il &lt;strong&gt;su misura&lt;/strong&gt; conviene quando il vostro processo è diverso da quello che il pacchetto prevede, o quando oggi lavorate tra Excel, email e doppie digitazioni.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il resto di questo articolo serve a capire in quale dei due casi sei.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cinque domande da farsi prima di decidere
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Quante persone useranno il software e per quanti anni?&lt;/strong&gt; Più sono, e più a lungo lo usate, più pesa il costo ricorrente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Il mio processo entra nel pacchetto senza trucchi, o devo adattarmi io?&lt;/strong&gt; Se serve un foglio Excel accanto al gestionale per fare la parte che il gestionale non fa, la risposta è già un'altra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quanto tempo a settimana si perde tra Excel, email e doppie digitazioni?&lt;/strong&gt; Moltiplicalo per le persone coinvolte: è il costo nascosto del «ci arrangiamo».&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quali sistemi deve collegare?&lt;/strong&gt; Contabilità, ERP, CRM, e-commerce, banca, corrieri. Un pacchetto collega quello che il produttore ha previsto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cosa succede ai dati e al software se smetto di pagare o cambio fornitore?&lt;/strong&gt; Con un abbonamento, se smetti di pagare smetti di usarlo: controlla le condizioni di esportazione dei dati.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Il confronto, punto per punto
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterio&lt;/th&gt;
&lt;th&gt;Pacchetto in abbonamento&lt;/th&gt;
&lt;th&gt;Su misura&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Come si lavora&lt;/td&gt;
&lt;td&gt;ti adatti tu al programma&lt;/td&gt;
&lt;td&gt;il programma segue le tue fasi, documenti e ruoli&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Costo iniziale&lt;/td&gt;
&lt;td&gt;più basso&lt;/td&gt;
&lt;td&gt;più alto: si paga lo sviluppo, meglio se per fasi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Costo nel tempo&lt;/td&gt;
&lt;td&gt;canone mensile, di solito per utente&lt;/td&gt;
&lt;td&gt;hosting ed eventuale assistenza&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Se aumentano le persone&lt;/td&gt;
&lt;td&gt;il costo cresce a ogni utente&lt;/td&gt;
&lt;td&gt;dipende dal contratto: chiedi se ci sono licenze per utente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moduli&lt;/td&gt;
&lt;td&gt;paghi anche quelli che non usi&lt;/td&gt;
&lt;td&gt;solo quelli che servono, aggiunti quando servono&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integrazioni&lt;/td&gt;
&lt;td&gt;quelle previste dal produttore&lt;/td&gt;
&lt;td&gt;API, database o file verso i sistemi che già usi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dati e proprietà&lt;/td&gt;
&lt;td&gt;legati alla piattaforma&lt;/td&gt;
&lt;td&gt;sotto il tuo controllo; codice su repository se previsto&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Il confronto è generale: ogni prodotto ha le sue condizioni, quindi controlla quelle del pacchetto che stai valutando.&lt;/p&gt;

&lt;h2&gt;
  
  
  Una terza strada: tenere il pacchetto e aggiungere il pezzo che manca
&lt;/h2&gt;

&lt;p&gt;Non è una scelta tutto o niente. La contabilità, l'ERP o l'e-commerce che usi oggi possono restare al loro posto: un modulo su misura si collega a loro via API, database o file e copre solo la parte che il pacchetto non copre. Si parte dal processo che oggi ti fa perdere più tempo, lo metti in uso e decidi cosa aggiungere guardando come funziona.&lt;/p&gt;

&lt;h2&gt;
  
  
  Il conto su 3-5 anni (con un po' di codice)
&lt;/h2&gt;

&lt;p&gt;Il confronto onesto non si fa sul primo anno. Per ogni opzione somma tutto quello che pagherai nell'orizzonte che ti interessa:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;costo_pacchetto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;canone_mensile_utente&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;utenti&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;anni&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;extra_a_pagamento&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Canone per utente x utenti x 12 mesi x anni, più moduli/personalizzazioni a pagamento.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;canone_mensile_utente&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;utenti&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;anni&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;extra_a_pagamento&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;costo_su_misura&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sviluppo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;anni&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;hosting_annuo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;manutenzione_pct&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;licenze_terzi_annue&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Sviluppo una tantum più costi ricorrenti. manutenzione_pct è una frazione (0.15 = 15%).&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;ricorrenti&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;hosting_annuo&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;sviluppo&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;manutenzione_pct&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;licenze_terzi_annue&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;sviluppo&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ricorrenti&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;anni&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Come input usa &lt;strong&gt;numeri tuoi o preventivi veri&lt;/strong&gt;: il canone per utente del pacchetto che stai valutando, il numero di persone, le cifre scritte nei preventivi. Per la manutenzione, le software house che la dichiarano pubblicamente indicano tra il 12% e il 20% annuo del valore sviluppato; molte la rendono facoltativa, quindi chiedilo esplicitamente. Poi confronta &lt;code&gt;costo_pacchetto(...)&lt;/code&gt; e &lt;code&gt;costo_su_misura(...)&lt;/code&gt; a 3 e a 5 anni, e guarda in quale anno le due curve si incrociano (se si incrociano).&lt;/p&gt;

&lt;p&gt;Una regola pratica che ne discende: più sono gli utenti e più a lungo userai il programma, prima il su misura va in pari. Con pochi utenti e un processo standard, il pacchetto resta spesso più conveniente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Come tenere il costo sotto controllo, se scegli il su misura
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Perimetro scritto&lt;/strong&gt; prima di iniziare: cosa fa il software e cosa resta fuori.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parti da un modulo&lt;/strong&gt;, quello che oggi ti costa più tempo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paga a fasi&lt;/strong&gt;, man mano che il software entra in uso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chiedi per iscritto&lt;/strong&gt; cosa è compreso e cosa no: hosting, licenze di terzi, funzioni dopo l'avvio, assistenza.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quanto costa il su misura
&lt;/h2&gt;

&lt;p&gt;Per le fasce di prezzo pubblicate dal mercato e per le voci che muovono il costo c'è la guida &lt;a href="https://www.s-data.it/quanto-costa-software-gestionale-su-misura.html" rel="noopener noreferrer"&gt;Quanto costa un software gestionale su misura&lt;/a&gt;. Il confronto qui sopra è pensato per decidere, non per vendere: se dopo le cinque domande il pacchetto ti basta, prendi il pacchetto.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;S-Data è una software house che sviluppa gestionali su misura dal 2007, quindi ha un interesse nella scelta: ho provato a scrivere il confronto in modo che regga anche per chi sceglie l'altra strada.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>business</category>
      <category>italy</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Cosa pesa davvero sul costo di un gestionale su misura (dati 2026)</title>
      <dc:creator>S-Data</dc:creator>
      <pubDate>Tue, 27 Oct 2026 12:56:10 +0000</pubDate>
      <link>https://dev.to/s-data/cosa-pesa-davvero-sul-costo-di-un-gestionale-su-misura-dati-2026-2mg7</link>
      <guid>https://dev.to/s-data/cosa-pesa-davvero-sul-costo-di-un-gestionale-su-misura-dati-2026-2mg7</guid>
      <description>&lt;p&gt;Chi deve far costruire un gestionale per la propria azienda si scontra quasi sempre con la stessa risposta: «dipende». È vero, ma si può dire qualcosa di più preciso. Ho messo insieme i prezzi che &lt;strong&gt;dodici software house e professionisti italiani pubblicano sui loro siti&lt;/strong&gt; (rilevazione del 22 ottobre 2026) e li ho tenuti separati da qualsiasi stima mia. Qui sotto trovi cosa dicono, cosa non dicono e quali sono le voci che spostano davvero il costo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cosa dicono i prezzi pubblicati
&lt;/h2&gt;

&lt;p&gt;Nove delle dodici fonti pubblicano cifre per almeno due fasce di progetto e sono entrate nel calcolo. Mediane dei prezzi dichiarati, &lt;strong&gt;IVA esclusa&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fascia&lt;/th&gt;
&lt;th&gt;Mediana dei minimi&lt;/th&gt;
&lt;th&gt;Mediana dei massimi&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Piccolo progetto o primo modulo&lt;/td&gt;
&lt;td&gt;5.000 €&lt;/td&gt;
&lt;td&gt;13.500 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gestionale con più moduli collegati&lt;/td&gt;
&lt;td&gt;15.000 €&lt;/td&gt;
&lt;td&gt;22.000 €&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gestionale completo / ERP&lt;/td&gt;
&lt;td&gt;37.500 €&lt;/td&gt;
&lt;td&gt;40.000 € (molte fonti scrivono «oltre»)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Se si guardano solo le cinque software house che si rivolgono esplicitamente alle PMI (classificazione mia, per come si presentano sui loro siti) le fasce scendono: 3.100–8.000 € per il piccolo, 8.000–20.000 € per il medio, 18.000–40.000 € per il grande. Le agenzie orientate a clienti più grandi pubblicano cifre molto più alte in tutte le fasce.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tre cose da non dimenticare quando leggi quella tabella
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sono prezzi pubblicati, non preventivi chiusi.&lt;/strong&gt; Un preventivo reale può essere più alto o più basso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Il campione è piccolo e non è casuale.&lt;/strong&gt; Sono le pagine che una ricerca sul web mostra, scritte da chi vende il servizio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;«Piccolo», «medio» e «grande» non significano la stessa cosa per tutti.&lt;/strong&gt; Alcune cifre sono per modulo, altre per reparto, altre per un verticale. Dove una fonte scrive «oltre X» ho usato X come minimo e nessun massimo, quindi le mediane dei massimi per i progetti grandi si basano su meno fonti.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Un conflitto di interessi va detto: scrivo per una software house che sviluppa gestionali su misura. Per questo le nostre fasce non sono nei dati e non entrano in nessun calcolo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cosa muove davvero il costo
&lt;/h2&gt;

&lt;p&gt;Due gestionali che sulla carta sembrano uguali possono costare uno il doppio dell'altro. Nella nostra esperienza la differenza sta quasi sempre in cinque voci, e nessuna è «il numero di schermate»:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quanti processi copre.&lt;/strong&gt; Un'attività sola (per esempio i preventivi) oppure più reparti che si passano il lavoro. Ogni processo in più porta regole, schermate e test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quanti sistemi deve collegare.&lt;/strong&gt; Contabilità, ERP, CRM, e-commerce, banca, corrieri. Spesso è la voce che pesa di più, soprattutto se il programma da collegare è vecchio o chiuso, senza API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ruoli e permessi.&lt;/strong&gt; Chi vede cosa, chi modifica, chi approva. Cinque persone con compiti molto diversi possono costare più lavoro di cinquanta che fanno la stessa cosa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dati da recuperare.&lt;/strong&gt; Partire da zero è semplice. Portare anni di anagrafiche e storico da Excel o dal vecchio gestionale richiede pulizia, regole di deduplica e controlli con chi quei dati li conosce.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regole del lavoro.&lt;/strong&gt; Listini per cliente, calcoli, scadenze, passaggi di approvazione. È la parte che si vede meno ed è quella che fa la differenza tra un programma generico e uno utile.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Da dove nascono le cifre: le tariffe a giornata
&lt;/h2&gt;

&lt;p&gt;Un preventivo è, in buona parte, giornate di lavoro moltiplicate per una tariffa. Le fonti pubbliche che ho trovato:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assintel Report 2025, riportato da Buspa (indagine su 346 PMI ICT, dati 2024): programmatore 347 €/giorno, analista circa 420, capoprogetto circa 480, consulente 540.&lt;/li&gt;
&lt;li&gt;Zornade: freelance e piccole strutture 250–400 €/giorno; software house strutturate 400–700 €.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A titolo di sola aritmetica: a 347 €/giorno, 5.000 € corrispondono a circa 14 giornate di un programmatore. Non è un preventivo, serve per capire cosa può starci dentro un «piccolo progetto».&lt;/p&gt;

&lt;h2&gt;
  
  
  La manutenzione: quanto chiedono
&lt;/h2&gt;

&lt;p&gt;Tra le fonti che la indicano, la manutenzione annua è dichiarata tra il &lt;strong&gt;12% e il 20%&lt;/strong&gt; del valore sviluppato (LEMIO 12–18%, SicDev 15–20%, Sydus 15–20%). Altre fonti non la indicano o parlano di supporto incluso per alcuni mesi.&lt;/p&gt;

&lt;h2&gt;
  
  
  Come confrontare due preventivi
&lt;/h2&gt;

&lt;p&gt;Prima di confrontare due cifre, confronta cosa c'è dentro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;c'è un &lt;strong&gt;perimetro scritto&lt;/strong&gt; (cosa fa il software e cosa resta fuori)?&lt;/li&gt;
&lt;li&gt;si paga &lt;strong&gt;a milestone&lt;/strong&gt; o tutto all'inizio?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;hosting, server e licenze di terzi&lt;/strong&gt; sono nel prezzo o a parte?&lt;/li&gt;
&lt;li&gt;l'&lt;strong&gt;import dei dati&lt;/strong&gt; è compreso, e quali dati?&lt;/li&gt;
&lt;li&gt;cosa costano le &lt;strong&gt;funzioni chieste dopo l'avvio&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;la &lt;strong&gt;manutenzione&lt;/strong&gt; è obbligatoria o facoltativa, e in che percentuale?&lt;/li&gt;
&lt;li&gt;chi ha il &lt;strong&gt;controllo di codice e dati&lt;/strong&gt; se cambi fornitore?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il rischio vero non è il prezzo iniziale, ma un progetto che cresce senza controllo. Un perimetro scritto e un primo modulo da mettere in uso subito sono le due difese più semplici.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dati e fonti
&lt;/h2&gt;

&lt;p&gt;Tabella completa, fonti una per una (con link alle pagine lette), metodo e limiti sono nell'&lt;a href="https://www.s-data.it/osservatorio-prezzi-gestionale-su-misura-2026.html" rel="noopener noreferrer"&gt;Osservatorio prezzi del gestionale su misura 2026&lt;/a&gt;. Il CSV è anche su GitHub, con uno script che ricalcola le mediane: &lt;a href="https://github.com/S-Data-IT/osservatorio-prezzi-gestionale-italia" rel="noopener noreferrer"&gt;S-Data-IT/osservatorio-prezzi-gestionale-italia&lt;/a&gt;. Licenza CC BY 4.0: puoi riusarli citando la fonte.&lt;/p&gt;

&lt;p&gt;Se sei una delle aziende citate e una cifra non è corretta, scrivi a &lt;a href="mailto:info@s-data.it"&gt;info@s-data.it&lt;/a&gt; e la correggiamo.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>business</category>
      <category>italy</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
