Registry entry

Zimbabwe Passport Application (Form EP1)

The Department of the Registrar-General's (RG) "APPLICATION FOR A ZIMBABWE PASSPORT" (form code EP1, 4 pages), a single unified form covering first-time issuance, renewal, and lost/stolen replacement. Opens Zimbabwe's Passport vertical (2 of 6), alongside `zw/zimra/itf1-employment-income-return` (Taxes, 1 of 6). The live `rg.gov.zw` origin has returned HTTP 404 on every path for a genuine, ongoing outage (first observed 2026-02-07, still down 2026-07-23 at authoring time); this schema is sourced from a Wayback Machine capture of the form taken while the live site's own download endpoint was still serving it directly and unauthenticated (see verification.notes for the archival-source rationale, following this registry's established `mt/transport-malta` Wayback-workaround precedent, GOV-4237). The retrieved PDF is a scanned/flat specimen with a third-party AcroForm layer retrofitted on top (a common pattern for older Zimbabwean government forms) — its own internal field names are generic Adobe form-builder placeholders, several written in Hebrew script (e.g. a field literally named "מלל6", Hebrew for "text"/content placeholder), an artifact of the retrofit tool rather than any Hebrew-language content in the form itself; every field below was mapped to a semantic name by its rect position cross-referenced against the rendered page image and its printed label, not by its literal internal name. This document models Section 1 (Personal Details: ID number, Birth Entry Number, name, sex, marital status, date/place/country of birth, physical description, address, telephone), Section 2 (Married Woman, Divorced or Widowed — husband's particulars, gated on the applicant being female and not single), Section 3 (Next of Kin), Section 4 (Declaration by Applicant — citizenship basis, prior Zimbabwean and foreign passport history), Section 5 (Declaration by Father or Other Legal Guardian, gated on an unprinted `applicantIsMinor` eligibility boolean since the section's own header states it applies only to children under 18, the same convention this registry's other passport schemas use for an analogous age gate), and Section 6 (Particulars of Lost/Stolen Passport, gated on the applicant having answered "Yes, Lost" to Section 4's own prior-passport question, since Section 6's own header ties directly to a lost/stolen prior passport and no separate checkbox exists to select it). It excludes: Page 1's free-text continuation line for "state original name, how changed, and date", Section 5's "Relationship to child" box, both pages' "Signature" boxes (Section 4 and Section 5), Section 6's "State how lost/stolen or other reasons" free-text block, and the entirety of Section 7 ("Previous Marriage Details/Former Names") — every one of these is a genuine printed box or writing line on the source form, but none carries a corresponding AcroForm widget in this specific digital retrofit (confirmed by exhaustively mapping every widget rect to the rendered page, not merely inferred), so none is a field an agent can supply through this document (signature capture is additionally excluded per this registry's own standing convention for physical signature/biometric acts). Page 3 (photograph, fingerprint, and in-person-signature capture performed at a Zimbabwe Passport Office, plus office-only processing fields) and page 4 (an "INSTRUCTIONS" panel plus an office-only collection/disposal panel) are excluded from `fields[]` in their entirety as non-applicant-authored content, though page 4's own required-original-documents checklist and page 3's biometric capture are modeled in `documents[]`. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Republic of Zimbabwe or the Department of the Registrar-General.

Registry entry

zw/rg/passport-application

Jurisdiction
Zimbabwe · national
Version
1.0.0
Verification
draft

Authoritative source Form EP1, "Application for a Zimbabwe Passport", Department of the Registrar-General, 4 pages, Wayback Machine capture of the live rg.gov.zw download dated 2019-11-01 (the live site itself has been down, HTTP 404 on every path, since approximately 2026-02-07).

Machine access

Schema document
registry/zw/rg/passport-application/1.0.0/schema.jsonapplication/schema+json
Registry catalog
registry/index.jsonone record per schema id

Field reference

46 fields across 7 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.

Eligibility Gates

  • applicantIsMinor boolean required

    Not a printed checkbox. Section 5's own header reads "DECLARATION BY FATHER OR OTHER LEGAL GUARDIAN (for children under 18 years)" — this directly-supplied boolean gates Section 5. See this schema's own verification.notes Finding 5.

