Bokföringens hjärta — en motor, sex anropare, samma säkerhet för alla.
I varje ekonomisystem finns ett kritiskt ögonblick: när en transaktion går från utkast till oåterkallelig bokföring. I Amber sker det genom en enda motor — oavsett om transaktionen kommer från en manuell verifikation, en attesterad leverantörsfaktura, en kundbetalning, en avskrivning eller en avtalsfakturering.
En motor. Sex anropare. Samma säkerhetsregler för alla.
Allt eller inget — ACID från start till mål
Hela uppdateringen körs i en SQL-transaktion. Om något misslyckas — en valideringsregel, en stängd period, ett ogiltigt konto — rullas allt tillbaka. Du får aldrig en halv verifikation i bokföringen.
Anroparen kan dessutom skicka in en egen transaktion och själv styra commit. Det betyder att flera verifikationer kan kopplas ihop i samma atomära operation — t.ex. en hel fakturaimport som måste lyckas helt eller inte alls.
Validering i flera lager
Innan en enda rad når huvudboken körs en kaskad av kontroller:
| Kontroll | Vad som verifieras |
|---|---|
| Balans | Summan måste vara noll. Vid skillnad — rollback. |
| Antal rader | Minst två rader. En enkel rad är aldrig en giltig verifikation. |
| Period | Datumet måste ligga i en öppen period. Stängda perioder skyddar bokslutet. |
| Konto | Måste finnas, vara aktivt, och vara giltigt på verifikationsdatumet. |
| Koddelar | Alla åtta dimensioner kontrolleras — finns, aktiv, inom giltighetsdatum. |
| Projekt | Samma — finns, aktivt, giltigt. |
| Valideringsregler | Kontospecifika regler (t.ex. “konto 4xxx kräver kostnadsställe från avdelning A”). Stöd för wildcard, intervall, kommaseparering. |
Vid första felet stoppas processen — användaren får ett tydligt meddelande och bokföringen rör sig inte ur fläcken.
Automatik som inte stör
När valideringen är klar tar motorn över för det smarta:
- Kodkomplettering fyller i koddelar som följer mönster (t.ex. “konto 5810 i kostnadsställe 100 ska alltid ha projekt P001”)
- Automatkonteringar lägger till parallella rader baserat på regler — typ momsfördelning, intern resultatallokering
- Periodisering bryter en hyresavi över 12 månader till 12 separata rader, med rätt period på varje
- Schablonmoms räknar ut den ej avdragsgilla delen utifrån koddelarnas schablonprocent och lägger till motbokningar
Allt detta sker innanför samma transaktion. Vid fel rullas även den automatiska tilldelningen tillbaka.
Slutkontroll efter automatik
Efter all kompletterings- och periodiseringsmotorik körs balanskontrollen en gång till. Skulle någon automatregel skapa obalans (vilket den inte ska, men säkerhet är nivåer) — rollback.
Först då skrivs raderna till huvudboken.
Underlaget följer med
Är en PDF kopplad till verifikationen — kvitto, faktura, avtal — kopieras den till bolagsspecifik arkivmapp med verifikationsnumret som filnamn. Underlaget är spårbart från transaktionen till källdokumentet i åratal framåt.
Anomalikontroll efter commit
När bokföringen är säkrad startar Amber en anomalikontroll i bakgrunden — utan att fördröja användaren. AI-motorn jämför verifikationen mot tidigare mönster på samma konto, leverantör och belopp. Avvikelser samlas i Insights och syns i nästa statusmail. Du får tid att granska innan revisorn frågar.
En motor för hela huset
| Källa | Använder samma motor |
|---|---|
| Manuell verifikation | ✓ |
| Attesterad leverantörsfaktura | ✓ |
| Kundinbetalning | ✓ |
| Avtalsfakturering | ✓ |
| Avskrivningar och anläggningsbokningar | ✓ |
| Automatiserade tester | ✓ |
Det betyder att en ny säkerhetsregel — t.ex. utökad periodvalidering eller ny anomalimotor — automatiskt får effekt över hela systemet. Inga sidodörrar in i huvudboken.
Det är därför bokföringen i Amber alltid stämmer
Säkerheten ligger inte i en checklista — den ligger i koden. Och i den enda dörren in.