Nordlet

← Documentazione / Glossario

Che cos'è un registro immutabile? Tracce di audit e perché l'eliminazione delle registrazioni è un bug

Perché le registrazioni contabili contabilizzate non devono mai essere modificate o eliminate, come funzionano le correzioni in un registro a sola aggiunta (append-only) e cosa garantiscono realmente i blocchi dei periodi e i registri di audit.

Un registro immutabile (immutable ledger) è un registro in cui le registrazioni contabilizzate non vengono mai modificate né eliminate. Le correzioni vengono effettuate aggiungendo nuove registrazioni che stornano o rettificano quelle precedenti, in modo che la cronologia dei libri contabili sia parte integrante dei libri stessi.

Non si tratta di una preferenza tecnica. È ciò che rende le registrazioni contabili una prova anziché un'opinione corrente sul passato, ed è il motivo per cui la richiesta di "aggiungere un pulsante di eliminazione per le registrazioni di prima nota" è una richiesta che dovrebbe essere rifiutata.

Perché la modifica e l'eliminazione rompono tutto

La traccia di audit (audit trail) è il prodotto. Lo scopo della contabilità in partita doppia è che ogni saldo si scomponga nelle registrazioni che lo hanno generato. Se le registrazioni possono essere alterate silenziosamente, la scomposizione non prova nulla: la traccia mostra ciò che qualcuno ha deciso di recente che dovesse mostrare.

I dati dichiarati smettono di coincidere con i libri contabili. Una dichiarazione IVA presentata a marzo riporta i numeri di marzo. Se modifichi una fattura di marzo a giugno, il tuo registro non concorda più con un documento già presentato a un'autorità fiscale. Nessuno se ne accorge fino a una riconciliazione e, a quel punto, la causa risale a mesi di transazioni precedenti.

Le frodi diventano invisibili. L'individuazione di manipolazioni dipende dalla capacità di vedere che qualcosa è cambiato. Laddove le registrazioni possono essere modificate direttamente, non c'è nulla da vedere: ed è esattamente il motivo per cui le amministrazioni fiscali in tutta l'UE richiedono che le registrazioni contabili siano a prova di manomissione (tamper-evident) e perché diversi Paesi certificano il software di fatturazione specificamente in base a questa proprietà.

Lo stato distribuito diverge. Se una fattura è stata inviata a un cliente, esportata in un file bancario, trasmessa a una piattaforma di fatturazione elettronica e letta dall'API di un partner, la modifica della tua copia non cambia nulla sulla loro. Non hai corretto un errore, hai creato una discrepanza.

Come funzionano realmente le correzioni

Ogni correzione legittima è un'aggiunta:

Situazione Meccanismo corretto
Registrazione di prima nota errata Contabilizza il relativo storno, quindi la registrazione corretta
Importo fatturato errato Emetti una nota di credito, quindi una nuova fattura se necessario
Periodo errato Contabilizza nel periodo aperto corrente, con la data in cui è avvenuta la correzione
Stima superata Storna i ratei o i risconti, registra il consuntivo - vedi i ricavi maturati o ratei attivi

Il risultato si legge come una narrazione: ecco cosa pensavamo, ecco quando abbiamo scoperto il contrario, ecco la correzione. Un revisore che chiede "che fine ha fatto la fattura S-1041?" ottiene una risposta completa anziché un numero che è sempre stato, a quanto pare, quel numero.

Il costo è che il registro contiene errori per sempre. Questo è il punto: un'azienda i cui libri contabili non mostrano alcuna correzione è o eccezionalmente fortunata o li sta modificando.

Cosa non è l'immutabilità

  • Non significa che "nulla può essere corretto". Qualsiasi cosa può essere corretta; la correzione avviene aggiungendo, non sovrascrivendo.
  • Non è la blockchain. Il concatenamento crittografico è un'implementazione della prova di manomissione (tamper-evidence); un registro relazionale a sola aggiunta (append-only) con vincoli applicati e un registro di audit (audit log) offre la proprietà contabile senza il fardello del consenso distribuito.
  • Non coincide con un registro di audit (audit log). Un registro di audit registra chi ha fatto cosa. L'immutabilità significa che i dati contabili in sé non cambiano. Servono entrambi, e rispondono a domande diverse.
  • Non si applica alle bozze. Una fattura in bozza è un documento di lavoro e può essere modificata liberamente. L'immutabilità inizia al momento dell'emissione, ovvero quando il documento diventa reale per qualcun altro.

