Registry entry
Tanzania — NIDA Registration Form No. 2A, Identification Form (Legal Residents / Refugees)
The National Identification Authority's (NIDA), Ministry of Home Affairs, Registration Form No. 2A, an "Identification Form" that must be filled in by legal residents or refugees applying for a Tanzanian National Identification Number/card (as distinct from Form No. 1, the citizens' variant, which this schema does not model). Opens Tanzania's National ID & Civic Documents vertical (Tanzania's second schema in this registry, following Business Formation via BRELA Form 14a; Tanzania now stands at 2 of 6 verticals). This is a whole-of-form schema: a fixed-layout, non-repeating, 2-page, 54-item numbered template with sections A (Personal Details), B (Parents/Guardian Details), C (Residential Address in Tanzania), D (Applicant's Permanent Address), E (Personal References — identity/status documents, each paired with its own "tick if attached" box), F (Applicant's Declaration), and G (For Official Use Only). Models every applicant-facing item across sections A-E plus the Section F declaration statement (as a documents[] attestation entry); excludes the top-of-page enrollment/batch box (batch number, batch date, enrollment station, and a duplicate postcode/village box used for the enrolling office's own batch tracking) and the entirety of Section G (center number, region/district/ward, application date, and the registration/immigration/RITA-RGO/WEO/NIDA officers' own name-and-signature fields), all of which are staff/system-assigned intake data the applicant never supplies, plus the Section F applicant-signature and LGA-officer-signature/date lines, which are a physical wet-signature mechanism rather than data fields. This document describes the form only; it does not submit anything to NIDA on an applicant's behalf, and does not imply endorsement by the United Republic of Tanzania, its Ministry of Home Affairs, or NIDA. GovSchema is an independent, non-profit standards body.
Registry entry
tz/nida/application-form-2a
Authoritative source Registration Form No. 2A, "Identification Form" (must be filled in by Legal Residents/Refugees), Version No. 1.1
Machine access
- Schema document
registry/tz/nida/application-form-2a/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/tz/nida/application-form-2a/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
42 fields, 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.
Fields
-
applicantTypeenum requiredWhether the applicant is applying as a legal resident (a non-citizen lawfully resident in Tanzania) or as a refugee. This form is explicitly captioned "THIS FORM MUST BE FILLED IN BY LEGAL RESIDENTS/ REFUGEES", distinguishing it from Form No. 1 (citizens).
enum: LEGAL_RESIDENT | REFUGEE -
firstNamestring requiredFirst name
-
middleNamestring optionalModeled optional: not every applicant has a middle name, and the form gives no marking distinguishing it from the other name fields.
-
surnamestring requiredSurname
-
otherNamesstring optionalA catch-all supplementary-names field distinct from first/middle/surname; modeled optional since not every applicant has additional names to record here.
-
dateOfBirthdate requiredDate of birth
-
placeOfBirthstring requiredPlace of birth
-
nationalitystring requiredModeled as free text: the form prints only a blank box row, no accompanying option list of nationalities.
-
phoneNumberstring requiredPhone number
-
genderenum requiredGender
enum: MALE | FEMALE -
maritalStatusenum requiredThe form's "WIDOW / WIDOWER" checkbox is normalized here to a single gender-neutral WIDOWED value.
enum: SINGLE | MARRIED | WIDOWED | DIVORCED -
employmentStatusenum requiredPrinted under the header "11. OCCUPATION:", but the form itself provides only three employment-category checkboxes (no free-text job-title line), so this is modeled as an employment-status enum rather than a job title. The source form's own checkbox labels are spelled "EMPLOYEED"/"UNEMPLOYEED"; normalized to standard spelling here.
enum: EMPLOYED | SELF_EMPLOYED | UNEMPLOYED -
fatherFirstNamestring requiredFather's first name
-
fatherMiddleNamestring optionalModeled optional, consistent with the applicant's own middle name field above.
-
fatherLastNamestring requiredFather's last name
-
motherFirstNamestring requiredMother's first name
-
motherMiddleNamestring optionalModeled optional, consistent with the applicant's own middle name field above.
-
motherLastNamestring requiredMother's last name
-
houseNumberstring requiredHouse number
-
residentialRegionstring requiredRegion
-
residentialDistrictstring requiredDistrict
-
residentialWardstring requiredWard
-
residentialVillageMtaaShehiastring requiredVillage / Mtaa / Shehia
-
residentialStreetKitongojistring requiredStreet / Kitongoji
-
residentialPostalAddressstring requiredPostal address
-
residentialPostcodestring requiredPostcode
-
permanentAddressCountrystring requiredCountry
-
permanentAddressLine1string requiredAddress line 1
-
permanentAddressLine2string optionalModeled optional: items 27-31 are five separately numbered continuation lines for one permanent address, and a short address will not need all five.
-
permanentAddressLine3string optionalModeled optional, per the same continuation-line reasoning as Address line 2.
-
permanentAddressLine4string optionalModeled optional, per the same continuation-line reasoning as Address line 2.
-
permanentAddressLine5string optionalModeled optional, per the same continuation-line reasoning as Address line 2.
-
passportNumberstring optionalModeled optional: Section E is a set of personal-reference identity/status documents, and which of the five apply depends on the applicant's own legal status, which this form does not explicitly bind via a printed conditional (see Scope decisions).
-
passportExpiryDatedate optionalPassport expiry date
-
residentPermitNumberstring optionalResident Permit / Exemption Certificate / Dependant Pass number
-
residentPermitExpiryDatedate optionalResident Permit / Exemption Certificate / Dependant Pass expiry date
-
workPermitNumberstring optionalWork / Authority Permit number
-
workPermitExpiryDatedate optionalWork / Authority Permit expiry date
-
refugeeIdCardNumberstring optionalRefugee ID Card No / Ration Card No
-
refugeeIdCardExpiryDatedate optionalRefugee ID Card No / Ration Card expiry date
-
conventionTravelDocNumberstring optionalConvention Travel Doc No / Certificate of Identity No
-
conventionTravelDocExpiryDatedate optionalConvention Travel Doc No / Certificate of Identity expiry date
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-15
Why this schema and why now (GOV-3152)
GOV-3152 is a "GovSchema Standard Research" cycle delegation. Tanzania opened this registry as its 61st jurisdiction via Business Formation (tz/brela/company-registration-form-14a, GOV-3113); National ID & Civic Documents was Tanzania's only other vertical with a strong, pre-identified candidate — NIDA's own public docs/ folder publishes Registration Form 2A as a direct, unauthenticated PDF. This cycle independently fetched and re-derived the schema from scratch rather than assuming any prior scouting note.
Sources examined
- Document
(id, version):tz/nida/application-form-2a/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: National Identification Authority ("NIDA"), Ministry of Home Affairs.
- Primary source:
- Form file: https://nida.go.tz/docs/APPLICATION-FORM-2A-NIDA.pdf — fetched directly this cycle via plain
curl: HTTP 200, content-typeapplication/pdf, 948,509 bytes, sha256ea8f89946c77027c86701cdcb8b45cb4f617c5324854b52ccbe8b2c49a9b2f8e. File header confirmed genuine%PDF-1.5. - A genuine 2-page native text-layer PDF, confirmed via
pdfjs-dist(legacy CJS build, pinned to 3.11.174 fornode-canvasrendering compatibility — newer 4.x releases have failednode-canvasrendering on other PDFs in this registry before).getAnnotations()returned zero widgets on both pages — no/AcroForm, a fill-in-the-box, non-interactive print-and-fill template, not an interactive PDF form. - Every line of both pages was extracted via
getTextContent()(grouped byy-coordinate, cross-checked against a raw per-glyphx/ydump), and both pages were additionally rendered to 2.5×-scale PNGs vianode-canvasand visually inspected — this confirmed the box/checkbox layout end to end and resolved two regions where raw text-extraction order alone would have been ambiguous:- The page-1 top-left corner prints a bordered administrative box — "BATCH NUMBER:", "POSTCODE:", "VILLAGE / MTAA / SHEHIA:", "ENROLLMENT STATION:", "BATCH DATE:" — visually and structurally distinct from the letterhead beside it and from the applicant's own Section C address fields below. Read together with Section G's identical "batch"/"center" administrative vocabulary, this is the enrolling office's own intake/filing reference box, not an applicant-facing field.
- Section E's five personal-reference item pairs (32/33, 34/35, 36/37, 38/39, 40/41) each carry exactly one "( Tick (✓) if Attached )" checkbox, positioned beside the number item of each pair only (32, 34, 36, 38, 40), confirmed via an
x/ycoordinate dump — the tick gates each document pair as a whole, not each line independently.
- A full-page render also confirmed the top checkbox pair "LEGAL RESIDENT" / "REFUGEE" ("Put a Tick Mark (✓) in the relevant box") is a single mutually-exclusive applicant-type selector, matching this form's own caption "(THIS FORM MUST BE FILLED IN BY LEGAL RESIDENTS/ REFUGEES)" — distinguishing Form 2A from NIDA's separate Form No. 1 (citizens), which this schema does not model.
- Every numbered item (1-54) and the top applicant-type checkbox were checked against the rendered image for any asterisk, "if applicable", or other differentiating mark distinguishing required from optional fields. None exists anywhere on this form — every blank box in sections A-E is presented identically, with no visual or textual distinction. All requiredness judgment calls below were therefore made in the absence of any such source signal and are disclosed in full.
- Form file: https://nida.go.tz/docs/APPLICATION-FORM-2A-NIDA.pdf — fetched directly this cycle via plain
Scope decisions
- The top-left enrollment/batch box is out of scope. "BATCH NUMBER:", "POSTCODE:", "VILLAGE / MTAA / SHEHIA:", "ENROLLMENT STATION:", "BATCH DATE:" read as the enrolling office's own intake/filing reference, assigned at or around the point of enrollment, not applicant-supplied data — consistent with this registry's treatment of similar office-assigned reference boxes elsewhere (e.g. BRELA Form 14a's
trackingNumber/incorporationNumber). - Section G ("FOR OFFICIAL USE ONLY.", items 44-54) is entirely out of scope — center number, region/district/ward, center name, application date, and five separate officers' name-and-signature lines (Registration, Immigration, RITA/RGO, WEO/Employer, NIDA), all explicitly captioned as office-only and never filled in by the applicant.
- Section F's own signature/date lines (items 42-43) are out of scope — a physical wet-signature attestation mechanism, not a data field, consistent with this registry's established treatment of physical-signature-only blocks. The declaration statement itself ("I verify that all the information I have given above is correct and true to the best of my knowledge and belief.") is modeled as a
documents[]attestationentry (declarationOfAccuracy,required: true), per this registry's established convention for quoted declaration text (e.g.il/moin/dr1-passport-application'scitizenshipAndAccuracyDeclaration). applicantType(LEGAL_RESIDENT / REFUGEE) is modeled as a required enum field, per the form's own top checkbox pair and its own caption restricting this form to legal residents and refugees.- Middle-name fields (applicant, father, mother) and the applicant's "Other Names" field are modeled
required: false. This is a judgment call, not a source-marked distinction: the form gives these fields the identical visual/box treatment as every other name field. It is modeled optional because a middle name is not culturally universal and "Other Names" is by its own label a supplementary catch-all, not a primary identifying name. First name, surname/last name for the applicant, father, and mother are modeled required. - Section D's five "Address Line" items (27-31) are modeled with only line 1 required; lines 2-5 are
required: false. Unlike BRELA Form 14a's single free-text "Name of activities" field (which had unlabeled continuation lines with no item numbers), this form gives each address line its own item number (27 through 31) — literalized here as five separate fields rather than collapsed into one — but they are still a single permanent address's continuation lines, and a short address will not need all five, so lines 2-5 are optional. - Section E's ten document-number/expiry-date fields (items 32-41) are all modeled
required: false, with norequiredWhenlink toapplicantTypeor to their own "tick if attached" checkbox. Section E is captioned "PERSONAL REFERENCES," and which of the five document types (passport; resident permit/exemption certificate/dependant pass; work/authority permit; refugee ID card/ration card; convention travel document/certificate of identity) an applicant actually holds plainly depends on their own legal status and history — a refugee is unlikely to hold a passport, for example — but the form itself never states this dependency: no "if legal resident" / "if refugee" qualifier appears anywhere near items 32-41, unlike, e.g.,il/moin/mr41'srequestReason-gated documents, which the source form explicitly pairs with each checkbox's own printed attachment instruction. Modeling an implicitrequiredWhenlink here (either toapplicantTypeor between each number/expiry pair and its own tick-mark) would be inventing a conditional the source does not itself state. This is disclosed rather than resolved silently; a future version could add such gating if a NIDA implementation guide or internal procedure surfaces one. Conformance fixturecontrol-passport-number-without-attachment-tick-not-an-error.jsondemonstrates this deliberately: a passport number/expiry supplied with no correspondingpassportCopyAttacheddocument raises zero errors. - The five Section E "tick if attached" checkboxes are modeled as
documents[]entries (categoryidentity-document, one per document pair), separate from the number/expiry data fields, since the tick itself represents a physical attachment, not a data value. employmentStatus(item 11, printed header "OCCUPATION:") is modeled as a 3-value enum, not a free-text job title — the form provides only three checkboxes ("EMPLOYEED", "SELF EMPLOYEED", "UNEMPLOYEED") under that heading, no blank line for a job title. The source's own checkbox-label spelling is preserved verbatim in each field'ssourceRef; enum values are normalized to standard English spelling (EMPLOYED/SELF_EMPLOYED/UNEMPLOYED).maritalStatus's "WIDOW / WIDOWER" checkbox is normalized to a single gender-neutralWIDOWEDenum value, consistent with this registry's practice of not encoding a source form's own gendered checkbox pairs as two separate enum values when they denote one civil status.nationalityandplaceOfBirthare modeled as free-text strings, not enums — the form prints only a blank box row for each, with no accompanying option list, matching this registry's established practice of not fabricating enum values a source does not itself enumerate.
Conformance fixtures (Phase 3)
8 fixtures committed under conformance/tz/nida/application-form-2a/1.0.0/: 2 valid scenarios plus 6 control fixtures (5 error-raising mutation-controls, and 1 deliberately non-error control demonstrating Scope decision 7 above). All 8 were run against a from-scratch, ephemeral field-by-field conformance checker (derived directly from this schema's own fields[]/documents[]/required/requiredWhen/validation rules, not committed to the repo) before being finalized:
valid-legal-resident-with-resident-and-work-permit.json(a single, employed legal resident from Zambia with a resident permit and work permit attached) — 0 errors.valid-refugee-with-refugee-id-and-travel-document.json(a married, unemployed refugee from Burundi with a refugee ID card and convention travel document attached, a full name including middle/other names, and a 3-line permanent address) — 0 errors.mutation-control-missing-required-field.json(dropssurname) — exactly 1 error.mutation-control-invalid-date-format.json(setsdateOfBirthto14/03/1988, not ISO 8601) — exactly 1 error.mutation-control-invalid-gender-enum.json(setsgenderto"OTHER", not in the form's own two-value checkbox enum) — exactly 1 error.mutation-control-invalid-applicant-type-enum.json(setsapplicantTypeto"CITIZEN", a value this form's own checkbox pair does not offer) — exactly 1 error.mutation-control-missing-declaration-attestation.json(drops the requireddeclarationOfAccuracydocument) — exactly 1 error.control-passport-number-without-attachment-tick-not-an-error.json(adds apassportNumber/passportExpiryDatewith no correspondingpassportCopyAttacheddocument) — 0 errors (by design; see Scope decision 7).
Structural validation
node tools/validate.mjs registry/tz/nida/application-form-2a/1.0.0/schema.json— ok.node tools/validate-ajv.mjs registry/tz/nida/application-form-2a/1.0.0/schema.json(ajv 2020-12 againstspec/v0.3) — ok.- Full-registry re-run after adding this document:
node tools/validate.mjs→ 476/476 (up from 475/475 before this document);node tools/validate-ajv.mjs→ 476/476. node tools/verify-sources.mjs— clean (no FAIL/WARN on this document's changed files).npm run build-indexre-run intools/govschema-client/to regenerateregistry-index.jsonwith this document included.
Maturity
structural-reference: the source PDF's own printed structure is fully transcribed from the genuine, currently-served official form (a fill-in-the-box template, not an interactive form), but no live submission through any NIDA registration channel was attempted. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the United Republic of Tanzania, its Ministry of Home Affairs, or NIDA.
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 National Identification Authority or any government. The authoritative source is always the live government form and its official instructions.