Section 1: Personal Details

  • idNumber string optional

    One of two alternative applicant identifiers printed side by side (the other is Birth Entry Number); neither is universal to every applicant, so both are modeled optional.

    length: 0–12classification: sensitive-pii
  • birthEntryNumber string optional

    Birth Entry Number

    length: 0–11classification: sensitive-pii
  • surname string required

    Surname

    length: 0–100classification: pii
  • otherNames string required

    Other Names

    length: 0–150classification: pii
  • maidenName string optional

    Maiden Name

    length: 0–100classification: pii
  • nameChanged boolean optional

    The printed continuation line asking for the original name, how it changed, and the date carries no corresponding AcroForm widget in this retrofit and is excluded — see this schema's own verification.notes Finding 1(a).

  • sex enum required

    Modeled as a clean two-value enum; see this schema's own verification.notes Finding 3 for the underlying dropdown's malformed export values.

    enum: M | Fclassification: pii
  • maritalStatus enum required

    Marital Status

    enum: SINGLE | MARRIED | WIDOWED | DIVORCEDclassification: pii
  • dateOfBirth date required

    Date of Birth

    classification: sensitive-pii
  • placeOfBirth string required

    Place of Birth

    length: 0–150classification: pii
  • countryOfBirth string required

    Country of Birth

    length: 0–100classification: pii
  • height integer optional

    See this schema's own verification.notes Finding 8 for why this is modeled as a single centimetre field.

    range: 30–250classification: pii
  • colourOfEyes string optional

    Colour of Eyes

    length: 0–12classification: pii
  • colourOfHair string optional

    Colour of Hair

    length: 0–12classification: pii
  • visibleMarks string optional

    Visible Marks or Peculiarities

    length: 0–300classification: pii
  • profession string optional

    Profession

    length: 0–150
  • residentialAddress string required

    Residential Address

    length: 0–300classification: pii
  • countryOfPermanentResidence string optional

    Country of Permanent Residence

    length: 0–100
  • telephone string optional

    Telephone

    length: 0–50classification: pii

