Nordlet

← Dokumentation / Ordlista

Vad är en oföränderlig huvudbok? Spårbarhet och varför det är en bugg att radera poster

Varför bokförda verifikat aldrig får ändras eller raderas, hur rättelser fungerar i en append-only-huvudbok, och vad periodlås och revisionsloggar faktiskt garanterar.

En oföränderlig huvudbok (immutable ledger) är en bokföring där bokförda verifikat aldrig ändras eller raderas. Rättelser görs genom att lägga till nya verifikat som motposterar eller justerar de gamla, vilket gör att historiken i räkenskaperna utgör en del av själva räkenskaperna.

Detta är inte en teknisk preferens. Det är det som gör bokföringsdata till bevis snarare än en tillfällig uppfattning om det förflutna - och det är anledningen till att "lägg till en raderingsknapp för verifikat" är en begäran som bör avvisas.

Varför redigering och radering förstör allt

Revisionsspåret är produkten. Syftet med dubbel bokföring är att varje saldo kan brytas ned i de poster som har skapat det. Om poster kan ändras i tysthet bevisar nedbrytningen ingenting: spåret visar det som någon senast bestämde att det skulle visa.

Inlämnade uppgifter slämmer inte längre överens med böckerna. En momsdeklaration som lämnas in i mars anger mars månads siffror. Om du redigerar en marsfaktura i juni stämmer huvudboken inte längre överens med ett dokument som redan har skickats till Skatteverket. Ingen lägger märke till detta förrän vid en avstämning, och då ligger orsaken månader av transaktioner bortåt.

Bedrägerier blir osynliga. Att upptäcka manipulation bygger på att man kan se att något har förändrats. Där poster kan redigeras direkt finns det inget att se - vilket är exakt anledningen till att skattemyndigheter inom EU kräver att bokföringsmaterial ska vara ändringsskyddat, och varför flera länder certifierar faktureringsprogram specifikt utifrån denna egenskap.

Distribuerat tillstånd divergerar. Om en faktura har skickats till en kund, exporterats till en bankfil, överförts till en plattform för e-fakturering och lästs av ett partners API, förändrar redigering av din kopia ingenting av deras. Du har inte korrigerat ett fel; du har skapat en differens.

Hur rättelser faktiskt fungerar

Varje legitim rättelse är ett tillägg:

Situation Korrekt mekanism
Felaktigt verifikat Bokför en motpost och därefter det korrekta verifikatet
Felaktigt fakturerat belopp Utfärda en kreditfaktura, och därefter en ny faktura vid behov
Fel period Bokför i den aktuella öppna perioden med datum för när rättelsen inträffade
Bedömning som har ersatts Motpostera upplupna poster, bokför det faktiska utfallet - se upplupna intäkter

Resultatet läses som en berättelse: här är vad vi trodde, här är när vi fick veta annat, här är rättelsen. En revisor som frågar "vad hände med faktura S-1041?" får ett fullständigt svar i stället för en siffra som till synes alltid har varit just den siffran.

Priset för detta är att huvudboken innehåller misstag för evigt. Det är det som är poängen - ett företag vars räkningar inte visar några rättelser har antingen haft exceptionell tur eller redigerar dem.

Vad oföränderlighet inte är

  • Inte "ingenting kan åtgärdas". Vad som helst kan korrigeras; det korrigeras genom att lägga till, inte genom att skriva över.
  • Inte blockkedja. Kryptografisk länkning är en implementering av ändringsskydd; en relationsbaserad append-only-huvudbok med tvingande begränsningar och en revisionslogg ger dig bokföringsegenskapen utan bördan av distribuerat konsensus.
  • Inte samma sak som en revisionslogg. En revisionslogg registrerar vem som gjorde vad. Oföränderlighet innebär att själva bokföringsdata inte ändras. Du vill ha båda, och de besvarar olika frågor.
  • Inte tillämpligt på utkast. Ett fakturautkast är ett arbetsdokument och kan redigeras fritt. Oföränderligheten börjar vid utfärdandet - den tidpunkt då dokumentet blir verkligt för någon annan.

Hur Nordlet upprätthåller detta

Tre mekanismer, som alla är strukturella snarare än konventionsbaserade:

Bokförda poster är skrivskyddade för tillägg (append-only). Verifikat skrivs en gång. Det finns ingen ändpunkt som redigerar eller raderar en bokförd transaktion, och POST /v1/ledger/journal/transactions/create validerar före skrivning - debet måste vara lika med kredit, konton måste finnas och vara bokföringsbara, och perioden måste vara öppen. En obalanserad huvudbok är inte ett tillstånd som databasen kan representera.

Perioder låses. POST /v1/ledger/periods/lock stänger en månad, och transaktioner som dateras till en låst period avvisas - oavsett om de kommer från manuell registrering, en faktura, en bankimport eller en automatiserad periodisering. Låsningen är det som gör att en inlämnad deklaration permanent stämmer överens med böckerna, och upplåsning är i sig en granskad åtgärd. Artikeln om bokföringsperiod täcker detta arbetsflöde.

Allting granskas. Tillståndsändrande åtgärder skrivs till en revisionslogg med aktör, åtgärd, entitet och en differens (diff) - inklusive automatiserade åtgärder, som registrerar en systemaktör i stället för att låtsas att en människa utförde den. När koncernintern spegling skapar en faktura visar båda företagens loggar detta.

Dokument följer samma regel: utfärdande av en utgående faktura allokerar ett nummer från en lückenlos (hålfri) serie och bokför; att korrigera den i efterhand innebär en kreditfaktura, aldrig en redigering. Originalfakturan, kreditfakturan och det resulterande saldot förblir synliga i kundens historik.

Utkast till dokument förblir fullt redigerbara, och radering är en mjuk radering (soft delete) - en tidsstämpel deletedAt som döljer posten från aktiva sökningar samtidigt som den bevaras.

FAQ

Vad är en oföränderlig huvudbok?

En bokföringshuvudbok där bokförda poster aldrig modifieras eller raderas. Rättelser görs genom att lägga till motposter eller justeringsverifikat, så att den fullständiga historiken - inklusive misstag och deras korrigeringar - förblir en del av underlaget.

Varför kan jag inte bara radera ett felaktigt verifikat?

Eftersom posten redan kan finnas med i en inlämnad momsdeklaration, ett dokument som har skickats till en kund eller ett annat systems register. Om du raderar den stämmer dina böcker i tysthet inte längre överens med något av dem. Genom att motpostera den korrigeras siffrorna samtidigt som det lämnas bevis på vad som hände.

Kräver en oföränderlig huvudbok blockkedja?

Nej. Blockkedja är ett sätt att göra poster ändringsskyddade. En append-only-databasdesign med tvingande saldobegränsningar, periodlås och en revisionslogg levererar de bokföringsegenskaper som spelar roll, utan distribuerat konsensus.

Kan jag redigera ett fakturautkast?

Ja. Oföränderlighet gäller från den sekund ett dokument utfärdas och blir verkligt för någon annan. Utkast är arbetsdokument och kan ändras eller raderas fritt.

Hur korrigerar jag en post i en stängd period?

Bokför rättelsen i den aktuella öppna perioden med datum för när rättelsen inträffade. Om den stängda periodens rapporterade siffror var väsentligen felaktiga är det alternativet att medvetet öppna den igen, korrigera, omrapportera och låsa om - en granskad åtgärd, vilket är det ärliga sättet att göra en omräkning (restatement) på.