Registry entry
Botswana Passport Application (Form PP1 Rev)
The Department of Immigration and Citizenship's (DIC) "Passport Application" (Form PP1 Rev), used only for a person's first Botswana passport (replacements or renewals use the separate Form PP2, out of scope for this schema). Closes Botswana's own pre-scouted, STRONG banked backlog (see bw/dic/visa-application, Visa; bw/burs/individual-tax-return, Taxes; bw/drts/driving-licence-application, DMV), opening the Passport vertical (4 of 6). This schema models the requested passport type and delivery preference; the applicant's personal details and physical description (Section 1); both parents' particulars (Section 2, always required per the form's own layout); a next-of-kin emergency contact (Section 3); the applicant's traditional-authority particulars — Chief, Headman, Ward, Kgotla/Town/Village, District (Section 4); the Parent or Legal Guardian's Consent section (Section 5, gated on a directly-supplied `applicantIsMinor` boolean, since the section's own header states it applies only to applicants under 21 years of age and the form prints no age-arithmetic checkbox of its own); and the applicant's own declaration and signature (Section 6). It also models the two supporting identity documents disclosed in the form's own completion notes — a National Registration Identity Card (Omang) for applicants over 16, or a birth certificate/affidavit otherwise — plus the required passport photographs and specimen-signature attachment. It excludes page 7's entire "For Official Use Only" section (fee, receipt, application-checked-by, and previous-passport office record) and Section 6's Commissioner of Oaths/official-stamp block, none of which the applicant supplies. Filing this application is an applicant's own action performed with the Department of Immigration and Citizenship; this schema does not file the application itself, and the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Republic of Botswana or the Department of Immigration and Citizenship.
Registry entry
bw/dic/passport-application
Authoritative source Form PP1 Rev, "Passport Application", Department of Immigration and Citizenship, native (searchable-text) PDF, 7 pages.
Machine access
- Schema document
registry/bw/dic/passport-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/bw/dic/passport-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
72 fields across 8 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
-
applicantIsMinorboolean requiredNot a printed checkbox. Section 5's own header reads "Consent of Parent or Legal Guardian: (To be completed if the applicant is under 21 years of age)" — this directly-supplied boolean gates Section 5, the same unprinted-condition convention this registry's Zambia/Ethiopia/Malta/Cyprus passport schemas use for their own section-applicability gates. See this schema's own verification.notes Finding 3.
-
applicantOverSixteenboolean requiredNot a printed checkbox. Drawn from the form's own completion notes (page 2): "All applications for Botswana passports in respect of applicants over 16 years must be supported by a National Registration Identity Card (O Mang)." Gates which of the two mutually exclusive supporting-identity documents[] entries is required. See this schema's own verification.notes Finding 4.
Passport Type and Delivery
-
passportTypeenum requiredConfirmed via rendered image as a genuine 4-option checkbox grid, each with its own printed box. See this schema's own verification.notes Finding 1.
enum: LOCAL | OFFICIAL | NATIONAL | DIPLOMATIC -
passportSentToNamestring optionalSee this schema's own verification.notes Finding 2 for why this and the three sibling delivery fields are unconditionally optional with no selector gating one on the other.
length: 0–200classification: pii -
passportSentToAddressstring optionalPassport to be sent to (Address)
length: 0–400classification: pii -
collectedByNamestring optionalOr Collected by sent to (Name)
length: 0–200classification: pii -
collectedByAddressstring optionalOr Collected by sent to (Address)
length: 0–400classification: pii
Section 1: Personal Details
-
titleenum requiredTitle
enum: MR | MRS | MISS -
surnamestring requiredSurname
length: 0–100classification: pii -
firstNamesstring requiredFirst Names
length: 0–150classification: pii -
colourOfHairstring requiredColour of Hair
length: 0–50classification: pii -
placeOfBirthstring requiredPlace of Birth
length: 0–150classification: pii -
countryOfBirthstring requiredCountry of Birth
length: 0–100classification: pii -
dateOfBirthdate requiredDate of Birth
classification: sensitive-pii -
occupationstring requiredProfession/Occupation
length: 0–150 -
postalAddressPOBoxPrivateBagstring requiredPostal Address — P.O. Box/Private Bag
length: 0–100classification: pii -
postalAddressTownVillagestring requiredPostal Address — Town/Village
length: 0–150classification: pii -
heightMetresinteger requiredSee this schema's own verification.notes Finding 8 for the two-field split.
range: 0–3classification: pii -
heightCentimetresinteger requiredHeight — Centimetres
range: 0–99classification: pii -
residentialAddressPlotNumberstring requiredResidential Address — Plot Number
length: 0–100classification: pii -
residentialAddressKgotlaTownVillagestring requiredResidential Address — Kgotla/Town/Village
length: 0–150classification: pii -
colourOfEyesstring requiredColour of Eyes
length: 0–50classification: pii -
distinguishingMarksstring optionalSee this schema's own verification.notes Finding 7 for why this is the sole optional field within Section 1's personal-description block.
length: 0–300classification: pii -
nationalStatusenum requiredNational Status — I am a citizen of Botswana by
enum: BIRTH | REGISTRATION | NATURALIZATIONclassification: sensitive-pii
Section 2: Parents' Details
-
fatherSurnamestring requiredFather — Surname
length: 0–100classification: pii -
fatherFirstNamesstring requiredFather — First Names
length: 0–150classification: pii -
fatherPresentAddressstring requiredFather — Present Address
length: 0–300classification: pii -
fatherPOBoxPrivateBagstring requiredFather — P.O. Box/Private Bag
length: 0–100classification: pii -
fatherPlotNumberstring requiredFather — Plot Number
length: 0–100classification: pii -
fatherTownVillagestring requiredFather — Town/Village
length: 0–150classification: pii -
fatherDateOfBirthdate requiredFather — Date of Birth
classification: sensitive-pii -
fatherPlaceOfBirthstring requiredFather — Place of Birth
length: 0–150classification: pii -
fatherCountryOfBirthstring requiredFather — Country of Birth
length: 0–100classification: pii -
fatherPresentNationalitystring requiredFather — Present Nationality
length: 0–100classification: pii -
fatherPreviousNationalitystring optionalSee this schema's own verification.notes Finding 5 for why this field alone is modelled optional within Section 2.
length: 0–100classification: pii -
motherSurnamestring requiredMother — Surname
length: 0–100classification: pii -
motherFirstNamesstring requiredMother — First Names
length: 0–150classification: pii -
motherPresentAddressstring requiredMother — Present Address
length: 0–300classification: pii -
motherPOBoxPrivateBagstring requiredMother — P.O. Box/Private Bag
length: 0–100classification: pii -
motherPlotNumberstring requiredMother — Plot Number
length: 0–100classification: pii -
motherTownVillagestring requiredMother — Town/Village
length: 0–150classification: pii -
motherDateOfBirthdate requiredMother — Date of Birth
classification: sensitive-pii -
motherPlaceOfBirthstring requiredMother — Place of Birth
length: 0–150classification: pii -
motherCountryOfBirthstring requiredMother — Country of Birth
length: 0–100classification: pii -
motherPresentNationalitystring requiredMother — Present Nationality
length: 0–100classification: pii -
motherPreviousNationalitystring optionalSee this schema's own verification.notes Finding 5.
length: 0–100classification: pii
Section 3: Next of Kin
-
nextOfKinSurnamestring requiredNext of Kin — Surname
length: 0–100classification: pii -
nextOfKinFirstNamesstring requiredNext of Kin — First Names
length: 0–150classification: pii -
nextOfKinContactAddressstring requiredNext of Kin — Contact Address
length: 0–300classification: pii -
nextOfKinPOBoxPrivateBagstring requiredNext of Kin — P.O. Box/Private Bag
length: 0–100classification: pii -
nextOfKinPlotNumberstring requiredNext of Kin — Plot Number
length: 0–100classification: pii -
nextOfKinTownVillagestring requiredNext of Kin — Town/Village
length: 0–150classification: pii -
nextOfKinRelationshipstring requiredNext of Kin — Relationship
length: 0–100 -
nextOfKinTelephoneNumberstring requiredNext of Kin — Telephone Number
length: 0–50classification: pii
Section 4: Traditional Authority
-
nameOfChiefstring requiredSee this schema's own verification.notes Finding 6 for why Section 4 is modelled unconditionally required.
length: 0–150classification: pii -
nameOfHeadmanstring requiredName of Headman
length: 0–150classification: pii -
nameOfWardstring requiredName of Ward
length: 0–150 -
kgotlaTownVillagestring requiredKgotla/Town/Village
length: 0–150 -
districtstring requiredDistrict
length: 0–100
Section 5: Parent or Legal Guardian's Consent
-
guardianSurnamestring optionalParent/Guardian — Surname
length: 0–100classification: pii -
guardianFirstNamestring optionalParent/Guardian — First Name
length: 0–150classification: pii -
guardianAddressstring optionalParent/Guardian — Address
length: 0–300classification: pii -
guardianPOBoxPrivateBagstring optionalParent/Guardian — P.O. Box/Private Bag
length: 0–100classification: pii -
guardianPlotNumberstring optionalParent/Guardian — Plot Number
length: 0–100classification: pii -
guardianTownVillagestring optionalParent/Guardian — Town/Village
length: 0–150classification: pii -
guardianTelephoneNumberstring optionalParent/Guardian — Telephone Number
length: 0–50classification: pii -
guardianRelationshipstring optionalIf the relationship is not father or mother, circumstances and proof of legal custody must be provided — see detailsOfLegalCustody.
length: 0–100 -
detailsOfLegalCustodystring optionalSee this schema's own verification.notes Finding 9 for why this field is bare-optional rather than gated on applicantIsMinor.
length: 0–600 -
guardianSignaturestring optionalSignature of Parent/Guardian
classification: pii -
guardianConsentDatedate optionalDate (Parent/Guardian Consent)
Section 6: Declaration
-
declarationDatedate requiredDate
-
applicantSignaturestring requiredApplicant's Signature
classification: pii
Verification record
Candidate selection
GOV-4328 ("GovSchema Standard Research", 2026-07-22). Closes Botswana's own pre-scouted, STRONG banked backlog left open by the GOV-4307 cycle (see CATALOG.md's Known Gaps entry 0e) — Form PP1 Rev, the last of four disclosed-STRONG Botswana verticals (Taxes, Visa, DMV, Passport) remaining unauthored after GOV-4321 authored Visa (bw/dic/visa-application@1.0.0). Opens Botswana's Passport vertical (4 of 6); Botswana's other two screened verticals (Business Formation, National ID) remain confirmed dead ends per the GOV-4307 cycle's own six-vertical screening pass.
Reaching the live source
Independently re-fetched and re-hashed rather than trusted from the prior cycle's own banked report alone:
https://www.botswanaembassy.org/sites/default/files/documents/Botswana_Passport_Application_Form.pdf- HTTP 200,
Content-Type: application/pdf, 123,496 bytes (byte-for-byte match with the GOV-4307 cycle's own reported size). - sha256
7ea390948b63c0a43aeae95432f5b7abbef62faff999db9e1499c54020abada7. - Begins
%PDF-1.4. Confirmed mechanically: zero/AcroForm,/Widget, and/FToccurrences in the raw bytes (a flat, print-and-fill specimen, not an interactive AcroForm PDF), and exactly 7/Type/Pageobjects. gov.bwitself WAF-blocks this particular form's own hosting path directly (per the GOV-4307 cycle's own disclosed finding); this Botswana-embassy mirror is unauthenticated and ungated. Its letterhead, form number (PP1 Rev), and section structure match the Department of Immigration and Citizenship's other Botswana-government-hosted forms (Form 1 Visa, Form DL1) in layout convention, corroborating it as the standard specimen rather than a stale or altered mirror.
Extraction method
Text extracted via pdfjs-dist's getTextContent() API (vendored at /tmp/node_modules/pdfjs-dist from prior cycles), grouped by y-coordinate row and sorted by x-coordinate. All 7 pages additionally rendered to PNG at 2.5x scale via pdfjs-dist + node-canvas (vendored at /tmp/node_modules/canvas) and visually cross-checked against the extracted text for every checkbox grid and box-grouping described in the findings below — this form's dense multi-column box layout (e.g. Section 2's Father/Mother columns, Section 4's Chief/Headman box grid) is materially under-represented by text position alone.
Document structure
The PDF's 7 pages: page 1 (Passport Type, delivery preference, collection signature); page 2 (Notes on Completing the Application Form — informational, no applicant-facing fields); pages 3-5 (Sections 1-5: Personal Details, Parents' Details, Next of Kin, Traditional Authority, Parent/Legal Guardian's Consent); page 6 (Section 6: Declaration by the Applicant, plus specimen signature boxes); page 7 (entirely "For Official Use Only" — excluded, see Finding 10 below).
Models 72 fields[] across 8 steps (Eligibility Gates; Passport Type and Delivery; Section 1 Personal Details; Section 2 Parents' Details; Section 3 Next of Kin; Section 4 Traditional Authority; Section 5 Parent or Legal Guardian's Consent; Section 6 Declaration) plus 5 documents[] entries.
Disclosed source-fidelity findings
passportTypeconfirmed via rendered image as a genuine 2x2 checkbox grid (Local/Official/National/Diplomatic), each with its own printed box. The raw text layer alone ("Local Official" / "National Diplomatic" as two text rows) under-represents the true 4-option single-select structure; a targeted crop of the rendered PNG confirms all four options each carry their own checkbox glyph, unlike the siblingbw/dic/visa-application's Sex row (only one option of two printed a box). Modelled as a required 4-value enum.passportSentToName/passportSentToAddressandcollectedByName/collectedByAddressmodelled as two independent, unconditionally optional blocks, with no selector gating one on the other. Page 1 prints "Passport to be sent to (Name)/Address" and "Or Collected by sent to (Name)/Address" as two side-by-side box groups with no checkbox choosing between them — an applicant fills in whichever delivery method applies and leaves the other blank. This registry's own established disclose-rather-than-fabricate convention (e.g.bw/dic/visa-applicationFinding 7) is followed rather than inventing an unprinteddeliveryMethodselector or an either/or validation rule the source does not state. The signature/date line beneath these blocks ("To be signed by the person collecting the Passport at the time of collection") is excluded — it is completed later, at physical collection, not at application time.applicantIsMinoris a directly-supplied, unprinted boolean eligibility gate, not derived fromdateOfBirth. Section 5's own header reads "Consent of Parent or Legal Guardian: (To be completed if the applicant is under 21 years of age)" — the same unprinted-condition convention this registry's Zambia (zm/dnrpc/passport-application), Ethiopia, Malta, and Cyprus passport schemas use for their own section-applicability gates, since GSP-0013'sConditiongrammar has no date-arithmetic/age-derivation operator to compute this fromdateOfBirthdirectly. Note 3 on page 2 of the source's own completion notes cites this same conditional but mislabels it "Section 1b" ("Legal Guardian's consent (Section 1b) to be completed when the applicant is a minor under the age of 21 years") — the actual guardian-consent section is unambiguously Section 5 per its own printed heading; this cross-reference mismatch is disclosed here as a printed error in the source's own notes, not resolved or silently corrected.applicantOverSixteenis a second directly-supplied, unprinted boolean eligibility gate, drawn from the form's own completion notes rather than a section header. Notes page item 1 (page 2 of the source) reads "All applications for Botswana passports in respect of applicants over 16 years must be supported by a National Registration Identity Card (O Mang). Only in extremely exceptional circumstances shall a birth certificate or an affidavit in lieu of birth certificate completed by a parent on behalf of the applicant and attested by Commissioner of Oaths, be accepted." This gates two mutually exclusivedocuments[]entries (nationalIdOmangrequiredWhen true;birthCertificateOrAffidavitrequiredWhen false) rather than modelling a single ambiguous "identity evidence" document.- Section 2 (Parents' Details) fields are modelled as required for both Father and Mother, except
fatherPreviousNationality/motherPreviousNationality, left optional. The source prints no optionality marker anywhere in Section 2, unlike Section 5's own explicit age-based conditional — but "Previous Nationality" only logically applies to a parent whose nationality changed (e.g. through naturalization), so it is modelled optional as a disclosed judgment call, while every other Section 2 field (name, address, date/place/ country of birth, present nationality) is modelled required per the source's own lack of an optionality marker. - Section 4 (traditional-authority particulars: Chief, Headman, Ward, Kgotla/Town/Village, District) is modelled as unconditionally required, since the source prints no "if applicable" annotation distinguishing it from Sections 1-3 — disclosed here since an urban applicant without a personal Chief/Headman affiliation may find this section's universal requiredness a practical burden the source itself does not address.
distinguishingMarksmodelled as the sole optional field within Section 1's personal-description block. Unlike height/colour-of-hair/colour-of-eyes (universal physical descriptors every applicant has an answer for), not every applicant has a distinguishing mark — the source prints no optionality marker, but this is the same judgment-call convention this registry applies to comparable "identifying marks" fields elsewhere (disclosed rather than silently defaulted).heightMetres/heightCentimetresmodelled as two separate integer fields, matching the source's own two adjacent boxes ("Height: [box] Metres [box] Cm") and this registry's established precedent for the same split inzm/dnrpc/passport-application.detailsOfLegalCustodymodelled bare-optional, not gated onapplicantIsMinor. Section 5 prints "(If relationship not father or mother circumstances and proof of legal custody must be provided)" as a free-standing conditional instruction with no separate checkbox of its own — the same disclosed no-printed-signal treatment this registry's Zambia/Ethiopia passport schemas use for their own analogous ungated optional fields (e.g.zm/dnrpc/passport-application'ssponsoringGovernmentDepartment).- Page 7's entire "For Official Use Only" section is excluded, including its own "APPLICANT'S IDENTIFYING DOCUMENTS" checklist (Birth Certificate/National Reg. ID/Marriage Particulars/Adoption Papers/Others tick-boxes) — despite its heading naming the applicant's documents, the whole page sits beneath the page's own "For Official Use Only" banner and is completed by DIC staff recording which documents were physically produced, receipt/fee particulars, and application-checked-by sign-off, none of which is applicant-supplied data.
proofOfMarriageOrCustomaryLawLettermodelled as a fifthdocuments[]entry, requiredWhentitleequalsMRS. Page 3, printed directly beside the Mr./Mrs./Miss title checkboxes: "(If married female proof of marriage should be produced if not previously provided Or A letter from the Chief/Headman, if married under Customary Law)". This is the same conditional-document-requirement pattern this schema already applies tonationalIdOmang/birthCertificateOrAffidavit(Finding 4) — a printed requirement gated on a directly-answerable field rather than an unprinted derived condition. The source's own "if not previously provided" qualifier (an applicant who already submitted proof of marriage on a prior application need not resubmit it) is not separately modelled, since GSP-0013'sConditiongrammar has no way to represent "unless already on file with the agency" — the same disclose-rather-than-fabricate treatment this schema's own Finding 2 applies to an analogous source nuance theConditiongrammar cannot express. This branch is exercised by the existingvalid-adult-collected-by-distinguishing-markfixture, which already setstitle: "MRS".
Conformance
3 valid mock scenarios (an adult applicant with National ID Omang identity evidence and no guardian consent triggered; a minor applicant under 21 triggering full guardian consent, with birth-certificate identity evidence; an adult applicant using the collected-by delivery method with a distinguishing mark disclosed, and — since this scenario's title is MRS — the proofOfMarriageOrCustomaryLawLetter requiredWhen branch) plus 14 mutation-control fixtures (a missing statically-required field for each of passportType, title, surname, dateOfBirth, nationalStatus, fatherSurname, motherSurname, nextOfKinSurname, nameOfChief, district, and applicantSignature; a missing requiredWhen-true guardianSurname while applicantIsMinor is true; an invalid passportType enum value; and an unknown top-level field) are committed under conformance/bw/dic/passport-application/1.0.0/, matching this registry's established fixture convention of validating fields[] values only — the documents[] array's own three conditional entries (nationalIdOmang/birthCertificateOrAffidavit/ proofOfMarriageOrCustomaryLawLetter) are exercised by the applicantOverSixteen and title branches already covered across the 3 valid scenarios, not by separate mutation fixtures, since this registry's fixture format has no document-satisfaction representation.
An ephemeral, from-scratch conformance checker (deriving required/ requiredWhen rules directly from this schema's own fields[], discarded after use, not committed) ran all 17 fixtures: all 3 valid scenarios at 0 errors, all 14 mutation controls each raising exactly 1 error, and confirmed every requiredWhen field reference resolves (0 dangling references). 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 Department of Immigration and Citizenship or any government. The authoritative source is always the live government form and its official instructions.