HairConnect Handleiding Inloggen

Het kassajournaal

Bijgewerkt op 2026-08-22

Elke afgesloten kassabon komt in het journaal. Dat journaal is opgebouwd om te kunnen bewijzen dat er niets aan gesleuteld is — daarvoor hoef je zelf niets te doen, maar het verklaart wel waarom sommige dingen bewust niet kunnen.

Het bonnummer

Elke afgesloten bon krijgt een nummer uit de reeks van jouw salon, voor dit boekjaar: 2026-0148 — het jaartal, een streepje, en het volgnummer met vier cijfers.

  • Geen gaten. Het nummer wordt uitgedeeld terwijl de reeks vergrendeld is. Sluiten twee kassa's op dezelfde seconde af, dan wachten ze netjes op elkaar.
  • Geen dubbels. Er wordt nooit gerekend met "het hoogste nummer plus één".
  • Op 1 januari begint de nummering opnieuw bij 1.

De hashketting

Onder elke bon staat een regel als hash 3f9a2c…, met de uitleg Elke bon ketent aan de vorige; zo is manipulatie zichtbaar.

De hash wordt berekend over de vorige hash plus de inhoud van deze bon: het salon, het boekjaar, het nummer, het moment van afsluiten, de totalen en de btw, en per regel het soort, de medewerker, de omschrijving, het aantal, de eenheidsprijs, het btw-percentage en het regeltotaal.

Wijzigt er achteraf ook maar één cent, dan klopt de hash niet meer — en klopt vanaf daar de hele ketting niet meer. Ook over de jaarwissel heen loopt de ketting door.

Wat er nooit kan

  • Een kassabon verwijderen. De poging wordt geweigerd: Kassabonnen worden nooit verwijderd. Gebruik void() met een reden.
  • Een afgesloten bon wijzigen. Alleen de gegevens van een tegenboeking mogen er nog bij. Al de rest wordt geweigerd met: Een afgesloten kassabon mag niet meer wijzigen. Maak een tegenboeking.

Corrigeren doe je dus altijd met een tegenboeking.

De btw

De btw wordt per bonregel berekend en op dat moment afgerond, terwijl je afrekent. Rapporten tellen die centen alleen maar op; ze rekenen de btw nooit opnieuw uit het dagtotaal.

Dat is niet muggenzifterij: bij drie regels van € 3,33 wijkt een herberekening uit het totaal een cent af van de bon die de klant in handen kreeg — en dan klopt je aangifte niet meer met je kassa.

Cadeaubonnen, tegoed en losse kortingregels dragen geen btw. Bij een cadeaubon volgt de btw pas bij het inruilen, op wat er dan gekocht wordt.

Waar je het journaal terugvindt

Scherm Waarvoor
Rapporten → Dagontvangsten het rapport dat naar de boekhouder gaat: per dag, per btw-tarief, per betaalmiddel
Rapporten → Transacties elke bon apart, doorzoekbaar; geannuleerde bonnen staan er standaard bij maar tellen niet mee
Rapporten → Kassaboek de contante kant: wisselgeld, ingaven, uitnames, tellingen
Instellingen → Logboek wie welke bon afsloot en wie welke bon tegenboekte

Het logboek bewaart wie iets deed, niet wat er op de bon stond. Dat laatste staat in het journaal zelf.

Nakijken

Er bestaat een controle die de nummering en de hashketting per salon en per boekjaar narekent. Ze wijzigt niets en herstelt niets — ze zegt of het journaal sluit:

php artisan register:verify-journal --tenant=<slug> --year=2026

Het antwoord is Journaal sluit. Geen gaten, geen gebroken hashes. of een opsomming van de problemen.

Veelgestelde vragen

Wat als de kassa offline is? Aanslaan mag, afrekenen niet. Het bonnummer en de hash komen van de server: zonder verbinding kan een bon dus geen fiscaal document worden. De kladbon blijft op je toestel staan en gaat mee zodra de verbinding er is.

Ik zie een tegenboeking bij mijn dagomzet staan. Telt die dubbel? Nee. In de omzetrapporten vallen zowel het origineel als de tegenboeking weg. Zou alleen het origineel wegvallen, dan zou de negatieve tegenboeking de dagomzet te laag maken.