Vad som byggts, hur det fungerar, varför händelserna sker — och vägen till tillverkardeklaration. Version –. Till kassan · Intern driftvy
Strategin: bygg kärnflödet först, läs regelverket mot Skatteverkets riktiga schemafiler (inte sammanfattningar), och låt varje steg bevisas — journalexporten validerar mot den officiella XSD:n, och observatörsloggen är bevisat passiv (köp fullföljs även när loggen avsiktligt kraschats).
anslut, signeraKvitto, hämtaRäknare, exporteraXML, ärTillgänglig, tillverkningsnummer.kontrollogg, syns i driftvyn): felsökning och statistik.
Maskad, gallras efter 30 dagar, ligger utanför den kritiska vägen — får gå sönder utan att kassan påverkas.Kvittona exporteras som XML enligt SKVFS 2021:16 och valideras mot Skatteverkets officiella schemafiler
(ligger i repot, kassa/skatteverket/). Kvitton är oföränderliga — exporten läser, ändrar aldrig.
Skatteverket bestämmer vad en kontrollenhet ska göra och vilka uppgifter som ska skickas dit, samt exportformatet — men inte hur kassan tekniskt pratar med boxen. Varje tillverkare (CleanCash/Retail Innovation, Infrasec med flera) har sitt eget protokoll, oftast dokumenterat först när man blir integratörspartner.
Varje kontakt mellan kassan och kontrollsystemet loggas som en händelse. Detta betyder de:
| Händelse | Vad det är — och varför det sker |
|---|
Kräver adminnyckel — logga in i driftvyn så visas flödet även här.
Kassaregisterprogram ska ha unikt versionsnummer (4 kap. 3 §) — versionen följer med i journalexporten. Uppdateras vid varje förändring, i samma commit som koden.
Fullständigt kravextrakt med källor: kassa/skatteverket/KRAV.md.
Princip: minimera funktionsytan → minimera kravytan — villkorade funktioner byggs först när någon behöver dem.
Dokumentationen bor i koden (kassa/app/public/dok.js) och uppdateras i samma commit som förändringen.
Djupare: docs/kassa.md, kassa/PROJECT.md, kassa/decisions.md.