Registry entry

Poland Annual Personal Income Tax Return for Employees and Pensioners (PIT-37)

The Polish PIT-37 form, 'Zeznanie o wysokości osiągniętego dochodu (poniesionej straty) w roku podatkowym' (Return on the amount of income earned/loss incurred in the tax year), the annual personal income tax return filed by individuals whose income is taxed at the progressive scale and consists exclusively of amounts already reported to them by a payer on a PIT-11, PIT-11A, PIT-40A, PIT-R, or IFT-1R information slip (chiefly employment wages and pensions) — the form's own cover text states this scope directly and excludes anyone who deducts a prior-year loss, adds a minor child's income to their own, or deducts the 'przychody z budynków' building-revenue tax. The current version, PIT-37(31), covers tax year 2025 (filed 2026-02-15 through 2026-04-30) and is set by the Minister of Finance under the delegation in art. 45 ust. 1 of the ustawa z dnia 26 lipca 1991 r. o podatku dochodowym od osób fizycznych (PIT Act). This document models the individual (single, not jointly-filing) taxpayer's own identification data, address, the four most common tax-relief elections (relief for young people, returnee relief, relief for families with 4+ children, relief for working seniors) and the income-covered-by-relief figure for employment income, the two most common income-source line items in the form's own Section E.1 table (employment wages under art. 12 ust. 1, and pensions under art. 34 ust. 7), the 1.5% public-benefit-organization (OPP) donation election, the Large Family Card declaration, contact details, and the form's own closing signature declaration. It deliberately does NOT model: the spouse/joint-filing column that runs in parallel throughout Sections C, D, E, F, H, and J of the paper form (taxSettlementMethod's joint/widowed/single-parent-with-children values are preserved as faithful enum options, but this schema does not model the additional fields the paper form would then require); the three other Section E.1 income-source rows (mandate-contract/umowy zlecenia income, copyright/prawa autorskie income, and 'other sources' income); the row-6 RAZEM (total) figures in Section E.1 and every downstream computed-arithmetic section (F Odliczenia od dochodu, G/H Obliczenie podatku, I Obliczenie zobowiązania podatkowego, J Dodatkowy zwrot z tytułu ulgi na dzieci, K income taxed under art. 45 ust. 3c) — each of these totals or is chained off a sum across all five Section E.1 income-source rows (and, for a joint return, the mirrored Section E.2 spouse column), which this v1.0.0 does not fully model; the PIT-O/PIT-D attachment forms' own field sets (only their conditional attachment requirement is disclosed via `documents[]`); and Section N (bank account nominated for a refund). See VERIFICATION.md for the full scope rationale and every disclosed judgment call. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Poland or the Ministerstwo Finansów.

Registry entry

pl/mf/zeznanie-pit-37

Jurisdiction
Poland · national
Version
1.0.0
Verification
draft

