Registry entry

Estonia Income Tax Return of a Resident Natural Person (Form A / Vorm A)

Vorm A / Form A, 'Residendist füüsilise isiku tuludeklaratsioon' (Income tax return of a resident natural person), the annual individual income tax return an Estonian tax resident files with the Maksu- ja Tolliamet (Estonian Tax and Customs Board, EMTA) declaring the previous calendar year's income. The 2025-tax-year edition (filed 16 February - 30 April 2026) is a genuine, current, directly downloadable, unauthenticated, bilingual (Estonian/English) PDF with no AcroForm layer (confirmed via pdfjs-dist returning zero Widget annotations across all 12 pages) but fully self-documenting numbered sections. This document models the common wage-earner case only: general personal data (Section 1.1), residential address (Section 3), contact details (Section 4), one representative domestic wage-income row from the table of income already taxed at source (Section 5.1, Part I), one representative gift/donation entry (Section 9.4) and one representative paid-training-expense entry (Section 9.6) among the return's voluntary deductions, the domestic bank account nominated for an overpayment refund (Section 11), and the closing declaration (Section 14). It deliberately does NOT model: EEA cross-border resident provisions (Section 2); wage/salary income not yet taxed at source (Section 5.1, Part II) or any of the other Section 5 income-source tables (mandatory/supplementary funded pension and PEPP contracts, unit-linked life insurance, rent/royalty income, income in an association of persons); gains from the transfer of property, including financial assets, forest cutting rights, other property, holding reductions, investment accounts, and company-merger property income (Section 6); income counted only for calculating the basic exemption (Section 7); any foreign-sourced income (Section 8); the remaining voluntary-deduction tables (unemployment insurance and mandatory funded pension contributions, supplementary funded pension/PEPP contributions, foreign social security contributions, and the training-expense transfer to a spouse) (Sections 9.1-9.3, 9.5, 10); refund to a foreign bank account (Section 12); the overpayment-use election (Section 13); and the taxpayer's-representative sub-block (Section 14.2). Every table this document does model is inherently repeatable on the live form (multiple payers, multiple gifts, multiple training-expense claims); this v1.0.0 bounds each to a single representative instance, consistent with this registry's established convention for repeating structures pending a composite/repeating-value construct (see e.g. gb/companies-house/company-incorporation-in01, ph/bir/tin-application-corporations-partnerships). GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Estonia or the Maksu- ja Tolliamet.

Registry entry

ee/emta/income-tax-return-form-a

Jurisdiction
Estonia · national
Version
1.0.0
Verification
draft

