← User guide

Slovak Payroll

The Slovak payroll family in one place — the monthly payslip for a pracovný pomer and the three dohody on either Odoo Enterprise Payroll or the OCA payroll app, with dated statutory rates, leave, the annual tax reconciliation and posting to the general ledger.

Version19.0.1.1.1
EditionCommunity and Enterprise
LicenceAGPL-3
Requireshr
Extended byl10n_sk_hr_payroll_ee, l10n_sk_hr_payroll_oca, l10n_sk_hr_payroll_surcharges

What it is for

Slovak payroll is delivered as a family of modules. This page describes the family as a whole; the individual add-ons have short pages that point back here.

Module What it does
l10n_sk_hr_payroll_base (this module) The four employment forms and one table saying which contributions and entitlements apply to each. Engine-neutral, no screens of its own.
l10n_sk_hr_payroll_ee The Slovak payslip on Odoo Enterprise Payroll, as an overlay on Odoo's own l10n_sk_hr_payroll.
l10n_sk_hr_payroll_oca The same payslip on the OCA payroll app (payroll), for Odoo Community.
l10n_sk_hr_payroll_account_ee, l10n_sk_hr_payroll_account_oca Posting payslips to the Slovak chart of accounts, one per engine.
l10n_sk_hr_payroll_surcharges Wage surcharges (mzdové zvýhodnenia) and the minimum wage claims of the six stupne náročnosti.
The statutory reports See Reports to the authorities.

The base module itself holds the employment forms and the applicability table. It installs automatically as a dependency of the engine modules, and you meet it only through them.

Choosing an engine

Both engines compute the same payslip from the same statutory figures, and the development tests run identical cases through both and compare the results. The choice is about which payroll application you run, not about the Slovak rules.

Enterprise (_ee) OCA (_oca)
Payroll app Odoo Enterprise Payroll (hr_payroll) with Odoo's Slovak localization l10n_sk_hr_payroll OCA payroll, works on Community
How it is built Overlay: Odoo's Slovak structure is kept, its rules are corrected in place and missing rules are added A complete Slovak salary structure of its own
Employment form chosen by the structure type (one per form, all over one structure) the salary structure (one per form, sharing one rule set)
Slovak fields shown on the employee form, Payroll tab, group Slovak Payroll (Data Dance) the employee form, Payroll tab, and the contract template form: groups Slovak Payroll, Meal Allowance (Slovakia), Agreement (Slovakia), Garnishment (Slovakia)
Absences reach the payslip through work entry types (DOVOLENKA, PN, OCR, …) the Slovak Payroll Code on the time-off type
Income tax on the payslip two lines (19 % band and the higher bands) plus an NČZD line one line, Income Tax (advance)
Statutory rates visible at Payroll → Configuration → Salary → Rule Parameters Payroll → Configuration → Rule Parameters (payroll managers)
Installs automatically, when l10n_sk_hr_payroll is installed on purpose

The Enterprise overlay depends on Odoo's own module and fixes it rather than replacing it: income tax is computed on the tax base instead of on gross pay, the health insurance rates are dated, and the non-taxable part, the child tax bonus, the ZŤP rates, the health minimum-premium top-up, progressive tax bands and a meal allowance model are added.

The figures the payslip uses come from these acts. Paragraph references below were checked against the consolidated texts in force in October 2026.

Setting it up

  1. Install the engine module: on Enterprise, l10n_sk_hr_payroll_ee installs itself together with Odoo's Slovakia - Payroll; on Community, install l10n_sk_hr_payroll_oca. Add the accounting bridge if payslips should be posted (see Posting to the general ledger).
  2. The company must be in Slovakia. The Slovak time-off types are visible only to Slovak companies, and on the Enterprise engine so are the Slovak employee fields.
  3. Choose the employment form on each contract by its structure type (Enterprise) or salary structure (OCA):
Employment form Enterprise structure type OCA salary structure
pracovný pomer Slovakia: Employee Slovakia: Regular Pay
dohoda o vykonaní práce (DoVP) Slovakia: DoVP (agreement to perform work) Slovakia: DoVP (agreement to perform work)
dohoda o pracovnej činnosti (DoPČ) Slovakia: DoPČ (agreement on work activity) Slovakia: DoPČ (agreement on work activity)
dohoda o brigádnickej práci študentov (DoBPŠ) Slovakia: DoBPŠ (student work agreement) Slovakia: DoBPŠ (student work agreement)