Authoritative source PIT-37(31), Zeznanie o wysokości osiągniętego dochodu (poniesionej straty) w roku podatkowym — a genuine, current PDF hosted directly on gov.pl (mirrored at https://www.gov.pl/attachment/fc157458-24fe-4bf6-9474-cd00788e8c39, linked from the podatki.gov.pl formularze-do-druku-pit index) with no login/CAPTCHA/WAF gate, its own printed numbered positions (poz. 1-171) self-documenting every field's label and, via footnoted 'Objaśnienia' and inline statute citations, its meaning

Machine access

Schema document
registry/pl/mf/zeznanie-pit-37/1.0.0/schema.jsonapplication/schema+json
Verification record
registry/pl/mf/zeznanie-pit-37/1.0.0/VERIFICATION.mdtext/markdown
Registry catalog
registry/index.jsonone record per schema id

Field reference

38 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

  • taxpayerTaxId string required

    The taxpayer's tax identifier: either a 10-digit NIP or an 11-digit PESEL (the form itself says to cross out whichever does not apply). Most individual wage-earning taxpayers use their PESEL.

    patternclassification: sensitive-pii
  • taxYear integer required

    The tax year this return covers.

    range: 2000–2100
  • taxOffice string required

    The tax office (urząd skarbowy) with jurisdiction over the taxpayer's place of residence on the day the return is filed. Every filer enters this regardless of whether the return is filed electronically, on paper, at a consulate, or by post.

  • filingType enum required

    Whether this submission is an original return or a correction of a previously filed return.

    enum: return | correction
  • correctionType enum

    Which kind of correction this is, required only when filingType is 'correction': an ordinary correction under art. 81 Ordynacja podatkowa, or a correction filed within a tax-avoidance proceeding under art. 81b §1a (which must be accompanied by a written justification).

    enum: standard_correction | tax_avoidance_proceeding_correction
  • taxSettlementMethod enum required

    How the taxpayer is settling tax: individually, jointly with a spouse, as a widow/widower, as a person raising children alone, or (checkable in addition to one of the first four) as a nonresident taxed under art. 29 ust. 4 of the PIT Act, for the taxpayer or the spouse respectively. This schema models only the identification/income fields for the individually-filing taxpayer; a joint/widowed/single-parent selection is preserved here as a faithful enum value, but the paper form's parallel spouse-column fields it would then require are out of scope for v1.0.0 (see VERIFICATION.md).

    enum: individual | joint_with_spouse | widow_or_widower | single_parent_of_children | nonresident_taxpayer_art29 | nonresident_spouse_art29
  • surname string required

    The taxpayer's surname.

    classification: pii
  • firstName string required

    The taxpayer's first given name.

    classification: pii
  • dateOfBirth date required

    The taxpayer's date of birth. The form itself splits this into day-month-year boxes; modelled here as one ISO 8601 date, consistent with this registry's convention elsewhere.

    classification: sensitive-pii
  • residenceCountry string required

    Country of the taxpayer's current residential address.

    classification: pii
  • residenceVoivodeship string

    Voivodeship (province) of the residential address, left blank for a non-Polish address.

    classification: pii
  • residenceCounty string

    Powiat (county) of the residential address, left blank for a non-Polish address.

    classification: pii
  • residenceMunicipality string

    Gmina (municipality) of the residential address, left blank for a non-Polish address.

    classification: pii
  • residenceStreet string

    Street of the residential address.

    classification: pii
  • residenceHouseNumber string

    House/building number of the residential address.

    classification: pii
  • residenceApartmentNumber string

    Apartment/unit number of the residential address.

    classification: pii
  • residenceCity string required

    City/town/village of the residential address.

    classification: pii
  • residencePostalCode string

    Postal code of the residential address.

    classification: pii
  • reliefForYoungPeople boolean

    Whether the taxpayer is claiming the 'relief for young people' income-tax exemption.

  • reliefForReturnees boolean

    Whether the taxpayer is claiming the 'returnee relief' income-tax exemption for individuals who moved their tax residence back to Poland.

  • reliefForFamiliesWithFourPlusChildren boolean

    Whether the taxpayer is claiming the 'relief for families with 4+ children' income-tax exemption. The form itself requires attaching a PIT/O annex naming at least four qualifying children when this is claimed — see documents[].id 'pitOAttachmentForFamilyRelief'.

  • reliefForWorkingSeniors boolean

    Whether the taxpayer is claiming the 'relief for working seniors' income-tax exemption.

  • employmentIncomeCoveredByReliefs number

    The portion of employmentIncome (poz. 52) that is covered by one or more of the reliefs elected above. The form's own D.2 table has three further rows (mandate-contract income, apprenticeship/internship income, maternity-benefit income) and a combined total (poz. 50) capped at 85,528 zł; those rows and the total are out of scope for v1.0.0 since this schema does not model those income categories at all.

    range: 0–∞classification: financial
  • employmentIncome number

    Gross employment income (wages) for the tax year, as reported to the taxpayer by their employer(s) on PIT-11/PIT-40A slip(s).

    range: 0–∞classification: financial
  • employmentDeductibleCosts number

    Statutory tax-deductible costs applied against employmentIncome.

    range: 0–∞classification: financial
  • employmentTaxableIncome number

    Taxable income from employment: employmentIncome minus employmentDeductibleCosts, when the result is positive. This schema does not itself enforce that arithmetic relationship; it captures the value as declared.

    range: 0–∞classification: financial
  • employmentLoss number

    Loss from employment, when employmentDeductibleCosts exceeds employmentIncome. Rare for ordinary wage income; present on the form mainly for completeness.

    range: 0–∞classification: financial
  • employmentAdvanceTaxWithheld number

    Advance income tax already withheld and remitted by the employer during the year, as reported on the PIT-11/PIT-40A slip.

    range: 0–∞classification: financial
  • pensionIncome number

    Gross pension/retirement or other domestic-benefit income for the tax year, as reported by the paying institution (e.g. ZUS) on a PIT-40A/PIT-11A slip. Unlike employment income, this row of the form carries no separate deductible-costs column.

    range: 0–∞classification: financial
  • pensionTaxableIncome number

    Taxable pension income for the year (ordinarily equal to pensionIncome, since no deductible-costs row applies).

    range: 0–∞classification: financial
  • pensionAdvanceTaxWithheld number

    Advance income tax already withheld and remitted by the paying institution during the year.

    range: 0–∞classification: financial
  • publicBenefitOrgKrsNumber string

    The National Court Register (KRS) number of the public-benefit organization (OPP) the taxpayer elects to direct 1.5% of their tax due to, chosen from the list published by the Narodowy Instytut Wolności.

    pattern
  • publicBenefitOrgDonationAmount number

    The amount, in PLN, directed to the named OPP. The form caps this at 1.5% of the podatek należny (tax due) figure in poz. 141, rounded down to the nearest 10 groszy; this schema does not itself enforce that cap since poz. 141 is not modelled in v1.0.0 (see description of the schema-level scope note).

    range: 0–∞classification: financial
  • publicBenefitOrgDonationPurpose string

    Optional free-text note on the specific purpose the taxpayer would like the named OPP to apply the donated amount to.

  • publicBenefitOrgDataSharingConsent boolean

    Whether the taxpayer consents to the tax office sharing their name, surname, address, and the donated amount with the named OPP.

  • largeFamilyCardHolder enum

    Optional declaration of who, if anyone, holds a valid Large Family Card (Karta Dużej Rodziny): the taxpayer or the spouse. The form itself says this may be left blank; the 'spouse' value is meaningful only on a joint return.

    enum: taxpayer | spouse
  • contactPhone string

    Optional phone number to help the tax office reach the taxpayer about this return.

    classification: pii
  • contactEmail string

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

    classification: pii

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-07

This is a GovSchema Standard Research cycle (GOV-1691). At the start of this cycle, Poland stood at 3/6 verticals (DMV, Business Formation, National ID). Mid-cycle, a fast-forward pull of origin/main revealed that a concurrent cycle (GOV-1685, PR #280) had already merged Poland's Passport vertical (pl/mswia/wniosek-o-wydanie-paszportu) via the governing statute (Art. 33 ustawy o dokumentach paszportowych) as its primary source, since no downloadable application form exists — the same finding this cycle independently reached before discovering the merge (see "Candidates screened and rejected" #1 below). That left Taxes and Visa as Poland's two remaining gaps going into this cycle's candidate search.

Why this candidate

The brief's priority order was: (1) Poland passport, (2) Poland national (Type D) visa — flagged as a likely duplicate of the EU-harmonized template already modelled as de/auswaertiges-amt/national-visa-application, to be confirmed rather than assumed, (3) Poland PIT tax filing, (4)-(6) re-screens of Chile's Registro Civil, SII Formulario 22, and (never-before-screened) Visa candidates.

Candidates screened and rejected
  1. Poland — Passport. Independently re-screened before discovering it was already closed. obywatel.gov.pl/gov.pl confirm the current process: the passport office's clerk fills an electronic form from the applicant's PESEL/ID-card data during an in-person visit; no home-printable blank template is distributed (an applicant must always collect the original blank at the office in person, per multiple secondary sources). Found the governing wzór is set by Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 9 września 2022 r. w sprawie dokumentów paszportowych (Dz.U. 2022 poz. 2050) — but that regulation's own Załączniki define only the passport booklet's physical/visual design (cover, personalization page, hologram placement), not an application form. This is exactly the "governing statute as primary source, no downloadable form" situation GOV-1685 had already resolved (merged as PR #280, d208a603) using Art. 33 of the ustawa o dokumentach paszportowych. No further work needed — confirmed already done, not re-authored.
  2. Poland — National (Type D) visa. The current wzór is Załącznik nr 2 do Rozporządzenie Ministra Spraw Wewnętrznych i Administracji z dnia 25 czerwca 2025 r. w sprawie wiz dla cudzoziemców (Dz.U. 2025 poz. 847, in force from 2025-07-01, superseding a 2022/827 regulation confirmed repealed on eli.gov.pl). Retrieved directly from eli.gov.pl (HTTP 200, no login/CAPTCHA/WAF — the same host GOV-1678 established as a reliable, unauthenticated channel for Polish gazetted regulations) and extracted with pdfjs-dist. Its field sequence — nazwisko, nazwisko rodowe, imię, data urodzenia, miejsce urodzenia, państwo urodzenia, obywatelstwo, stan cywilny, płeć, rodzaj dokumentu podróży, numer/data wydania/ważny do/wystawiony przez, adres, cel podróży, ... — was compared field-by-field against de/auswaertiges-amt/national-visa-application's own source PDF (aufenthalten-data.pdf, re-downloaded this cycle): Name/Familienname, Frühere Familienname(n), Vorname(n), Geburtsdatum, Geburtsort, Geburtsland, Staatsangehörigkeit, Familienstand, Geschlecht, Art des Reisedokuments, Nummer/Ausstellungsdatum/Gültig bis/Ausgestellt durch, Anschrift... — the same sequence, translated. Both are visibly built on the same EU long-stay-visa template lineage (itself close in structure to the Schengen Annex I short-stay form already modelled as fr/france-visas/schengen-visa-application, also checked this cycle for contrast). Confirmed a duplicate per this registry's own established precedent for Spain's equivalent form (pl/mswia/wniosek-o-wydanie-dowodu- osobistego's VERIFICATION.md, GOV-1666/GOV-1671). Not authored.
  3. Chile — Registro Civil (Passport/National ID), SII Formulario 22 (Taxes), Visa. Not re-screened this cycle. Poland's PIT-37 (below) was already a clearly strong candidate at this cycle's third priority position, matching this registry's own "pick the single strongest candidate, depth over breadth" convention (see e.g. GOV-1671's own decision to stop at CEIDG-1 without re-screening every named backlog item). All three remain open, unscreened-this-cycle backlog; Chile Visa in particular has still never been screened in any cycle.
Candidate picked: Poland Taxes — PIT-37

PIT-37, "Zeznanie o wysokości osiągniętego dochodu (poniesionej straty) w roku podatkowym," is the annual personal income tax return for individuals whose income is taxed at the progressive scale and consists exclusively of amounts a payer already reported to them on a PIT-11/PIT-11A/PIT-40A/PIT-R/ IFT-1R information slip — in practice, primarily employees and pensioners. It is the single most commonly filed Polish PIT return by volume. The current version, PIT-37(31), is a genuine, directly downloadable, unauthenticated PDF, no AcroForm layer (a static hand-fill/print template, like pl/ceidg/wniosek-o-wpis-do-ceidg and pl/mi/wniosek-o-rejestracje- pojazdu), but fully self-documenting: 171 numbered positions across sections A-Q, each with its own inline printed label, several with inline statute citations, and footnoted "Objaśnienia."

A prior cycle (GOV-1671, pl/ceidg VERIFICATION.md) had screened Poland's Taxes vertical only shallowly, writing it off with: "Poland's Taxes vertical (e-Deklaracje/Twój e-PIT, both requiring an authenticated session, not screened in depth this cycle — left as backlog)." That assumption was correct about the online-filing channels (e-Deklaracje and Twój e-PIT do require an authenticated session) but incomplete: the underlying paper form itself — the actual wzór the online systems digitise — is a plain, unauthenticated download from podatki.gov.pl, entirely separate from those gated channels. This cycle found and used that paper form directly.

Sources examined

Source 1 (primary source, the form)
  • Authority: Ministerstwo Finansów (MF); the return is processed by Krajowa Administracja Skarbowa (KAS).
  • Document: PIT-37, form version 31 (printed on every page footer as "PIT-37(31)"), covering tax year 2025 (filed 2026-02-15 through 2026-04-30) — the current version as of this cycle's retrieval date, per podatki.gov.pl's own formularze-do-druku-pit index (which lists no later version).
  • URL (index page, cited in source.url): https://www.podatki.gov.pl/pit/formularze-do-druku-pit/ — direct, unauthenticated, HTTP 200.
  • URL (direct PDF download, cited in source.documentRef): https://www.gov.pl/attachment/fc157458-24fe-4bf6-9474-cd00788e8c39 — direct curl, HTTP 200, no login/CAPTCHA/WAF, Content-Type: application/pdf, 266,678 bytes, 5 pages.
  • Retrieved / reviewed: 2026-07-07.
  • Extraction method: downloaded directly, then parsed with pdfjs-dist (legacy/build/pdf.mjs). page.getAnnotations() returned zero Widget annotations across all 5 pages — a static, print/hand-fill template, not a fillable PDF — so page.getTextContent() was used instead, reading the form's own printed numbered positions (poz. 1-171) and section letters (A-Q) plus every field's inline label, in full, across all 5 pages.
  • What it confirms: every field this document models, verbatim, plus the closed enum options for filingType, correctionType, taxSettlementMethod, and largeFamilyCardHolder; the form's own inline statute citations for each income-source row (art. 12 ust. 1 for employment, art. 34 ust. 7 for pensions, art. 21 ust. 1 pkt 148/152/153/154 for the four reliefs modelled); the exact closing declaration text used in documents[].signatureDeclaration; and the form's own printed legal basis ("Podstawa prawna: Art. 45 ust. 1 ustawy z dnia 26 lipca 1991 r. o podatku dochodowym od osób fizycznych"), used verbatim in authority.operatedBy.basis rather than a guessed regulation citation.
Source 2 (attempted corroboration — not usable)

The same index page links an official "Broszura informacyjna" (instruction brochure) for PIT-37, e.g. https://www.podatki.gov.pl/media/10539/broszura-pit-37-za-2024-r.pdf. Every such media link tried (both the 2024-year and 2023-year brochure, on both www.podatki.gov.pl and podatki.gov.pl) returned HTTP 404 at the time of this review — the anchor tags are present in the page's HTML but the underlying media asset is gone or has moved, apparent site-side link rot on the government's own CMS, distinct from the entirely-absent-source-URL bug GOV-1662 previously caught (there, the cited source.url itself was dead; here, a would-be secondary corroborating link is dead, while the primary source is confirmed live). This document does not cite the brochure and relies instead on the primary PDF's own inline instructions and statute references, the same single-source-but-self-documenting standard this registry already applies to pl/ceidg/wniosek-o-wpis-do-ceidg and pl/mi/wniosek-o-rejestracje-pojazdu (both also non-AcroForm, fully self-labelled static templates).

Field inventory (Phase 2)

All 38 fields[] entries and both documents[] entries, and their exact PIT-37(31) position reference, are listed inline in schema.json's own sourceRef per field/document. Summary by section:

| Section | Representative fields | Modelled scope | |---|---|---| | Header + §A Urząd skarbowy i cel | taxpayerTaxId, taxYear, taxOffice, filingType, correctionType | Full; office-only fields "Numer dokumentu"/"Status" (poz. 3-4) excluded as system/office-assigned, not applicant-filled | | §B Sposób rozliczenia | taxSettlementMethod | Full 6-value enum kept faithfully; joint/widowed/single-parent downstream spouse-column fields not modelled | | §C.1 Dane podatnika | surname, firstName, dateOfBirth, address (10 fields) | Full for the taxpayer; §C.2 (spouse) entirely out of scope | | §D Ulgi | 4 relief checkboxes + 1 income-covered-by-relief figure | Only the taxpayer column; D.2's 3 other income-type rows and the razem (total) row out of scope | | §E.1 Dochody/straty podatnika | employment (5 fields) + pension (3 fields) | Only rows 1 (praca na etacie) and 2 (emerytury-renty); rows 3-5 (zlecenia/prawa autorskie/inne) and row-6 RAZEM out of scope | | §F-K (arithmetic + rare) | — | Entirely out of scope (see schema description and judgment call 2 below) | | §L 1,5% OPP | KRS number, amount, purpose, consent (4 fields) | Full | | §M, §N | — | Out of scope (spouse PIT/D cross-reference; refund bank account) | | §O KDR | largeFamilyCardHolder | Full | | §P Kontakt | contactPhone, contactEmail | Full | | §Q Oświadczenie | documents[].signatureDeclaration | Modelled as an attestation, not a field |

Total: 38 fields plus 2 documents[] entries (one conditional supporting-evidence annex pointer, one required attestation). No crossFieldValidation rules or exclusivityGroups are modelled.

Access notes and judgment calls

  1. Office-only header fields excluded. Poz. 3 ("Numer dokumentu") and poz. 4 ("Status") are excluded per the form's own printed instruction on page 1 — "W formularzu wypełnij pola jasne... Pola ciemne wypełni urząd skarbowy" ("Fill in only the light-colored fields... dark/shaded fields will be filled in by the tax office") — and read as system/processing identifiers rather than applicant-supplied data — the same class of exclusion pl/mswia/wniosek-o-wydanie-dowodu-osobistego applied to its own "Adnotacje urzędowe" clerk-only block.
  2. The entire computed-arithmetic chain (§F Odliczenia od dochodu, §G/H Obliczenie podatku, §I Obliczenie zobowiązania podatkowego, §J Dodatkowy zwrot z tytułu ulgi na dzieci, §K art. 45 ust. 3c income) is out of scope for v1.0.0, and this is the single largest scope decision in this document. Every one of those sections' figures is either a direct sum across all five §E.1 income-source rows (including the three this schema does not model: umowy zlecenia, praktyki/staże + zasiłek macierzyński, prawa autorskie, and "inne źródła") and, for a joint return, the mirrored §E.2 spouse column, or a further calculation chained from that sum. Modelling those totals correctly would require modelling §E.1's remaining three rows and, for joint filers, all of §E.2 — a materially larger v1.1.0/v2.0.0 scope. Rather than fabricate a podatek należny (tax due) field backed by an incomplete input set (which would silently produce a wrong number for any filer with non-wage/pension income), this document omits the whole computed chain and discloses the omission in both the schema description and here. publicBenefitOrgDonationAmount (§L, poz. 152) is kept as a plain declared value without its own 1.5%-of poz.-141 cap validation, for the same reason.
  3. taxSettlementMethod's enum keeps all 6 checkbox options printed on the live form, even though this schema does not model the spouse-column fields a joint/widowed/single-parent selection would require on the real paper form. This mirrors pl/ceidg/wniosek-o-wpis-do-ceidg's own precedent (judgment call 3 there) of keeping a faithful enum rather than silently narrowing it to only the values this version's field set fully supports; the narrower-scope consequence is disclosed in the field's own description and in the schema-level description.
  4. taxpayerTaxId accepts either a 10-digit NIP or an 11-digit PESEL (^[0-9]{10}$|^[0-9]{11}$), matching the form's own instruction to cross out whichever does not apply on a single shared 11-box entry line. Most individual employee/pensioner filers use PESEL.
  5. Employment/pension money fields use type: "number" with only a minimum: 0 constraint, not a stricter grosz-precision pattern. The form itself prints separate złoty/grosz sub-boxes for every money field; this schema follows this registry's established convention of modelling a split currency amount as one decimal number (the same simplification pl/mswia/wniosek-o-wydanie-dowodu-osobistego used for its split day/month/year date boxes).
  6. employmentIncomeCoveredByReliefs (poz. 42) models only the "praca na etacie" row of §D.2's four-row income-covered-by-relief table, since this schema's §E.1 income scope is itself limited to employment and pension income; §D.2's other three rows (umowy zlecenia, praktyki/staże, zasiłek macierzyński) and its row-5 RAZEM total (capped at 85,528 zł) are out of scope for the same reason as judgment call 2.
  7. §M (a joint filer's own separately-filed PIT/D annex cross-reference) and §N (bank account nominated for a refund) are both out of scope for v1.0.0. Each is a real but comparatively narrow block on the live form: §M only matters when a joint return's PIT/D annex was filed by the other spouse under a different return, and §N is optional refund-routing information a filer may simply omit (the tax authority defaults to the last-registered account).

Test run (Phase 3)

No live submission was attempted: e-Deklaracje/Twój e-PIT are both authenticated, session-based systems requiring a real trusted profile (profil zaufany) or bank-identity login, and the paper channel requires mailing or hand-delivering an original signed form to a tax office — submitting fabricated taxpayer data against Poland'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 Wrocław resident, PIT-37 filed individually, no pension income, claiming no reliefs, with a 1.5% public-benefit-organization donation) and validated with a purpose-written script 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 the requiredWhen leaf conditions this document uses (field/equals only):

``` $ node validate_instance.mjs registry/pl/mf/zeznanie-pit-37/1.0.0/schema.json mock_pit37.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:

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

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

$ # filingType set to "correction", correctionType omitted — violates requiredWhen requiredWhen violation: correctionType is required when filingType == "correction" requiredWhen conditional validation: FAIL

$ # filingType "correction" + correctionType "standard_correction" supplied Static (required/type/pattern/enum) validation: PASS requiredWhen conditional validation: PASS OVERALL: PASS ```

The fourth control confirms the requiredWhen gate on correctionType behaves correctly in both directions.

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

``` $ node tools/validate.mjs registry/pl/mf/zeznanie-pit-37/1.0.0/schema.json ok registry/pl/mf/zeznanie-pit-37/1.0.0/schema.json

1/1 document(s) passed.

$ node tools/validate-ajv.mjs registry/pl/mf/zeznanie-pit-37/1.0.0/schema.json ok registry/pl/mf/zeznanie-pit-37/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 Ministerstwo Finansów or any government. The authoritative source is always the live government form and its official instructions.