← User guide

CZ/SK Localization — Shared Core

The common foundation of the Czech and Slovak statutory modules — settings, tax offices, IČO checking, the VAT period of a document, the life cycle of a statutory filing and the filed-versus-computed comparison.

Version19.0.1.18.1
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresaccount, mail
Extended byaccount_edi_isdoc, l10n_cssk_account_financial_report, l10n_cssk_accrual, l10n_cssk_cash_journal_base, l10n_cssk_ec_summary_base, l10n_cssk_fs_base, l10n_cssk_guide, l10n_cssk_income_tax_base, l10n_cssk_intrastat_footprint, l10n_cssk_kv_kh_base, l10n_cssk_oss_base, l10n_cssk_partner_balances, l10n_cssk_payment_reliability, l10n_cssk_receipt_capture, l10n_cssk_registry_verify, l10n_cssk_reports_footprint_ee, l10n_cssk_submission_base, l10n_cssk_vat_return_base, l10n_cssk_vies, l10n_cz_datadance, l10n_cz_invoice, l10n_cz_statutory, l10n_cz_vat_status, l10n_sk_datadance, l10n_sk_invoice, l10n_sk_statutory

What it is for

Every Czech and Slovak statutory module of this localization — VAT returns, control statements, EC sales lists, financial statements, income-tax returns — builds on this module. You rarely install it on purpose: it comes with the first of them, or with the full suites l10n_cz_datadance and l10n_sk_datadance.

What it gives you directly:

It depends only on Odoo's account and mail, so it works on Community and Enterprise.

Settings

Accounting → Configuration → Settings, block Czech / Slovak Localization:

Setting What it does
Extra accounting menus (Community) Installs OCA account_usability, which adds the accounting menus Enterprise has (general ledger, journals, aged balances…). Shown on Community only.
Financial reports (Community) Installs OCA account_financial_report: general ledger, trial balance, partner ledger, aged balance, journal ledger. Shown on Community only.
Default tax authority The tax office (daňový úrad / finanční úřad) your filings are addressed to. Only offices of the company's fiscal country are offered.
VAT declared in a later period An account for VAT deferral entries — see VAT deferral. Empty: off.
Year-end closing journals The journals holding the year-end closing and reopening entries (e.g. UZAVIERKA, OTVORENIE). Their entries are left out of the financial statements, the income-tax return and the financial reports, so that closing the year does not wipe out the balance sheet and the profit and loss. Leave empty if the year is never closed in this database.

The full suites add their own switches to this block, one per optional module.

Your company

On the company form (Settings → Companies), after Country:

The commercial-register entry (Spoločnosť zapísaná v obchodnom registri… / zapsaná v obchodním rejstříku…) goes in Odoo's own Trade Registry field on the company, which the Slovak and Czech localizations print on the invoice. This module used to offer a separate Registration Info field that no document printed; it is gone from the form, and upgrading copies a value entered there into Trade Registry if that was empty.

Contacts and the IČO

On contacts whose country is the Czech Republic or Slovakia:

Contacts of other countries are not checked: a German HRB 12345 is accepted as it is.

Tax offices and entity types

Accounting → Configuration → CZ/SK Localization:

VAT period of a document

Taxable supply date

The customer invoice and bill lists get a Taxable Supply Date column (optional, shown by default), and the search gets a filter and a grouping by it. The taxable supply date (deň dodania / DUZP) decides the VAT period of a sale.

VAT period declared

On invoices, credit notes and bills, after the due date, VAT period declared names the period in which the VAT is reported when that differs from the usual date. Leave it empty in the normal case.

The statutory returns choose the period of each document like this:

Document Period
Customer invoice, customer credit note VAT period declared if filled; otherwise the taxable supply date; otherwise the accounting date
Vendor bill, refund, any other entry VAT period declared if filled; otherwise the accounting date

Fill it on a bill whose deduction you claim later than the period it is booked in, on a correction declared in a later period, or on a document entered late. The legal background is in Legal background.

VAT deferral entries

When VAT period declared falls in a later month than the accounting date, the VAT return reports the tax later, but account 343 still carries it in the month of booking, so 343 no longer agrees with the return. If you set an account in VAT declared in a later period, posting such a document also creates two journal entries in the first miscellaneous journal:

  1. on the accounting date, the tax is moved from the VAT account to the deferral account;
  2. on the declared date, it is moved back. If that date is still ahead, the entry is posted automatically when it comes.