The Agreement Type field follows the choice. A contract may not claim a different agreement type than its structure (type); Odoo refuses to save it and tells you to change the structure instead. 4. Fill in the employee's Slovak data, described below.

Employee and contract data

Field What it does
Tax Declaration Signed The employee signed the vyhlásenie with this employer: the monthly non-taxable part and the child tax bonus are applied. Only one employer at a time may apply them.
Children < 15y (tax bonus), Children 15–17y (tax bonus) Number of children for the child tax bonus.
ZŤP / Disabled Halves the health insurance rates (employee and employer).
Claim Health OOP Claims the health odpočítateľná položka for a low earner. Shown only for a pracovný pomer.
Agreement Type Set by the structure (type); see Setting it up.
Regular monthly income Shown on agreements. Decides the social insurance funds: without a regular income only old-age and disability insurance are paid. Defaults to off for a DoVP and on for a DoPČ and DoBPŠ; change it to match the agreement. A DoBPŠ never pays sickness or unemployment insurance, whatever this says.
Agreement Hours Warning Appears when the contract's working calendar exceeds the ceiling for the agreement: 350 hours a year for a DoVP (estimated as weekly hours × 52), 10 hours a week for a DoPČ, 20 for a DoBPŠ.
Hourly Wage (SK) OCA engine only: pays the basic wage as worked hours × this rate instead of the monthly wage. The Enterprise engine uses Odoo's own Wage Type: Hourly and Hourly Wage.
Agreement Wage Warning Appears when the hourly rate of a dohoda is below the minimum hourly wage in force today (§ 119 ods. 1, extended to dohody by § 223 ods. 2). A warning only; the payslip is not topped up.
Pension granted (SK) The dôchodok the worker has been granted, if any. A DoVP/DoPČ holder with any of them pays no sickness or unemployment insurance; a starobný, predčasný starobný or over-70 % invalidný pensioner pays no unemployment insurance on any form; after a starobný, predčasný starobný or (at pension age) výsluhový dôchodok neither side pays disability insurance. Survivors' pensions are not listed: they change nothing.
OOP Agreement (student/pensioner) Reduces the old-age, disability and reserve fund base by up to 200 € on an agreement with an eligible pensioner or student.
Health-insurance exempt (štátny poistenec) On an agreement: no health insurance at all, for a student or pensioner insured by the state.
Guarantee-insurance exempt (≥50% statutory owner) No guarantee insurance for a statutory body with at least a 50 % share.
Meal Allowance Type, Meal Days / Month None, Meal voucher or Financial contribution, and the number of days (0 = the worked days of the payslip).
Garnishment Dependents Dependants raising the non-seizable amount of a wage garnishment.

On the OCA engine the contract additionally carries per-day overrides of the meal amounts. The Enterprise engine reuses Odoo's own meal voucher amounts for that purpose.

How the payslip is computed

In the order the rules run:

  1. Basic wage. The contract wage, reduced in proportion to the hours of absence in the period.
  2. Wage replacements at average earnings: Holiday Pay for leave hours (pracovný pomer only), Paid Work Obstacle Pay for § 141 obstacles and Employer Work Obstacle Pay (§ 142) at 100 %, 50 %, 100 % or 60 % for the four employer-side reasons. Average hourly earnings are taken from the validated payslips of the previous calendar quarter; with fewer than 168 hours worked there the module uses the contract wage over the period's scheduled hours, and never less than the minimum hourly wage.
  3. Wage surcharges and the minimum wage top-up, when l10n_sk_hr_payroll_surcharges is installed.
  4. Gross pay.
  5. Social insurance, employee and employer, each fund on the capped base and rounded down to the cent. Sickness and unemployment insurance apply only with a regular income, and the Pension granted field takes them (and the disability premium) away where the law does — see What it is for. The short-time work contribution is paid for a pracovný pomer only; on a dohoda the employer's unemployment rate is 1 % instead. Accident insurance is uncapped.
  6. Health insurance on the full gross pay, at the standard or ZŤP rate, with the odpočítateľná položka if claimed. A state-insured agreement worker pays none.
  7. Health Insurance Minimum Top-up: if employee and employer premium together fall below the premium on the subsistence minimum (the minimálny preddavok), the difference is deducted from the employee. There is none for a ZŤP employee or a student on a DoBPŠ, and the minimum is reduced in proportion to the days of sick leave (the PN days input, or else the days of the sick leave) and the days outside the contract.
  8. Income Tax Base = gross pay − employee social and health insurance.
  9. Non-taxable part (NČZD): the full monthly amount when the declaration is signed. The reduction for high incomes is left to the annual reconciliation, as § 35 ods. 1 prescribes.
  10. Income tax advance by the progressive bands of the period.
  11. Child Tax Bonus: per child by age, each child's bonus reduced above the monthly threshold, then limited to the percentage of the tax base for the number of children.
  12. Wage Garnishment, Sickness Income Compensation and the Annual Tax Settlement, when present (see below).
  13. Meal allowance: the employer contribution and, for vouchers, the employee's share.
  14. Net pay.

