Pelarguide

Fakturering: vad lagen kräver.

Vad en svensk faktura måste innehålla, varför momsen summeras per momssats och aldrig blandas ihop, vad som gör en nummerserie obruten, när en betalning är sen och vad som får tas ut för det — och varför ett fel på en skickad faktura rättas med en kreditfaktura i stället för med en redigering.

Vad fakturan måste ange

En svensk faktura är inte ett brev med ett belopp längst ned. Den är ett underlag som någon annans bokförare ska kunna stämma av mot vad Skatteverket kräver, och det mesta som står på den är ett krav snarare än ett formval.

Dokumentet som modulen renderar anger, i den ordningen: säljare och köpare med namn och adress, säljarens organisationsnummer och momsregistreringsnummer, köparens där de är kända, fakturanummer, fakturadatum, förfallodatum, leveransdatum där arbetet har ett, betalningsvillkor i dagar och kundnummer. Därefter varje rad — beskrivning, antal, enhet, à-pris, rabatt, momssats, belopp. Därefter momsen summerad per momssats, öresavrundning som en egen post när den inte är noll, summan och betalningsreferensen. Har säljaren F-skattsedel står det på fakturan, eftersom det är den meningen som talar om för köparen att de inte ska göra skatteavdrag på arbetskostnaden.

Två mindre beslut följer av samma resonemang. Dokumentet är på svenska trots att resten av produkten är på engelska, eftersom läsaren inte är en användare av systemet utan kundens bokförare — "moms" och "öresavrundning" är namnen på kraven, inte översättningar av dem, och en faktura med rubriken "VAT summary" måste översättas tillbaka innan den kan bockas av. Och det organisationen inte har fyllt i utelämnas i stället för att skrivas ut som en tom etikett. "Org.nr:" följt av ingenting läses som ett fel i programvaran, inte som en lucka i en inställningsruta.

Moms 25, 12, 6 och 0 — aldrig ett snitt

Sverige tar ut fyra momssatser och modulen tar emot fyra: 25, 12, 6 och 0 procent. Allt annat avvisas redan där det skrivs in, för en 24 som slinker igenom ger en faktura som är fel på det sätt ingen upptäcker förrän kvartalet ska deklareras.

Satsen hör till raden, inte till dokumentet. En faktura med material till 25 procent och persontransport till 6 är skyldig Skatteverket två siffror, och fakturan skriver ut båda — momssats, underlag, moms — i en egen sammanställning. En blandad sats går inte att deklarera hur rätt den än summerar, så modulen räknar aldrig fram någon. Sammanställningen per momssats fästs dessutom vid fakturan när den skickas i stället för att räknas om den dag någon öppnar dokumentet flera år senare: hur satserna grupperas är en regel i kod, och en lagstadgad siffra ska inte bero på vilken version av den regeln som råkar vara driftsatt.

Tre regler ligger under det. Rabatten dras av före momsen, eftersom moms ska betalas på det som faktiskt debiterades och inte på ett listpris kunden aldrig betalade. Varje belopp är ett heltal ören och inget flyttal rör pengar. Och avrundningen sker exakt en gång per rad, så att summorna är summor av avrundade rader och inte avrundningar av exakta summor — de två skiljer sig åt med några ören på en lång faktura, och bara den ena har egenskapen kunden faktiskt kontrollerar: att raderna på sidan går ihop med siffran under dem.

Öresavrundningen får en egen rad. Två och en halv timme à 645 kr är 1 612,50 netto, 403,13 i moms och 2 015,63 brutto; dokumentet avrundar till 2 016,00 och skriver ut de 37 örena i stället för att vika in dem i summan. Halvan avrundas bort från noll åt båda hållen, så en kreditering på 100,50 betalas tillbaka som 101 och inte tyst som 100. Därför måste momssatsen sitta på raden tar deklarationssidan av det.

En obruten serie är inte en radräkning

Bokföringslagen förutsätter att de fakturanummer ett företag ger ut bildar en obruten serie. Den självklara implementationen — räkna fakturorna, lägg till ett — uppfyller ingen av de två halvorna. Två anrop räknar fram samma antal och båda gör anspråk på samma nummer, och tas en rad bort blir nästa nummer en dubblett.

Därför är räknaren en egen rad, och att hämta ett nummer betyder att låsa den raden, läsa den och skriva tillbaka den i en och samma transaktion. Två personer som skickar olika fakturor i samma sekund köar bakom låset några hundra millisekunder i stället för att tävla. Det är rätt ordning: att skicka är ingen het kodväg, och en obruten serie är ett lagkrav medan genomströmningen här är en preferens.

