Registry entry
Slovakia — Individual Income Tax Return, Type A (DPFOAv25)
The Financial Administration of the Slovak Republic's (Finančná správa Slovenskej republiky, FS SR) DPFOAv25 form — "Daňové priznanie k dani z príjmov fyzickej osoby (typ A)" (Type A individual income tax return) for the 2025 tax year, valid from 1 January 2026, filed under § 5 of Act No. 595/2003 Z.z. on income tax (as amended). Type A is used by a taxpayer whose only income during the tax year was employment income (income from a dependent activity, § 5 of the Act); a taxpayer with other income types (self-employment, capital, rental, other) uses the separate Type B return instead, out of this schema's scope. This v1.0.0 models the return's full eleven-section structure in detail: header (return type, taxpayer identification, tax year), Section I (taxpayer data, including a non-resident/limited-tax-liability branch), Section II (legal representative/heir data), Section III (tax-base reduction for a qualifying pension and a spouse, and the tax bonus for one dependent child plus a second-eligible-person sharing arrangement), Section IV (mortgage-interest tax bonus), Section V (tax base from employment income), Section VI (the full tax computation, including the foreign-income exemption and foreign-tax-credit methods, the child tax bonus, and the mortgage-interest tax bonus), Section VII (differences reported on an additional/corrective return), Section VIII (the 2%/3% tax-share donation to a recipient organization or a parent), Section IX (free-text special records, plus a single foreign-employment-income detail row), Section X (further taxpayer data for cross-border cases), and Section XI (the payout/refund request for the tax bonus, employee bonus, mortgage-interest bonus, or a tax overpayment). The source is a genuine client-side, JavaScript-driven fillable HTML e-form (not a PDF/AcroForm), served from the Financial Administration's own eFormVzor form-template subdomain; each field's real name attribute, maxlength, and (where present) its own client-side validation-hint text (the source's own title attribute) were extracted directly from the form's HTML. Several line items are themselves computed/derived amounts the source's own client-side script calculates from other lines (e.g. r.45's tax-bracket formula, or r.71/r.72's final payable/overpayment formula); these are modeled as ordinary editable data fields exactly as the source itself presents them (each such formula is disclosed in the field's own description), following this registry's established practice for other richly cross-referenced tax-computation forms (e.g. kr/nts's year-end tax settlement). Scope decisions disclosed here and in VERIFICATION.md: (1) the roughly 250-entry country/territory dropdown (Section IX's foreign-income country code) is modeled as a free-text numeric-code string rather than enumerated in full; (2) the two 12-checkbox month-selection grids (Section III, r.31 and r.32) are each modeled as one boolean "full year" flag plus one comma-separated multi-select-as-string field for individual months, pending GSP-0009 (repeating/multi-select gap); (3) Section III's dependent-child table prints only a single child row on the source form itself (additional children are declared in Section IX free text, per the source's own r.31a instruction), so no bounded repeating group was invented for it. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of the Slovak Republic or the Financná správa Slovenskej republiky.
Registry entry
sk/financna-sprava/dpfoav25-individual-income-tax-return
Authoritative source DPFOAv25
Machine access
- Schema document
registry/sk/financna-sprava/dpfoav25-individual-income-tax-return/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/sk/financna-sprava/dpfoav25-individual-income-tax-return/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
146 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Fields
-
returnTypeenum requiredWhether this is an ordinary, corrective (replacing an ordinary return before the filing deadline), or additional (dodatočné, filed after the deadline to correct a previously filed return) tax return. Section VII (differences from an additional return) applies only when this is 'additional'.
enum: ordinary | corrective | additional -
taxpayerTinstringTaxpayer's tax identification number (DIČ), or birth number (rodné číslo) if no DIČ has been assigned. The source requires either this field or taxpayerBirthDateIfNoTin (r.02) to be filled; both are modeled optional since the meta-schema's requiredWhen only supports a clean field-equals-value gate, not an either/or across two optional fields.
length: 0–10classification: sensitive-pii -
taxpayerBirthDateIfNoTindateTaxpayer's date of birth, completed only if the taxpayer has been assigned neither a DIČ nor a rodné číslo (birth number). See taxpayerTin.
classification: pii -
taxYearinteger requiredThe tax year for which the return is filed. The source form is the 2025 edition; the source's own instruction allows entering 2026 only when filing a return on behalf of a deceased taxpayer.
enum: 2025 | 2026 -
additionalReturnDiscoveryDatedateDate the fact requiring an additional (corrective, post-deadline) tax return was discovered. Required only when returnType is 'additional'; an additional return may only be filed after the ordinary filing deadline has passed, except when filing on behalf of a deceased taxpayer.
-
taxpayerSurnamestring required03 - Priezvisko
length: 0–30classification: pii -
taxpayerGivenNamestring required04 - Meno
length: 0–20classification: pii -
taxpayerTitleBeforeNamestring05 - Titul pred menom
length: 0–10 -
taxpayerTitleAfterNamestring05 - Titul za priezviskom
length: 0–10 -
permanentAddressStreetstringStreet of the taxpayer's permanent residence address as of the filing date, in the Slovak Republic or abroad.
length: 0–30 -
permanentAddressHouseNumberstring07 - Číslo domu (trvalý pobyt)
length: 0–11 -
permanentAddressPostalCodestring08 - PSČ (trvalý pobyt)
length: 0–15 -
permanentAddressMunicipalitystring09 - Obec (trvalý pobyt)
length: 0–60 -
permanentAddressCountrystring10 - Štát (trvalý pobyt)
length: 0–30 -
isNonResidentbooleanWhether the taxpayer is a non-resident for tax purposes (a taxpayer with limited tax liability in Slovakia). Checking this gates Section X (further taxpayer data) and the residency-period fields below.
-
nonResidentPeriodFromdateStart of the period during the tax year for which the taxpayer was a non-resident with limited tax liability in Slovakia.
-
nonResidentPeriodTodateEnd of the period during the tax year for which the taxpayer was a non-resident with limited tax liability in Slovakia.
-
foreignTinstringTaxpayer identification number (TIN) assigned in the taxpayer's state of tax residence, completed when the taxpayer is a non-resident of Slovakia.
length: 0–16classification: sensitive-pii -
srResidenceStreetstringStreet of the address of the dwelling/stay in the Slovak Republic where the taxpayer resided during the tax period. Completed only when the taxpayer has no permanent residence in Slovakia.
length: 0–30 -
srResidenceHouseNumberstring13 - Číslo domu (pobyt v SR)
length: 0–11 -
srResidencePostalCodestring14 - PSČ (pobyt v SR)
length: 0–5 -
srResidenceMunicipalitystring15 - Obec (pobyt v SR)
length: 0–60 -
representativeSurnamestringSurname of the legal representative, heir, or other representative filing this return on the taxpayer's behalf, if any.
length: 0–30classification: pii -
representativeGivenNamestring17 - Meno (zástupca)
length: 0–20classification: pii -
representativeTitleBeforeNamestring18 - Titul pred menom (zástupca)
length: 0–10 -
representativeTitleAfterNamestring18 - Titul za priezviskom (zástupca)
length: 0–10 -
representativeBirthNumberPart1stringFirst part of the representative's Slovak birth number (rodné číslo); if the representative has no birth number, their date of birth in DDMM form.
length: 0–6classification: sensitive-pii -
representativeBirthNumberPart2stringSecond part of the representative's Slovak birth number; if no birth number, their birth year in RRRR form.
length: 0–4classification: sensitive-pii -
representativeStreetstring20 - Ulica (zástupca)
length: 0–30 -
representativeHouseNumberstring21 - Číslo (zástupca)
length: 0–11 -
representativePostalCodestring22 - PSČ (zástupca)
length: 0–15 -
representativeMunicipalitystring23 - Obec (zástupca)
length: 0–60 -
representativeCountrystring24 - Štát (zástupca)
length: 0–30 -
contactPhoneNumberstringContact phone number: the taxpayer's own number if filing personally, otherwise the representative's number, unless otherwise agreed with the taxpayer. Not a mandatory field under § 32 ods. 7 of the Income Tax Act.
patternlength: 0–13 -
contactEmailstringContact email address (see contactPhoneNumber). The source form limits the total length to 254 characters, with 1-64 characters required before the '@'.
patternlength: 0–254 -
receivedPensionAtStartOfYearbooleanWhether the taxpayer was receiving, at the start of the tax year (or was awarded retroactively to the start of the tax year), one of the pensions listed in § 11 ods. 6 of the Income Tax Act.
-
totalPensionAmountnumberTotal amount of the pension(s) referred to in r.27 received during the tax year, completed only if claiming the reduction of the tax base.
range: 0–∞ -
spouseFullNamestringSurname and given name of the spouse living with the taxpayer in the same household, for the purpose of claiming the non-taxable amount on a spouse under § 11 ods. 3.
length: 0–400classification: pii -
spouseBirthNumberPart1string29 - Rodné číslo (manželka/manžel), 1. časť
length: 0–6classification: sensitive-pii -
spouseBirthNumberPart2string29 - Rodné číslo (manželka/manžel), 2. časť
length: 0–4classification: sensitive-pii -
claimSpouseNonTaxableAmountboolean30 - Uplatňujem nezdaniteľnú časť základu dane na manželku (manžela)
-
spouseOwnIncomeAmountnumberSpouse's own income for the tax year (gross income less compulsory insurance premiums/contributions the spouse was required to pay on it).
range: 0–∞ -
spouseQualifyingMonthsCountintegerNumber of calendar months in the tax year at the start of which the statutory conditions for claiming the spouse's non-taxable amount were met.
range: 1–12 -
childFullNamestringSurname and given name of a dependent child living with the taxpayer in the same household, for the purpose of the tax bonus (daňový bonus) under § 33. Only one child's data row is printed on the source form; a taxpayer with more than one qualifying child records the additional children in Section IX (additionalChildrenNoted).
length: 0–400classification: pii -
childBirthNumberPart1string31 - Rodné číslo (dieťa), 1. časť
length: 0–6classification: sensitive-pii -
childBirthNumberPart2string31 - Rodné číslo (dieťa), 2. časť
length: 0–4classification: sensitive-pii -
childBonusFullYearbooleanWhether the tax bonus is claimed for all 12 months of the tax year (the source form's dedicated "1-12" checkbox, mutually exclusive with checking individual months in childBonusMonths).
-
childBonusMonthsstringComma-separated list of individual calendar months (1-12) for which the tax bonus is claimed, used only when not claiming the full year (see childBonusFullYear). The source presents this as 12 separate month checkboxes; modeled as a comma-separated list — multi-select-as-string treatment, pending GSP-0009 (repeating/multi-select gap) — following the precedent already established for several other schemas in this registry (e.g. fr/france-visas/schengen-visa-application's means-of-support fields).
pattern -
additionalChildrenNotedbooleanChecked when the taxpayer has more than one qualifying dependent child and records the additional children's data in Section IX (free-text special-records section) rather than on the single printed child row.
-
applySecondEligiblePersonProcedurebooleanWhether the taxpayer applies the procedure under § 33 ods. 8 (increasing their own tax base by a second eligible person's tax base, for the purpose of computing entitlement to the tax bonus) rather than each eligible person claiming it separately.
-
secondEligiblePersonFullNamestringSurname and given name of the second person eligible to claim the tax bonus on the same child(ren) named in r.31, sharing custody/care of the household.
length: 0–400classification: pii -
secondEligiblePersonBirthNumberPart1string32 - Rodné číslo (druhá oprávnená osoba), 1. časť
length: 0–6classification: sensitive-pii -
secondEligiblePersonBirthNumberPart2string32 - Rodné číslo (druhá oprávnená osoba), 2. časť
length: 0–4classification: sensitive-pii -
secondEligiblePersonBonusFullYearboolean32 - Mesiace 1-12 (druhá oprávnená osoba)
-
secondEligiblePersonBonusMonthsstringComma-separated list of individual calendar months (1-12) at the start of which the second eligible person met the conditions for the tax bonus. Multi-select-as-string treatment, pending GSP-0009 (see childBonusMonths).
pattern -
secondPersonFiledReturnInSlovakiabooleanWhether the second eligible person named in r.32 themselves filed a tax return in Slovakia reporting a tax base for computing the tax bonus.
-
secondPersonAnnualSettlementCopyAttachedbooleanChecked when a copy of the second eligible person's annual payroll-tax-advance settlement (ročné zúčtovanie) is attached, as evidence of their tax base, because they did not file their own tax return.
-
secondPersonTaxBaseDocumentCopyAttachedbooleanChecked when a copy of a document proving the second eligible person's tax base from employment income is attached, for a person who had neither an annual settlement performed nor a duty to file a return.
-
secondEligiblePersonTaxBaseAmountnumberTax base (or aggregate tax base) of the second eligible person named in r.32, from employment income and/or self-employment/other independent gainful activity, for the purpose of claiming the tax bonus under § 33 ods. 8.
range: 0–∞ -
claimMortgageInterestBonusbooleanWhether the taxpayer claims the tax bonus on interest paid on a home-loan (§ 33a of the Income Tax Act).
-
mortgageInterestPaidAmountnumberAmount of home-loan interest paid during the tax year, per the bank's own confirmation issued under § 26a of Act No. 90/2016 Coll. on housing loans, a copy of which is an annexe to the return. Required alongside claimMortgageInterestBonus. The source's input widget for this line shares a generic 400-character textbox component also used for combined name fields elsewhere on the form; it is modeled here as a numeric amount per the footnote's own description of what r.33 records.
-
mortgageInterestQualifyingMonthsCountintegerNumber of calendar months in the tax year for which the taxpayer is entitled to the mortgage-interest tax bonus.
range: 1–12 -
mortgageInterestAccrualStartDatedateDate interest began accruing on the home loan. Must fall within 1 February 2020 - 31 December 2025 per the source's own validation note.
-
mortgageLoanAgreementDatedateDate the home-loan agreement was concluded. Must fall within 1 January 2018 - 31 December 2025 per the source's own validation note.
-
totalEmploymentIncomenumber requiredTotal employment income from all employers during the tax year. A non-resident reports only Slovak-source income; a resident reports worldwide income.
range: 0–∞ -
incomeFromNonEmploymentWorkAgreementsnumberOf the total on r.34, the portion arising from agreements for work performed outside an employment relationship (dohody). Must not exceed totalEmploymentIncome.
range: 0–∞ -
totalMandatoryInsuranceContributionsnumberTotal compulsory social/health insurance premiums and contributions paid on the employment income in r.34.
range: 0–∞ -
socialInsuranceContributionsnumberOf the total on r.36, the portion for social insurance (security) contributions. Must not exceed totalMandatoryInsuranceContributions.
range: 0–∞ -
healthInsuranceContributionsnumberOf the total on r.36, the portion for health insurance contributions. Must not exceed totalMandatoryInsuranceContributions.
range: 0–∞ -
taxBaseFromEmploymentIncomenumberTax base from employment income: r.39 = Max(0; r.34 - r.36). The tax base cannot be negative.
range: 0–∞ -
nonTaxableAmountSelfnumberNon-taxable part of the tax base on the taxpayer, computed per § 11 ods. 2, using the source's own worked reference table at the end of the guidance notes.
range: 0–∞ -
nonTaxableAmountSpousenumberNon-taxable part of the tax base claimed on a spouse under § 11 ods. 3, requiring spouseFullName/claimSpouseNonTaxableAmount to be completed.
range: 0–∞ -
supplementaryPensionContributionsDeductionnumberNon-taxable part of the tax base for verifiably paid contributions to a pan-European personal pension product and supplementary pension savings, up to an aggregate EUR 180 (§ 11 ods. 8).
range: 0–180 -
totalTaxBaseReductionnumberSum of r.40 + r.41 + r.42, capped at the tax base in r.39.
range: 0–∞ -
reducedTaxBasenumberTax base from r.39 reduced by r.43 and increased by any contribution add-back under § 11 ods. 11 and § 52zza ods. 2.
-
taxAmountUnderSection15numberIncome tax computed on the tax base in r.44: 19% up to EUR 48,441.43, and 19% on the first EUR 48,441.43 plus 25% on the excess above that threshold (r.45 = 48441.43*0.19 + (r.44-48441.43)*0.25 when r.44 exceeds the threshold). Zero if the taxpayer claims the employee bonus (r.46).
range: 0–∞ -
employeeBonusnumberEmployee bonus (zamestnanecká prémia) under § 32a, available to certain low-income employees in place of the ordinary tax computation.
range: 0–∞ -
incorrectlyPaidEmployeeBonusAmountnumberAmount of employee bonus incorrectly paid out by the employer or the tax administrator.
range: 0–∞ -
totalExemptForeignIncomenumberTotal income (tax bases) exempted from Slovak taxation under a double-taxation treaty's exemption method, capped at r.39.
range: 0–∞ -
taxBaseAfterExemptionnumberTax base from r.44 reduced by the exempted income in r.48; zero if the result would be negative.
range: 0–∞ -
taxAfterExemptionnumberTax under § 15 computed on the tax base in r.49 after the foreign-income exemption. The 25% bracket threshold is EUR 48,441.43.
-
totalForeignSourceIncomenumberTotal foreign-source income (tax bases) for which a foreign tax credit is claimed (credit method), capped at r.39.
range: 0–∞ -
foreignTaxPaidnumberForeign tax actually paid on the income in r.51.
range: 0–∞ -
creditPercentageCalculationnumberCredit percentage: [(r.39 - r.48) or r.39] x 100, used to compute the creditable foreign tax.
-
creditableForeignTaxAmountBeforeCapnumberAmount of foreign tax that may be credited before the r.52 cap is applied: [(r.50 or r.45) x r.53] / 100.
-
recognizedForeignTaxCreditnumberForeign tax credit recognized: r.54 capped at r.52 (r.55 = Max(0, Min(r.54, r.52))).
range: 0–∞ -
taxLiabilitynumberFinal tax liability: r.45 or r.50, further reduced by the recognized foreign tax credit r.55 where applicable. Reported as zero in several statutorily defined low-liability/low-income cases per the source's own footnote 10.
-
increasedTaxBaseForChildBonusnumberTax base increased for the purpose of computing the tax bonus under § 33 ods. 8: r.32a / 12 x number of checked months in r.32, plus r.39. Completed only when the taxpayer applies the § 33 ods. 8 procedure.
range: 0–∞ -
childBonusEntitlementnumberEntitlement to the statutory tax bonus for the dependent child(ren) named in r.31/Section IX: EUR 100/month for a child under 15, EUR 50/month for a child 15 up to and including 18.
range: 0–∞ -
taxAfterChildBonusnumberTax liability (r.56) reduced by the tax bonus (r.57); zero if r.57 exceeds r.56.
-
childBonusPaidByEmployernumber59 - Suma daňového bonusu priznaného a vyplateného zamestnávateľom, EUR
range: 0–∞ -
childBonusDifferencePositivenumbermax(0, r.57 - r.59).
range: 0–∞ -
childBonusPayableByTaxAuthoritynumbermax(0, r.60 - r.56). A positive amount here requires completing the payout request in Section XI.
range: 0–∞ -
childBonusOverpaidByEmployernumbermax(0, r.59 - r.57).
range: 0–∞ -
mortgageInterestBonusEntitlementnumberEntitlement to the mortgage-interest tax bonus under § 33a: 50% of interest paid, capped at EUR 400/year for loan agreements concluded by 31 December 2023 or EUR 1,200/year for agreements concluded after that date.
range: 0–∞ -
taxAfterMortgageInterestBonusnumberr.58 - r.63.
-
mortgageInterestBonusPaidByEmployernumberCompleted only in a return filed after an annual settlement (ročné zúčtovanie).
range: 0–∞ -
mortgageInterestBonusDifferencePositivenumbermax(0, r.63 - r.65).
range: 0–∞ -
mortgageInterestBonusPayableByTaxAuthoritynumbermax(0, r.66 - r.58). A positive amount here requires completing the payout request in Section XI.
range: 0–∞ -
advancesPaidUnderSection34number68 - Úhrn preddavkov zaplatených podľa § 34 zákona, EUR
range: 0–∞ -
advancesWithheldUnderSection35numberAdvances withheld under § 35, excluding advances under § 35 ods. 10 and 11.
range: 0–∞ -
advancesPaidUnderSection35Para10And11number70 - Úhrn preddavkov zaplatených podľa § 35 ods. 10 a 11 zákona, EUR
range: 0–∞ -
taxPayablenumberTax payable: r.56 - r.57 + r.59 + r.61 - r.63 + r.65 + r.67 - r.68 - r.69 - r.70 + r.47, when positive. Not payable if EUR 5 or less.
range: 0–∞ -
taxOverpaymentnumberTax overpayment: the negative of the same formula as taxPayable, expressed as a positive overpayment amount.
range: 0–∞ -
priorReturnTaxAmountnumberTax liability (r.56) from the return being corrected, or the corresponding line of a prior Type B return or annual settlement.
range: 0–∞ -
taxIncreaseOrDecreasenumberr.56 - r.73, positive or negative.
-
priorReturnTaxPayableOrOverpaymentnumberr.71 or r.72 from the return being corrected (or the corresponding line of a prior Type B return or annual settlement).
-
adjustedTaxPayableOrOverpaymentnumber(r.71 or r.72) - r.75, adjusted for any tax-share donation (2%/3%) difference exceeding zero.
-
priorReturnChildBonusPayablenumber77 - Suma daňového bonusu na poukázanie správcom dane z predchádzajúceho daňového priznania, EUR
range: 0–∞ -
childBonusPayableDifferencenumberr.61 - r.77, positive (payable by the tax administrator) or negative (repayable to the tax administrator).
-
priorReturnMortgageInterestBonusPayablenumber79 - Suma daňového bonusu na zaplatené úroky na poukázanie z predchádzajúceho daňového priznania, EUR
range: 0–∞ -
mortgageInterestBonusPayableDifferencenumberr.67 - r.79, positive or negative.
-
doesNotApplyTaxShareProcedurebooleanChecked when the taxpayer does not designate any portion of paid tax to a recipient organization under § 50; when checked, r.81/r.82 are not completed.
-
recipientOrganizationIdstringCompany/organization identification number (IČO, 8 or 12 digits) of the designated recipient of the tax-share donation. The recipient must appear on the Notarial Chamber's own list of eligible recipients for the relevant year.
length: 0–12 -
recipientOrganizationNamestringBusiness name of the designated recipient organization named in r.81.
length: 0–74 -
meetsVolunteering3PercentConditionbooleanChecked when the taxpayer performed at least 40 hours of volunteer activity during the tax year (Act No. 406/2011 Coll.), raising the eligible donation share from 2% to 3% of tax paid; a written confirmation of the volunteer activity must be attached.
-
taxShareDonationAmountnumberAmount of tax share (2%, or 3% if meetsVolunteering3PercentCondition) designated to the recipient in r.81, minimum EUR 3.
range: 3–∞ -
consentToShareDataWithRecipientbooleanConsent to send the taxpayer's name, surname, and permanent residence to the recipient designated in r.81, per § 50 ods. 8.
-
doesNotApplyParentProcedurebooleanChecked when the taxpayer does not designate a share of paid tax to a parent (or parents) under § 50aa.
-
parentABirthNumberPart1string83 - Rodné číslo (rodič A), 1. časť
length: 0–6classification: sensitive-pii -
parentABirthNumberPart2string83 - Rodné číslo (rodič A), 2. časť
length: 0–4classification: sensitive-pii -
parentASurnamestring83 - Priezvisko (rodič A)
length: 0–30classification: pii -
parentAGivenNamestring83 - Meno (rodič A)
length: 0–20classification: pii -
parentBBirthNumberPart1string83 - Rodné číslo (rodič B), 1. časť
length: 0–6classification: sensitive-pii -
parentBBirthNumberPart2string83 - Rodné číslo (rodič B), 2. časť
length: 0–4classification: sensitive-pii -
parentBSurnamestring83 - Priezvisko (rodič B)
length: 0–30classification: pii -
parentBGivenNamestring83 - Meno (rodič B)
length: 0–20classification: pii -
inSubstituteParentalCarebooleanChecked when the taxpayer designates their tax share to a person into whose substitute parental care they were placed by a competent authority's decision, a copy of which is attached.
-
hasSpecialNotesbooleanChecked when the taxpayer records any special notes in Section IX (e.g. additional dependent children beyond the single printed row, or foreign-source employment income detail).
-
foreignEmploymentIncomeCountryCodestringNumeric country/territory code (per Decree of the Statistical Office of the Slovak Republic No. 112/2012 Z.z., as amended by No. 108/2014 Z.z.) of the state where employment income within r.34 was earned, for a resident with unlimited tax liability. The source presents this as a dropdown of about 250 countries/territories; not enumerated here as a validation.enum given its length — modeled as a free-text numeric code, a disclosed scope decision.
pattern -
foreignEmploymentIncomeAmountnumberPríjmy (zo zdrojov v zahraničí), EUR
range: 0–∞ -
foreignEmploymentExpensesnumberCompulsory insurance premiums/contributions payable by the employee, verifiably paid in Slovakia and abroad.
range: 0–∞ -
foreignEmploymentExpensesAbroadnumberOf the expenses above, the portion of compulsory insurance premiums/contributions verifiably paid abroad.
range: 0–∞ -
specialNotesTextstringFree-text area for any special records the taxpayer needs to disclose (e.g. additional dependent children per r.31a, or a foreign bank account's own routing details when not in IBAN format, per Section XI's own instruction).
-
taxResidenceCountrystringState of tax residence, completed when the taxpayer has limited tax liability in Slovakia (isNonResident) — and left blank for a resident.
length: 0–37 -
totalTaxableIncomeWorldwidenumberAggregate of all taxable income from Slovak and foreign sources, completed by a resident applying § 33 ods. 9, a non-resident applying § 11 ods. 7/§ 33 ods. 9/§ 33a ods. 10/§ 46a, or a taxpayer who is a second eligible person for § 33 ods. 8 purposes. Includes income taxed by withholding.
range: 0–∞ -
totalTaxableIncomeSlovakSourcenumberOf the total in r.85, the portion from Slovak sources. Must not exceed totalTaxableIncomeWorldwide.
range: 0–∞ -
attachmentCountintegerTotal number of all annexes/attachments accompanying this tax return.
range: 0–∞ -
declarationDatedate requiredDate of the taxpayer's declaration that all information in the return is correct and complete.
-
requestChildBonusPayoutbooleanRequest payout of the tax bonus (r.61) or its positive difference (r.78) by the tax authority.
-
requestEmployeeBonusPayoutbooleanRequest payout of the employee bonus under § 32a (r.46) by the tax authority.
-
requestMortgageInterestBonusPayoutbooleanRequest payout of the mortgage-interest tax bonus (r.67) or its positive difference (r.80) by the tax authority.
-
requestOverpaymentRefundbooleanRequest refund of the tax overpayment (r.72, or the negative difference in r.76) under § 79 of the Tax Administration Act.
-
payoutMethodenumHow a requested payout is to be made: by postal money order (up to and including EUR 15,000), to the taxpayer's own account, or to a foreign account the taxpayer is not the holder of. Exactly one of these three source radio options may be selected.
enum: postal-money-order | own-account | foreign-account-not-own -
payoutIbanstringIBAN for the payout, required when payoutMethod is own-account or foreign-account-not-own. Format: 2-letter country code, 2-digit check digits, up to 30 alphanumeric characters.
patternlength: 0–34classification: financial -
payoutRequestDatedateDate of this payout/refund request.
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-14maturity.level:structural-reference
This is GovSchema Standard Research cycle GOV-2981, opening Slovakia as this registry's 56th jurisdiction, via its Taxes vertical. This is a previously-scouted, well-verified candidate carried forward from GOV-2969 and re-confirmed as a live-outage/Wayback-capture case in GOV-2976 (2026-07-14).
Duplicate-concurrent-run check
Checked git branch -a | grep -i "sk-\|slovak" and searched for any open PR referencing sk/financna-sprava before starting — neither found an existing branch or PR for this deliverable, so no reconciliation was needed.
Live-outage re-check
Re-checked financnasprava.sk and pfseform.financnasprava.sk at the start of this cycle (2026-07-14):
``` $ curl -s -o /dev/null -w "HTTP %{http_code} -> %{url_effective}\n" -L https://financnasprava.sk HTTP 000 -> https://financnasprava.sk/ (connection failure / no response)
$ curl -s -o /dev/null -w "HTTP %{http_code} -> %{url_effective}\n" -L https://pfseform.financnasprava.sk/Formulare/eFormVzor/DP/form.620.html HTTP 200 -> https://servis.financnasprava.sk/odstavka/ ```
The forms subdomain still redirects to the same outage page (servis.financnasprava.sk/odstavka) first observed in GOV-2969 and still live as of GOV-2976 — no ETA published. Per the task brief, the Wayback Machine capture was used instead of a fresh live fetch.
Source verification
- Wayback lookup:
https://archive.org/wayback/available?url=pfseform.financnasprava.sk/Formulare/eFormVzor/DP/form.620.htmlreturned a single available snapshot at timestamp20260521100832(21 May 2026), confirming the source's ownLast-Modifiedheader (22 Apr 2026) predates the capture. - Fetched via
curl(per this registry's establishedWebFetchhard-fails-on-web.archive.orgworkaround — resolve the timestamp via thearchive.org/wayback/availableJSON API withWebFetch, thencurlthe actual snapshot URL from Bash):http://web.archive.org/web/20260521100832/https://pfseform.financnasprava.sk/Formulare/eFormVzor/DP/form.620.html— HTTP 200,Content-Type: text/html, the Wayback proxy's ownx-archive-orig-content-lengthheader reports 1,533,265 bytes for the original capture (the rewritten/proxied HTML actually saved locally is 1,501,443 bytes, reflecting Wayback's own link-rewriting); locally saved file sha256:19a2f118c29b2bbe96929c17c60c6e2c3d16c757835d0d3dad54d9a588aca330.memento-datetime: Thu, 21 May 2026 10:08:32 GMTconfirms the capture timestamp. - The document's own
<title>reads "DPFOAv25 - Daňové priznanie k dani z príjmov fyzickej osoby (typ A) za zdaňovacie obdobie 2025 (platné od 1.1.2026)" — confirming this is the DPFOAv25 individual income-tax-return Type A form for the 2025 tax year, effective from 1 January 2026. - This is a genuine client-side, JavaScript-rendered fillable HTML e-form (not a PDF/AcroForm): a
<form id="DPFOA2025">containing real<input>,<select>, and<textarea>elements with their ownname/id/maxlength/title(client-side validation-hint) attributes, served directly from the Financial Administration's ownpfseform.financnasprava.skform-template subdomain — a first-party, unauthenticated, no-login/CAPTCHA/WAF-gated source (accessible without JavaScript execution for extraction purposes, since the raw HTML markup itself carries every field's real attributes).
Field extraction method
Rather than trusting a prior scouting summary, the saved HTML was independently re-parsed from scratch using Python's html.parser (HTMLParser subclass tracking fieldLabel spans, headercorrection section-heading divs, and input/select/option/textarea elements in document order) rather than a naive regex — an initial regex-based pass mis-parsed roughly a dozen <input> tags whose own title attributes contained an unescaped > character (e.g. formula text like "r.46 > 0"), which silently truncated the regex match; the HTMLParser-based re-parse independently confirmed every one of those inputs was actually a normal type="text" field with a real maxlength, not a malformed/anonymous tag.
Extraction counts, independently tallied from the parsed event stream:
- 172 non-hidden
<input>elements (119type="text", including every date field — the source usestype="text" class="date datepicker"for dates, not a nativetype="date"— plustbR36, whose own raw tag had an unescaped>inside itstitleattribute that initially broke a naive regex parse, independently confirmed a normaltype="text"field via theHTMLParserre-parse; 45type="checkbox"; 6type="radio"; 1type="submit"; 1type="button"), plus 129type="hidden"inputs (confirmed to be pure DOM/layout-section anchors carrying novalueattribute and no applicant-facing label — excluded from the field list as structural markers, not data fields). - 2
<select>elements:KodStatu(a ~250-entry ISO-style numeric country/territory code list per Decree of the Statistical Office of the Slovak Republic No. 112/2012 Z.z., as amended by No. 108/2014 Z.z.) andSkryte_pomocne_pole(a Slovak bank-code lookup list, confirmed to be a hidden helper field for the IBAN entry UI, not an applicant-facing field itself — excluded). - 1
<textarea>(OsobitneZaznamy, the Section IX free-text notes field). - 11 lettered sections (I through XI), confirmed via the
headercorrectionheading text — not 9 sections as the prior GOV-2969 scouting note estimated; this cycle corrects that estimate having now actually opened and read the full form. Line numbering runs 01 through 86 (with lettered sub-lines 32a, 56a, 85a), not "~89" as the scouting note estimated — also corrected here.
Field derivation and scoping — 146 fields modeled
The full parsed event stream (clean_extracted.txt, 858 lines) was read in full, section by section, before modeling any field. Scope:
- Header (5 fields): return type (ordinary/corrective/additional, from the
g1radio group), taxpayer TIN/birth-number-or-birth-date (r.01/r.02, an either/or pair left independently optional — no invented gate, see Scoping judgment calls below), tax year (r., enum[2025, 2026]per the source's own instruction restricting 2026 to a deceased taxpayer's return), and the additional-return discovery date (requiredWhenreturnType equals additional). - Section I — taxpayer data (17 fields): name, permanent-address block, the non-resident/limited-tax-liability branch (r.11, gating a
requiredWhen-bound non-residency period and Section X'staxResidenceCountry), and the Slovak-residence-address block used only when the taxpayer has no permanent Slovak residence. - Section II — legal representative/heir (13 fields): name, birth number, address, and contact phone/email (the source's own footnote 4 states these two are not mandatory under § 32 ods. 7).
- Section III — tax-base reduction and child tax bonus (24 fields): the pension-based reduction (r.27/r.28), spouse non-taxable amount (r.29/r.30), one dependent child's data (r.31 — the source form prints only a single child row; additional children are declared in Section IX free text per the source's own r.31a instruction, so no bounded repeating group was invented here), and the second-eligible-person shared-claim mechanism (r.32/r.32a, § 33 ods. 8).
- Section IV — mortgage-interest tax bonus (5 fields): the claim flag (r.33) plus its four
requiredWhen-gated companions (amount, months count, loan-accrual start date, loan-agreement date). - Section V — tax base from employment income (6 fields): r.34 through r.39, the ordinary/dohody income split and the compulsory-insurance breakdown.
- Section VI — full tax computation (34 fields): r.40 through r.72 — every computed line the source's own client-side script derives from other lines (e.g. r.45's 19%/25% bracket formula, r.71/r.72's final payable/overpayment formula) is modeled as an ordinary editable
numberfield, with the governing formula transcribed verbatim into that field's owndescription, following this registry's established practice for other richly cross-referenced tax-computation forms (e.g.kr/nts's year-end tax settlement, which models its own derived lines the same way). - Section VII — differences from an additional return (8 fields): r.73 through r.80,
requiredWhen-gated onreturnTypeequalsadditionalwhere a clean single-condition gate existed (r.73/r.74's own cross-reference makes clear these apply only to a dodatočné/additional return). - Section VIII — 2%/3% tax-share donation (16 fields): the § 50 recipient-organization block (r.81/r.82, including the volunteering-based 3% eligibility flag) and the § 50aa parent-designation block (r.83, two parent slots as printed).
- Section IX — free-text special records (6 fields): the has-notes flag, the single foreign-employment-income detail row (country code + income/expenses), and the free-text notes field itself.
- Section X — further taxpayer data (5 fields): r.84 through r.86 plus the declaration date, including
taxResidenceCountry's cleanrequiredWhengate onisNonResident. - Section XI — payout/refund request (7 fields): the four payout-type request flags, the mutually-exclusive payout-method enum (postal money order / own account / foreign account not own), the
requiredWhen-gated IBAN, and the request date.
Scoping and modeling judgment calls
taxpayerTin/taxpayerBirthDateIfNoTin(r.01/r.02) left independently optional, no invented gate: the source's own validation note reads "Musí byť vyplnené DIČ (rodné číslo) na r.1, alebo dátum narodenia na r.2" (either r.1 or r.2 must be filled) — an either/or across two optional fields, which the meta-schema'srequiredWhen(a single field-equals-value gate) cannot cleanly express. Disclosed here rather than invented as a fabricatedcrossFieldValidationrule, per this registry's own established no-invented-gate convention (see e.g.ke/nrb's identical reasoning for its own "at least one of five optional fields" case).- Two 12-checkbox month-selection grids (Section III, r.31 and r.32) each modeled as one boolean "full year" flag (
childBonusFullYear/secondEligiblePersonBonusFullYear) plus one comma-separated multi-select-as-string field for individually checked months (childBonusMonths/secondEligiblePersonBonusMonths) — following the established multi-select-as-string precedent already used elsewhere in this registry (e.g.fr/france-visas/schengen-visa-application's means-of-support fields,us/ca/sos/voter-registration's language field), pending GSP-0009 (repeating/multi-select gap). Not modeled as 12 independent boolean fields each, since the source's own title text states the "1-12" checkbox and the individual month checkboxes are mutually exclusive as a group, which neither anexclusivityGroup(limited to "at most one true across the whole group," which would incorrectly forbid checking two individual months at once) nor 12 independent booleans cleanly expresses. foreignEmploymentIncomeCountryCodemodeled as a free-text numeric-code string, notenum: the source's ownKodStatudropdown lists approximately 250 countries/territories; enumerating all of them was judged disproportionate to this field's role (a single supplementary disclosure row in Section IX), so only a 3-digit numeric-code pattern is validated, with the code list itself cited by its governing Decree in the field's own description — a disclosed scope decision, not an omission.- Computed/derived tax-computation lines (r.39 through r.80) modeled as ordinary editable
numberfields, each field's owndescriptiontranscribing the governing formula verbatim from the source's owntitleattribute (e.g.taxAmountUnderSection15's 19%/25% bracket formula,taxPayable's full r.56-through-r.47 formula) — the source form itself presents these as fields its own client-side script populates, not as read-only display text, so they are modeled as data fields per this registry's precedent for other richly cross-referenced tax forms. mortgageInterestPaidAmount(t33_1) modelednumberdespite its raw HTMLmaxlength="400": cross-referenced against the section's own footnote 8 ("Suma zaplatených úrokov za zdaňovacie obdobie, dátum uzavretia zmluvy o úvere a dátum začatia úročenia úveru sa uvádza podľa potvrdenia...") confirms this line records the interest amount; the oversizedmaxlengthis disclosed as an artifact of a generic textbox UI component shared with unrelated combined-name fields elsewhere on the same form (e.g.tPriezvisko29_1_1, alsomaxlength="400"), not a literal 400-character numeric value.payoutMethodmodeled as a 3-valueenum(postal-money-order,own-account,foreign-account-not-own) from the source's ownPoukazkaUcetradio group;payoutIbanrequiredWhengated on the latter two values (both require an account number), not onpostal-money-order.- Classification: birth numbers (
taxpayerTinwhen it carries a rodné číslo,representativeBirthNumberPart1/2,spouseBirthNumberPart1/2,childBirthNumberPart1/2,secondEligiblePersonBirthNumberPart1/2,parentABirthNumberPart1/2,parentBBirthNumberPart1/2,foreignTin) taggedsensitive-pii; plain names/addresses taggedpii;payoutIbantaggedfinancial. Plain numeric/enumerated/boolean filing and tax-computation fields are left unclassified, matching this registry's established precedent. jurisdiction.levelisnational— the Financial Administration is Slovakia's national tax authority.process.typeisfiling,process.languageissk, matching this registry's established conventions for tax-return forms.
Conformance run
Two hand-authored valid fixtures under conformance/sk/financna-sprava/dpfoav25-individual-income-tax-return/1.0.0/:
valid-wage-earner-minimal.json— a resident wage-earner with no pension, spouse, child, or mortgage-interest claims, a small final tax payable, and the tax-share-donation/parent-designation opt-outs checked — exercises the schema's minimal static-required-field path (returnType,taxYear,taxpayerSurname,taxpayerGivenName,totalEmploymentIncome,declarationDate).valid-nonresident-with-child-bonus-and-refund.json— a non-resident taxpayer filing an additional (corrective, post-deadline) return, with a declared non-residency period and foreign TIN, one dependent child claimed for the full year, a mortgage-interest bonus claim with all four conditional companions supplied, a requested overpayment refund routed to an IBAN, and Section IX free-text notes disclosing a second child — exercisesrequiredWhengates acrossreturnType,isNonResident,claimMortgageInterestBonus, andpayoutMethodtogether.
Ten mutation-control fixtures, each isolated to raise exactly one error:
mutation-control-missing-required-field.json— dropstaxpayerSurname(staticrequired: true).mutation-control-invalid-enum-value.json— setsreturnTypeto"revised", not one of the enum's 3 values.mutation-control-invalid-date-format.json— setsdeclarationDateto"15-03-2026", not the requiredYYYY-MM-DDshape.mutation-control-invalid-type-income-amount.json— setstotalEmploymentIncometo the string"twenty-four-thousand"instead of a number.mutation-control-value-below-minimum.json— setstotalEmploymentIncometo-500, belowvalidation.minimum: 0.mutation-control-value-above-maximum.json— setssupplementaryPensionContributionsDeductionto250, abovevalidation.maximum: 180.mutation-control-missing-conditional-discovery-date.json— built from the full non-resident fixture (which already carriesreturnType: "additional"and itspriorReturnTaxAmountcompanion), dropping onlyadditionalReturnDiscoveryDate.mutation-control-missing-conditional-mortgage-interest-amount.json— built from the same full fixture, dropping onlymortgageInterestPaidAmountwhileclaimMortgageInterestBonus: trueand its other three conditional companions remain present.mutation-control-missing-conditional-nonresident-period.json— drops onlynonResidentPeriodFromwhileisNonResident: trueandnonResidentPeriodToremain present.mutation-control-missing-conditional-payout-iban.json— drops onlypayoutIbanwhilerequestOverpaymentRefund: trueandpayoutMethod: "own-account"remain present.
(Note: three of these mutations are deliberately built from the fuller valid fixture rather than the minimal one, specifically because several requiredWhen gates in this schema share a single trigger field — e.g. returnType: "additional" gates both additionalReturnDiscoveryDate and priorReturnTaxAmount, and claimMortgageInterestBonus: true gates four separate companions — so flipping the trigger alone from the minimal fixture would raise more than one error at once. Isolating exactly one missing field required starting from a base where every other companion of that trigger was already supplied.)
All twelve fixtures were checked with a from-scratch Node conformance checker (/tmp/sk-dpfoav25/validate_conformance.mjs, not committed — a disposable script run from an isolated scratch directory, per this registry's own established practice since no committed conformance-fixture validator exists) implementing this schema's own required/requiredWhen/type/validation.enum/validation.minimum/ validation.maximum/validation.pattern/date-format grammar directly:
`` $ node validate_conformance.mjs schema.json conformance/sk/financna-sprava/dpfoav25-individual-income-tax-return/1.0.0 OK mutation-control-invalid-date-format.json errors=["declarationDate: invalid date format \"15-03-2026\", expected YYYY-MM-DD"] OK mutation-control-invalid-enum-value.json errors=["returnType: value \"revised\" not in enum [\"ordinary\",\"corrective\",\"additional\"]"] OK mutation-control-invalid-type-income-amount.json errors=["totalEmploymentIncome: expected type number, got string (\"twenty-four-thousand\")"] OK mutation-control-missing-conditional-discovery-date.json errors=["additionalReturnDiscoveryDate: required but missing"] OK mutation-control-missing-conditional-mortgage-interest-amount.json errors=["mortgageInterestPaidAmount: required but missing"] OK mutation-control-missing-conditional-nonresident-period.json errors=["nonResidentPeriodFrom: required but missing"] OK mutation-control-missing-conditional-payout-iban.json errors=["payoutIban: required but missing"] OK mutation-control-missing-required-field.json errors=["taxpayerSurname: required but missing"] OK mutation-control-value-above-maximum.json errors=["supplementaryPensionContributionsDeduction: value 250 above maximum 180"] OK mutation-control-value-below-minimum.json errors=["totalEmploymentIncome: value -500 below minimum 0"] OK valid-nonresident-with-child-bonus-and-refund.json errors=[] OK valid-wage-earner-minimal.json errors=[] ``
All ten negative controls raised exactly one error each, and neither valid scenario raised an unexpected error.
The registry's zero-dependency structural validator and its ajv-based meta-schema validator were both run against the full registry (including this new schema) and pass:
``` $ node tools/validate.mjs 448/448 document(s) passed. 3/3 mapping.json companion(s) passed.
$ node tools/validate-ajv.mjs 448/448 document(s) validated against the meta-schema (ajv 2020-12). 3/3 mapping.json companion(s) validated. ```
tools/govschema-client/registry-index.json was regenerated via npm run build-index inside tools/govschema-client/.
Scope and jurisdiction notes
- Opens Slovakia as this registry's 56th jurisdiction, via its Taxes vertical (1 of 6). The other five verticals (Passport, National ID, DMV, Business Formation, Visa) remain undiscovered/unscouted for Slovakia — this cycle did not screen them, and no claim is made about their availability one way or the other. A future cycle deepening Slovakia should scout all five in parallel per this registry's established practice.
financnasprava.sk's site-wide outage (first observed GOV-2969, still live as of GOV-2976 and re-confirmed still live in this cycle, GOV-2981, on 2026-07-14) means a future re-verification of this schema should first re-check whether the live site has recovered, and if so, re-fetchpfseform.financnasprava.sk/Formulare/eFormVzor/DP/form.620.htmldirectly rather than continuing to rely on the Wayback capture.- The two
slovensko.skMZV consular eForms noted in GOV-2969/GOV-2976 as backup candidates (National ID card request, driving-licence request, both scoped to citizens abroad) remain unauthored disclosed backlog for a future cycle building out Slovakia's National ID/DMV verticals.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-14 (6 months). A future review should prioritize: (1) re-checking whether financnasprava.sk has recovered from its outage, and if so, re-fetching DPFOAv25 directly from the live site rather than the Wayback capture used here; (2) confirming whether a later edition of DPFOA has superseded the 2025-tax-year/platné od 1.1.2026 version modeled here; (3) scouting Slovakia's other five verticals (Passport, National ID, DMV, Business Formation, Visa), all currently undiscovered for this jurisdiction.
View the raw record (VERIFICATION.md)
Version history
-
1.0.0draftlatestthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Finančná správa Slovenskej republiky (Financial Administration of the Slovak Republic) or any government. The authoritative source is always the live government form and its official instructions.