Sickness. Sickness Income Compensation pays the employer's part of sick leave: 25 % of the daily assessment base for days 1–3 and 55 % from day 4, up to day 10 in 2025 and day 14 from 2026, with the base capped. The sick days come from the PN leave or the Sick-leave days (PN) input; the daily base must be entered as the Sick-leave daily assessment base (DVZ) input.

Garnishment. With l10n_cssk_hr_payroll_garnishment_base and an order on file, the order register computes the deduction. Otherwise enter the outstanding debt as the Wage Garnishment (ordinary claim) or Wage Garnishment (priority claim) input: one claim per payslip, one third (ordinary) or two thirds (priority) of the net wage above the non-seizable amount, and everything above three times the basic non-seizable amount.

Meals. The employer contribution per day is 55 % of the meal allowance for a 5–12 hour business trip, rounded up to the cent — the most § 152 ods. 3 allows per meal. With Meal voucher the employee pays the rest of a voucher worth 75 % of that allowance, the minimum voucher value under § 152 ods. 4. With Financial contribution the contribution is paid out with the net wage.

Statutory figures

All rates and amounts are dated values, so a payslip uses the figure in force on its date. The values shipped:

Figure 2025 2026
Social insurance, employee sickness 1.4 %, old-age 4 %, disability 3 %, unemployment 1 % same
Social insurance, employer sickness 1.4 %, old-age 14 %, disability 3 %, unemployment 0.5 % (1 % on a dohoda), short-time work 0.5 % (pracovný pomer only), guarantee 0.25 %, accident 0.8 %, reserve fund 4.75 % same
Maximum monthly assessment base 15 730 € 16 764 €
Health insurance, employee (ZŤP) 4 % (2 %) 5 % (2.5 %)
Health insurance, employer (ZŤP) 11 % (5.5 %) 11 % (5.5 %)
Health odpočítateľná položka 380 €, nil from 570 € same
Health minimum base (monthly) 273.99 € 284.13 €
Non-taxable part per taxpayer, monthly / annual 479.48 € / 5 753.79 € 497.23 € / 5 966.73 €
Tax bands (annual tax base) 19 % up to 48 441.43 €, 25 % above 19 % up to 43 983.36 €, 25 % up to 60 349.20 €, 30 % up to 75 010.32 €, 35 % above
Child tax bonus per month 100 € under 15, 50 € from 15 to 18 same
Child tax bonus limit (1 … 6+ children) 29 / 36 / 43 / 50 / 57 / 64 % of the tax base same
Child tax bonus reduced above (annual tax base) 25 740 € 27 432 €
Minimum wage, monthly / hourly 816 € / 4.690 € 915 € / 5.259 €
Meal allowance 5–12 h 8.30 € 9.30 €
Employer-paid sick leave days 1–10 days 1–14

To roll a figure forward you add a new dated value under Payroll → Configuration → Salary → Rule Parameters (Enterprise) or Payroll → Configuration → Rule Parameters (OCA). The annual NČZD taper and the annual bands are separate parameters used only by the annual reconciliation.

Time off

The engine modules ship Slovak time-off types, each tied to the payroll code that decides how the payslip treats it:

Payroll code Time-off types On the payslip
DOVOLENKA Holiday paid at average earnings
PN Sick Leave (PN), Quarantine / Isolation (karanténa) drives the employer's sick pay
OCR Family Care (OČR) unpaid by the employer
NEPLATENE Unpaid Leave, Study Leave, unpaid unpaid
OBSTACLE Paid Work Obstacle, Blood Donation, Study Leave (paid), Public Office, Civic Duty, and three capped obstacles paid at average earnings
PREKAZKA_* four employer-side obstacles under § 142 paid at the § 142 percentage
MATERSKA, RODICOVSKA, OTCOVSKA Maternity, Parental, Paternity Leave unpaid by the employer

On the OCA engine you can also map your own time-off types by setting their Slovak Payroll Code.

Annual leave accrual plans. Three plans accrue leave monthly at 1/12 of the year: Statutory annual leave — 4 weeks (20 days), Annual leave — 5 weeks (25 days), age 33+ / parent and Annual leave — 8 weeks (40 days), teaching staff. Which one applies is a legal fact the module cannot derive; assign it per employee through an allocation (Time Off → Allocations). Three alternative plans granting the whole year on 1 January ship archived.

Capped leave. Short-term family care (OČR) — 14 days/year limit and three paid obstacles that require an allocation — medical examination (7 days a year), accompanying a family member (7 days) and accompanying a disabled child (10 days) — enforce their annual caps when the leave is booked.

Annual tax reconciliation

Payroll → Payslips → SK Annual Tax Reconciliation (on the OCA engine directly under Payroll) holds one record per employee and tax year for the ročné zúčtovanie preddavkov na daň.

  1. Create the record for the employee and year. With Gather from Payslips ticked, Compute sums the year's tax bases, withheld advances and paid child bonus from the payslips; untick it to enter those totals by hand.
  2. Enter what only the employee's documents show: Spouse Non-taxable Part (NČZD) (the eligible amount, already reduced), Supplementary Pension Contributions (DDS, 3rd pillar) (capped at 180 €) and Employee Premium.
  3. The record computes the annual non-taxable part with its reduction for high incomes, the annual tax by the annual bands, the annual child bonus entitlement, and the Overpayment (+) / Underpayment (−).
  4. Choose the Settlement Payslip — the payslip of the month in which the result is settled — and click Post Settlement. The result is added to that payslip as the Annual tax reconciliation input and the payslip is recomputed; an overpayment raises the net pay, an underpayment lowers it.

The employee must ask for the reconciliation by 15 February, and the employer performs it by 31 March and settles it no later than with the April wage (§ 38 ods. 1, ods. 6). The module does not track these dates. The annual health insurance reconciliation is done by the health insurer, not by the employer, and is not part of the module.

Posting to the general ledger

l10n_sk_hr_payroll_account_ee (Enterprise) and l10n_sk_hr_payroll_account_oca (OCA) wire the Slovak salary rules to the Slovak chart of accounts, so that a validated payslip posts a balanced journal entry:

Account Lines
521000 Mzdové náklady basic wage, holiday and obstacle pay (employee- and employer-side), reimbursements, and — when the surcharges are installed — the wage surcharges and the minimum-wage top-up (debit)
331000 Zamestnanci net pay (credit)
336000 Zúčtovanie s orgánmi SP a ZP employee social and health insurance, the health top-up, and the credit side of every employer contribution
524000 Zákonné sociálne poistenie employer contributions (debit)
342000 Ostatné priame dane income tax withheld; the child tax bonus and the annual settlement against it
379000 Iné záväzky garnishments and other statutory deductions
527000 Zákonné sociálne náklady / 333000 employer meal contribution against the payable to employees; employer sick pay on 527000

Reports to the authorities

The filings are separate modules built on l10n_cssk_payroll_declaration_base and work with either engine:

Module Report Filed to
l10n_sk_hr_payroll_mvp Mesačný výkaz poistného a príspevkov Sociálna poisťovňa
l10n_sk_hr_payroll_vpp Výkaz poistného a príspevkov for irregular income (dohody) Sociálna poisťovňa
l10n_sk_hr_payroll_rlfo Registration and deregistration of employees Sociálna poisťovňa
l10n_sk_hr_payroll_eldp Evidenčný list dôchodkového poistenia Sociálna poisťovňa
l10n_sk_hr_payroll_health Mesačný výkaz preddavkov na poistné health insurers
l10n_sk_hr_payroll_monthly_tax_overview Prehľad o zrazených a odvedených preddavkoch Finančná správa
l10n_sk_hr_payroll_annual_tax_report Hlásenie o vyúčtovaní dane Finančná správa

Limitations