Registry entry
Zimbabwe ITF 1 — Return of Employment Income by an Individual
The Zimbabwe Revenue Authority's (ZIMRA) Form ITF 1, "Return of employment income by an individual for the year ended 31st December" — the annual return an individual employee files to declare employment income, deductions, other income, P.A.Y.E. already deducted, and credits/rebates claimed (medical, blind-person, disabled-person). Opens Zimbabwe as the registry's 87th jurisdiction (GOV-4470, child of GOV-4468 "GovSchema Standard Research", following GOV-4458's Bolivia cycle, which banked Zimbabwe's ZIMRA ITF 1 as a pre-scouted STRONG backup candidate). This schema models the form's own pages 1-6 (header/identity, employment particulars, earnings, deductions claimed, other income, P.A.Y.E. deducted, credits claimed, bank/savings account details, rent paid, other information, remarks, and the signed declaration); page 7 and the closing portion of page 6 are a purely informational directory of ZIMRA regional tax office addresses and are excluded from `fields[]`, along with the office-assigned issuance box ("For official use only" — Taxpayers Identity Number, "Issued by", "To…") on page 1 and every printed "Office use only" annotation column throughout, none of which is applicant-supplied data. Every printed line labelled "Total…" or "Net earnings" is likewise excluded as a same-form computed sum, per this registry's standing closed decision to defer calculated/derived fields (GSP-0013 §7, founder-confirmed on GOV-302) — see this document's own VERIFICATION.md for the full scope record, including a disclosed correction of the delegating issue's own paraphrase, which omitted the form's "Spouse's address"/"Name and address of spouse's employer" fields and its "C. Blind person's credit" subsection. This schema does not file the return itself; the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Zimbabwe or the Zimbabwe Revenue Authority.
Registry entry
zw/zimra/itf1-employment-income-return
Authoritative source Form ITF 1, "Return of employment income by an individual for the year ended 31st December" (DTF: 84, Issue No: 1, Version No: 1, Date of Issue: 26/10/2015)
Machine access
- Schema document
registry/zw/zimra/itf1-employment-income-return/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/zw/zimra/itf1-employment-income-return/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
94 fields across 12 steps, 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.
Header and identity
-
taxYearstring requiredThe tax year (calendar year ended 31 December) this return covers.
pattern -
tinstring requiredTaxpayer's own Taxpayers Identity Number (T.I.N.), per the form's own instruction to "ensure that your National Registration Number (T.I.N) is correct."
classification: pii -
dateOfBirthdate requiredDate of birth
classification: pii -
surnamestring requiredSurname
classification: pii -
firstNamesstring requiredFirst names
classification: pii -
titlestring optionalPrinted as open examples ("Mr., Mrs., etc."), not a closed list, so modelled as free text rather than an enum.
classification: pii -
residentialAddressstring requiredResidential address
classification: pii -
postalAddressstring optionalPostal address
classification: pii -
daytimePhoneNumberstring optionalExplicitly printed as optional ("only if convenient").
classification: pii -
spouseAddressstring optionalApplies only if the taxpayer has a spouse; the form prints no separate marital-status indicator, so this field is left optional rather than gated on an invented condition.
classification: pii -
spouseEmployerNameAddressstring optionalName and address of spouse's employer
classification: pii
Employment
-
employersNamesAddressesstring requiredFree text; the source prints one unruled writing block for this column, covering one or more employers during the tax year, not a fixed-row table.
-
positionsHeldstring optionalPosition held
-
periodsOfEmploymentstring optionalAlso used to indicate periods of unemployment during the tax year, per the column's own printed instruction.
Details of earnings
-
salariesWagesOvertimeinteger optionalSalaries, wages, overtime
range: 0–∞ -
bonusinteger optionalBonus
range: 0–∞ -
feesCommissioninteger optionalFees, commission
range: 0–∞ -
cashInLieuOfLeaveinteger optionalCash-in-lieu of leave
range: 0–∞ -
gratuityOrCompensationOnCessationinteger optionalGratuity or compensation on cessation of employment
range: 0–∞ -
commutationOfContractAmountinteger optionalCommutation of amount due under a contract of employment
range: 0–∞ -
lumpSumPensionBenefitOrUnapprovedFundPaymentinteger optionalLump sum payment from pension, benefit or unapproved fund
range: 0–∞ -
otherEarningsDescriptionstring optionalThe source prints one combined blank for both the description and the amount; modelled here as a separate description field alongside otherEarningsAmount for machine-readable consumption.
-
otherEarningsAmountinteger optionalOther earnings — amount
range: 0–∞ -
benefitsDescriptionstring optionalThe source prints one combined blank asking to specify the type of benefit and state its amount; split here into a description field alongside benefitsAmount.
-
benefitsAmountinteger optionalBenefits — amount
range: 0–∞
Deductions claimed
-
tradeProfessionalSubscriptionAmountinteger optionalMembership subscriptions to a trade, technical or professional association
range: 0–∞ -
tradeProfessionalAssociationNamestring optionalState name of association
-
toolsRenewedReplacedAmountinteger optionalCost of tools renewed or replaced (artisans and tradesman only)
range: 0–∞ -
pensionRetirementAnnuityContributionAmountinteger optionalContributions to registered pension or retirement annuity fund
range: 0–∞ -
pensionRetirementAnnuityFundNamesstring optionalState name(s) of fund(s)
-
charitableTrustDonationAmountinteger optionalDonations to a charitable trust administered by the Minister responsible for Social Welfare, or Health and Child Welfare
range: 0–∞
Other income
-
pensionsAndAnnuitiesIncomeinteger optionalPensions and annuities (Income)
range: 0–∞ -
minorChildrenIncomeinteger optionalIncome of minor children
range: 0–∞ -
otherIncomeAmountinteger optionalAny other income
range: 0–∞
P.A.Y.E. deducted
-
payeCertificate1SerialNostring optionalP.A.Y.E. deducted — Serial No. (1)
-
payeCertificate1Amountinteger optionalP.A.Y.E. deducted — Amount (1)
range: 0–∞ -
payeCertificate2SerialNostring optionalP.A.Y.E. deducted — Serial No. (2)
-
payeCertificate2Amountinteger optionalP.A.Y.E. deducted — Amount (2)
range: 0–∞
Credits claimed
-
medicinesPrescriptionsHospitalFeesAmountinteger optionalMedicines on prescription and hospital fees
range: 0–∞classification: financial -
medicalAppliancesPurchasesAmountinteger optionalPurchases on appliances
range: 0–∞classification: financial -
medicalPaymentsFromOtherSourceAmountinteger optionalPayments from other source
range: 0–∞classification: financial -
medicalAidPersonCoveredNamestring optionalName of person covered
classification: health -
medicalAidSocietyNamestring optionalName of society
-
medicalAidContributionAmountinteger optionalMedical aid contribution amount
range: 0–∞classification: financial -
blindPersonCreditClaimRelatesToenum optionalBlind person's credit — claim relates to
enum: Self | Spouseclassification: health -
disabledPerson1NameOrRelationstring optionalDisabled person's credit — "Self"/"Spouse"/child's name (1)
classification: health -
disabledPerson1NatureOfDisabilitystring optionalDisabled person's credit — nature of disability (1)
classification: health -
disabledPerson2NameOrRelationstring optionalDisabled person's credit — "Self"/"Spouse"/child's name (2)
classification: health -
disabledPerson2NatureOfDisabilitystring optionalDisabled person's credit — nature of disability (2)
classification: health -
disabledPerson3NameOrRelationstring optionalDisabled person's credit — "Self"/"Spouse"/child's name (3)
classification: health -
disabledPerson3NatureOfDisabilitystring optionalDisabled person's credit — nature of disability (3)
classification: health
Details of bank or savings accounts
-
bankAccount1BankerNamestring optionalName of banker (1)
-
bankAccount1Branchstring optionalBranch (1)
-
bankAccount1AccountTypestring optionalType of account (1)
-
bankAccount1AccountNumberstring optionalAccount number (1)
classification: financial -
bankAccount2BankerNamestring optionalName of banker (2)
-
bankAccount2Branchstring optionalBranch (2)
-
bankAccount2AccountTypestring optionalType of account (2)
-
bankAccount2AccountNumberstring optionalAccount number (2)
classification: financial -
bankAccount3BankerNamestring optionalName of banker (3)
-
bankAccount3Branchstring optionalBranch (3)
-
bankAccount3AccountTypestring optionalType of account (3)
-
bankAccount3AccountNumberstring optionalAccount number (3)
classification: financial -
bankAccount4BankerNamestring optionalName of banker (4)
-
bankAccount4Branchstring optionalBranch (4)
-
bankAccount4AccountTypestring optionalType of account (4)
-
bankAccount4AccountNumberstring optionalAccount number (4)
classification: financial
Rent paid
-
ownHomeboolean optionalDo you own the house or flat you live in?
-
rentPayment1LandlordNameAddressstring optionalName and address of person to whom rent was paid (1)
classification: pii -
rentPayment1PropertyAddressstring optionalAddress of property (1)
-
rentPayment1PeriodCoveredstring optionalPeriod covered (1)
-
rentPayment1AmountPaidinteger optionalAmount paid (1)
range: 0–∞classification: financial -
rentPayment2LandlordNameAddressstring optionalName and address of person to whom rent was paid (2)
classification: pii -
rentPayment2PropertyAddressstring optionalAddress of property (2)
-
rentPayment2PeriodCoveredstring optionalPeriod covered (2)
-
rentPayment2AmountPaidinteger optionalAmount paid (2)
range: 0–∞classification: financial -
rentPayment3LandlordNameAddressstring optionalName and address of person to whom rent was paid (3)
classification: pii -
rentPayment3PropertyAddressstring optionalAddress of property (3)
-
rentPayment3PeriodCoveredstring optionalPeriod covered (3)
-
rentPayment3AmountPaidinteger optionalAmount paid (3)
range: 0–∞classification: financial -
rentPayment4LandlordNameAddressstring optionalName and address of person to whom rent was paid (4)
classification: pii -
rentPayment4PropertyAddressstring optionalAddress of property (4)
-
rentPayment4PeriodCoveredstring optionalPeriod covered (4)
-
rentPayment4AmountPaidinteger optionalAmount paid (4)
range: 0–∞classification: financial -
boardTypeenum optionalIndicate whether amount paid covers
enum: Full board | Partial board | Nil board
Other information
-
isFirstReturnInZimbabweboolean optionalIs this return your first return in Zimbabwe?
-
firstReturnExplanationstring optionalIf 'yes' please explain why this is your first return in Zimbabwe
-
lastReturnTaxYearstring optionalIf 'No' state tax year for last return
-
lastReturnRegionalOfficeSentTostring optionalRegional office to which you sent it
-
previousEmployerNameAddressPeriodstring optionalName and business address of your previous employer, if any, and period of employment
-
previousCollegeOrUniversityNamestring optionalName of college or university (if a student before the year covering this return)
-
arrivalDateIfMovedFromAnotherCountrydate optionalDate of arrival in Zimbabwe (if moved from another country)
Remarks
-
remarksstring optionalRemarks
Declaration
-
signatureDatedate requiredDate
Verification record
Candidate selection
GOV-4470 ("GovSchema Standard Research", child of GOV-4468). Zimbabwe's ZIMRA ITF 1 was banked as a pre-scouted STRONG backup candidate during the prior GOV-4458 cycle (which instead authored Bolivia's Formulario 200 IVA). This cycle independently re-verified the candidate fresh rather than trusting the delegating issue's own paraphrase — the issue's own description mis-scoped two sections (see Disclosed findings, below).
Reaching the live source
Independently re-fetched and re-hashed:
https://www.zimra.co.zw/downloads/category/9-domestic-taxes?download=385%3Aitf-1-return-of-employment-income-by-an-individual- HTTP 200,
Content-Type: application/pdf,Content-Length: 425,835bytes — byte-for-byte matching the delegating issue's own disclosed size. - sha256
a75fb0ae96c51ca7dbde0ec13cc8093666e458e46313430cfa8c5d8e7b78fcca. - No login, CAPTCHA, or WAF gate — a plain unauthenticated
curlrequest with no session/cookie state reached it cleanly. - 7 physical pages. Document-control footer stamps
DTF: 84 DOMESTIC TAXES ISSUE NO: 1 VERSION NO: 1 DATE OF ISSUE: 26/10/2015on every page — a long-standing edition, still the current live download.
Extraction method
Extracted with pdfjs-dist (vendored at /tmp/node_modules/pdfjs-dist, legacy CommonJS build). getAnnotations() confirmed zero /Widget annotations across all 7 pages — a flat (non-AcroForm) specimen, matching this registry's prior Paraguay/Bolivia specimens rather than an interactive form. getTextContent() then read every text item's raw string and its transform x/y position across all 7 pages, grouped into lines by rounded y-coordinate, to reconstruct the form's own section numbering and column layout.
Because this specimen's body-text glyphs did not render through pdfjs-dist's canvas backend even after supplying standardFontDataUrl/cMapUrl (a font-loading limitation of this particular PDF's embedded Times/Helvetica subsets, not a text-layer defect — the text layer itself extracted cleanly), table/row structure was confirmed by rendering each page to a PNG via pdfjs-dist + node-canvas at 2.5x scale and visually counting the printed table gridlines (which render even where glyph paths do not), cross-referenced against the text layer's own x/y line groupings. This combination independently confirmed: the Employment section's employer/position/period columns sit above one unruled writing block (no fixed row count — modelled as free text, not a bounded table); the P.A.Y.E.-deducted section prints exactly one row of two side-by-side Serial No./Amount column pairs (bounded to 2 slots); the Disabled Person's Credit table prints exactly 3 ruled rows; and both the Bank/Savings Accounts and Rent Paid tables print exactly 4 ruled rows each.
Document structure
Pages 1-6 carry the applicant-facing form; page 7 (and the tail of page 6) is a purely informational, three-column directory of ZIMRA Regional Tax Office and border-post addresses, correctly excluded per the delegating issue's own scoping instruction. The form's own numbered sections: header/identity (T.I.N., date of birth, name, addresses); Employment; Details of earnings; Deductions claimed; §2-4 Other income; §5 P.A.Y.E. deducted; §6 Credits claimed (A. Medical expenses, B. Medical aid contributions, C. Blind person's credit, D. Disabled person's credit); §7 Details of bank or savings accounts; §8 Rent paid; §9 Other information; §10 Remarks; §11 Declaration; §12 Regional Tax Offices (excluded, office directory).
Scope: office-only / computed fields excluded
- The page-1 "For official use only" box (Taxpayers Identity Number, "Issued by", "To…" address lines) is excluded in its entirety as ZIMRA's own pre-issuance office box, not applicant-supplied — the same class of exclusion this registry draws around Bolivia's FOLIO/NÚMERO DE ORDEN (
bo/sin/formulario-200-iva) and Paraguay's own office-assigned tracking numbers. This is distinct from the applicant's own later T.I.N./Date of birth entry (page 1, below the instructions), which is included. - Every printed "Office use only" annotation column running down the right edge of the Earnings, Credits Claimed, Bank Accounts, and Rent Paid tables is excluded as ZIMRA staff annotation space, not applicant data.
- Total from employment, Total deductions claimed, Net earnings, Total income, and Total medical expenses are each excluded as same-form computed sums (arithmetic combinations of other same-form lines, with explicit "=" arithmetic marks printed beside several of them), per this registry's standing GSP-0013 §7 exclusion for calculated/derived fields.
- Section 12 (Regional Tax Offices) and the closing portion of page 6 are excluded as a third-party office directory, not applicant data, consistent with the delegating issue's own scoping instruction to exclude page 7.
Disclosed findings
- The delegating issue's own paraphrase omitted two genuine sections, both caught by this cycle's independent re-extraction rather than trusting the issue text at face value. (a) Page 1 prints "Spouse's address" and "Name and address of spouse's employer" as two further header fields (continuing onto page 2), absent from the issue's own header-field list — included here as
spouseAddress/spouseEmployerNameAddress, both optional since the form prints no separate marital-status indicator to gate them on. (b) Section 6 prints a "C. Blind person's credit" subsection ("Claim relates to … Self … Spouse") between the issue's listed (A) and (B) items and its (D) Disabled person's credit — included here asblindPersonCreditClaimRelatesTo. - The Employment section's employer/position/period-of-employment columns are modelled as free-text fields, not a bounded row-repeating table, since the source prints one unruled writing block beneath the three column headers rather than the ruled sub-rows this registry's bounded-slot precedent (e.g.
zm/pacra/company-incorporation's director1/director2) requires before slotting. GSP-0009 (composite & repeating values / arrays) remains an unaccepted spec proposal, so an unbounded list has no structural representation available regardless; this is the same "flatten when the composite is unruled free text" posture this registry's Remarks/Other-earnings/Benefits fields already take elsewhere on this same form. - P.A.Y.E.-deducted, Disabled Person's Credit, Bank/Savings Accounts, and Rent Paid are each modelled as bounded numbered slots (2, 3, 4, and 4 respectively), matching the exact number of ruled rows each table prints — confirmed via the rendered-page gridline count, not merely inferred from column headers — mirroring this registry's
zm/pacra/company-incorporationbounded-slot precedent. Unlike that Zambian precedent, this form prints no companion "how many" count field, so slots beyond the first carry norequiredWhengate of their own; only the first Rent Paid slot (andboardType) is gatedrequiredWhen ownHome equals false, mirroring the source's own explicit "If 'NO' give the following details" instruction. - "Other earnings (specify)" and "Benefits (please specify type of benefits and state amount)" are each split into a description field plus an amount field, even though the source prints one combined blank line per item, for cleaner machine-readable amounts; both halves carry an identical
sourceRefpointing at the same printed blank. titleis modelledtype: string, notenum, since the source prints "Mr., Mrs., etc." as illustrative examples, not a closed option list — the same reasoning this registry'szm/pacra/company-incorporationapplies to its own ungatedGenderfield.- All monetary fields are modelled
type: integerwithvalidation.minimum: 0. The source gives no explicit currency-precision instruction (unlike Bolivia's "EN BOLIVIANOS SIN CENTAVOS"), but every printed amount blank is a plain$figure with no decimal ruling visible in either the text layer or the rendered page images, and no line's own text admits a negative value. - No field on this form carries a visible mandatory-field asterisk or equivalent marker anywhere in the extracted text or the rendered pages. Per this registry's own precedent for un-asterisked sources (e.g. Bolivia's Formulario 200, Zambia's ITF 46_1), only the header identity block (tax year, T.I.N., date of birth, surname, first names, residential address), the Employment section's employer name(s)/address(es) field (a return cannot report employment income without at least one employer), and the closing declaration's signature date are modelled
required: true, on the basis that a return cannot be meaningfully filed or processed without them; every other field isrequired: false, gatedrequiredWhenwhere the source's own branching text (first-return Yes/No; own-home Yes/No) makes the conditional relationship explicit. - The physical signature mark itself is not separately modelled as data — it is captured by the
declarationAttestationdocument's ownrequired: true, consistent with this registry'sbo/sin/formulario-200-ivaprecedent for signature blocks; the accompanyingsignatureDateis modelled as an ordinary required field since it is typed/written data distinct from the signature act.
Conformance
3 valid mock scenarios — valid-single-employer-paye-return (a straightforward single-employer filing with salary income, PAYE already deducted, and a medical-aid credit); valid-multiple-employers-and-rent-paid (an employee who changed employers mid-year, exercising two P.A.Y.E. certificate slots and two Rent Paid landlord slots on a rented home); and valid-first-return-with-disability-credits (a first-time Zimbabwe filer exercising the first-return explanation branch, all three Disabled Person's Credit slots, and multiple bank accounts) — plus 8 mutation-control fixtures (one missing statically-required field from each of taxYear, tin, dateOfBirth, surname, firstNames, residentialAddress, employersNamesAddresses, signatureDate — one per required field) and one unknown-field-rejected fixture, committed under conformance/zw/zimra/itf1-employment-income-return/1.0.0/.
An ephemeral, from-scratch conformance checker (deriving required/requiredWhen rules directly from this schema's own fields[], discarded after use, not committed) ran all fixtures: all 3 valid scenarios at 0 errors, all mutation controls each raising exactly 1 error, and the unknown-field fixture correctly rejected. Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, individually and as part of the full registry run. registry-index.json regenerated via npm run build-index in tools/govschema-client/.
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 Zimbabwe Revenue Authority or any government. The authoritative source is always the live government form and its official instructions.