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

Jurisdiction
Zimbabwe · national
Version
1.0.0
Verification
draft

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

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

  • taxYear string required

    The tax year (calendar year ended 31 December) this return covers.

    pattern
  • tin string required

    Taxpayer'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
  • dateOfBirth date required

    Date of birth

    classification: pii
  • surname string required

    Surname

    classification: pii
  • firstNames string required

    First names

    classification: pii
  • title string optional

    Printed as open examples ("Mr., Mrs., etc."), not a closed list, so modelled as free text rather than an enum.

    classification: pii
  • residentialAddress string required

    Residential address

    classification: pii
  • postalAddress string optional

    Postal address

    classification: pii
  • daytimePhoneNumber string optional

    Explicitly printed as optional ("only if convenient").

    classification: pii
  • spouseAddress string optional

    Applies 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
  • spouseEmployerNameAddress string optional

    Name and address of spouse's employer

    classification: pii

Employment

  • employersNamesAddresses string required

    Free 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.

  • positionsHeld string optional

    Position held

  • periodsOfEmployment string optional

    Also used to indicate periods of unemployment during the tax year, per the column's own printed instruction.

Details of earnings

  • salariesWagesOvertime integer optional

    Salaries, wages, overtime

    range: 0–∞
  • bonus integer optional

    Bonus

    range: 0–∞
  • feesCommission integer optional

    Fees, commission

    range: 0–∞
  • cashInLieuOfLeave integer optional

    Cash-in-lieu of leave

    range: 0–∞
  • gratuityOrCompensationOnCessation integer optional

    Gratuity or compensation on cessation of employment

    range: 0–∞
  • commutationOfContractAmount integer optional

    Commutation of amount due under a contract of employment

    range: 0–∞
  • lumpSumPensionBenefitOrUnapprovedFundPayment integer optional

    Lump sum payment from pension, benefit or unapproved fund

    range: 0–∞
  • otherEarningsDescription string optional

    The 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.

  • otherEarningsAmount integer optional

    Other earnings — amount

    range: 0–∞
  • benefitsDescription string optional

    The source prints one combined blank asking to specify the type of benefit and state its amount; split here into a description field alongside benefitsAmount.

  • benefitsAmount integer optional

    Benefits — amount

    range: 0–∞

Deductions claimed

  • tradeProfessionalSubscriptionAmount integer optional

    Membership subscriptions to a trade, technical or professional association

    range: 0–∞
  • tradeProfessionalAssociationName string optional

    State name of association

  • toolsRenewedReplacedAmount integer optional

    Cost of tools renewed or replaced (artisans and tradesman only)

    range: 0–∞
  • pensionRetirementAnnuityContributionAmount integer optional

    Contributions to registered pension or retirement annuity fund

    range: 0–∞
  • pensionRetirementAnnuityFundNames string optional

    State name(s) of fund(s)

  • charitableTrustDonationAmount integer optional

    Donations to a charitable trust administered by the Minister responsible for Social Welfare, or Health and Child Welfare

    range: 0–∞

Other income

  • pensionsAndAnnuitiesIncome integer optional

    Pensions and annuities (Income)

    range: 0–∞
  • minorChildrenIncome integer optional

    Income of minor children

    range: 0–∞
  • otherIncomeAmount integer optional

    Any other income

    range: 0–∞

P.A.Y.E. deducted

  • payeCertificate1SerialNo string optional

    P.A.Y.E. deducted — Serial No. (1)

  • payeCertificate1Amount integer optional

    P.A.Y.E. deducted — Amount (1)

    range: 0–∞
  • payeCertificate2SerialNo string optional

    P.A.Y.E. deducted — Serial No. (2)

  • payeCertificate2Amount integer optional

    P.A.Y.E. deducted — Amount (2)

    range: 0–∞

Credits claimed

  • medicinesPrescriptionsHospitalFeesAmount integer optional

    Medicines on prescription and hospital fees

    range: 0–∞classification: financial
  • medicalAppliancesPurchasesAmount integer optional

    Purchases on appliances

    range: 0–∞classification: financial
  • medicalPaymentsFromOtherSourceAmount integer optional

    Payments from other source

    range: 0–∞classification: financial
  • medicalAidPersonCoveredName string optional

    Name of person covered

    classification: health
  • medicalAidSocietyName string optional

    Name of society

  • medicalAidContributionAmount integer optional

    Medical aid contribution amount

    range: 0–∞classification: financial
  • blindPersonCreditClaimRelatesTo enum optional

    Blind person's credit — claim relates to

    enum: Self | Spouseclassification: health
  • disabledPerson1NameOrRelation string optional

    Disabled person's credit — "Self"/"Spouse"/child's name (1)

    classification: health
  • disabledPerson1NatureOfDisability string optional

    Disabled person's credit — nature of disability (1)

    classification: health
  • disabledPerson2NameOrRelation string optional

    Disabled person's credit — "Self"/"Spouse"/child's name (2)

    classification: health
  • disabledPerson2NatureOfDisability string optional

    Disabled person's credit — nature of disability (2)

    classification: health
  • disabledPerson3NameOrRelation string optional

    Disabled person's credit — "Self"/"Spouse"/child's name (3)

    classification: health
  • disabledPerson3NatureOfDisability string optional

    Disabled person's credit — nature of disability (3)

    classification: health

