> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnilinker.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# End of day and daily reports

> Close each fiscal printer's day with a daily report, automatically or by hand, and export the reports for your accountant.

Each fiscal printer closes a day of sales with a daily report. It is needed on every day with sales, the printer sends
it to the tax authority, and it cannot be undone. A printer that has not closed a day with sales refuses the next day's
first sale until its daily report runs.

Daily reports run automatically at the hour you set on the printer, or by hand on **Fiscal** > **End of day**. To open
the page you need the **End of day** permission; to run a report you need **Run daily reports**. See
[Permissions](/fiscalization/overview#permissions).

## The End of day page

Open **Fiscal** > **End of day**. Under **Today**, followed by the date, each fiscal printer has a row with its name,
the receipts it printed today and their gross amount, and what to check before closing the day:

| Line | Meaning |
| - | - |
| "… receipts waiting for it" or "No receipts waiting" | Receipts issued for this printer that have not printed yet. |
| "… receipts not settled: settle them first so they land in today" | Receipts **Not sure it printed**. Settle them on their orders before the report; see [Not sure it printed](/fiscalization/receipts#not-sure-it-printed). |
| "… receipts kept for invoices: file them with the invoice copies" | Today's receipts kept with an invoice. Check that they are filed. |
| "… receipts in no daily report yet: this report closes them" | Sales the next daily report closes, from today or from an earlier day left open. |
| "… receipts printed after today's report: the next one closes them" | Sales since today's report ran. |

On the right, the row shows the day's report, with its status, or how the day closes: "Daily report automatic at
21:00", "Daily report by hand, from End of day", or **Not needed** when there are no sales since the last report.

"Today" is your organization's day, in its time zone: Polish time unless your organization has its own.

## Close the day automatically

<Steps>
  <Step title="Open the printer's settings">
    Open **Devices** > **Stations**, expand the printer's station and click **Settings** next to the printer. You need
    **Manage fiscal printers**.
  </Step>

  <Step title="Set the hour">
    Select **Close the day automatically** and set **At**. A new printer already has it selected, at 21:00.
  </Step>

  <Step title="Save">
    Click **Save**.
  </Step>
</Steps>

Omnilinker then asks the printer's station for the daily report:

* on a day with sales, once it is past the hour;
* the next morning, when a day's sales were never closed, or when the printer says it wants its report before it
  sells again.

It asks once a day. A report that fails is not retried automatically that day: run it again by hand. A day without
sales needs no report, so none runs. The hour is in your organization's time zone.

## Run a daily report by hand

<Steps>
  <Step title="Check the printer's row">
    Settle receipts that are not sure, and let waiting receipts print, so they land in today.
  </Step>

  <Step title="Run it">
    Click **Run now** and confirm: "Run the daily report on … now? It closes the day on the printer and cannot be
    undone."
  </Step>

  <Step title="Wait for it to finish">
    The report shows **Waiting for the station**, then **Running**, then **Done** with the time, for example
    "by hand, 21:05". The page refreshes every 10 seconds while a report runs.
  </Step>
</Steps>

**Run now** appears when the printer has sales to close and no report under way. **Run again** appears after a report
failed, or when there were sales after today's report. It does not appear for a printer that is switched off, or while
its last report may have run.

## A report that may have run

When the station started a daily report and never saw it end, the report may have run. Omnilinker does not run
another, because it would close the day a second time, and automatic reports stop for that printer until someone
answers. The printer's row says "The daily report of … may have run", with the day it closes, and the station's reason.

<Steps>
  <Step title="Look at the printer">
    Look at the printer's last daily report on its paper roll or in its memory.
  </Step>

  <Step title="Answer">
    * If it ran, type the **Report number on the printout** and click **It ran**.
    * If it did not, click **It did not run**. You can then run it again.
  </Step>
</Steps>

You need **Run daily reports**. **Fiscal** > **Overview** also shows "The last daily report may have run without saying
so: check it on End of day before closing the day again" on the printer's card.

## Recent daily reports

**Recent daily reports** lists up to 60 of the latest reports across your printers:

| Column | Shows |
| - | - |
| **No.** | The report number from the printer. |
| **Printer** | The printer, or "A printer since removed". |
| **Day** | The day the report closes. |
| **Receipts** | How many receipts it counts. |
| **Gross** | The day's gross sales. |
| **Gross by letter** | The gross sales for each VAT letter. |
| **Run** | Its status, and whether it ran automatically or by hand, and when. A failed report shows the reason. |

| Status | Meaning |
| - | - |
| **Waiting for the station** | Asked for; the station has not taken it yet. |
| **Running** | The station is running it on the printer. |
| **Done** | The day is closed. |
| **Failed** | The report did not run. The reason is shown; fix it and click **Run again**. |

### Export for your accountant

Click **Export for the accountant**. Omnilinker downloads `daily-reports-<date>.csv` with one row per finished report
in the list: **No.**, **Printer**, **Day**, **Receipts**, **Gross**, and a **Gross by letter** column for each VAT
letter. Values are separated by semicolons, and the file opens in a spreadsheet with Polish letters intact.

## Troubleshooting

<AccordionGroup>
  <Accordion title="“The printer needs its daily report first”">
    A receipt waits because the printer refuses to sell before an earlier day is closed. Run the printer's daily
    report; the waiting receipts then print by themselves.
  </Accordion>

  <Accordion title="“… is switched off, so its station would never run the daily report. Switch it on first.”">
    Select **In use** in the printer's settings, then run the report.
  </Accordion>

  <Accordion title="“A daily report on … is already under way.”">
    Someone else, or the automatic close, asked for a report at the same time. Wait for it to finish.
  </Accordion>

  <Accordion title="“The last daily report of … may have run.”">
    Answer whether it ran first; see [A report that may have run](#a-report-that-may-have-run).
  </Accordion>

  <Accordion title="“Give the number on the printout: 1 or more.”">
    Type the report number from the printout before clicking **It ran**.
  </Accordion>

  <Accordion title="“The station said the daily report ran but sent no report number or totals.”">
    Check the printer's last daily report.
  </Accordion>

  <Accordion title="The report failed with “The printer's driver is not verified on hardware yet …”">
    The station reads real Posnet and Novitus printers but does not run reports on them yet. See the note on
    [Fiscal receipts](/fiscalization/overview).
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Issue receipts" icon="receipt" href="/fiscalization/receipts">
    Issue receipts and settle the ones that are not sure.
  </Card>

  <Card title="Fiscal printers" icon="printer" href="/fiscalization/fiscal-printers">
    Set when each printer closes its day.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.