← User guide

CZ/SK VAT Control Statement

The screens and the engine shared by the Slovak kontrolný výkaz DPH and the Czech kontrolní hlášení — sections computed from posted documents, checks before export, an XSD-validated XML file and a record of what was filed.

Version19.0.2.4.0
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresaccount, mail, l10n_cssk_core, l10n_cssk_submission_base
Extended byl10n_cz_kh, l10n_sk_kv_dph

What it is for

Slovakia and Czechia both require VAT payers to file, alongside the VAT return, a document-by-document statement of their invoices: the Slovak kontrolný výkaz DPH (KV DPH) and the Czech kontrolní hlášení (KH). The forms differ, but the work is the same — sort every posted document that carries VAT into the form's sections, check it, produce the official XML and keep the filed copy.

This module is that common part: the VAT Control Statement menu and form, the assignment of a section to each journal item, the drill-down to the source documents, the export pipeline and the filing record. On its own it files nothing. The country module supplies the sections, the decision rules and the official XML:

The legal background, the form versions and the section-by-section rules are described on those pages. It does not use Odoo Enterprise's report engine, so it works the same in Community and Enterprise.

Setting it up

Install the country module; this one comes with it. Then check:

Two configuration lists sit under Accounting → Configuration → CZ/SK Localization:

Menu What it holds
Control Statement Versions One record per official form structure: validity dates, the sections it contains, the XML template and root element, the official XSD the export is validated against, and the value threshold that splits detail rows from aggregates. Shipped by the country modules; there is normally nothing to change.
Control Statement Types The kinds of filing per country (Slovak riadny / opravný / dodatočný, Czech řádné / opravné / následné / následné/opravné) and the code each writes into the XML.

How documents reach a section

Every posted journal item that carries a tax is given a control-statement section when it is posted. The country module's rules decide which; the common behaviour is:

A section is stored on the journal item. If documents are changed in a way the rules cannot see — a company's fiscal country changed, for instance — the stored sections must be recomputed by an administrator; recomputing the statement alone is not enough.

Preparing and filing a statement

Accounting → Reporting → Statutory Reports → VAT Control Statement, then New.

  1. Fill in the company, the period (Date From, Date To) and whether it is a monthly or quarterly filing; then pick the version (only versions valid for the period are offered) and the statement type. A period the version does not allow (its Allow Monthly / Allow Quarterly) is refused.
  2. Click Compute. The sections are filled from the posted documents of the period and the statement moves to Preview. Each section has its own tab. You can compute again as often as needed while the statement is in draft or preview; every compute rebuilds the sections from the books.
  3. Review. The ✓ column shows whether the journal items behind a row add up to the row's base and tax. The Documents button on a row opens those journal items, grouped by document, with the base, rate, VAT and VAT deducted of each — the last two differ where only part of the tax is deductible, such as fuel at 50 %. Aggregate rows list all the documents they summarise. Correct a wrong row on the document and compute again. Where a country module offers it (the Slovak sections except D.2), a row can also be corrected in the statement: tick Override and edit its amounts; the correction survives a recompute and is re-applied to the row with the same identity, and one whose row disappeared is reported in the chatter.
  4. Click Export XML. Before anything is rendered the export checks:
  5. the company's VAT number and the master data the official form requires (the country module names the documents at fault);
  6. content rules: a detail row whose tax is not base × rate stops the export when it is off by a factor of two or more, and a taxable row with a base but no tax stops it always. Smaller differences (rounding) and other warnings do not stop it: they are listed in a yellow banner at the top of the statement and in the chatter until the next export.

The XML is then validated against the official XSD held on the version and attached to the statement (Xml Attachment). The statement is now Exported. You can export again after recomputing. 5. File the XML with the tax authority, then click Mark Submitted. The filed copy is frozen (Filed XML, Submitted Date), added to the filing history, and the statement is locked against recompute and export. 6. Marking it submitted also opens a submission record that holds the delivery and the authority's receipts (see l10n_cssk_submission_base). File it opens a new one and lets you choose the channel: the manual portal channel records that it was filed by hand; with l10n_cz_epo installed, a Czech filing can be signed and sent to EPO directly. The badge in the header shows the delivery state (delivered, accepted, rejected…).

A statement marked submitted cannot be deleted. The Comparisons button appears once the statement has been compared with the books or with another filing.

Corrections

Historical filings — statements imported from a previous system as a record of what was filed — have the state Historical filing. They cannot be recomputed, exported or submitted.

Limitations