Details of bank or savings accounts

  • bankAccount1BankerName string optional

    Name of banker (1)

  • bankAccount1Branch string optional

    Branch (1)

  • bankAccount1AccountType string optional

    Type of account (1)

  • bankAccount1AccountNumber string optional

    Account number (1)

    classification: financial
  • bankAccount2BankerName string optional

    Name of banker (2)

  • bankAccount2Branch string optional

    Branch (2)

  • bankAccount2AccountType string optional

    Type of account (2)

  • bankAccount2AccountNumber string optional

    Account number (2)

    classification: financial
  • bankAccount3BankerName string optional

    Name of banker (3)

  • bankAccount3Branch string optional

    Branch (3)

  • bankAccount3AccountType string optional

    Type of account (3)

  • bankAccount3AccountNumber string optional

    Account number (3)

    classification: financial
  • bankAccount4BankerName string optional

    Name of banker (4)

  • bankAccount4Branch string optional

    Branch (4)

  • bankAccount4AccountType string optional

    Type of account (4)

  • bankAccount4AccountNumber string optional

    Account number (4)

    classification: financial

Rent paid

  • ownHome boolean optional

    Do you own the house or flat you live in?

  • rentPayment1LandlordNameAddress string optional

    Name and address of person to whom rent was paid (1)

    classification: pii
  • rentPayment1PropertyAddress string optional

    Address of property (1)

  • rentPayment1PeriodCovered string optional

    Period covered (1)

  • rentPayment1AmountPaid integer optional

    Amount paid (1)

    range: 0–∞classification: financial
  • rentPayment2LandlordNameAddress string optional

    Name and address of person to whom rent was paid (2)

    classification: pii
  • rentPayment2PropertyAddress string optional

    Address of property (2)

  • rentPayment2PeriodCovered string optional

    Period covered (2)

  • rentPayment2AmountPaid integer optional

    Amount paid (2)

    range: 0–∞classification: financial
  • rentPayment3LandlordNameAddress string optional

    Name and address of person to whom rent was paid (3)

    classification: pii
  • rentPayment3PropertyAddress string optional

    Address of property (3)

  • rentPayment3PeriodCovered string optional

    Period covered (3)

  • rentPayment3AmountPaid integer optional

    Amount paid (3)

    range: 0–∞classification: financial
  • rentPayment4LandlordNameAddress string optional

    Name and address of person to whom rent was paid (4)

    classification: pii
  • rentPayment4PropertyAddress string optional

    Address of property (4)

  • rentPayment4PeriodCovered string optional

    Period covered (4)

  • rentPayment4AmountPaid integer optional

    Amount paid (4)

    range: 0–∞classification: financial
  • boardType enum optional

    Indicate whether amount paid covers

    enum: Full board | Partial board | Nil board

Other information

  • isFirstReturnInZimbabwe boolean optional

    Is this return your first return in Zimbabwe?

  • firstReturnExplanation string optional

    If 'yes' please explain why this is your first return in Zimbabwe

  • lastReturnTaxYear string optional

    If 'No' state tax year for last return

  • lastReturnRegionalOfficeSentTo string optional

    Regional office to which you sent it

  • previousEmployerNameAddressPeriod string optional

    Name and business address of your previous employer, if any, and period of employment

  • previousCollegeOrUniversityName string optional

    Name of college or university (if a student before the year covering this return)

  • arrivalDateIfMovedFromAnotherCountry date optional

    Date of arrival in Zimbabwe (if moved from another country)

Remarks

  • remarks string optional

    Remarks

Declaration

  • signatureDate date required

    Date

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,835 bytes — byte-for-byte matching the delegating issue's own disclosed size.
  • sha256 a75fb0ae96c51ca7dbde0ec13cc8093666e458e46313430cfa8c5d8e7b78fcca.
  • No login, CAPTCHA, or WAF gate — a plain unauthenticated curl request 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/2015 on 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

  1. 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 as blindPersonCreditClaimRelatesTo.
  2. 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.
  3. 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-incorporation bounded-slot precedent. Unlike that Zambian precedent, this form prints no companion "how many" count field, so slots beyond the first carry no requiredWhen gate of their own; only the first Rent Paid slot (and boardType) is gated requiredWhen ownHome equals false, mirroring the source's own explicit "If 'NO' give the following details" instruction.
  4. "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 sourceRef pointing at the same printed blank.
  5. title is modelled type: string, not enum, since the source prints "Mr., Mrs., etc." as illustrative examples, not a closed option list — the same reasoning this registry's zm/pacra/company-incorporation applies to its own ungated Gender field.
  6. All monetary fields are modelled type: integer with validation.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.
  7. 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 is required: false, gated requiredWhen where the source's own branching text (first-return Yes/No; own-home Yes/No) makes the conditional relationship explicit.
  8. The physical signature mark itself is not separately modelled as data — it is captured by the declarationAttestation document's own required: true, consistent with this registry's bo/sin/formulario-200-iva precedent for signature blocks; the accompanying signatureDate is 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.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 Zimbabwe Revenue Authority or any government. The authoritative source is always the live government form and its official instructions.