Bokföringslagen (BFL)
Bokföringslagen (BFL) är den svenska lag som reglerar hur företagets bokföring ska föras, arkiveras och kvalitetssäkras. Den gäller alla som är bokföringsskyldiga — aktiebolag, ekonomiska föreningar, vissa föreningar, de flesta enskilda firmor.
Redofy bygger bokföringen så att BFL:s viktigaste paragrafer är strukturella invariants — regler som inte bara följs, utan som tekniskt inte går att bryta.
5 kap — grundläggande regler
Section titled “5 kap — grundläggande regler”5 kap 1 § — Verifikationsordning (gapfri numrering)
Section titled “5 kap 1 § — Verifikationsordning (gapfri numrering)”“Verifikationerna ska numreras i en löpande följd.”
Redofys enforcement:
- PostgreSQL SQL-funktion
allocate_verifikationsnummer()medSELECT ... FOR UPDATEpåverification_series. - Nummer allokeras vid commit, inte vid utkast — avvisade utkast konsumerar inga nummer.
- Separata serier per bolag, verifikationsserie och räkenskapsår.
- Ingen möjlighet att överhoppa nummer, inte ens som administratör.
Om systemet fastnat i ett fel där nummer inte allokeras får commit inte fortsätta förrän problemet är löst — integritet före tillgänglighet.
5 kap 2 § — Tidsnärhet
Section titled “5 kap 2 § — Tidsnärhet”“Affärshändelser ska bokföras så snart det kan ske.”
Tolkat i praktiken:
- Kontanta affärshändelser — senast närmaste arbetsdag.
- Fakturering — senast vid utgången av påföljande månad om omsättningen är < 3 Mkr. Högre omsättning kräver snabbare.
- Betalningar — när banken har bokfört.
Redofys enforcement:
- Bankagenten triggas inom sekunder efter bankrad inkommer.
- Kvittoagenten triggas direkt vid uppladdning.
- Deadline-varningar i inkorgen om utkast ligger obokförda mer än en vecka.
- Revisoragenten flaggar tidsavvikelser i nattlig granskning.
Tidsnärhet är inte en invariant — det är en målnivå med varningar. Verkligheten är att användare ibland glömmer bokföra, och systemet ska signalera utan att hindra.
5 kap 5 § — Oföränderlighet
Section titled “5 kap 5 § — Oföränderlighet”“En bokförd verifikation får inte ändras. Rättelse görs genom ny verifikation (rättelseverifikation).”
Redofys enforcement:
- PostgreSQL-trigger
BEFORE UPDATE OR DELETEpåverificationsochverification_rows:- Om rad har
status = 'bokförd'→RAISE EXCEPTION. - Inte ens databasadministratören kan ändra detta utan att inaktivera triggern.
- Om rad har
- Commit-ringen är den enda som kan skriva till dessa tabeller.
- Rättelseverifikationer länkas via
corrects_verification_idtill originalet — både original och rättelse ligger kvar separat i huvudboken.
Detta är den absolut viktigaste strukturella invarianten — om den faller faller bokföringens bevisvärde.
5 kap 6 § — Verifikationsordning (underlag)
Section titled “5 kap 6 § — Verifikationsordning (underlag)”“Varje affärshändelse ska kunna följas från verifikation till bokföring.”
Redofys enforcement:
- FK-kedja från underlag → utkast → verifikation.
- Varje verifikation har minst ett kopplat underlag (kvitto, bankrad, faktura, eller manuellt dokument).
- Agent-beslut loggas i
agent_tool_callsså kedjan underlag → AI-analys → förslag → godkännande → verifikation är rekonstruerbar. - Sökbarhet — från en verifikation kan du klicka till underlaget, från underlaget till alla verifikationer som använder det.
5 kap 7 § — Verifikationsinnehåll
Section titled “5 kap 7 § — Verifikationsinnehåll”“En verifikation ska innehålla: datum, motpart, händelseförlopp, belopp och momsspecifikation.”
Redofys enforcement:
- Ring 2 commit-check — verifikationen valideras mot alla obligatoriska fält innan den bokförs.
- Saknas ett fält → commitet avvisas med tydlig felmeddelande om vad som saknas.
- Agenternas utkast måste innehålla alla fält innan de kan passeras till commit.
5 kap 11 § — Behandlingshistorik (audit trail)
Section titled “5 kap 11 § — Behandlingshistorik (audit trail)”“Det ska finnas en behandlingshistorik som visar ändringar och åtgärder.”
Detta är ett så stort område att det har sin egen sida.
Kort: varje AI-beslut, varje godkännande, varje ändring loggas i agent_tool_calls och behandlingshistorik med:
- Tidsstämpel.
- Aktör (användare eller agent).
- Åtgärd.
- Påverkat data (före/efter-hash).
Hash-kedjas dagligen och rotas signeras med HSM-nyckel för tamper-evident arkivering.
Exempel på strukturell enforcement
Section titled “Exempel på strukturell enforcement”Scenariot: en användare (eller angripare) försöker ändra en bokförd verifikation genom att direkt editera databasen.
-- Försök att ändra beloppetUPDATE verifications SET total_amount = 5000 WHERE id = 'abc123';
-- PostgreSQL-triggern avvisar:ERROR: Cannot modify bookförda verifications (BFL 5 kap 5 §)DETAIL: Status = 'bokförd' - use rättelseverifikation insteadIngen vanlig användare kan göra detta eftersom de saknar SQL-access. Men även en utvecklare med direkt DB-access eller en framtida säkerhetsbrist kan inte bryta regeln.
Undantag vid systemfel
Section titled “Undantag vid systemfel”Vid katastrofala fel — databaskrasch, migrationsfel, beräkningsfel i agenten som hamnat i huvudboken — finns en sista utväg: administratörs-rättelse via separate support-process. Det är:
- Bara tillgängligt efter skriftlig begäran från firmatecknaren.
- Utförs av Redofy-support, inte av kunden.
- Loggas separat i
bfl_override_logmed full motivering. - Resulterar i rättelseverifikation med
override_reason-fält satt.
Detta har aldrig hänt i praktiken under Redofy:s livstid. Men mekanismen finns om den absolut behövs.
4 kap — löpande bokföring
Section titled “4 kap — löpande bokföring”BFL 4 kap reglerar den löpande bokföringen:
- Grundbok (journal) — kronologisk.
- Huvudbok — systematisk per konto.
- Verifikationer — underlag.
Redofy:
- Journal / Grundbok — uppfyller grundboken.
- Huvudbok — uppfyller huvudboken.
- Varje verifikation med kopplat underlag — uppfyller verifikationskravet.
6 kap — årsbokslut och årsredovisning
Section titled “6 kap — årsbokslut och årsredovisning”BFL 6 kap reglerar vad som ska rapporteras årligen:
- Årsbokslut — alltid. Intern sammanställning av året.
- Årsredovisning — för större företag (AB, föreningar över storleksgränser).
Redofy bygger både automatiskt från den löpande bokföringen. Årsredovisningen är i iXBRL-format till Bolagsverket. Se iXBRL.
7 kap — arkivering
Section titled “7 kap — arkivering”BFL 7 kap reglerar arkivering. Se Arkivering för djupdykning.
Kort:
- 7 år för verifikationer, grundbok, huvudbok, årsredovisning.
- 3 år för skannade pappersoriginal parallellt med digitala kopior.
K-regelverken (BFNAR)
Section titled “K-regelverken (BFNAR)”Bokföringsnämnden (BFN) publicerar detaljerade regler via BFNAR — “Bokföringsnämndens allmänna råd”:
- K1 — enskild firma, förenklat årsbokslut.
- K2 — mindre aktiebolag.
- K3 — medelstora och större företag.
- K4 — internationella företag (IFRS-liknande).
Redofy väljer regelverk baserat på företagets storlek och form och laddar rätt kontoplan + rapportmallar automatiskt.
Digital bokföring (BFNAR 2013:2)
Section titled “Digital bokföring (BFNAR 2013:2)”Särskilda regler för digitala underlag (kvittobilder, mejl, elektroniska fakturor):
- Original-medium ska noteras — “ursprungligen papper” vs “ursprungligen digital”.
- Skannade pappersoriginal ska arkiveras både digitalt och fysiskt i 3 + 7 år.
- Digitala original — ingen parallell pappersretention krävs.
- Integritet — den digitala kopian ska vara oläslig manipulation.
Redofy taggar varje underlag med original_medium och hanterar retentionen enligt vilken typ det är.
Påföljder vid brott mot BFL
Section titled “Påföljder vid brott mot BFL”Allvarligare brott mot BFL kan leda till:
- Förseningsavgifter — vid försenad årsredovisning till Bolagsverket.
- Straffavgifter — skattetillägg från SKV vid felaktiga deklarationer.
- Bokföringsbrott (BrB 11 kap) — straffrättsligt ansvar om bokföringen uppsåtligen eller grovt oaktsamt är så bristfällig att den inte ger en rättvis bild. Böter till fängelse 2 år.
- Personligt ansvar för styrelseledamöter vid missbruk eller grov oaktsamhet.
Redofy:s strukturella invariants gör det svårt att bryta BFL även avsiktligt — men du är alltid ytterst ansvarig för att bokföringen är sann och korrekt.