Mikä on muuttumaton kirjanpito? Tilintarkastusketjut ja miksi kirjausten poistaminen on ohjelmistovirhe
Miksi kirjattuja kirjanpitotapahtumia ei saa koskaan muokata tai poistaa, miten korjaukset tehdään vain lisäyksiä sallivassa kirjanpidossa (append-only ledger) ja mitä tilikauden lukitukset sekä lokit todellisuudessa takaavat.
Muuttumaton kirjanpito (immutable ledger) tarkoittaa järjestelmää, jossa kirjattuja tapahtumia ei koskaan muuteta eikä poisteta. Korjaukset tehdään lisäämällä uusia kirjauksia, jotka kumoavat tai oikaisevat vanhat, jolloin kirjanpidon historia on itsessään osa kirjanpitoa.
Kyseessä ei ole tekninen mieltymys. Tämä tekee kirjanpitoaineistosta todistusaineistoa eikä pelkkää senhetkistä mielipidettä menneisyydestä – ja siksi pyyntöihin ”lisätä poistonappi tositteille” tulee vastata kieltävästi.
Miksi muokkaaminen ja poistaminen rikkovat kaiken
Tilintarkastusketju (audit trail) on itse tuote. Kaksinkertaisen kirjanpidon tarkoitus on, että jokainen saldo voidaan purkaa osiinsa sen tuottaneiden kirjausten kautta. Jos kirjauksia voidaan muuttaa salaa, purku ei todista mitään: ketju näyttää vain sen, minkä joku on viimeksi päättänyt sen näyttävän.
Ilmoitetut luvut lakkavat täsmäämästä kirjanpidon kanssa. Maaliskuussa annettu arvonlisäveroilmoitus perustuu maaliskuun lukuihin. Jos maaliskuun laskua muokataan kesäkuussa, kirjanpitosi ei enää vastaa veroviranomaiselle jo toimitettua asiakirjaa. Kukaan ei huomaa tätä ennen täsmäytystä, ja siinä vaiheessa virheen juurisyy on kuukausien takaisten tapahtumien takana.
Petokset muuttuvat näkymättömiksi. Väärinkäytösten havaitseminen edellyttää, että muutokset ovat näkyvissä. Jos kirjauksia voi muokata suoraan, mitään ei jää näkyviin – ja juuri tästä syystä EU-alueen veroviranomaiset vaativat kirjanpitoaineistoilta muutosturvaa (tamper-evident) ja useat maat sertifioivat laskutusohjelmistot nimenomaan tämän ominaisuuden perusteella.
Hajautettu tila eriytyy. Jos lasku on lähetetty asiakkaalle, viety pankkitiedostona, toimitettu verkkolasku-alustalle ja luettu kumppanin rajapinnan kautta, oman kopiosi muokkaaminen ei muuta muiden kopioita mitään. Et ole korjannut virhettä; olet luonut ristiriidan.
Miten korjaukset todellisuudessa tehdään
Jokainen asianmukainen korjaus on lisäys:
| Tilanne | Oikea toimintatapa |
|---|---|
| Virheellinen kirjaustapahtuma | Kirjaa sitä vastaava oikaisukirjaus ja sen jälkeen oikea kirjaus |
| Väärä laskutussumma | Laadi hyvityslasku ja tarvittaessa uusi lasku |
| Väärä kausi | Kirjaa tapahtuma nykyiselle avoimelle kaudelle päivättynä korjauspäivälle |
| Arvio osoittautuu vääräksi | Kumoa jaksotus ja kirjaa todellinen määrä – katso jaksotettu myyntituotto |
Lopputulos lukee kuin kertomus: tätä luulimme, tällöin saimme uutta tietoa, tässä on korjaus. Tilintarkastajalle, joka kysyy ”mitä laskulle S-1041 tapahtui?”, saadaan kattava vastaus sen sijaan, että luku olisi aina – ilmeisesti – ollut juuri kyseinen luku.
Haittapuolena on, että virheet säilyvät kirjanpidossa ikuisesti. Siinä onkin koko ajatus – yrityksen kirjanpito, jossa ei näy yhtään korjausta, on joko poikkeuksellisen onnekas tai sitten sen kirjauksia muokataan jälkikäteen.
Mitä muuttumattomuus ei ole
- Ei tarkoita sitä, ettei mitään voi korjata. Mitä tahansa voidaan korjata; korjaus tehdään vain lisäämällä uutta, ei koskaan korvaamalla vanhaa.
- Ei ole lohkoketju (blockchain). Kryptografinen ketjutus on vain yksi tapa toteuttaa muutosturva. Vain lisäyksiä salliva relaatiotietokannan kirjanpito tiukoilla rajoitteilla ja tapahtumalokilla tuottaa kirjanpidolliset ominaisuudet ilman hajautettuun konsensukseen liittyvää taakkaa.
- Ei ole sama asia kuin loki (audit log). Loki kirjaa ylös kuka teki mitäkin. Muuttumattomuus tarkoittaa, että itse kirjanpidon data ei muutu. Tarvitset molempia, ja ne vastaavat eri kysymyksiin.
- Ei koske luonnoksia. Laskuluonnos on työkirjaasiakirja, jota voi muokata vapaasti. Muuttumattomuus alkaa laskun lähettamisestä (issue) – eli siitä hetkestä, jolloin asiakirja tulee todelliseksi jollekin toiselle osapuolelle.
Miten Nordlet varmistaa tämän
Kolmen rakenteellisen, ei pelkkään ohjeistukseen perustuvan mekanismin kautta:
Kirjatut tapahtumat ovat vain lisättäviä (append-only). Kirjanpitotapahtumat kirjoitetaan kerran. Järjestelmässä ei ole rajapintapistettä, joka muokkaisi tai poistaisi kirjatun tapahtuman, ja POST /v1/ledger/ledger/transactions/create validoi tiedot ennen tallennusta: debetien on vastattava kreditejä, tilien on oltava olemassa ja niille pitää pystyä kirjaamaan, ja kauden on oltava avoin. Epätasapainossa oleva kirjanpito ei ole tila, jota tietokanta voisi esittää.
Kaudet lukitaan. POST /v1/ledger/periods/lock sulkee kuukauden, ja kaikki kyseiselle lukitulle kaudelle päivätyt tapahtumat hylätään – tulivatpa ne manuaalisena kirjauksena, laskuna, pankkituonnina tai automaattisena jaksotusajona. Lukituksen ansiosta annettu ilmoitus täsmää lopullisesti kirjanpidon kanssa, ja lukituksen avaaminen on itsessään lokitettu toimenpide. Tilikausi-artikkeli kattaa tämän työnkulun.
Kaikki lokitetaan. Tilaa muuttavat toiminnot kirjoitetaan lokiin, johon tallentuvat toimija, toiminto, kohde ja muutosdata (diff). Tämä koskee myös automaattisia prosesseja, jotka tallentavat järjestelmätoimijan sen sijaan, että väitettäisiin ihmisen tehneen asian. Kun konserniyhtiöiden välinen peilaus luo laskun, molempien yrityksien lokeissa näkyy tämä merkintä.
Asiakirjat noudattavat samaa sääntöä: myyntilaskun lähettäminen varaa numeron aukottomasta sarjasta ja tekee kirjauksen. Sen jälkeinen korjaus tarkoittaa hyvityslaskua, ei koskaan muokkaamista. Alkuperäinen lasku, hyvityslasku ja niistä syntyvä saldo pysyvät kaikki näkyvissä asiakkaan historiassa.
Laskuluonnokset ovat edelleen vapaasti muokattavia, ja poistaminen on pehmeä poisto (soft delete) – tietueeseen tallentuu deletedAt-aikaleima, joka piilottaa sen aktiivisista hauista säilyttäen sen kuitenkin järjestelmässä.
FAQ
Mikä on muuttumaton kirjanpito?
Kirjanpito, jossa kirjattuja tapahtumia ei koskaan muokata tai poisteta. Korjaukset tehdään lisäämällä oikaisu- tai kumoavia kirjauksia, jolloin koko historia – mukaan lukien virheet ja niiden korjaukset – pysyy osana kirjanpitoaineistoa.
Miksi virheellistä kirjausta ei voi vain poistaa?
Koska kirjaus saattaa jo näkyä annetussa veroilmoituksessa, asiakkaalle lähetetyssä asiakirjassa tai toisen järjestelmän tiedoissa. Sen poistaminen aiheuttaa sen, että kirjanpitosi on salaa ristiriidassa kaikkien näiden kanssa. Kirjauksen kumoaminen korjaa luvut jättäen samalla todisteen siitä, mitä tapahtui.
Vaatiiko muuttumaton kirjanpito lohkoketjun?
Ei. Lohkoketju on yksi tapa tehdä tietueista muutosturvallisia. Vain lisäyksiä salliva tietokantarakenne, jossa on pakolliset tasapainoehdot, kausilukitukset ja lokitus, tuottaa tarvittavat kirjanpidolliset ominaisuudet ilman hajautettua konsensusta.
Voinko muokata laskuluonnosta?
Kyllä. Muuttumattomuus astuu voimaan siitä hetkestä, kun asiakirja luodaan ja siitä tulee todellinen jollekin toiselle. Luonnokset ovat työkirjoja, joita voi muuttaa ja poistaa vapaasti.
Miten korjaan kirjauksen suljetulla kaudella?
Kirjaa oikaisu nykyiselle avoimelle kaudelle päivättynä korjauksen tekohetkelle. Jos suljetun kauden ilmoitetut luvut olivat olennaisesti väärin, vaihtoehtona on avata kausi tarkoituksellisesti uudelleen, korjata tiedot, antaa uusi ilmoitus ja lukita kausi uudelleen – tämä on lokitettu toimenpide ja oikea tapa oikaista tilinpäätöstietoja.