Var numret hämtas betyder lika mycket som hur. Det hämtas inne i samma transaktion som renderar och lagrar fakturans PDF, aldrig före den. Hämtas det utanför lämnar den första misslyckade renderingen ett hål: räknaren har flyttat sig, inget dokument bär det den passerade, och ett år senare kan ingen säga vad det saknade numret avsåg. Att hämta det inuti är bara säkert därför att räknaren är en tabellrad och inte en databassekvens — en sekvens överlever en rollback, vilket är precis det som gör sekvenser obrukbara här. En rad gör det inte, så en rollback lämnar tillbaka numret och nästa anrop får det.

Resultatet är en serie utan luckor att förklara. Ett utkast tar aldrig något nummer, så att kasta ett kostar ingenting. En andra klickning på Skicka ger inget andra nummer utan ett 409 som namnger fakturan som redan finns. Och fakturor och kreditfakturor räknas på var sin räknare i var sin serie, eftersom båda börjar på 1 — ligger kreditfakturorna i fakturaserien krockar den första rättelsen någon gör med faktura nummer 1. Hela resonemanget om nummerserien.

Betalningsvillkor, och varför vi inte levererar någon räntesats

Standardvillkoret är 30 dagar. Villkoren kopieras till fakturan från kunden när utkastet skapas och läses från fakturan när den skickas — aldrig från kundregistret igen i det ögonblicket, för då skulle förfallodagen på ett dokument vars villkor avtalades för veckor sedan flyttas tyst, av att någon råkade redigera kunden däremellan.

Fakturadatumet sätts i svensk tid och inte i applikationens UTC. De två timmarna efter midnatt varje sommar är ett UTC-datum gårdagens, och den första i en månad lägger det dokumentet i föregående momsperiod — upptäckt av den som stämmer av deklarationen, inte av någon på kontoret.

Dröjsmålsränta levereras helt utan förvalt värde, och det är ett beslut och inte en glömska. Räntelagen § 6 sätter den till Riksbankens referensränta plus åtta procentenheter, och referensräntan ställs om två gånger om året. En sats inskriven i en konfigurationsfil vore fel inom ett halvår, och den vore fel på ett dokument kunden har rätt att bestrida. En organisation som inte har konfigurerat någon sats tar ingen ränta, vilket är det enda svar som inte kan bli fel. En sats som avtalats med en enskild kund går före husets inställning, eftersom det är det som är påskrivet.

När ränta väl tas ut räknas den på det utestående beloppet, över de dagar som faktiskt förflutit, fördelat på 365 — och den bär ingen moms. Ränta är ersättning för en sen betalning och inte en omsättning av något; moms på den är ett fel kundens revisor hittar. Beloppet sparas på den påminnelse som skickades i stället för att räknas om vid läsning, så den som bestrider en avgift får se siffran som stod på deras brev och inte en ny för varje dag som gått.

Avgifterna följer de lagstadgade taken — 60 kronor för en påminnelse och 180 för ett inkassokrav enligt förordning (1981:1057) — och den första nivån bär som förval ingen alls, eftersom en första påminnelse med en avgift på sig läses som ett straff för en trög banköverföring. Betalningsvillkor och dröjsmålsränta.

OCR, Luhn-siffran och varför en kreditfaktura saknar den

OCR-referensen är fakturanumret med en kontrollsiffra på slutet, och kontrollsiffran är hela poängen. Banken avvisar en feltryckt referens i betalningsögonblicket i stället för fjorton dagar senare, och en inbetalning vars referens går ihop kan matchas mot en faktura av en maskin i stället för av någon som läser ett kontoutdrag.

Två varianter förekommer och banken avgör vilken. Mjuk är numret plus en Luhn-kontrollsiffra. Hård lägger in en längdsiffra före den, så att banken också kan avvisa en referens med rätt siffror i fel antal — en siffra som faller bort mitt i passerar Luhn ungefär var tionde gång, och längdkontrollen fångar merparten av resten. Tjugofem siffror är taket oavsett variant. Blir referensen längre avvisas betalningen i banken, vilket är det sämsta felet av dem alla: kunden ville betala och kunde inte.

Luhn är samma algoritm som på ett kortnummer, och det är värt att säga vad den inte gör. Den fångar varje enskild felskriven siffra och nästan varje omkastning av två intilliggande. Den är ingen signatur. En referens som går ihop är sannolikt rätt inknappad; den är inte med säkerhet vår.

En kreditfaktura får medvetet ingen referens alls. Ingenting betalas någonsin in till vårt konto mot en sådan. Att ge den en referens vore direkt skadligt och inte bara onödigt: de två serierna räknas oberoende av varandra, så kreditfaktura 1 och faktura 1 reduceras till samma siffror och därmed till samma OCR, och en inbetalning med den referensen skulle hitta två dokument och sakna sätt att välja. OCR-nummer och bankgiro tar bankdelen.

En kreditfaktura, aldrig en redigering