Come Nordlet garantisce l'immutabilità

Tre meccanismi, tutti di natura strutturale anziché convenzionale:

Le registrazioni contabilizzate sono a sola aggiunta (append-only). Le registrazioni di prima nota vengono scritte una sola volta. Non esiste un endpoint che modifichi o elimini una transazione contabilizzata e POST /v1/ledger/journal/transactions/create effettua una validazione prima della scrittura: i debiti devono essere uguali ai crediti, i conti devono esistere ed essere movimentabili, il periodo deve essere aperto. Un registro sbilanciato non è uno stato che il database può rappresentare.

I periodi si bloccano. POST /v1/ledger/periods/lock chiude un mese e qualsiasi transazione datata in un periodo bloccato viene rifiutata, provenga essa da una registrazione manuale, da una fattura, da un'importazione bancaria o da un processo di riconoscimento automatizzato. Il blocco è ciò che fa sì che una dichiarazione presentata corrisponda permanentemente ai libri contabili, e lo sblocco è di per sé un'azione soggetta a audit. L'articolo sul periodo contabile descrive il flusso di lavoro.

Tutto viene sottoposto ad audit. Le operazioni che modificano lo stato vengono scritte in un registro di audit (audit log) specificando l'attore, l'azione, l'entità e un diff, incluse quelle automatizzate, che registrano un attore di sistema anziché fingere che l'azione sia stata compiuta da un essere umano. Quando la speculazione infragruppo (intercompany mirroring) crea una fattura, i registri di entrambe le società lo mostrano.

I documenti seguono la stessa regola: l'emissione di una fattura di vendita assegna un numero da una serie continua senza salti e la contabilizza; correggerla in seguito significa emettere una nota di credito, mai una modifica. La fattura originale, la nota di credito e il saldo risultante rimangono tutti visibili nella cronologia del cliente.

I documenti in bozza rimangono completamente modificabili e l'eliminazione è un'eliminazione logica (soft delete), ovvero un timestamp deletedAt che nasconde il record dalle query attive pur preservandolo.

FAQ

Che cos'è un registro immutabile?

Un registro contabile in cui le registrazioni contabilizzate non vengono mai modificate né eliminate. Le correzioni vengono effettuate aggiungendo registrazioni di storno o di rettifica, in modo che la cronologia completa, inclusi gli errori e le relative correzioni, rimanga parte integrante del registro.

Perché non posso semplicemente eliminare una registrazione di prima nota errata?

Perché la registrazione potrebbe essere già riflessa in una dichiarazione dei redditi presentata, in un documento inviato a un cliente o nei registri di un altro sistema. Eliminarla fa sì che i tuoi libri contabili non coincidano silenziosamente con nessuno di essi. Stornarla corregge i numeri lasciando traccia di ciò che è accaduto.

Un registro immutabile richiede la blockchain?

No. La blockchain è un modo per rendere i record a prova di manomissione. Una progettazione di database a sola aggiunta (append-only) con vincoli di sbilanciamento applicati, blocchi dei periodi e un registro di audit (audit log) garantisce le proprietà contabili rilevanti, senza la necessità di un consenso distribuito.

Posso modificare una fattura in bozza?

Sì. L'immutabilità si applica dal momento in cui un documento viene emesso e diventa reale per qualcun altro. Le bozze sono documenti di lavoro e possono essere modificate o eliminate liberamente.

Come posso correggere una registrazione in un periodo chiuso?

Contabilizza la correzione nel periodo aperto corrente, con la data in cui è avvenuta la correzione. Se i dati dichiarati del periodo chiuso erano materialmente errati, l'alternativa è riaprirlo deliberatamente, correggerlo, ripensare la dichiarazione e bloccarlo di nuovo; si tratta di un'azione soggetta a audit, che rappresenta il modo corretto di effettuare una riesposizione (restatement).