Section 2: Married Woman, Divorced or Widowed

  • dateOfMarriage date optional

    See this schema's own verification.notes Finding 4 for this section's compound gating condition.

    classification: pii
  • husbandFullName string optional

    Husband's Full Name

    length: 0–150classification: pii
  • placeCountryOfMarriage string optional

    Place & Country of Marriage

    length: 0–200classification: pii
  • husbandPlaceCountryOfBirth string optional

    Husband's Place & Country of Birth

    length: 0–200classification: pii
  • husbandCitizenship string optional

    Husband's Citizenship

    length: 0–100classification: pii
  • marriageOrDivorceOrderNumber string optional

    Marriage or Divorce Order Number

    length: 0–50classification: sensitive-pii
  • marriedMoreThanOnce boolean optional

    If yes, particulars of former marriage(s) must be given on page 2, Section 7 — that free-text block carries no AcroForm widget and is excluded (see this schema's own verification.notes Finding 1(e)).

Section 3: Next of Kin

  • nokFullName string required

    Required per page 4's own explicit instruction item 4: "SECTION 3 OF THIS FORM MUST BEAR THE DETAILS OF NEXT OF KIN."

    length: 0–200classification: pii
  • nokRelation string required

    Next of Kin — Relation to Applicant

    length: 0–100
  • nokResidentialAddress string required

    Next of Kin — Residential Address

    length: 0–300classification: pii
  • nokTelephone string required

    Next of Kin — Telephone

    length: 0–50classification: pii

Section 4: Declaration by Applicant

  • citizenshipBasis enum required

    I am a Citizen of Zimbabwe by

    enum: BIRTH | DESCENT | REGISTRATION
  • previouslyIssuedPassportStatus enum required

    Were You Ever Issued With a Zimbabwean Passport/Travel Document?

    enum: NO | YES_VALID | YES_EXPIRED | YES_FULL | YES_LOST
  • previousPassportNumber string optional

    Previous Passport Number

    length: 0–20classification: sensitive-pii
  • foreignPassportHolder enum required

    Are You a Holder of a Foreign Passport?

    enum: NA | NO | YES
  • foreignPassportNumber string optional

    Foreign Passport Number

    length: 0–20classification: sensitive-pii
  • renouncedForeignBirthRight enum required

    Did You Renounce Your Foreign Birth Right in Favour of Zimbabwean Citizenship?

    enum: NA | NO | YES
  • surrenderedForeignPassport enum required

    Did You Surrender Your Foreign Passport?

    enum: NA | NO | YES
  • surrenderedPassportNumber string optional

    Surrendered Passport Number

    length: 0–20classification: sensitive-pii
  • declarationDate date required

    The accompanying "Signature In bold black ink" box carries no AcroForm widget and is represented instead by this schema's own applicantDeclarationAttestation documents[] entry.

Section 6: Particulars of Lost/Stolen Passport

  • lostPassportNumber string optional

    See this schema's own verification.notes Finding 6 for why this section is gated on previouslyIssuedPassportStatus rather than a second unprinted boolean.

    length: 0–20classification: sensitive-pii
  • lostPassportIssuedAt string optional

    Lost/Stolen Passport — Issued At

    length: 0–100
  • lostPassportIssueDate date optional

    Lost/Stolen Passport — Issue Date

  • lostPassportBearerFullName string optional

    Lost/Stolen Passport — Bearer's Full Name

    length: 0–200classification: pii

Verification record

Candidate selection

GOV-4480 (child of GOV-4476, "GovSchema Standard Research"). Opens Zimbabwe's Passport vertical (2 of 6), following GOV-4470's zw/zimra/itf1-employment-income-return (Taxes, 1 of 6) — the Department of the Registrar-General's (RG) "APPLICATION FOR A ZIMBABWE PASSPORT" (form code EP1, 4 pages), a unified form covering first-time issuance, renewal, and lost/stolen replacement.

Reaching the source: a genuine live-site outage, worked around via Wayback

The live origin rg.gov.zw returns HTTP 404 on every path attempted this cycle (including the domain root and the documents-and-forms listing page) — independently reproduced, not merely trusted from the delegating issue's own paraphrase. The delegating issue's own CDX history check places the outage's first observation at approximately 2026-02-07: a genuine ~6-month-and-counting outage, not a transient blip, still ongoing as of this cycle (2026-07-23).

Per this registry's established Wayback-workaround precedent (mt/transport-malta/driving-licence-renewal@1.0.0, GOV-4237), the form was instead retrieved from a Wayback Machine capture of the live download endpoint:

  • https://web.archive.org/web/20191101005412/http://www.rg.gov.zw:80/index.php/documents-and-forms?download=1:passport-application-form
  • Independently re-fetched and re-hashed this cycle rather than trusted from the delegating issue's own report alone: HTTP 200, Content-Type: application/pdf, Content-Length: 1,568,546 bytes — an exact byte-for-byte match with the delegating issue's own disclosed size.
  • sha256 8f939371ee2a20aa1e7428473944b949b791765da767872995815a03f5ad931a. Begins %PDF-1.6.
  • The Wayback response's own x-archive-orig-* headers confirm the underlying capture's original response was itself Content-Type: application/pdf with HTTP status 200, and no cookie/session gate beyond a single non-authenticating session cookie — i.e. genuinely a direct, unauthenticated PDF download on the live site at capture time (2019-11-01), not a login-gated resource incidentally crawled.

Document structure and extraction method

4 pages. pdfjs-dist's getAnnotations() confirms exactly 68 /Widget annotations (38 on page 1, 28 on page 2, 1 each on pages 3 and 4) — an exact match to the delegating issue's own disclosed count, independently reproduced rather than trusted.

getTextContent(), however, returned zero text items on all four pages: this is a scanned/flat specimen with a third-party AcroForm layer retrofitted on top for fillability, not a specimen with a native selectable text layer (unlike this registry's zw/zimra/itf1-employment-income-return, which is flat with no AcroForm at all). With no text layer to cross-reference against widget position, every field was mapped to its printed label by:

  1. Rendering each page to a PNG via pdfjs-dist + node-canvas at 2.5x scale (both vendored at /tmp/node_modules from prior cycles).
  2. Drawing each widget's own PDF-coordinate rect as a red overlay rectangle back onto that same rendered page image, then visually confirming which printed label and box each rectangle lands on — a positive-alignment check, not a distance-based guess.

This caught and corrected an initial page-2 mis-mapping: a first pass at ordering fields by y-coordinate alone misassigned four fields (undefined2, undefined4, מלל32, מלל33, undefined5) to the wrong printed rows. The overlay re-render confirmed the correct assignment used in this schema — Section 5's "I.D. No." and "Date" boxes, and Section 6's "Passport No.", "Issued at", and "Issue date" boxes.

Hebrew-placeholder field names

The retrofit tool's own internal field names are generic Adobe form-builder placeholders, several written in Hebrew script (e.g. מלל6, מלל19 — Hebrew for a text/content placeholder). This is an artifact of the specific third-party PDF-to-fillable conversion tool used on this specimen, unrelated to any Hebrew-language content in the form itself (the form is entirely English-language). Every field's semantic name in this schema derives from its confirmed printed label via the overlay-render method above, never from its literal internal PDF field name.

Scope: office-only / non-fillable / biometric-capture exclusions

  • Pages 3 and 4 are excluded from fields[] in their entirety. Page 3 is entirely office-processing (Passport No., Processing date, Passport type, Processing officer's name/signature) plus an "INSTRUCTIONS TO THE OFFICERS" panel and physical photograph/fingerprint/in-person-signature capture boxes. Page 4 is an "INSTRUCTIONS" panel (modeled instead as documents[] entries, see below) plus an office-only collection/disposal panel. Each page's single AcroForm widget sits at an identical tiny bottom-left corner position with no visible printed label anywhere nearby — a non-substantive internal artifact of the Adobe LiveCycle-style retrofit (the same artifact also appears once each on pages 1 and 2), accounting for the disclosed "1 each on pages 3/4" portion of the 68-field total.
  • Several genuinely-printed, applicant-facing boxes and writing lines on pages 1-2 carry no corresponding AcroForm widget in this retrofit, disclosed here rather than silently patched with an invented field: None of these is modeled in fields[] — an agent consuming this schema cannot supply that specific box's value through this document, a genuine limitation of the live source's own digital fillability, not a modeling omission.
    • Page 1's continuation line beneath Maiden name ("Has name been changed? If yes, state original name how changed and date") has no widget beyond the Yes/No checkbox itself.
    • Section 5's "Relationship to child" box (page 2) has no widget, even though the adjacent "I.D. No." and "Date" boxes in the same section do.
    • Both "Signature" boxes (Section 4's declaration signature, Section 5's guardian signature) have no widget — consistent with this registry's standing convention of treating physical signature capture as an act, not a data field.
    • Section 6's six-line "State how lost/stolen or other reasons" block has no widget.
    • The entirety of Section 7 ("Previous Marriage Details/Former Names", four dashed writing lines) has no widget.

Disclosed findings

See the schema's own verification.notes for the full, numbered list of 10 disclosed findings, including: the Sex dropdown's internally malformed export values (modeled as a clean M/F enum); Section 2's compound sex+maritalStatus gating condition; Section 5's unprinted applicantIsMinor eligibility gate (matching this registry's Botswana/ Zambia/Ethiopia/Malta/Cyprus passport-schema precedent); Section 6's gate on previouslyIssuedPassportStatus equals YES_LOST rather than a second invented boolean; the absence of any printed mandatory-field marker anywhere on the source and the resulting conservative required:true set; the single-field centimetre height modeling; per-field maxLength provenance; and the previousPassportNumber conditional's use of in over the four affirmative previouslyIssuedPassportStatus values rather than notEquals "NO", to avoid a spurious cascade when that field is itself absent (the same class of absent-field/notEquals pitfall this registry has previously catalogued).

Conformance

4 valid mock scenarios (valid-first-time-adult-single, valid-married-woman-renewal, valid-minor-with-guardian-consent, valid-lost-passport-replacement) plus 15 mutation-control fixtures (one missing statically-required field each) and one unknown-top-level-field fixture, committed under conformance/zw/rg/passport-application/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 20 fixtures: all 4 valid scenarios at 0 errors, all 15 mutation controls each raising exactly 1 error, and the unknown-field fixture correctly rejected. Confirmed every requiredWhen field reference resolves (0 dangling references) and the visibleWhen/requiredWhen dependency graph is acyclic. 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 Department of the Registrar-General or any government. The authoritative source is always the live government form and its official instructions.