---
title: "Reports: read the X report and run closures | Vivlab POS"
description: "Read the X report for the current period, run the Z closure on each trading day, then the monthly and annual closures, and find, read and print every signed closure."
url: https://docs.vivlab.com/en/pos/reports
---

# Reports

This screen is where you close your register's books. A **closure** freezes the totals of a period (a day, a month or a fiscal year) in a signed report: once the period is closed, no sale can be recorded in it or changed any more. French law requires these closures from businesses that take payments from consumers, and Vivlab does not run them for you: you start them from this screen.

<DocsAccess />

## What do you want to do?

- [Understand the three closures](#comprendre-les-clotures)
- [Read the X report for the current period](#consulter-le-ticket-x)
- [Run the day's Z closure](#cloturer-la-journee)
- [Close the elapsed months](#cloturer-les-mois)
- [Close the elapsed fiscal year](#cloturer-l-exercice)
- [Find and read a closure](#consulter-une-cloture)
- [Print an X report or a closure](#imprimer-un-rapport)
- [Handle a closure that could not be confirmed](#cloture-non-confirmee)

## Understand the three closures {#comprendre-les-clotures}

Closures are run register by register: each register has its own series of closures, numbered in sequence (Z no. 1, Z no. 2 and so on). The screen always acts on the register used on this device.

<DocsScreenshot name="pos-reports-empty" alt="The Reports page before the first closure, with Close the current period and Ticket X." :width="1290" :height="394" />

| Closure             | When to run it                          | What it seals                                                                                            |
| ------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Closure Z**       | Each trading day, at the end of the day | The receipts recorded since the previous Z closure (or since the register opened)                        |
| **Monthly closure** | After each month end                    | A full calendar month, from midnight on the 1st to the 1st of the next month, even a month without sales |
| **Annual closure**  | After the end of your fiscal year       | A full fiscal year, whose totals are the sum of the year's monthly closures                              |

The **fiscal year** is your accounting year. It starts on the first day of the month set in **Settings**, **Company** section, **Fiscal year** block (**First month of the fiscal year**): with January, it matches the calendar year. See [Settings](https://docs.vivlab.com/en/pos/settings.md).

Each closure holds two totals:

- **Period turnover incl. VAT**: the sum of the period's receipts, sales as positive amounts and refunds as negative amounts, VAT included;
- **Perpetual turnover incl. VAT**, also called the **grand total**: the sum of all the register's receipts since it opened. It is never reset and adds up from one closure to the next.

For example, a first day with two sales of €120 and €30 and a refund of €20 gives a Z no. 1 with €130 period turnover and €130 perpetual turnover. The next day, one sale of €50 gives a Z no. 2 with €50 period turnover and €180 perpetual turnover.

Periods follow the Paris calendar (`Europe/Paris`), whatever the device's time zone.

::: warning These closures are your responsibility
The **Closures you must perform** box at the top of the screen says so: daily (Z), monthly and annual closures are not automatic. If a Z is missed, the next one includes every receipt recorded since the previous closure, but the obligation is still one Z per trading day.
:::

## Read the X report for the current period {#consulter-le-ticket-x}

The **Ticket X** (X report) is a provisional statement: it shows the totals of the register's current period, since the last Z closure, without closing anything. Read it as often as you like, for example to check the day's figure before counting your cash.

<DocsSteps>

1. In the **Management** menu, open **Reports**.
2. Tap **Ticket X**.
3. Read the period's totals (the content is the same as a closure's, see [Find and read a closure](#consulter-une-cloture)). The **Live preview** badge reminds you that nothing is sealed.
4. Tap the **Refresh** button (the circular arrow) to include sales made since you opened the X report, or **Print** to print it.

</DocsSteps>

## Run the day's Z closure {#cloturer-la-journee}

The **Z closure** (or Z report) seals every receipt recorded on the register since the previous Z closure. Run it on each trading day, once the last sales are rung up.

<DocsSteps>

1. In **Management** > **Reports**, tap **Close the current period**.
2. Check the register shown in the window, then tap **Close the current period** to confirm.
3. Wait a few moments: the closure is signed then archived. A message says **1 closure performed** and the closure opens.

</DocsSteps>

The following sales start a new period, which the next Z will seal. If no receipt has been recorded since the last closure, no new Z is created: the message **No new receipt since the last closure** appears, with the last closure.

::: info Returns after a closure
A sealed period can no longer be changed. If a customer brings back an item sold before the closure, the return is recorded on today's date, in the current period. See [Receipts](https://docs.vivlab.com/en/pos/receipts.md).
:::

## Close the elapsed months {#cloturer-les-mois}

In the **Closures you must perform** box, the **Monthly closure** line shows **Months to close** followed by the number of pending months and the date of the first one, or **No month to close** with the end of the current month.

<DocsSteps>

1. In **Management** > **Reports**, on the **Monthly closure** line, tap **Close**.
2. Read the number of months concerned in the window, then tap **Confirm**.

</DocsSteps>

Each finished calendar month not yet closed is sealed with its totals, including a month without sales, then archived. A register's first monthly closure starts when the register opened.

## Close the elapsed fiscal year {#cloturer-l-exercice}

The **Annual closure** line shows **Fiscal years to close** with the dates of the first pending fiscal year, or **No fiscal year to close** with the dates of the current fiscal year.

<DocsSteps>

1. In **Management** > **Reports**, on the **Annual closure** line, tap **Close**.
2. Read the window: it shows the fiscal year's dates (or the number of fiscal years when several are pending) and the number of months that remain to be closed first.
3. Tap **Confirm**.

</DocsSteps>

The fiscal year's months that are not closed yet are closed first, then the fiscal year is calculated from its signed monthly closures and archived. You therefore don't need to run the monthly closures beforehand.

::: warning Changing the fiscal year's first month
The **First month of the fiscal year** cannot be changed while an annual closure is pending on a register. First close the elapsed fiscal year from the reports of each register concerned.
:::

## Find and read a closure {#consulter-une-cloture}

The list shows the register's closures, newest first, with their type and number, their period, the operator who ran them and the period total.

<DocsSteps>

1. In **Management** > **Reports**, filter by **Closure type** if needed: **All**, **Z**, **Monthly** or **Annual**.
2. Choose **This register** or **All registers** to also see the other registers' closures.
3. To find a specific closure, type its ID in the search, for example `c-reg-01-daily-000012`.
4. Tap a closure to open it.

</DocsSteps>

An open closure shows the **Signed** badge, its period and its number. It details:

- the **Period turnover incl. VAT** and the closure ID;
- the register, operator, type, number, period, time zone, period start and end, and the number of **Receipts included**;
- the **Perpetual turnover incl. VAT** and the totals: **Subtotal**, **Discount**, **Shipping** and **Taxes (included)**;
- the **Payments**, that is the total collected per payment method;
- the **VAT breakdown**: for each rate, the amount excluding VAT and the VAT;
- for an annual closure, the **Consolidated monthly closures** that make it up;
- the closure's **Signature hash** and the **Last included receipt**.

The **hash** (or fingerprint) is a string of 64 characters calculated from the closure's content: if a single piece of data changed, the hash would no longer match. That is what proves, during a tax audit, that the closure has not been changed. See [Tax audit](https://docs.vivlab.com/en/pos/fiscal.md#verifier-l-integrite).

## Print an X report or a closure {#imprimer-un-rapport}

<DocsSteps>

1. Open the **Ticket X** or a closure from the list.
2. Tap **Print**: a print window opens with the report.

</DocsSteps>

If nothing opens, the message **Allow pop-up windows to print this report** appears: allow pop-ups for Vivlab POS in your browser, then try again.

## Handle a closure that could not be confirmed {#cloture-non-confirmee}

If the connection drops during a closure, the message **The closure or archive could not be confirmed** appears and the button becomes **Retry closure**.

<DocsSteps>

1. Open [Activity history](https://docs.vivlab.com/en/pos/activity.md) and look for a recent **Period closed** event for this register.
2. Go back to **Reports** and tap **Retry closure**. If the closure had been recorded and no sale has taken place since, no duplicate is created: the last closure is shown.

</DocsSteps>

::: info Who can run closures
The **Reports** screen is reserved for the **Manager** role. The **Seller** and **Supervisor** roles don't see it in the menu. See [Staff](https://docs.vivlab.com/en/pos/staff.md#choisir-le-role).
:::
