Registry entry
National Identification Number (NIN) Enrolment Form (v2.0)
Nigeria's pre-enrolment form for the National Identification Number (NIN), published by the National Identity Management Commission (NIMC) and completed by an applicant before attending an NIMC enrolment centre in person for biometric capture (fingerprints and facial image). Covers the applicant's names and any prior name change, residence and homelessness status, date/place of birth, place of origin (the applicant's own, and their father's and mother's), physical features and any disability, residence status and nationality, requested card type and issuing bank, an existing-NIN field used only for personal-data-update requests, up to 9 optional supporting identity documents (with document number and expiry date each), marital status, languages, education, religion, occupation, employment status, card home-delivery preference, contact details, both parents' particulars (including each parent's NIN if available), guardian details, next of kin and their address, and the applicant's declaration/attestation. Opens Nigeria's National ID & Civic Documents vertical (Nigeria now stands at 4 of 6 verticals: Business Formation, Taxes, Visa, National ID). This schema models the pre-enrolment form itself, which is the genuine, complete, unauthenticated, field-by-field specimen; it does not and cannot submit the in-person biometric-capture step, which is always required and for which the live NIMC channel (nimc.gov.ng) or an NIMC enrolment centre is authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Federal Republic of Nigeria or the National Identity Management Commission.
Registry entry
ng/nimc/nin-enrolment-form
Authoritative source NIMC "National Identification Number (NIN) Enrolment Form", v2.0
Machine access
- Schema document
registry/ng/nimc/nin-enrolment-form/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ng/nimc/nin-enrolment-form/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
104 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
-
titleenum requiredThe applicant's title.
enum: Mr | Mrs | Master | Miss | Msclassification: pii -
lastnamestring requiredThe applicant's surname.
length: 0–100classification: pii -
firstNamestring requiredThe applicant's first name.
length: 0–100classification: pii -
middleNamestring optionalMiddle Name
length: 0–100classification: pii -
otherNamesstring optionalOther Names
length: 0–100classification: pii -
maidenNamestring optionalMaiden Name
length: 0–100classification: pii -
previousSurnamestring optionalThe applicant's previous surname, if their name has changed. The form prints this section under the heading "HAVE YOU CHANGED YOUR NAME BEFORE?" with no separate yes/no checkbox — left blank when not applicable.
length: 0–100classification: pii -
previousFirstNamestring optionalPrevious First Name
length: 0–100classification: pii -
previousMiddleNamestring optionalPrevious Middle Name
length: 0–100classification: pii -
isHomelessenum optionalGates whether the residence-address fields below apply ("IF NO, WHERE DO YOU LIVE?").
enum: yes | no -
townCityOfResidencestring optionalRequired when the applicant is not homeless.
length: 0–100classification: pii -
countryOfResidencestring optionalRequired when the applicant is not homeless.
length: 0–100classification: pii -
stateOfResidencestring optionalRequired when the applicant is not homeless.
length: 0–100classification: pii -
lgaOfResidencestring optionalRequired when the applicant is not homeless.
length: 0–100classification: pii -
addressOfResidencestring optionalRequired when the applicant is not homeless.
length: 0–200classification: pii -
residencePostalCodestring optionalResidence Postal Code
length: 0–20classification: pii -
dateOfBirthdate requiredDate of Birth
classification: sensitive-pii -
dateOfBirthVerificationenum requiredHow the date of birth was established.
enum: verified | approximate | declared -
placeOfBirthCountrystring requiredPlace of Birth — Country
length: 0–100classification: sensitive-pii -
placeOfBirthStatestring requiredPlace of Birth — State
length: 0–100classification: sensitive-pii -
placeOfBirthLgastring requiredPlace of Birth — Local Government Area
length: 0–100classification: sensitive-pii -
placeOfOriginCountrystring requiredPlace of Origin — Country
length: 0–100classification: pii -
placeOfOriginStatestring requiredPlace of Origin — State
length: 0–100classification: pii -
placeOfOriginLgastring requiredPlace of Origin — Local Government Area
length: 0–100classification: pii -
placeOfOriginTownstring requiredPlace of Origin — Town
length: 0–100classification: pii -
fathersPlaceOfOriginCountrystring requiredFather's Place of Origin — Country
length: 0–100classification: pii -
fathersPlaceOfOriginStatestring requiredFather's Place of Origin — State
length: 0–100classification: pii -
fathersPlaceOfOriginLgastring requiredFather's Place of Origin — Local Government Area
length: 0–100classification: pii -
fathersPlaceOfOriginTownstring requiredFather's Place of Origin — Town
length: 0–100classification: pii -
mothersPlaceOfOriginCountrystring requiredMother's Place of Origin — Country
length: 0–100classification: pii -
mothersPlaceOfOriginStatestring requiredMother's Place of Origin — State
length: 0–100classification: pii -
mothersPlaceOfOriginLgastring requiredMother's Place of Origin — Local Government Area
length: 0–100classification: pii -
mothersPlaceOfOriginTownstring requiredMother's Place of Origin — Town
length: 0–100classification: pii -
genderenum requiredGender
enum: M | Fclassification: sensitive-pii -
heightinteger requiredHeight (centimetres)
range: 0–300classification: sensitive-pii -
hairColourstring optionalHair Colour
length: 0–30classification: sensitive-pii -
tribalMarksboolean optionalWhether the applicant has tribal marks. An independent checkbox, not mutually exclusive with the other physical-feature checkboxes in this section.
classification: sensitive-pii -
hunchBackboolean optionalHunch Back
classification: sensitive-pii -
visibleScarsboolean optionalVisible Scars
classification: sensitive-pii -
otherPhysicalMarksboolean optionalOther Physical Marks
classification: sensitive-pii -
residenceStatusenum requiredResidence Status
enum: birth | naturalization | registration -
nationalitystring requiredNationality
length: 0–100classification: pii -
physicalChallengeBlindboolean optionalAn independent checkbox; an applicant may have more than one physical challenge, so this is not mutually exclusive with the others in this section.
classification: health -
physicalChallengeDeafboolean optionalDeaf
classification: health -
physicalChallengeDumbboolean optionalDumb
classification: health -
physicalChallengeParalyzedboolean optionalParalyzed
classification: health -
physicalChallengeOthersboolean optionalOther Physical Challenge
classification: health -
cardTypestring requiredCard Type
length: 0–50 -
issuingBankstring requiredIssuing Bank
length: 0–100 -
existingNinstring optionalOnly applicable when this form is used for a personal-data update on an applicant who already holds a NIN, not a first-time enrolment.
length: 0–20classification: sensitive-pii -
anyIdentityReferenceNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
anyIdentityReferenceExpiryDatedate optionalAny Identity Reference — Document Expiry Date
-
immigrationDocumentNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
immigrationDocumentExpiryDatedate optionalImmigration Document — Document Expiry Date
-
nationalInsuranceNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
nationalInsuranceExpiryDatedate optionalNational Insurance — Document Expiry Date
-
nigeriaDriverLicenceNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
nigeriaDriverLicenceExpiryDatedate optionalNigeria Driver Licence — Document Expiry Date
-
nigerianPassportNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
nigerianPassportExpiryDatedate optionalNigerian Passport — Document Expiry Date
-
otherDesignatedDocumentNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
otherDesignatedDocumentExpiryDatedate optionalOther Designated Document — Document Expiry Date
-
otherNationalIdentityCardNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
otherNationalIdentityCardExpiryDatedate optionalOther National Identity Card — Document Expiry Date
-
otherPassportNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
otherPassportExpiryDatedate optionalOther Passport — Document Expiry Date
-
otherTravelDocumentNumberstring optionalOne of 9 supporting-document types the applicant may optionally present as identity evidence; none is individually mandatory on the form.
length: 0–30classification: sensitive-pii -
otherTravelDocumentExpiryDatedate optionalOther Travel Document — Document Expiry Date
-
maritalStatusenum requiredMarital Status
enum: divorced | married | separated | single | widowedclassification: pii -
mainNativeLanguageSpokenstring optionalMain Native Language Spoken
length: 0–50 -
languageReadAndWritestring requiredLanguage You Read and Write
length: 0–50 -
otherLanguageSpokenstring optionalOther Language Spoken
length: 0–50 -
educationLevelenum optionalEducation Level
enum: certification | none | post-graduate | primary | secondary | tertiary -
religionenum optionalReligion
enum: islam | christianity | traditional | other -
occupationProfessionstring optionalOccupation/Profession
length: 0–100classification: pii -
telephonestring optionalTelephone
length: 0–20classification: pii -
employmentStatusenum optionalEmployment Status
enum: employed | unemployed | pensioner | self-employed -
homeDeliveryOfCardenum requiredWhether the applicant wants the NIN card delivered to their home (courier fees apply) rather than collected at the point of registration. The form's own note: "the option 'NO' indicates COLLECTION AT POINT OF REGISTRATION".
enum: yes | no -
emailAddressstring optionalEmail Address
patternlength: 0–100classification: pii -
fathersSurnamestring requiredFather's Surname
length: 0–100classification: pii -
fathersFirstNamestring requiredFather's First Name
length: 0–100classification: pii -
fathersMiddleNamestring optionalFather's Middle Name
length: 0–100classification: pii -
fathersNinstring optionalFather's NIN (if available)
length: 0–20classification: sensitive-pii -
mothersSurnamestring requiredMother's Surname
length: 0–100classification: pii -
mothersFirstNamestring requiredMother's First Name
length: 0–100classification: pii -
mothersMiddleNamestring optionalMother's Middle Name
length: 0–100classification: pii -
mothersMaidenNamestring optionalMother's Maiden Name
length: 0–100classification: pii -
mothersNinstring optionalMother's NIN (if available)
length: 0–20classification: sensitive-pii -
guardianSurnamestring requiredThe form marks this section's Surname/First Name/NIN with a printed asterisk unconditionally (no separate toggle distinguishes minor/dependent enrolment from adult self-enrolment); modelled as required per the form's own "ALL FIELDS MARKED MUST BE FILLED" instruction rather than inferring an unstated conditional trigger (see VERIFICATION.md).
length: 0–100classification: pii -
guardianFirstNamestring requiredGuardian's First Name
length: 0–100classification: pii -
guardianMiddleNamestring optionalGuardian's Middle Name
length: 0–100classification: pii -
guardianNinstring requiredGuardian's National Identification Number
length: 0–20classification: sensitive-pii -
nextOfKinSurnamestring requiredSurname of Next of Kin
length: 0–100classification: pii -
nextOfKinFirstNamestring requiredFirst Name of Next of Kin
length: 0–100classification: pii -
nextOfKinMiddleNamestring optionalMiddle Name of Next of Kin
length: 0–100classification: pii -
nextOfKinRelationshipstring requiredRelationship With Next of Kin
length: 0–50classification: pii -
nextOfKinCountrystring requiredNext of Kin — Country of Residence
length: 0–100classification: pii -
nextOfKinStatestring requiredNext of Kin — State of Residence
length: 0–100classification: pii -
nextOfKinLgastring requiredNext of Kin — Local Government Area of Residence
length: 0–100classification: pii -
nextOfKinTownCitystring requiredNext of Kin — Town/City of Residence
length: 0–100classification: pii -
nextOfKinStreetAddressstring requiredNext of Kin — Street Address
length: 0–200classification: pii -
nextOfKinPostalCodestring optionalNext of Kin — Postal Code
length: 0–20classification: pii -
nextOfKinNinstring optionalNext of Kin's NIN
length: 0–20classification: sensitive-pii -
signatureDatedate requiredDate (of Applicant's Signature)
Verification record
This file is the source-review record for this document version. It documents the provenance of the published fields/documents and states the current verification claim honestly.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-12
This is GovSchema Standard Research cycle GOV-2569 (child of GOV-2567). It closes Nigeria's National ID & Civic Documents vertical, sourced from the National Identity Management Commission's (NIMC) "National Identification Number (NIN) Enrolment Form", v2.0 — the pre-enrolment form an applicant completes before attending an NIMC enrolment centre in person for biometric capture.
Sources examined
Source 1 — the PDF itself (chosen as source.url)
- URL: http://bern.foreignaffairs.gov.ng/wp-content/uploads/sites/32/2022/03/enrolment_form_v2.pdf — the Nigerian Ministry of Foreign Affairs' own Bern (Switzerland) embassy subsite. Fetched directly via
curl: HTTP 200,Content-Type: application/pdf, 1,677,660 bytes,sha256: 99200bb832d4463e6bcdf8be78dd08ed14241d614a407830dc86093855af9638. Re-checked live at verification time — still HTTP 200, unauthenticated, no login/paywall/CAPTCHA gate.
NIMC's own domain no longer serves this document — disclosed, not a dead end
- The scouting pass for this cycle (a subagent search under GOV-2567) found that NIMC's own historical static path (
nimc.gov.ng/docs/reports/enrolment_form_v2.pdfand sibling paths) now returns NIMC's redesigned React SPA shell / 404, not the PDF. A Wayback Machine CDX check (reported by the scouting pass, not independently re-run in this write-up) shows the direct PDF resolved from 2016 through late 2023, then began returning the SPA shell from 2024 onward — consistent with a 2024 site redesign, not a withdrawal of the underlying form. The Bern-embassy mirror is an official.gov.ng-domain copy of the identical NIMC document (same "v2.0" watermark printed on the form itself), used here assource.urlsince it is the reachable official copy, following this registry's established practice of citing the best reachable official-domain mirror when a primary agency domain's static path has moved (cf.ng/nis's embassy-mirror sourcing last cycle, GOV-2561). - Two other Nigerian-embassy paths for the same form (Nigeria's Washington DC and London missions) were checked opportunistically during this schema's authoring and returned the same v2.0 form byte-for-byte (
sha256matched the Bern copy), corroborating rather than contradicting the primary source, but are not separately cited as a secondsource.urlper this registry's single-source convention.
Source 2 — direct pdfjs-dist text-layer extraction (own re-derivation)
- This specimen carries zero AcroForm widgets — confirmed via
page.getAnnotations()returning an empty array on both of the document's 2 pages — a flat, print-and-hand-fill form, the same tier as this registry'srw/dgie,ng/nis, andng/firsspecimens (noWidget/FTobjects to derive field names, charLimits, or radio structure from, unlike the AcroForm-backedgh/niaspecimen). - Full-page
getTextContent()was extracted with each item'stransformmatrix (x/y in PDF space) preserved, then grouped by rounded y-coordinate into printed lines and cross-checked against every literal"*"glyph's own (x, y) position to determine, field by field, which of the form's ~110 printed blanks/checkboxes the form itself marks mandatory. The form's own footer instruction, printed on both pages, is unambiguous: **"ALL FIELDS MARKED * MUST BE FILLED."** - 18 lettered sections (A–R) were identified from the section-heading glyphs (each printed as an isolated single capital letter at a fixed right-margin x-coordinate, e.g.
x≈481–503) and used directly as this schema'ssourceRefsection labels.
Field inventory and scoping/disclosure decisions
- 104
fields[]+ 1documents[]entry, covering all 18 sections. Enum-shaped printed checkbox groups with named candidate values (e.g. Title, Marital Status, Education Level, Religion, Employment Status, Residence Status, Date of Birth Verification, Home Delivery Yes/No) are each modelled as a singleenumfield, per this registry's established Nigeria-vertical convention (ng/nis'ssex/maritalStatus/numberOfEntriesRequiredfields), rather than N-boolean-plus-exclusivityGroups(the conventiongh/niaused for a different jurisdiction's AcroForm checkbox groups) — the source form's own printed candidate lists make the enum boundary directly readable without needing AcroForm widget evidence. - Non-exclusive checkbox groups — Section H's physical-marks row (Tribal Marks / Hunch Back / Visible Scars / Others) and Section I's physical-challenges row (Blind / Deaf / Dumb / Paralyzed / Others) — are each modelled as N independent optional booleans, not an
enumorexclusivityGroupsgroup, since an applicant can plausibly have more than one mark or challenge simultaneously; noexclusivityGroupsentry is declared for either group (disclosed here rather than silently omitted). isHomelessgates the five residence-address fields (townCityOfResidence,countryOfResidence,stateOfResidence,lgaOfResidence,addressOfResidence) viarequiredWhen: {field: "isHomeless", equals: "no"}— a disclosed inference from the form's own printed "IF NO, WHERE DO YOU LIVE?" instruction, since the form prints a*on each address field unconditionally (no separate "if no" marking distinguishes the two Yes/No branches in the raw asterisk layer).residencePostalCoderemains unconditionally optional (no asterisk on either branch).- Section B (previous name) carries no Yes/No checkbox of its own — only a section heading ("HAVE YOU CHANGED YOUR NAME BEFORE?") followed directly by three blanks, none asterisked. Modelled as three independently optional fields with no gating condition, since no boolean trigger exists on the form to condition on.
- Section K (existing NIN, "FOR APPLICANT'S PERSONAL DATA UPDATE ONLY") carries no asterisk and is modelled as an unconditionally optional field, disclosed in its own description as applicable only to the update use case rather than first-time enrolment; the form provides no separate boolean distinguishing "first enrolment" from "update" requests to gate it on.
- Section O (Guardian Details) prints
*on Surname, First Name, and National Identification Number (not Middle Name) with no separate toggle distinguishing a minor/dependent applicant (who would plausibly need a guardian) from an adult self-enrolling applicant. This schema takes the form's asterisks at face value —guardianSurname,guardianFirstName, andguardianNinare modelledrequired: trueunconditionally — following the form's own blanket "ALL FIELDS MARKED MUST BE FILLED" instruction rather than inferring an unstated conditional trigger the source does not print. This is flagged explicitly as a disclosed judgment call, not a silent pass-through: a future review with access to NIMC's own internal completion guidance could reasonably revise this to a conditional (e.g. gated on an applicant-is-a-minor signal this form does not itself carry). - Section L (Supporting Documents) — 9 named document types (Any Identity Reference, Immigration Document, National Insurance, Nigeria Driver Licence, Nigerian Passport, Other Designated Document, Other National Identity Card, Other Passport, Other Travel Document), each with a Document Number and Document Expiry Date blank, none asterisked. Modelled as 18 independently optional
fields[]entries (notdocuments[]) since each captures structured data (a number and a date) rather than a simple provided/not-provided attachment flag — consistent with how this registry models identity-document-number fields elsewhere (cf.gh/nia's institutional-ID fields) rather than asdocuments[]entries, which are reserved here for the form's actual attestation. - No
maxLengthvalues are derived from AcroFormcharLimit(unlikegh/nia), because this specimen has no AcroForm at all. Free-textmaxLengthvalues are round-number estimates in the same spirit as this registry's other flat-form schemas (ng/nis's 100–200-character estimates), not a structural fact — disclosed here rather than presented as source-derived. - NIN-number fields (
existingNin,fathersNin,mothersNin,guardianNin,nextOfKinNin) are modelled as plain strings with a generousmaxLength: 20and no digit-onlypattern. Nigeria's NIN is widely documented elsewhere as an 11-digit number, but this specimen itself prints no character-count guide on these blanks, so no pattern constraint is asserted from this source — a deliberate choice not to import an external fact the form itself does not state. applicantDeclaration(documents[], categoryattestation) quotes the form's own certification paragraph verbatim, including its citation of "the NIMC Act 23 of 2007," confirmed still in force via a fresh web search (NIMC continues to describe itself, and to be described in current reporting, as operating under the National Identity Management Commission Act No. 23 of 2007).- No
documents[]entry models the raw signature/thumbprint capture — the source prints only a dotted signature line (this is a flat, non-AcroForm PDF, so there is no capture widget to exclude in the first place);signatureDateis modelled as a requireddatefield instead, consistent with this registry's general practice of not modelling raw biometric/signature capture as a schema field.
Conformance run
Two valid fixtures were built against schema.json with a from-scratch, ajv-free checker script (evaluates required/requiredWhen with visibility gating, per-type validation keywords, and documents[] required/requiredWhen directly against the meta-schema's own rules) — not any author-provided tooling, since no shared tools/conformance-runner.mjs exists yet in this repo:
single-adult-first-time-enrolment-not-homeless.json— an unmarried female Nigerian applicant, not homeless (exercising theisHomeless-gatedrequiredWhenbranch that requires residence-address fields), first-time enrolment (noexistingNin). 0 errors.married-personal-data-update-with-supporting-document.json— a married male applicant with a prior name change (Section B), a personal-data-update request (existingNinpopulated), a Nigerian Passport supporting document (Section L), a tribal mark and a paralysis physical challenge (exercising the independent, non-exclusive checkbox fields), and homeless (exercising the oppositeisHomelessbranch, where residence-address fields are correctly not required). 0 errors.
Five mutation-control fixtures, each a single deliberate violation of the first valid fixture, each correctly raised exactly 1 error:
mutation-control-missing-required-field.json— removeslastname(required) → 1 error.mutation-control-invalid-date-format.json— setsdateOfBirthto"14-03-1998"(notYYYY-MM-DD) → 1 error.mutation-control-invalid-enum-value.json— setsgenderto"X"(not in the["M","F"]enum) → 1 error.mutation-control-missing-conditional-field.json— removestownCityOfResidencewhileisHomelessremains"no"→ 1 error (requiredWhenviolation).mutation-control-missing-required-document.json— omits theapplicantDeclarationdocument → 1 error.
node tools/validate.mjs and node tools/validate-ajv.mjs (JSON Schema draft 2020-12 meta-schema conformance) both pass clean for registry/ng/nimc/nin-enrolment-form/1.0.0/schema.json.
Backlog note
Nigeria now stands at 4 of 6 verticals (Business Formation, Taxes, Visa, National ID). DMV was confirmed a dead end in a prior cycle (GOV-2561: FRSC state licensing is SSO-portal-gated with no downloadable specimen). Passport remains the sole open backlog vertical — this cycle's scouting also identified a strong candidate, NIS "Form C1" (Application for Nigeria Standard Passport), reachable unauthenticated via the Nigeria High Commission London's own mirror (nigeriahc.org.uk/wp-content/uploads/2023/05/LostReqForm.pdf, ~35–40 fields plus a guarantor's Form of Undertaking), left for a future cycle. Rwanda's Business Formation vertical (RDB "RF-001 Domestic Company Application for Incorporation", businessprocedures.rdb.rw/media/2.5_rf-001%20domestic%20company.pdf, 18 numbered sections) was also scouted this cycle as a strong candidate and left open for a future cycle.
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 Identity Management Commission or any government. The authoritative source is always the live government form and its official instructions.