Registry entry
Botswana Visa Application (Form 1)
The Department of Immigration and Citizenship's "Application for a Visa" (Form 1), under the Immigration Act (Cap. 25:02, Regulation 7(1)), used by a foreign national requiring a visa to enter the Republic of Botswana. Deepens Botswana past its two already-published verticals (bw/burs/individual-tax-return, Taxes; bw/drts/driving-licence-application, DMV), opening the Visa vertical (3 of 6). This schema models the applicant's own identity and biographic particulars, the type of visa and number of entries requested, the applicant's address in Botswana and in their country of domicile, occupation, reasons for travel, the requested visa validity period, references in Botswana, funds available for the visit, passport/travel-document particulars, preferred method of communication, and the applicant's declaration and signature. It excludes the form's own "For Official Use Only" file-number box, which is office-completed, not applicant-supplied. 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/visa-application
Authoritative source Form 1, "Application for a Visa", Department of Immigration and Citizenship, native (searchable-text) PDF, 2 pages.
Machine access
- Schema document
registry/bw/dic/visa-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/bw/dic/visa-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
49 fields across 11 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.
1-3. Name, Age/Date of Birth, Sex/Marital Status, Nationality
-
surnamestring requiredSurname
length: 0–100classification: pii -
firstNamestring requiredFirst Name
length: 0–100classification: pii -
middleNamestring optionalMiddle Name
length: 0–100classification: pii -
previousMaidenSurnamestring optionalPrevious/Maiden Surname
length: 0–100classification: pii -
ageinteger optionalSee this schema's own verification.notes Finding 2 for the disclosed ambiguity in this field's printed box format relative to dateOfBirth.
range: 0–130 -
dateOfBirthdate requiredDate of Birth
classification: sensitive-pii -
countryOfBirthstring requiredCountry of Birth
length: 0–100classification: pii -
placeOfBirthstring requiredPlace of Birth
length: 0–150classification: pii -
sexenum requiredSee this schema's own verification.notes Finding 1 for the disclosed printed-checkbox asymmetry (only "Female" carries a printed box).
enum: MALE | FEMALEclassification: sensitive-pii -
maritalStatusenum requiredMarital Status
enum: SINGLE | MARRIED | DIVORCED | SEPARATED | WIDOWED -
nationalitystring requiredNationality (state name of country)
length: 0–100classification: pii
4. Type of Visa and Number of Entries
-
visaTypeRequiredenum requiredSee this schema's own verification.notes Finding 3 for the single-selection-enum treatment of this checkbox row.
enum: 10 values -
numberOfEntriesenum requiredNumber of Entries
enum: SINGLE | MULTIPLE
5-6. Address in Botswana and Country of Domicile
-
botswanaAddressTownVillagestring requiredAddress in Botswana — Town/Village
length: 0–150classification: pii -
botswanaAddressStreetWardstring requiredAddress in Botswana — Street/Ward
length: 0–150classification: pii -
botswanaAddressPlotHouseNostring requiredAddress in Botswana — Plot/House No.
length: 0–50classification: pii -
domicileCountrystring requiredAddress in Country of Domicile — Country
length: 0–100classification: pii -
domicileTownVillagestring requiredAddress in Country of Domicile — Town/Village
length: 0–150classification: pii -
domicileStreetWardstring requiredAddress in Country of Domicile — Street/Ward
length: 0–150classification: pii -
domicilePlotHouseNostring requiredAddress in Country of Domicile — Plot/House No.
length: 0–50classification: pii
7. Occupation
-
occupationstring requiredOccupation
length: 0–150 -
qualificationsstring optionalQualifications
length: 0–300
8-9. Proposed Length of Stay and Reasons for Travel
-
proposedLengthOfStayDaysinteger requiredProposed Length of Stay (days)
range: 0–9999 -
reasonForTravelstring requiredSatisfactory evidence will be required as to the object of the proposed journey. Employees of firms or persons acting on behalf of firms must produce certificates from their employers as to the nature and physical address of the business on which they are proceeding abroad. Bankers reference may be required.
length: 0–1000
10. Requested Validity Period of Visa
-
requestedValidityFromdate requiredRequested Validity Period of Visa — From
-
requestedValidityTodate requiredRequested Validity Period of Visa — To
11. References in Country of Destination
-
reference1Detailsstring optionalSee this schema's own verification.notes Finding 4. Combines Name, Physical Address, Telephone No, Residence Permit No, and ID No into one free-text field, per the source's own unlabelled combined box.
length: 0–500classification: pii -
reference2Detailsstring optionalSee reference1Details and this schema's own verification.notes Finding 4.
length: 0–500classification: pii
12. Money or Cash at Disposal
-
amountUSDnumber optionalSee this schema's own verification.notes Finding 5 for why this is modelled as four independent amount fields rather than a single-select currency enum.
range: 0–∞ -
amountEURnumber optionalMoney or Cash at Disposal — EUR
range: 0–∞ -
amountZARnumber optionalMoney or Cash at Disposal — ZAR
range: 0–∞ -
otherCurrencyNamestring optionalMoney or Cash at Disposal — Other Currency
length: 0–50 -
otherCurrencyAmountnumber optionalMoney or Cash at Disposal — Other Currency Amount
range: 0–∞
13. Particulars of Passport or Other Travel Documents
-
passportNumberstring requiredParticulars of Passport — Number
length: 0–50classification: sensitive-pii -
passportPlaceOfIssuestring requiredParticulars of Passport — Place of Issue
length: 0–150classification: pii -
passportDateOfIssuedate requiredParticulars of Passport — Date of Issue
classification: sensitive-pii -
passportDateOfExpirydate requiredParticulars of Passport — Date of Expiry
classification: sensitive-pii -
passportValidUntildate optionalSee this schema's own verification.notes Finding 6 for the disclosed ambiguity relative to passportDateOfExpiry and requestedValidityTo.
classification: sensitive-pii -
returnVisaTostring optionalSee this schema's own verification.notes Finding 6.
length: 0–200
14. Preferred Method of Communication
-
preferredCommunicationMethodenum requiredSee this schema's own verification.notes Finding 7 for why the contact-detail fields below are unconditionally optional rather than requiredWhen-gated on this selection.
enum: EMAIL | SMS | POST -
emailAddressstring optionalE-mail
length: 0–200classification: pii -
cellPhoneNumberstring optionalCell phone Number
length: 0–50classification: pii -
telephoneNumberstring optionalTelephone Number
length: 0–50classification: pii -
postalAddressCountrystring optionalPresent Postal Address — Country
length: 0–100classification: pii -
postalAddressTownVillagestring optionalPresent Postal Address — Town/Village
length: 0–150classification: pii -
postalAddressPOBoxOrBagstring optionalPresent Postal Address — P.O. Box/P. Bag
length: 0–50classification: pii -
postalAddressPostOfficeLocationstring optionalPresent Postal Address — Post Office Location
length: 0–150classification: pii
Declaration
-
declarationDatedate requiredDate
-
signaturestring requiredSignature of Applicant
classification: pii
Verification record
Candidate selection
GOV-4321 ("GovSchema Standard Research", 2026-07-22). Rather than scouting a new jurisdiction from scratch, this cycle deepened Botswana's own pre-scouted, STRONG banked backlog left open by the GOV-4307 cycle (see CATALOG.md's Known Gaps entry 0e): Form 1, "Application for a Visa" — one of two STRONG-but-unauthored Botswana verticals remaining (Visa, Passport) after the GOV-4314 cycle authored DMV (bw/drts/driving-licence-application). Opens Botswana's Visa vertical (3 of 6).
Reaching the live source
Fetched https://www.gov.bw/sites/default/files/2026-03/Application%20for%20a%20VISA%20Form%201_2.pdf directly with a plain unauthenticated curl request (no session/cookie state, no CAPTCHA/WAF challenge):
- HTTP 200,
Content-Type: application/pdf, 477,256 bytes — a byte-for-byte match with the GOV-4307 cycle's own reported size, confirming the source is unchanged since it was banked. - PDF header
%PDF-1.4at byte 0. - Confirmed mechanically: zero
/AcroForm,/Widget, and/FToccurrences in the raw bytes — a flat, print-and-fill specimen, not an interactive AcroForm PDF.
Extraction method
Extracted with pdfjs-dist (vendored from an existing session scratch install at /tmp/node_modules), reading each page's getTextContent() output directly, grouped by y-coordinate row (±2pt tolerance) and sorted by x-coordinate to reconstruct column order. Both of the document's 2 pages were additionally rendered to PNG via pdfjs-dist + node-canvas at 2.5x scale — unlike the sibling bw/drts/driving-licence-application PDF, this document's embedded fonts rasterized cleanly with no glyph-mapping failure, so every checkbox grid and field layout below was visually cross-checked against the rendered image, not inferred from the text layer alone.
Document structure
A 2-page, single form: "APPLICATION FOR A VISA" (Form 1), under the Immigration Act (Cap. 25:02, Regulation 7(1)). 14 numbered items (items 1-14, no numbering gaps), an unnumbered "For Official Use Only"/File Number box (office-completed, excluded), a "Photo 3cm x 4cm" placeholder, and a closing declaration/signature block.
Fields modelled
49 fields[] across 11 steps (Applicant identity; Visa details; Addresses; Occupation; Travel details; Visa validity; References; Financial means; Passport details; Communication; Declaration) plus 1 documents[] entry (the form's own photo placeholder).
Disclosed source-fidelity findings
sexmodelled as a required enum (MALE,FEMALE) despite the source printing a checkbox after "Female" only. A targeted crop of the rendered PNG confirms "Sex: Male Female☐" — a printed checkbox glyph immediately follows "Female" but no corresponding box follows "Male" anywhere on the row. This is a genuine printing asymmetry in the source, not an extraction artifact (confirmed via the rasterized image, not just the text layer); modelled as an ordinary two-value enum since the intended semantics (tick one of Male/Female) are unambiguous despite the missing box glyph. The registry's ownbw/drts/driving-licence-applicationdisclosed an analogous checkbox-grid asymmetry (Finding 1) in the same jurisdiction the prior cycle.agemodelled as an optional integer, distinct from and not cross-validated againstdateOfBirth. Item 2 prints "Age:" with its own 3-box entry field captionedY Y Yimmediately to the left of "Date of Birth:" (which carries its own 8-boxD D M M Y Y Y Yentry, confirmed at the expected DDMMYYYY date-box convention used elsewhere on this form). TheY Y Ycaption under the Age boxes does not follow that same day/month/year convention and most plausibly denotes a 1-3 digit age-in-years value, but the form gives no further explanation. Modelled as its own optional field per the source's own distinct box, without fabricating a cross-check againstdateOfBirth.visaTypeRequired(item 4(a)) modelled as a single-select required enum with 10 options, andnumberOfEntries(item 4(b)) as its own separate single-select required enum with 2 options. The rendered image confirms each of the 10 visa-type options (Diplomatic, Official, Employment, Business, Investment, Tourist, Visitor, Study, Transit, Emergency) and both entries options (Single, Multiple) carries its own printed checkbox square. The two questions are printed side by side but are structurally independent selections, per this registry's own established single-selection-enum convention for tick-one-of-many rows (e.g.bw/drts/driving-licence-applicationFinding 1), since GSP-0009's field-type vocabulary has no multi-select/array primitive.- Item 11 ("References in Country of Destination") modelled as two independent, unconditionally optional free-text fields (
reference1Details,reference2Details). The rendered image shows a single boxed area split into two side-by-side blank sub-boxes labelled only "(1)" and "(2)", captioned once at the section heading with "(with Names, Physical Address, Telephone No, Residence Permit No, ID No)" — no further column sub-division is printed inside either box, so each is modelled as one combined free-text field per the source's own layout, matching this registry's precedent for an ungated, unlabelled repeatable block (e.g.pa/migracion/tourist-visa-application'srelative1NameRelationAddress/relative2NameRelationAddress). - Item 12 ("Please indicate what money or cash (amount) will be at your disposal") modelled as four independent, unconditionally optional amount fields (
amountUSD,amountEUR,amountZAR, plusotherCurrencyNameandotherCurrencyAmount), not a single-select currency enum. The rendered image confirms each of "USD", "EUR", "ZAR", and "Other: …" is immediately followed by its own independent boxed amount-entry field, not a shared checkbox choice — an applicant may in principle declare funds in more than one currency.otherCurrencyNameandotherCurrencyAmountare left independently optional rather than one gating the other, per this registry's own established avoidance of fabricating arequiredWhentie between two co-located but not explicitly cross-referenced optional fields (see, e.g.,bw/drts/driving-licence-applicationFinding 3's discussion of thenotEquals ""anti-pattern for absent-field detection). - Item 13's
passportValidUntilandreturnVisaTofields modelled as unconditionally optional, disclosing an unexplained ambiguity. Beneath the clearly-labelled "Date of Issue"/"Date of Expiry" pair, the source prints a further "Valid Until:" date box (own 8-boxD D M M Y Y Y Yentry) and a separate "Return Visa to:" free-text line, with no accompanying explanatory text distinguishing either from the passport's own already-captured expiry date or from the visa's own already-captured requested validity period (item 10). Modelled as their own distinct fields per the source's own distinct boxes, without fabricating an interpretation the source does not state. preferredCommunicationMethod(item 14) modelled as a required single-select enum (EMAIL,SMS,POST), withemailAddress,cellPhoneNumber,telephoneNumber, and the four Present Postal Address sub-fields all modelled as unconditionally optional rather than gated viarequiredWhenon the selected method. The source visually groups the postal-address block under "Post" and situates "Cell phone Number"/ "Telephone Number" on the same row as "SMS", but prints no explicit conditional cross-reference tying any contact field's requiredness to a specific checkbox selection — following the same disclose-rather-than- fabricate precedent as Finding 5 above.- All Botswana-address and country-of-domicile-address sub-fields (Town/Village, Street/Ward, Plot/House No., Country) are modelled as required, since items 5 and 6 print no optionality marker and, unlike the sibling
bw/drts/driving-licence-application's Postal Address (a genuinely secondary block there), both addresses here are core to a visa applicant's own identity and travel particulars. - The "For Official Use Only"/"File Number" box is excluded as an office-completed field, not applicant-supplied. The "Photo 3cm x 4cm" placeholder is modelled as a
documents[]entry (photograph, categoryidentity-document, required), following the same treatment this registry gives an explicitly printed photo-affixing box elsewhere (e.g.mx/sre/passport-application'sphotographdocument).
Conformance
3 valid mock scenarios — valid-single-entry-tourist (an unmarried, single-entry tourist applicant preferring e-mail contact, no financial or reference fields beyond the required minimum); valid-multiple-entry-business-two-currencies-and-references (a married business applicant requesting multiple entries, declaring funds in both USD and ZAR, and supplying both destination-country references); and valid-transit-sms-contact (a divorced transit applicant preferring SMS contact, exercising cellPhoneNumber/telephoneNumber, the full Present Postal Address block, otherCurrencyName/otherCurrencyAmount, passportValidUntil, and returnVisaTo) — plus 15 mutation-control fixtures (a missing-required-field fixture for each of surname, firstName, dateOfBirth, sex, maritalStatus, nationality, visaTypeRequired, numberOfEntries, botswanaAddressTownVillage, occupation, reasonForTravel, passportNumber, and preferredCommunicationMethod; an invalid-enum fixture for visaTypeRequired; and an unknown-field-rejected fixture) are committed under conformance/bw/dic/visa-application/1.0.0/.
An ephemeral, from-scratch conformance checker (deriving required/enum rules directly from this schema's own fields[], discarded after use, not committed) ran all 18 fixtures: all 3 valid scenarios at 0 errors, and all 15 mutation controls each raising exactly 1 error of the expected kind.
Validated clean with node tools/validate.mjs and node tools/validate-ajv.mjs, individually and as part of the full registry run (598/598 documents, including this one). 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.