Ett utkast är ett arbetsdokument: inget nummer, fritt redigerbart, och att kasta det kostar ingenting. En skickad faktura är motsatsen på alla tre punkter. Den har lästs av någon utanför företaget, den bär ett nummer ur en serie som ska vara obruten, och den ska kunna återges exakt som den skickades i sju år.

Därför finns ingen väg från skickad tillbaka till utkast, och det kommer aldrig att finnas någon. Statusmaskinen har ingen sådan övergång, och en enda kontroll av om dokumentet är redigerbart är den grind varje skrivning i modulen går igenom — fakturan, raderna, ordningen, borttagningen. PDF:en ingår i samma löfte: den renderas en gång vid utskick, lagras på en privat disk med en SHA-256-kontrollsumma bredvid sig och serveras därefter i stället för att renderas om. En mall som ändras nästa vår kan inte skriva om förra höstens dokument, för förra höstens dokument är filer och inte en rendering av dagens mall.

Ett fel besvaras med ett andra dokument som pekar på det första, tar sitt eget nummer ur sin egen serie och har tecknet vänt. Båda ligger kvar i bokföringen och paret nettar till det som faktiskt var skyldigt. Kreditfakturan ställs ut direkt i stället för att bli liggande som utkast, eftersom en rättelse som bara finns för oss är en rättelse kunden inte kan se — medan originalet fortfarande krävs in på hela beloppet. Originalet rörs inte annat än i status, och det bara när hela beloppet har krediterats: en delkrediterad faktura är fortfarande utestående för resten, och att markera den krediterad skulle tyst ta pengar företaget fortfarande har att fordra ur åldersanalysen.

Fyra former av kreditering finns, eftersom alla fyra inträffar: hela fakturan, en rad av sex, en del av ett antal, eller ett överenskommet belopp utan någon rad bakom sig. Den sista anger sin momssats i stället för att gissa den, eftersom en faktura med material till 25 procent och persontransport till 6 inte har någon enda sats att gissa — och en gissning deklarerar fel siffra för perioden. Påminnelse, inkasso och avgifter tar vid när den rättade fakturan ändå inte betalas.

Läs fördjupningarna

Vanliga frågor

Vad måste stå på en svensk faktura?

Säljare och köpare, säljarens organisationsnummer och momsregistreringsnummer, fakturanummer, fakturadatum, förfallodatum, leveransdatum där sådant finns, betalningsvillkor, varje rad med antal, à-pris, rabatt och momssats, momsen summerad per momssats, öresavrundning när den inte är noll, summan och betalningsreferensen. Vårt dokument anger dessutom F-skatt, eftersom det är den meningen som säger åt köparen att inte göra skatteavdrag på arbetskostnaden. Den som stämmer av allt detta är kundens bokförare, och det är därför dokumentet är på svenska.

Kan jag ändra en faktura efter att den skickats?

Nej, och inte genom någon ingång. Det finns ingen övergång från skickad tillbaka till utkast, och samma kontroll av redigerbarhet vaktar fakturan, raderna, ordningen och borttagningen. Ett fel rättas med en kreditfaktura som pekar på originalet och bär sitt eget nummer. Det är ingen begränsning i den här implementationen utan vad bokföringslagen menar med en faktura.

Vilken dröjsmålsränta tar systemet ut som förval?

Ingen. Räntelagen § 6 sätter dröjsmålsräntan till Riksbankens referensränta plus åtta procentenheter, och referensräntan ställs om två gånger om året — en sats inbyggd i programvaran vore fel inom ett halvår, och fel på ett dokument kunden får bestrida. En organisation som inte konfigurerat någon sats tar ingen ränta. En sats som avtalats med en enskild kund går före husets inställning.

Varför redovisas momsen på flera rader i stället för som en summa?

Därför att Sverige frågar vad som debiterades vid varje momssats, och en genomsnittssiffra går inte att deklarera hur rätt den än summerar. En faktura med material till 25 procent och persontransport till 6 är skyldig två siffror. Sammanställningen visar momssats, underlag och moms för var och en, och uppdelningen fästs vid dokumentet när det skickas i stället för att räknas om flera år senare.

Får en kreditfaktura en egen OCR-referens?

Nej. Ingenting betalas någonsin in till vårt konto mot en kreditfaktura, och fakturor och kreditfakturor numreras på oberoende räknare — så kreditfaktura 1 och faktura 1 skulle reduceras till samma siffror och därmed samma referens. En inbetalning med den referensen skulle träffa två dokument, och matchningen skulle sakna sätt att välja.

Se det på en av era egna fakturor

Tjugo minuter, inga bildspel. Vi sätter upp modulen med ett av era egna jobb och ställer ut ett skarpt dokument mot det före samtalet. Fakturering börjar på 139 kr i månaden, med 14 dagars provperiod.

AES-256 i vila TLS 1.3 vid överföring GDPR · EU-datalagring Revisionslogg