Only tax lines that take part in the tax closing are moved. The entries carry no taxes or tax tags, so no return reads them. The document shows VAT deferral: n entries with a link to them; each entry shows the document under VAT Deferral Of. Resetting the document to draft, cancelling it, or changing the declared date cancels the entries (and creates new ones where still needed).

The VAT period declared exists because the deduction may be claimed later than the supply:

The module records the period you choose. It does not check that the choice respects these limits.

Statutory footprint

A posted invoice or journal entry has a Statutory footprint button (accounting users only). It lists the statutory report rows the document feeds — form, row code and description — and, where a filing for the period already exists, the filing with a link to it. An empty Filing column means no return for that period has been generated yet; the rows are what it would feed. Which forms appear depends on the statutory modules installed.

Statutory filings: the common life cycle

The VAT return, control statement, EC sales list and the other forms are separate modules, but they share one life cycle provided here:

Step Button What happens
Draft → Preview Compute the rows are computed from the ledger
Preview → Exported Export XML content checks run, the XML is produced and validated against the official schema, and attached. A failed check blocks the export; a warning does not, but it is shown in a notification, posted to the chatter and kept in Export warnings until the next export — read it before filing
Exported → Submitted Mark Submitted the exported XML is frozen as the filed copy (Filed XML), the date is recorded and the filing is locked: it can no longer be recomputed, re-exported or deleted
File it opens a delivery record for the authority's receipts — see l10n_cssk_submission_base
Submitted → Draft Reset to Draft accounting administrators only; the filed copy is kept
Dodatočný / opravný on a submitted filing: creates a draft amendment linked to the original

Every XML ever marked submitted stays in Filed history, so after a reset, recompute and resubmit the originally filed copy is still there. Enter the confirmation number from the portal in Submission reference.

Historical filings. A filing migrated from a previous system is in state Historical filing: it records what was actually filed and cannot be computed, exported or submitted. It can be amended, and it can be compared with what Odoo computes for its period (Compare with computed, see below).

Filed vs computed

Accounting → Reporting → Statutory Reports → Filed vs computed:

A comparison is created by a button on a filing. Compare with computed on a historical filing puts it beside what Odoo computes for the same period; the Slovak suite adds comparisons of one filing with another and with account 343 (see l10n_sk_datadance). Compared against says which of these the right-hand column holds:

Compared against Right-hand column
The filing, recomputed what Odoo computes for the filing's period
The ledger the balance in the accounts, e.g. 343
Another filing a different filing for the same period

Each row has a result:

Result Meaning
Agrees same figure on both sides
Amount differs same row, different amount
Same amount, different row the two sides put the same amount on different rows (shown as a linked pair)
Only the filing has it / Only we compute it the row exists on one side only
Vocabularies not mapped the two sides use row codes that cannot be matched
Difference is expected a structural gap, e.g. the control statement covers less than the return
Informational, not a control shown for information, never a finding

Work through the findings by setting a row's status — Asked the accountant, Filing was right, Filing was wrong, We are wrong, Understood, no action — and writing what the accountant said in Note. The answer and the note survive a re-run: re-running updates the figures only. A row that no longer appears on either side is kept and marked No longer compared rather than deleted.

The comparison's own state follows its rows — Everything agrees, To review, Being worked through, Every difference answered — and cannot be set by hand. When you have reviewed the whole comparison, click Sign off; Withdraw sign-off removes it. A re-run does not remove a sign-off.

Statement account mapping

The statutory statements read balances by account code, using the codes of the standard chart of accounts. A chart taken over from another system often uses its own analytical codes — 461001 for a long-term bank loan where the Slovak balance sheet expects 461100 — and such an account lands on no row.

Accounting → Configuration → CZ/SK Localization → Statement account mapping (accounting administrators) lets you keep your chart and say under which code an account is reported:

Field Meaning
Account your account
Balance side Any balance, or Debit balance only / Credit balance only — e.g. a bank account reported as a short-term bank loan only when it is overdrawn
Reported code the code the statement reads it as, e.g. 461200; a plain code, no spaces or operators

A side-dependent mapping applies only to balance-sheet (as-of) balances; in the profit and loss the account keeps its own code. An account can have either one Any balance mapping or debit and/or credit mappings, not both. The mapping applies to the preview, the XML and the drill-down alike.

Limitations