← User guide

SK VAT Return (Daňové priznanie k DPH)

The Slovak VAT return computed from the tax tags of Odoo's Slovak chart, in the form vintage of each period, exported as the Finančná správa XML and validated against its XSD.

Version19.0.1.13.1
EditionCommunity and Enterprise
LicenceAGPL-3
Requiresl10n_cssk_vat_return_base, l10n_sk, l10n_sk_statutory
Extended byl10n_sk_datadance

What it is for

The Slovak layer of the shared VAT-return engine. It supplies:

How to create, compute, review, export and file a return is described on the engine's page; this page covers what is Slovak.

References are to the VAT Act unless stated otherwise.

Form vintages

Finančná správa publishes one XSD per vzor and keeps the old ones, and a period is filed on the vzor that was in force for it. The module ships one version per vzor:

Version (as listed) Periods Schema
DPH (vzor 1. 1. 2012 – 31. 12. 2017) 2012 – 2017 dph2012.xsd
DPH (vzor 1. 1. 2018 – 31. 12. 2019) 2018 – 2019 dph2018.xsd
DPH (vzor 1. 1. 2020 – 31. 12. 2020) 2020 dph2020.xsd
DPH (vzor do 30. 6. 2025) 1. 1. 2021 – 30. 6. 2025 dph2021.xsd
DPH 2025 from 1. 7. 2025 dph2025.xsd

All five are the official files, kept byte for byte with their checksums recorded in the module. On a return, the Version list offers the one valid for the period.

Three things about the vintages are worth knowing:

There is no version for periods before 2012.

Setting it up

Beyond the engine's setup:

The Slovak return

The statement types are Riadny, Opravný and Dodatočný. Rows r01 to r29 (with their lettered variants on the 2025 vzor) come from the tax tags of the Slovak chart, which are named after the rows. In addition:

Row How it is filled
r17 (daň celkom) Sum of the tax rows.
r18, r18a, r19 The XML carries the total deduction per rate. On screen these totals are the rows named (internal) odpočet — …; the rows coded r18, r18a, r19 show only their own tag.
r30, r31 Manual: deduction at registration, refunds to travellers.
r32 / r33 Computed: own tax liability or excess deduction, whichever the net comes to.
r34 Manual: the excess deduction of the previous period being offset.
r35 Computed: r32 − r34, not below zero.
r36 On a dodatočný return, filled on Compute as (r32 − r33) of this return minus (r32 − r33) of the return it amends, unless you overrode it.
r37 Manual.

Rows named (internal) … are working rows; they are not boxes of the form.

Content checks at export. The export stops if r32 or r33 is negative, if both are positive, or if r34 is higher than r32. It also checks that each tax row is its base row times one of the rates valid for the vzor (19, 5 and 23 % on the 2025 vzor); that check only warns, and the warning goes to the server log, not to the screen.

The amended return carries its Deň zistenia rozdielu (datumZisteniaDdp) into the XML only when its type is Dodatočný.

A Slovak return has a Hlavička tab, editable while the return is a draft or a preview:

Field What it fills
Postavenie osoby Who files, as ticked on the first page: Platiteľ dane (§ 4) (the default), Osoba registrovaná pre daň podľa § 7 alebo § 7a, Iná osoba povinná podať priznanie (§ 78 ods. 3, 4 a 9), Zdaniteľná osoba podľa § 3 ods. 5, Daňový zástupca podľa § 69a or § 69aa (the last only for periods from 1. 1. 2018).
Splnenie podmienok § 79 ods. 2 Tick it when you meet the conditions for a refund of the excess deduction within 30 days. Offered only to a VAT payer with a monthly period, and exported as 1 only when the return shows an excess deduction (r33).
Dátum vyhlásenia The date of the declaration; left empty, the date of the XML export is used.
Oprávnená osoba Name, phone and e-mail of a person filing on the company's behalf, for example a representative under § 9 daňového poriadku. Leave empty when the company files itself.

Odoo cannot check the § 79 ods. 2 conditions (12 months as a payer, arrears of at most 1 000 €); ticking the box is your declaration.

Services received from the EU

Odoo's Slovak chart maps every purchase tax, under the Eu intra fiscal position, to the acquisition of goods (rows 07/08), so a service from an EU supplier lands on the wrong row. This module adds:

Set the S tax as the vendor tax of your service products. On a bill from an EU supplier the fiscal position then replaces it with the EÚ S tax; goods keep their usual tax and still go to rows 07/08. The taxes are added to every Slovak company when the module is installed or upgraded, only where missing.

§ 53b correction of deducted tax

Accounting → Accounting → Oprava odpočítanej dane (§ 53b) opens a wizard:

Field Meaning
As of date The day the overdue period is measured to; the correction entries get this date.
Days overdue Default 100.
Denník opráv A general journal for the entries.
Protiúčet (náklad) The account the corrected tax is moved to, usually 548.

It lists posted vendor bills, unpaid or partly paid, whose due date is at least that many days before the date, that deducted tax and have not been corrected yet. Vygenerovať opravy posts one entry per bill: the deducted tax times the unpaid share, credited to the input-VAT account with the row 29 tag and debited to the chosen account. Row r29 of the return picks it up.

Once a corrected bill is paid (fully or in part), the bill shows the button Znovu uplatniť odpočet (§ 53b ods. 4): it posts the mirror entry for the paid share, dated today, never more than was corrected. The bill's Other Info tab shows its Stav § 53b and the correction entries.

Historical rates

On install and whenever a company loads the Slovak chart, the module creates the rates no longer in force as archived taxes (see the engine's page):

Rate In force Cloned from
20 % 1. 1. 2011 – 31. 12. 2024 today's 23 % taxes; their reverse-charge tags are moved from 09b/10b back to 09/10, the rows that existed then
10 % 1. 1. 2007 – 31. 12. 2024 today's 19 % taxes

The 19 % standard rate of 2004–2010 is not generated: today's 19 % taxes are the reduced rate, and a second family with the same name would collide.

Limitations