Z Report
The Z report is the daily close for a workstation – sales, returns and VAT are aggregated, the control box signs, and an accounting voucher is created. Swedish cash register law (SKVFS 2014:9) requires every POS workstation to close daily with a Z report.
X report vs Z report
| Report | Purpose | Resets | Voucher | Requires CCA |
|---|---|---|---|---|
| X report | Mid-day check of today's sales | No | No | No |
| Z report | End-of-day close | Yes (counters) | Yes (accounting) | Yes |
X report can be run multiple times a day – it's just a "snapshot" of current sales, with no control code or fiscal effect. Use it to check how the day is going or reconcile a section mid-day.
Z report runs once per day per workstation – it locks the day in stone.
Create a Z report (manually)
- In the POS: Settings → Cash management → Close day
- Confirm all orders are completed
- Vendion runs a pre-flight check (see below)
- If green → the control box signs the Z report
- The Z report prints and becomes a voucher in the bookkeeping module
Automatic Z report
Can be scheduled in the accounting settings:
- Auto Z report: on/off
- Time: e.g. 23:58 (local time)
- Days: any combination of weekdays
Fits restaurants with fixed closing times who want to skip manual closes.
Pre-flight compliance gate (the 60-second rule)
Swedish cash register law requires that all paid orders are signed by the control box before a Z report can be created. Vendion automatically verifies that no paid orders remain unsigned for more than 60 seconds.
If any unsigned payment is found → Z report is blocked. A fiscal incident is logged and Vendion Ops gets an alert email.
The 60-second rule: An order can be in "pending_finalize" for up to 60 seconds – that's a grace period for control box communication (network latency, retries). After 60 sec without control code = fault.
What the Z report contains
- Total sales (gross + net)
- Returns (count + amount)
- VAT breakdown per rate (12%, 25%, 6%)
- Payment method breakdown (card, cash, gift card, invoice)
- Category breakdown (food, drink, modifiers)
- Discounts (count + total deducted)
- Cash drawer balance (opening + closing)
- Receipt count for the day
- Gift card issuances (öre)
- Grand total since activation (running sum since the control box was activated – never resets)
- Z report number (running, 1..N)
- Control code + verification code from the control box
When the Z report is blocked
| Scenario | Fix |
|---|---|
| Paid order without control code > 60 sec | Wait for the control box response, or contact support for "force Z report with PIN" |
| Control box unreachable (offline) | Check network, test via "Test now" in settings, then retry |
| Journal memory in the control box full | Force Z report with reset flag (PIN required, escalate to support) |
| Orders still open | Close all open tabs first |
| Another Z report already running | Wait – only one Z report per workstation at a time |
After the Z report
- Journal memory locked – all control codes for the day are now immutable (cannot be updated)
- Accounting voucher created – see Z report → accounting voucher
- Grand totals updated – running sums since control box activation
- Receipt sequence continues – next day starts with the next receipt number
- Next day can start – new orders can be registered
Journal memory and traceability
The Z report is logged in the journal memory as its own entry with a running sequence number. This is an immutable log – Skatteverket can request full history on audit, and Vendion can deliver everything from day 1.
Link to bookkeeping (BAS chart of accounts)
Every Z report automatically generates a voucher with debit/credit lines:
| Entry | Amount |
|---|---|
| DEBIT 1580 (Card receivables) | 10,000 öre |
| CREDIT 3001 (Food revenue 12%) | 7,143 öre |
| CREDIT 3003 (Alcohol revenue 25%) | 1,600 öre |
| CREDIT 2620 (Output VAT 12%) | 857 öre |
| CREDIT 2610 (Output VAT 25%) | 400 öre |
Deep dive: Z report → voucher, X vs Z in bookkeeping, Cash reconciliation and Cash variance 3740.
Tips and routines
- Shift manager runs the Z report at close – not the staff working the shift (for permissions)
- Count the cash first before running Z – that way variances vs the system can be caught immediately
- Save a copy of the Z report digitally + paper (at least 7 years per Swedish bookkeeping law)
- Auto-Z at 23:58 for restaurants closing late – skip the manual work
- On power outage: Orders become "pending_finalize" – POS resumes signing when power returns; Z report can only run once all orders are signed
- Before a Skatteverket audit: Run SIE export for the period the auditor asks for – see the next article
This feature is part of Vendion POS.
Curious how it looks in practice? Read more about the product or book a short demo.
Was this article helpful?