Authoritative source Vorm A / Form A, 'Residendist füüsilise isiku tuludeklaratsioon / Income tax return of a resident natural person', 2025 tax year edition (vorm_a_2025_ee_en.pdf, listed on the forms index page as 'Form A | Income tax return' under 'Tax return forms for resident natural persons') — a genuine, current PDF hosted directly on emta.ee with no login/CAPTCHA/WAF gate, 346.4 KB, 12 pages, its own printed numbered sections (1, 1.1-1.1, 2, 2.1-2.4, 3, 4, 5.1-5.5, 6.1-6.6, 7.1-7.3, 8.1-8.9, 9.1-9.6, 10, 10.1-10.3, 11-11.2, 12.1-12.6, 13, 14, 14.1-14.2) self-documenting every field's bilingual label. Filing window, tax rate, and filing-obligation criteria cross-referenced against EMTA's own 'Income tax returns for 2025' page (https://www.emta.ee/en/private-client/taxes-and-payment/declaration-income/income-tax-returns-2025), retrieved directly (HTTP 200, no login, server-rendered plain English HTML), which itself cites Tulumaksuseadus (Income Tax Act) section 43(4) (linked as riigiteataja.ee/en/eli/ee/521112023001/consolide/current#para43lg4) as the statutory basis for the filing deadline; riigiteataja.ee itself is a fully client-rendered Angular SPA that returns an identical empty shell to an unauthenticated fetch (this registry's established obstacle for that host, see ee/rik/private-limited-company-foundation and ee/ppa/passport-application), so the Act's own text was not independently re-fetched for this v1.0.0 and is cited only via EMTA's own reference to it.

Machine access

Schema document
registry/ee/emta/income-tax-return-form-a/1.0.0/schema.jsonapplication/schema+json
Registry catalog
registry/index.jsonone record per schema id

Field reference

28 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

  • taxYear integer required

    The calendar tax year this return declares income for. The form's own header prints two blank year fields ('...aasta kuni / year until ... aasta / year') to accommodate a taxable period shorter than a full calendar year (e.g. arrival in or departure from Estonia mid-year); this document models the common full-calendar-year case as a single value, per this registry's convention of collapsing a near-duplicate representation of the same information (see e.g. pl/mf/zeznanie-pit-37's split day/month/year date-box simplification).

    range: 2000–2100
  • firstName string required

    The taxpayer's first name.

    classification: pii
  • surname string required

    The taxpayer's surname.

    classification: pii
  • personalIdCode string required

    The taxpayer's Estonian personal identification code (isikukood), an 11-digit number.

    patternclassification: sensitive-pii
  • residentialAddress string required

    The taxpayer's permanent or main place of residence at the time of submission of the tax return. The form prints this as a single free-text line, not separate street/house/city boxes.

    classification: pii
  • residenceCountry string required

    Country of the taxpayer's residential address.

    classification: pii
  • contactPhone string

    Optional landline telephone number to help the tax authority reach the taxpayer about this return.

    classification: pii
  • contactMobilePhone string

    Optional mobile telephone number to help the tax authority reach the taxpayer about this return.

    classification: pii
  • contactEmail string

    Optional email address to help the tax authority reach the taxpayer about this return.

    patternclassification: pii
  • wagesPayerRegistryOrPersonalCode string

    The registry code (for a company) or personal ID code (for a natural-person payer) of the payer of the wages/salary declared in wagesIncomeAmount. The live table (Section 5.1, Part I) is repeatable across multiple payers; this document models one representative payer row, consistent with this registry's established convention for repeating structures (see schema-level description).

  • wagesPayerName string

    Name of the payer of the wages/salary declared in wagesIncomeAmount.

  • wagesIncomeType string

    The payer's declared income-type classification for this payment (e.g. wages, holiday pay, or another code from EMTA's payroll-reporting income-type list). The live form does not print the underlying code list on its own pages; this document captures the value as declared rather than fabricating an enum.

  • wagesIncomeAmount number

    Gross wage/salary income received from this payer during the tax year, on which income tax has already been withheld.

    range: 0–∞classification: financial
  • wagesWithheldIncomeTax number

    Income tax already withheld and remitted by this payer during the tax year.

    range: 0–∞classification: financial
  • wagesPensionInvestmentAccountIncome boolean

    Whether this wage payment was received into the taxpayer's pension investment account rather than an ordinary account.

  • giftDonationRecipientName string

    Name of the recipient of a gift or donation the taxpayer made during the tax year. The live table (Section 9.4) is repeatable across multiple recipients; this document models one representative entry.

  • giftDonationRecipientRegistryCode string

    Registry code of the recipient organization, when the recipient is a registered legal entity (e.g. a non-profit association eligible for the deduction).

  • giftDonationRecipientCountry string

    Country where the gift/donation recipient is located.

  • giftDonationAmount number

    The amount of the gift or donation made to this recipient during the tax year.

    range: 0–∞classification: financial
  • traineePersonalIdCode string

    Estonian personal ID code of the person the training expense was paid for (the taxpayer or, e.g., the taxpayer's child). The live table (Section 9.6) is repeatable across multiple trainees/institutions; this document models one representative entry.

    classification: sensitive-pii
  • traineeFullName string

    Full name of the person the training expense was paid for.

    classification: pii
  • educationalInstitutionCountry string

    Country where the educational institution is located.

  • educationalInstitutionNameOrCode string

    Name, registration number, or registry code of the educational institution the training expense was paid to.

  • trainingExpensesPaidAmount number

    The amount of training expenses paid to this institution during the tax year.

    range: 0–∞classification: financial
  • refundBankAccountNumber string

    Account number (at an Estonian bank) nominated to receive a refund of overpaid tax. Optional: a taxpayer with no overpayment, or who elects under Section 13 to leave an overpayment against future tax liabilities instead, leaves this absent.

  • refundAccountOwnerFullName string

    First and last name of the owner of the nominated refund account, when the account belongs to a third party rather than the taxpayer (per the taxpayer's written application).

    classification: pii
  • refundAccountOwnerPersonalIdCode string

    Estonian personal ID code of the owner of the nominated refund account.

    patternclassification: sensitive-pii
  • declarationDate date required

    Date the taxpayer signs the closing declaration.

Verification record

This file is the source-review record for this document version, per the manual-source-review-v1 practice. It documents the provenance of the published fields and states the current verification claim honestly.

Current claim

  • status: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-08

This is a GovSchema Standard Research cycle (GOV-1721), the issue's own named candidate. Estonia stood at 3/6 verticals (National ID via ee/ppa/e-residency-application, Business Formation via ee/rik/private-limited-company-foundation, Passport via ee/ppa/passport-application) going into this cycle. This document closes Taxes to 4/6.

Why this candidate

The issue directly named the source: Vorm A / Form A, Estonia's individual income tax return, at a specific pinned URL (https://www.emta.ee/sites/default/files/documents/2026-02/vorm_a_2025_ee_en.pdf), already confirmed by the issue text to be a genuine, unauthenticated, bilingual PDF with zero AcroForm fields. This cycle's work was to independently re-confirm that claim, extract the form's own field inventory, scope it to the common case per the issue's explicit brief, and author the schema — not to re-screen candidates.

Sources examined

Source 1 (primary source, the form)
  • Authority: Maksu- ja Tolliamet (Estonian Tax and Customs Board, EMTA).
  • Document: Vorm A / Form A, "Residendist füüsilise isiku tuludeklaratsioon / Income tax return of a resident natural person," 2025 tax year edition (the current version as of this cycle's retrieval date, per emta.ee's own tax-return-forms-and-instructions index, which lists no later version — a 2026-01-dated sibling form, vorm_a1_est_eng_2025_taidetav.pdf, is a different, pre-filled/"täidetav" variant of the return, not this form).
  • URL (index page, cited in source.url): https://www.emta.ee/en/private-client/taxes-and-payment/declaration-income/tax-return-forms-and-instructions — direct, unauthenticated, HTTP 200, server-rendered plain HTML. Confirmed the page's own listing labels this exact file "Form A | Income tax return" under the heading "Tax return forms for resident natural persons."
  • URL (direct PDF download, cited in source.documentRef): https://www.emta.ee/sites/default/files/documents/2026-02/vorm_a_2025_ee_en.pdf — direct curl, HTTP 200, no login/CAPTCHA/WAF, 354,710 bytes (346.4 KB per the index page's own listed size), 12 pages.
  • Retrieved / reviewed: 2026-07-08.
  • Extraction method: downloaded directly, then parsed with pdfjs-dist (legacy/build/pdf.js, loaded via createRequire since this package ships no .mjs entry point for the legacy build — a small variance from the ESM pdf.mjs import pattern some prior cycles used). page.getAnnotations() returned zero Widget annotations across all 12 pages — confirming the issue's own claim of a static, print/hand-fill template, not a fillable PDF — so page.getTextContent() was used instead, reading the form's own printed numbered sections (1, 1.1, 2, 2.1-2.4, 3, 4, 5.1-5.5, 6.1-6.6, 7.1-7.3, 8.1-8.9, 9.1-9.6, 10, 10.1-10.3, 11-11.2, 12.1-12.6, 13, 14, 14.1-14.2) and every field's bilingual (Estonian/English) inline label, in full, across all 12 pages.
  • What it confirms: every field this document models, verbatim, plus the exact closing declaration text used in documents[].signatureDeclaration (Section 14's confirmation paragraph).
Source 2 (corroboration — filing window, tax rate, and statutory basis)
  • URL: https://www.emta.ee/en/private-client/taxes-and-payment/declaration-income/income-tax-returns-2025 — direct, unauthenticated, HTTP 200, server-rendered plain English HTML, retrieved 2026-07-08.
  • What it confirms: the 2025-tax-year filing window (16 February - 30 April 2026), the 22% tax rate for this filing year, and — in its own "Legislation" tab — a direct citation of Tulumaksuseadus (Income Tax Act) section 43(4) as the statutory basis for the filing deadline (linked as riigiteataja.ee/en/eli/ee/521112023001/consolide/current#para43lg4). riigiteataja.ee itself is a fully client-rendered Angular SPA that returns an identical empty shell to an unauthenticated fetch — the same obstacle this registry's prior two EE schemas (ee/rik/private-limited-company-foundation, ee/ppa/passport-application) hit and worked around via Wayback Machine snapshots of the Act's own /tolge/pdf/ translation route. This cycle did not repeat that workaround: the statute is cited here only as EMTA's own reference to it (a secondary confirmation of the filing-deadline basis), not independently re-fetched and read section-by-section, since the form itself — not the underlying statute — is this document's primary source and is fully self-documenting (see Source 1). A future version wishing to cite specific Tulumaksuseadus sections for individual deduction/income provisions (e.g. the training-expense or gift/donation reliefs this document models) should apply that same Wayback workaround.

Field inventory (Phase 2)

All 27 fields[] entries and the one documents[] entry, and their exact Vorm A page/section reference, are listed inline in schema.json's own sourceRef per field/document. Summary by section:

| Section | Representative fields | Modelled scope | |---|---|---| | Header | taxYear | Single collapsed value (see judgment call 1) | | §1.1 Personal data | firstName, surname, personalIdCode | Full | | §2 EEA resident provisions | — | Entirely out of scope (issue brief) | | §3 Address | residentialAddress, residenceCountry | Full — form prints one free-text address line, not separate street/house boxes | | §4 Contact | contactPhone, contactMobilePhone, contactEmail | Full | | §5.1 Part I (withheld wages) | payer code/name, income type/amount, withheld tax, pension-investment flag | One representative payer row; Part II (tax not withheld) and §5.2-5.5 out of scope | | §6 Property transfer gains | — | Entirely out of scope (issue brief) | | §7 Basic-exemption-only income | — | Out of scope | | §8 Foreign income | — | Entirely out of scope (issue brief) | | §9.4 Gifts/donations | recipient name/registry code/country, amount | One representative entry | | §9.6 Training expenses | trainee ID/name, institution country/name, paid amount | One representative entry | | §9.1-9.3, 9.5, §10 | — | Out of scope | | §11 Domestic refund account | account number, owner name, owner ID code | Full | | §12 Foreign refund account, §13 overpayment election | — | Out of scope | | §14 Confirmation | declarationDate, documents[].signatureDeclaration | Modelled; §14.2 (taxpayer's representative) out of scope |

Total: 27 fields plus 1 documents[] entry (the closing attestation). No crossFieldValidation rules or exclusivityGroups are modelled.

Access notes and judgment calls

  1. taxYear collapses the form's own two-blank header ("...aasta kuni / year until ... aasta / year") into a single value. The live form accommodates a taxable period shorter than a full calendar year (e.g. a taxpayer who arrived in or departed from Estonia mid-year) via two separate year blanks; this v1.0.0 models only the common full-calendar-year case as one integer, the same kind of collapsed representation pl/mf/zeznanie-pit-37 used for its own split date boxes.
  2. Every table this document models is inherently repeatable on the live form (§5.1 Part I: multiple payers; §9.4: multiple gift/donation recipients; §9.6: multiple trainees/institutions). This v1.0.0 bounds each to a single representative instance, consistent with this registry's established convention for repeating structures (e.g. gb/companies-house/company-incorporation-in01, ph/bir/tin-application-corporations-partnerships), pending a composite/repeating-value construct in the spec.
  3. wagesIncomeType is kept as a free string, not an enum. The live form's "Tululiik / Income type" column is populated with a payer-assigned classification code from EMTA's own payroll-reporting system; that code list is not printed on the form's own pages and was not independently sourced this cycle, so this document captures the declared value rather than fabricating an enum.
  4. §5.1's office-only "Maksumäär … (märgib Maksu- ja Tolliamet)" (tax rate, entered by the Estonian Tax and Customs Board) column is excluded, the same class of exclusion this registry applies elsewhere to clerk/office-only fields (e.g. pl/mswia/wniosek-o-wydanie-dowodu-osobistego's "Adnotacje urzędowe" block).
  5. refundBankAccountNumber and its owner fields are optional, not required. §11 only applies to a taxpayer who has an overpayment and elects a refund to a domestic account; a taxpayer with no overpayment, or who elects under §13 (out of scope for v1.0.0) to leave an overpayment against future liabilities, leaves this section blank. This document does not model a requiredWhen gate tying refund fields to an overpayment amount, since the arithmetic chain that would produce that amount (§5 income totals, §9 deduction totals) is itself out of scope.
  6. personalIdCode (isikukood) uses the generic 11-digit pattern ^[0-9]{11}$, matching the pattern this registry's other EE schemas already use (ee/ppa/e-residency-application, ee/rik/private-limited-company-foundation), rather than a stricter century-digit-aware pattern.
  7. §2 (EEA cross-border resident provisions), §6 (property-transfer gains, all six subsections), §8 (all foreign-sourced income, nine subsections), forestry income, and business-merger income are entirely out of scope for v1.0.0, per the issue's explicit brief. §7 (income counted only for the basic-exemption calculation), the remaining §9 deduction tables (unemployment insurance/mandatory funded pension, supplementary funded pension/PEPP, foreign social security, training-expense transfer to a spouse), §10, §12 (foreign refund account), §13 (overpayment-use election), and §14.2 (taxpayer's representative) are also out of scope, consistent with the "common wage-earner case only" framing.

Test run (Phase 3)

No live submission was attempted: Estonia's income tax return is filed either through the authenticated e-MTA self-service portal (requiring a real trusted digital identity — ID-card, Mobile-ID, or Smart-ID) or on paper by post/in person — submitting fabricated taxpayer data against Estonia's live tax administration is not a safe or reversible action.

Instead, one fully hand-constructed mock record was built from this document's own field inventory (an employed Tallinn resident filing individually, one employer's withheld wages, a donation to a registered charity, one paid training-expense claim, and a domestic refund account) and validated with a purpose-written script (reused from a prior cycle's pl/mf/zeznanie-pit-37 review, /tmp/validate_instance.mjs) that compiles schema.json's own fields[] (type/validation/required) into a JSON Schema draft 2020-12 document and checks it with ajv, plus a small hand-rolled evaluator for requiredWhen leaf conditions (unused by this document, since no field uses requiredWhen):

``` $ node validate_instance.mjs registry/ee/emta/income-tax-return-form-a/1.0.0/schema.json mock_vorm_a.json Static (required/type/pattern/enum) validation: PASS requiredWhen conditional validation: PASS

OVERALL: PASS ```

Negative controls, run against the same script to confirm it actually catches violations rather than passing vacuously:

``` $ # personalIdCode shortened to "123" — violates the 11-digit pattern Static (required/type/pattern/enum) validation: FAIL - must match pattern "^[0-9]{11}$"

$ # surname removed — violates required: true Static (required/type/pattern/enum) validation: FAIL - must have required property 'surname' ```

Both meta-schema validators were run against the finished document and pass clean:

``` $ node tools/validate.mjs registry/ee/emta/income-tax-return-form-a/1.0.0/schema.json ok registry/ee/emta/income-tax-return-form-a/1.0.0/schema.json

1/1 document(s) passed.

$ node tools/validate-ajv.mjs registry/ee/emta/income-tax-return-form-a/1.0.0/schema.json ok registry/ee/emta/income-tax-return-form-a/1.0.0/schema.json [v0.3]

1/1 document(s) validated against the meta-schema (ajv 2020-12). ```

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.json

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Maksu- ja Tolliamet (Estonian Tax and Customs Board) or any government. The authoritative source is always the live government form and its official instructions.