Användarmanual — Kassan
Uppdateras löpande i takt med nya funktioner. Teknisk dokumentation finns på
dok-sidan; denna sida är för den som står i kassan.
Systemet nås på kassaexperten.se — kassan ligger på /kassa.html
och alla sidor är samlade på testsidorna (den gamla adressen
kassa.karlberg.nu skickas hit automatiskt).
Komma igång
- Öppna kassan i webbläsaren (surfplatta eller dator). Notan sparas lokalt — laddar du om sidan ligger den kvar.
- Pricken uppe till höger visar kontakten med kontrollsystemet: grön = allt normalt, röd = kassan säljer vidare offline och signerar i efterhand (se nedan).
- Mer-knappen öppnar panelen med allt utöver själva säljandet. Första gången anger du adminnyckeln — den sparas i webbläsaren tills du trycker "Lås panelen".
- Månknappen växlar mellan ljust och mörkt läge (sparas per enhet).
Sälja
- Tryck på produkterna — de hamnar på notan till höger. Plus/minus ändrar antal.
- Välj betalsätt: Kort, Swish, Kontant (eller presentkort, se nedan).
- Kvittot visas med kontrollkod. "Rensa notan" tar bort allt (registreras i journalen, som lagen kräver).
Alla priser hämtas ur kassans register — det går inte att ändra pris i säljögonblicket.
Vill du ändra ett pris görs det i driftvyns produktadmin, och ändringen loggas automatiskt.
Parkera notan (flera kunder/bord samtidigt)
- Parkera under notan sparar undan den (ge den ett namn, t.ex. "Bord 4") så du kan börja på en ny.
Notor-knappen visar alla parkerade — öppna en för att fortsätta, eller släng den.
- Har du redan en nota igång när du öppnar en parkerad, parkeras den pågående automatiskt — inget försvinner.
- Att slänga en parkerad nota registreras i journalen (som en borttagning), precis som "Rensa notan".
Parkerade notor ligger kvar på enheten även om sidan laddas om.
Skanna produkter (streckkod)
- Sätt en streckkod (EAN) på produkten i driftvyns produktadmin. Skanna sedan direkt i kassan —
produkten hamnar på notan utan att du behöver trycka något.
- Samma scanner som för presentkort funkar (USB/Bluetooth i tangentbordsläge). Kassan känner själv
igen skillnaden: presentkortskoder skannas i sin kodruta, produkter skannas rakt mot sidan.
Kortbetalning via QR (Stripe)
- Komma igång: driftvyn → "Kortbetalningar via Stripe" → Aktivera. Registreringen görs hos
Stripe (ca 5 min — ha bank-id och kontonummer redo). Slå sedan på växeln "Kort via Stripe-QR"
i inställningarna.
- Ta betalt: tryck Kort som vanligt — en QR-kod visas i kassan och på kundskärmen. Kunden
skannar med mobilen och betalar med kort eller Klarna. När betalningen är klar skapas kvittot
automatiskt (betalsätt: Kort).
- Pengarna betalas ut direkt till ert bankkonto via Stripe, minus plattformsavgiften.
Kassan skapar aldrig ett kvitto förrän betalningen är bekräftad, och en betalning kan
aldrig användas till två kvitton.
- Växeln avstängd = Kort-knappen fungerar som förut (extern kortterminal, registrering på förtroende).
Mejla kvittot till kunden
- På kvittorutan efter betalningen finns ett fält "Mejla kvittot" — skriv kundens e-postadress
och tryck Mejla. Kvittot skickas exakt som det ser ut, med kontrollkod och allt.
- Bara det senaste kvittot, inom 15 minuter, kan mejlas — det räknas då som leveransen av
det elektroniska kvittot. Behöver kunden ett äldre kvitto används kvittokopian (märkt KOPIA, max en).
- Fältet syns bara när mejl är uppsatt på servern.
- Automatiskt vid Stripe-betalning: kunden anger sin e-post hos Stripe när hen betalar via
QR — kassan förifyller adressen i mejla-fältet. Slå på växeln "Autokvitto" i inställningarna
så skickas kvittot helt automatiskt, utan att någon behöver trycka. (Vid terminal-/kontantköp finns
ingen adress att hämta — kortnumret ser kassan aldrig.)
Presentkort
Sälja
- Tryck Sälj presentkort, ange belopp (5–10 000 kr) och hur kunden betalar.
- Kvittot får en kod (
PK-XXXX-XXXX) och en QR-kod — det ÄR presentkortet. Ge det till kunden.
Lösa in
- Slå in varorna som vanligt och tryck Betala med presentkort.
- Skanna QR-koden på kundens kvitto (en ansluten scanner skickar automatiskt) eller knappa in koden — saldot visas direkt.
- Räcker saldot dras beloppet och resten sitter kvar på kortet till nästa gång.
Varför behövs koden? Koden är själva kortet — utan den vet kassan inte
vilket saldo som ska dras. Att betala "utan nummer" går därför inte; det vore som en tom plånbok.
Koden är också skyddet: bara den som HAR kvittot (eller en bild på QR-koden) kan använda pengarna.
Skannern gör det enkelt — ett pip i stället för åtta tecken. Delad betalning (presentkort + kort på
samma köp) stöds inte ännu. Presentkortet är en förhandsfunktion — momshanteringen utreds innan skarp drift.
Retur & kvittokopia
- Retur: Mer-panelen → ange kvittonumret → Retur → bekräfta med ett andra tryck. Hela kvittot returneras (pengar tillbaka samma väg som betalningen). Ett kvitto kan bara returneras en gång.
- Kopia: samma väg, knappen Kopia. Max EN kopia per kvitto (lagkrav) — kopian märks KOPIA i extra stor stil.
Växelkassa
Mer-panelen → Växelkassa: ange förändringen i kronor (plus = insättning, minus = uttag).
Saldot visas i panelen och följer med i X- och Z-rapporterna. Varje förändring journalförs.
Dagsavslut & rapporter
- X-rapport = avläsning mitt på dagen. Påverkar ingenting, kan tas hur ofta som helst.
- Z-rapport = dagsavslut. Stänger dagens period och öppnar nästa — kräver ett bekräftande andra tryck.
- Båda kan laddas ner som textfil direkt, och i efterhand från driftvyns rapportlista.
- Journalutskrift laddar ner dagens alla registreringar som läsbar text.
- Dagens försäljning visas överst i Mer-panelen (bara information — ersätter inte X-rapporten).
Skärmar
- Kundskärm (
/kund.html): visar kundens köp rad för rad, summan och "Tack för köpet".
Öppna från Mer-panelen och dra fönstret till en extern skärm — ELLER öppna adressen på en helt egen
enhet (surfplatta vid disken); den uppdaterar sig själv varannan sekund.
- Dagens försäljning-skärm (
/dagens.html): stor siffervy för personalen — dagens summa,
antal kvitton, per betalsätt. Kräver adminnyckeln en gång, uppdaterar sig var 30:e sekund. Sätt den på
en skärm i köket/kontoret om ni vill följa dagen.
- Översikten (
/start.html, "Alla sidor" i Mer-panelen): startsida med länkar till
allt — kassan, bokningarna, skärmarna, driftvyn och dokumentationen. Bra som bokmärke.
Bordsbeställning & kök
- Komma igång: kräver aktiverade Stripe-betalningar. Slå på växeln
"Bordsbeställning via QR + köksskärm" i inställningarna, skriv ut bordslappar från
/bordqr.html (finns på översikten) och sätt en på varje bord.
- Kundens flöde: skanna bordets QR → välj i menyn (kassans aktiva produkter) →
"Beställ & betala" → kort/Klarna i mobilen. Betalningen sker först — obetalda
beställningar når aldrig köket, och köpet registreras automatiskt med kvitto när
betalningen är bekräftad.
- Köksskärmen (
/kok.html, Mer-panelen eller översikten; adminnyckel en gång):
nya beställningar visas med bordsnummer och plingar till — tryck "Levererad till bordet"
när maten är ute. Beställningar äldre än 15 minuter blir rödmarkerade.
- Kundens mobil visar "Beställningen är på väg" med kvittonummer så fort köket har den.
Servering — personalens bordssida
- Serveringssidan (
/servera.html, adminnyckel en gång): tryck på ett bord,
välj varor och Skicka till köket — utan betalning. Blåmarkerade bord har öppna beställningar.
- När bordet ska betala: "Ta betalt i kassan" flyttar bordets alla rader till kassans nota —
betala som vanligt (kort/Stripe-QR/kontant/Swish). Stäng sedan bordet med "Stäng bord".
- Serveringens beställningar är arbetsordrar till köket — själva köpet registreras (kvitto + journal)
när betalningen tas i kassan.
Självbetjäningskiosk
- Ställ en surfplatta/skärm med
/kiosk.html i butiken. Kunden väljer i menyn, betalar
via QR med sin mobil (kort/Klarna) och får ett stort hämtnummer på skärmen.
- Beställningen dyker upp i köket som "Avhämtning #nummer". Kiosken nollställer sig själv
efter varje beställning. Kräver samma växel som bordsbeställning.
Bokningsförskott (no show-skydd)
- Sätt ett belopp i inställningsfältet "Bokningsförskott i kronor" (kräver Stripe) så måste
kunden betala förskottet direkt vid onlinebokningen — tiden bekräftas (och SMS skickas) först när
betalningen gått igenom. Obetalda bokningar släpper tiden efter ca 45 minuter.
- Förskottet dras av vid besöket (manuellt i denna version) — det är en deposition via Stripe,
inte ett kvitto i kassan.
Bokföring (SIE-export)
- Driftvyn → "SIE-export till bokföringen": välj period och ladda ner en SIE-fil som
importeras direkt i Bokio, Fortnox, Visma m.fl.
- Filen innehåller ett verifikat per dagsavslut (serie K, verifikationsnummer = Z-nummer),
byggt direkt ur kvittona så att debet och kredit alltid balanserar på öret.
| Konto | Vad |
| 1910 | Kassa — kontantbetalningar |
| 1580 | Fordran kortbetalning — kortköp (blir bank när inlösaren betalar ut) |
| 1930 | Bank — Swish |
| 2421 | Skuld presentkort — sålda kort ökar skulden, inlösta minskar den |
| 3001 / 3002 / 3003 | Försäljning 25 / 12 / 6 % moms (netto) |
| 3004 | Momsfri försäljning |
| 2611 / 2621 / 2631 | Utgående moms 25 / 12 / 6 % |
Sålda presentkort bokförs som skuld (2421), inte som försäljning — momsen tas när
kortet löses in. Stäm gärna av med er redovisningskonsult att kontoplanen passar er.
Bokningskalender
- Öppna från Mer-panelen → Bokningskalender (eller
/bokning.html på valfri enhet).
Kräver adminnyckeln en gång per enhet.
- Lägg upp tjänster först: knappen "Tjänster" → namn, längd i minuter och (valfritt) en koppling
till en produkt i kassan. Kopplingen behövs för att kunna ta betalt med ett tryck.
- Boka: tryck på en ledig tid i veckovyn (eller "+ Ny bokning") och fyll i kund, telefon och
eventuell personal. Bläddra vecka med ‹ › — sidan minns visad vecka vid omladdning.
- SMS till kunden: slå på växeln "Boknings-SMS" i kassans inställningar så får kunden en
bekräftelse direkt och en påminnelse inom ett dygn före tiden. Kräver telefonnummer på bokningen.
(Avstängt som standard — SMS kostar per styck.)
- Ta betalt: öppna bokningen → "Ta betalt i kassan" — tjänstens produkt läggs i notan och
betalas som vanligt. Markera sedan bokningen som klar, eller avboka vid återbud.
- Kalendern är fristående från kassaregistret — bokningar hamnar aldrig i journalen; det gör bara
det vanliga köpet när du tar betalt.
Onlinebokning — låt kunderna boka själva
- Slå på växeln "Onlinebokning" i inställningarna, så kan kunder boka själva på
/boka.html — lägg länken på er hemsida eller i sociala medier.
- Kunden väljer tjänst, dag och en ledig halvtimmestid, och fyller i namn + mobilnummer.
Bokningen dyker upp i er kalender direkt, märkt "Onlinebokning".
- Bokningsbara tider styrs av fältet "Onlinebokningens tider" i inställningarna
(t.ex. 09:00-17:00). En tid visas bara som ledig om ingen annan bokning överlappar.
- Med Boknings-SMS påslaget får kunden bekräftelse och påminnelse automatiskt.
Onlinebokningen är skyddad mot missbruk (max 3 bokningar per timme och besökare).
- Avbokar du en bokning får kunden automatiskt ett avbokningsbesked via SMS
(om Boknings-SMS är på och tiden inte redan passerat).
Inställningar
- Mer-panelen → Inställningar: butikens namn (visas i kassan och på kundskärmen) och
funktionsväxlar — stäng av det som inte passar er verksamhet (t.ex. kontant, presentkort,
kundskärm). Avstängda funktioner försvinner ur kassan och spärras även tekniskt.
- Alla inställningsändringar loggas automatiskt i behandlingshistoriken (lagkrav).
- Produkter hanteras i driftvyn (
/intern.html) → "Visa/uppdatera produkter".
Säljsidan & priserna (för ägaren)
Priserna som visas på förstasidan (kassaexperten.se) ändras i
driftvyn under Säljsida & priser (kräver adminnyckeln):
de tre prisnivåerna (månadsavgift + procent av försäljningen, med egen säljtext per nivå),
konkurrentpriserna som förifylls i kalkylatorn, hårdvarupriserna, kortinlösarens avgiftsrader
(visas öppet på säljsidan) och erbjudandet om sponsrad utrustning mot bindningstid.
Spara — säljsidan visar de nya priserna direkt, ingen omstart behövs. Alla funktioner ingår
i alla nivåer; det är bara betalmodellen som skiljer.
Procentdelen på kortköp tas ut automatiskt via plattformsavgiften i Stripe: i driftvyns
sektion Kortbetalningar finns fältet "Plattformsavgift för denna kassaägare" —
sätt procenten efter kundens valda prisnivå (tomt fält = standard). Gäller från nästa kortköp.
Personalliggare (tagg-stämpling)
Slå på växeln Personalliggare i inställningarna. Personalen stämplar in och ut genom att
blippa sin tagg på kassans RFID-läsare (läsare i tangentbordsläge, samma som streckkodsscannern).
Vid blipp visas en fråga — "Vill du stämpla IN eller UT?" — så ingen stämplar fel av misstag;
därefter bekräftar en grön remsa "Anna — instämplad 07:58". När ingen är instämplad låses kassan
("Kassan är låst — blippa din tagg") och öppnas direkt vid instämpling; går personalliggaren inte att
nå låses kassan aldrig — försäljningen går alltid först. Den som saknar tagg kan stämpla med knappen i
tidrapport-appen (tid.karlberg.nu). Taggen kopplas till den anställde i tidrapportens personalformulär
(ställ markören i taggfältet och blippa), och ny personal kan CSV-importeras från er befintliga liggare
(namn;personnummer;telefon). Vid Skatteverkets kontrollbesök: öppna
/personal.html — där syns vem som är instämplad just nu och utdrag för
valfri period, med personnummer. Rättelser görs i efterhand av admin och loggas separat — ursprungliga
stämplingar ändras aldrig. Verksamhetens namn och organisationsnummer sätts i tidrapportens inställningar.
Tillbehör att ansluta
| Tillbehör | Hur | Status |
| Extern kundskärm | HDMI till platta/dator och dra kundskärmsfönstret dit — eller egen enhet mot /kund.html | Fungerar |
| QR-/streckkodsscanner | USB eller Bluetooth, läge "tangentbord (HID)". Skannar produkternas streckkoder rakt in i notan och presentkortens QR i kodrutan — inga drivrutiner behövs | Fungerar |
| Skärm för dagens försäljning | Valfri enhet mot /dagens.html | Fungerar |
| Kvittoskrivare (papper) | ESC/POS-skrivare | Planerad |
| Kortterminal (Stripe S700/S710/WisePOS E) | INTEGRERAD: kassan skickar summan till terminalen
när du trycker Kort — kunden blippar, kassan ser betalningen och skriver kvittot. Registrera terminalen
i driftvyn under Kortbetalningar: starta terminalen, anslut nätverk,
generera parkopplingskod (Inställningar → Generate pairing code) och ange koden + butikens adress.
I betalrutan finns Avbryt och "Betala via QR i stället" | Fungerar (kräver aktiverat Stripe-konto) |
| Annan fristående kortterminal | Terminalen sköter kortbetalningen separat (beloppet slås in
på terminalen) — kassan registrerar köpet som Kort | Fungerar |
| Kontrollenhet (CleanCash) | INGÅR i abonnemanget — en central Typ C-enhet (delas av flera
kassor) ansluts via kassans kontrollager; ingenting att installera hos kunden | Väntar på leverantör |
Om nätet eller kontrollsystemet ligger nere
- Kassan fortsätter sälja. Kvittot märks "utfärdat utan kontakt med kontrollsystemet" och signeras automatiskt i efterhand när kontakten är tillbaka — du behöver inte göra något.
- Statusraden visar hur många kvitton som väntar på signering.
- Kortbetalning offline är terminalens funktion (chip + PIN), inte kassans — kassan registrerar bara köpet.
API-översikt (för integrationer)
Fullständig teknisk referens finns i docs/kassa.md i repot. De viktigaste:
| Endpoint | Vad | Nyckel |
POST /api/kop | Genomför köp (även presentkortsköp/-inlösen) | – |
GET /api/status | Kassans läge + inställningar | – |
GET /api/presentkort/:kod | Presentkortssaldo | – (koden är nyckeln) |
POST /api/retur, POST /api/kopia | Returkvitto / kvittokopia | Admin |
GET/POST /api/vaxelkassa | Växelkassa | Admin |
POST /api/rapport/x, /api/rapport/z | Dagrapporter | Admin |
GET /api/dagens | Dagens försäljning (informationsvy) | Admin |
GET /api/journal/utskrift | Journal som läsbar text | Admin |
GET /api/export/journal | Journalexport (Skatteverkets XML) | Admin |
GET/POST /api/kundskarm | Kundskärmens visningsdata | – |
GET/POST /api/bokning, POST /api/bokning/:id/status | Bokningar (lista/skapa/status) | Admin |
GET /api/bokning/tjanster, POST /api/admin/bokning/tjanst | Bokningsbara tjänster | Admin |
GET /api/boka/info, /lediga, POST /api/boka | Publik onlinebokning (kräver påslagen växel) | – |
POST /api/kvitto/mejla | E-postkvitto (senaste kvittot, inom 15 min) | – |
GET /api/export/sie | SIE-fil till bokföringen (period) | Admin |
POST /api/admin/installningar, /api/admin/produkter | Inställningar / produkter | Admin |