← User guide

Slovak Intrastat (INTRASTAT-SK)

The monthly INTRASTAT-SK declaration of goods moved to and from other EU countries, generated from your invoices as the INSTAT XML file the Finančná správa portal imports — in Community on the OCA engine, in Enterprise on Odoo's own Intrastat report.

Version19.0.1.1.1
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresintrastat_product, intrastat_product_hscodes_import, l10n_cssk_intrastat_base, l10n_sk

What it is for

A Slovak business whose trade in goods with other EU countries exceeds the statistical threshold reports it every month on the INTRASTAT-SK declaration (hlásenie INTRASTAT-SK): one declaration for goods coming in from other EU countries and one for goods going out. Each item states the commodity code, partner country, country of origin, nature of transaction, net mass, supplementary units, invoiced value, mode of transport and delivery terms.

Odoo can collect these figures from invoices, but neither edition files a Slovak declaration: Community has no Intrastat at all, and Odoo Enterprise's Intrastat report has declarations for other countries but not for Slovakia. This family closes that gap. It renders the official INSTAT XML message (schema instat62.xsd), validates it against the schema before you get the file, and you import that file on the INTRASTAT-SK portal.

There are two ways in, one per edition, and both produce the same file from the same ledger:

Edition Module Engine that collects the figures
Community this module OCA intrastat_product (declarations under Accounting → Reporting → Intrastat)
Enterprise l10n_sk_intrastat_ee (delivered separately) Odoo's Intrastat (Goods) report and tax returns — see Enterprise

Both call the same renderer, l10n_cssk_intrastat_base (see The shared renderer).

The module does not decide whether you are obliged to report — it has no threshold logic. Set the flows in the settings according to your obligation.

Setting it up (Community)

  1. Accounting → Configuration → Settings, block Intrastat: set Arrivals and Dispatches to Standard or Extended for each flow you report, Exempt for one you do not. Optionally set a Default Transport Mode.
  2. Load the commodity codes once: Accounting → Configuration → Intrastat → Load Intrastat Codes (an OCA wizard installed with this module, also offered right after installation) imports the Combined Nomenclature.
  3. On each stockable product: Kód tovaru (KN) (H.S. Code), Krajina pôvodu (Country of Origin) and the weight in kg. A product whose commodity code uses a supplementary unit (pieces, litres…) is reported in that unit as well.
  4. Your company needs its IČ DPH (VAT number). Without it the file is not generated.
  5. On the EU invoices themselves, the OCA module adds the Intrastat fields (transaction, transport mode, country); check them before posting.

Monthly declaration (Community)

Accounting → Reporting → Intrastat → Hlásenie produktov Intrastat (Intrastat Product Declaration), then New:

  1. Choose the year, month and type — Prijatie (Arrivals) or Odoslanie (Dispatches). Each flow is its own declaration.
  2. Generovať riadky z faktúr (Generate Lines from Invoices) collects the posted invoices and credit notes of the month. The result window lists the partners, products, units and invoices it could not use and why. If nothing is found, the declaration's Akcia (Action) becomes Nulové (nil).
  3. Check the Transakcie tab (one row per invoice line) and correct invoices or products where needed, then generate again.
  4. Potvrdiť (Confirm) groups the transactions into declaration lines — one per combination of the reported fields.
  5. Generovať XML súbor (Generate XML File) renders the INSTAT XML, validates it against instat62.xsd, attaches it to the declaration and marks it Dokončené (Done). A file that does not validate is refused with the schema's error message.
  6. Download the file and import it on the INTRASTAT-SK portal (intrastat.financnasprava.sk), check it there and send it.

What the file contains:

Excel Export on the declaration gives the same lines as a spreadsheet for checking.

Corrections

A declaration already sent is corrected with a revision: duplicate the declaration (it gets the next Revízia), set its Akcia, generate the lines and the file again. INTRASTAT-SK numbers a month's declarations per flow 1, 2, 3 …, and a further file under the next number adds to the month (Statistical Office handbook 2026, para. 221–222), so the action decides what the file says:

Akcia What the file contains
Nahradiť (Replace) a cancellation (function D, no items) of every declaration still standing for the month and flow — those filed since the last earlier Replace or Nil — followed by the correct items under the revision's number. This is the handbook's way of replacing a declaration (para. 229–230, example 19 b).
Pripojiť (Append) the revision as a further partial declaration under its number, nothing cancelled. It must hold only the added transactions: delete the others from the revision before confirming it.
Nulové (Nil) the cancellations, as for Replace, then a nil declaration (function N).

The cancellation of a declaration carries correction number 1 — each one is cancelled once.

Enterprise

On Odoo Enterprise, l10n_sk_intrastat_ee (delivered separately) plays the same role on top of Odoo's own account_intrastat. The figures come from Odoo's Intrastat fields on products and invoices; nothing from the OCA engine is used.

It installs only on Enterprise; it does not need this module.

Statutory footprint

With l10n_cssk_core installed alongside the OCA engine, l10n_cssk_intrastat_footprint installs itself and adds Intrastat to the Statutory footprint of a posted document (see the footprint). For each Intrastat declaration that took one of the document's lines, the footprint lists the form Intrastat, the period (YYYY-MM), the flow and the declaration's state (Draft, Confirmed, Done), with a link to it. A line reported in an original and in a corrected declaration lists both.

The footprint reads the link the declaration stored when its lines were generated. It does not decide whether a line ought to be reported, so a month whose declaration has not been generated yet shows nothing. It works for both Slovak and Czech OCA declarations; it does not read Odoo Enterprise's Intrastat report.

Because Odoo installs such bridges only when one of their dependencies is being installed, a database that already had both modules before the bridge existed needs it installed once by hand.

The shared renderer

l10n_cssk_intrastat_base holds the code both editions share and has no screens of its own:

It depends on nothing but base, so it installs automatically with whichever adapter needs it.

Limitations