Registry entry
Nigeria Application Form for Visa/Entry Permit (Form Imm. 22)
Apply for a Nigerian visa/entry permit through the Nigeria Immigration Service (NIS)'s standard "Form Imm. 22 — Application Form for Visa/Entry Permit", scoped to embassy/consular use abroad, opening Nigeria's Visa vertical (3 of 6, alongside Business Formation and Taxes; continuing the Nigeria research thread from GOV-2551/GOV-2553). This specimen is confirmed live at three independently operated mirrors as of 2026-07-12, two of them directly re-fetched this cycle: the Embassy of Nigeria in Vietnam's own government domain (nigeriaembassy.org.vn, HTTP 200, application/pdf, 373,872 bytes, matching the issue's own citation exactly) — a simplified 2-page, 25-numbered-question edition, used as this schema's primary citable `source` since it is the only own-government-domain copy — and a Nigerian-Embassy-Washington-DC-letterheaded copy hosted on a third-party visa-services domain (samspassport.com, HTTP 200, application/pdf, 43,156 bytes), a fuller 3-page, 31-numbered-question edition that itself prints the form's official designation "Form Imm. 22" and is used here as the base for field coverage per this cycle's scope. A third cited mirror (nigerianvisaservices.com) was also directly re-fetched this cycle and returned a live `application/pdf` response (88,509 bytes) on every attempt; it is not byte-identical to the DC/Washington copy (a separately re-typeset rendering, sha256 differs), but independent text extraction confirms it carries the same "Form Imm. 22" content and item numbering, corroborating the DC/Washington edition as NIS's stable standard distributed across missions rather than a single embassy's one-off variant. Both directly-verified editions are flat, print-and-hand-fill specimens (0 AcroForm widgets), completed by hand and mailed to a Nigerian diplomatic mission together with supporting documents and a money-order processing fee. Independent extraction of both editions' full printed text found the two are NOT a strict superset/subset pair as initially characterized: the fuller DC/Imm.22 edition indeed adds substantial content the simplified Vietnam edition omits (number-of-entries, funds available, employment/spouse-in-Nigeria particulars, prior Nigerian-visa history, immigration/criminal/health-history screening, countries lived-in/visited in the last 5 years and 12 months, and the fee/attachments schedule), but the Vietnam edition also independently asks 6 items the DC edition omits entirely (e-mail address, complexion, academic qualifications, source of sponsorship, and a mission-localized "reference in [country]" name/address/telephone). This schema models the union: the DC/Imm.22 edition's 31 numbered items supply the base structure (86 of this schema's 93 `fields[]` entries, including three bounded repeating tables — a 3-slot prior-Nigeria-visit table and two 4-slot countries-lived-in/visited tables, per this registry's established bounded-repeating-group convention), plus the Vietnam edition's 6 edition-unique items (modelled as independently optional fields, since a specimen's omission of a question this registry has directly verified another edition asks is not evidence the question is inapplicable). 9 `documents[]` entries capture the photograph requirement (printed on both editions), the DC edition's page-3 attachments-and-fee schedule (original passport, letter of invitation, prepaid return mailer, an online visa-fee payment, a $20 money-order processing fee, an optional $65 expedited-service fee), its under-16 accompanying-child document bundle, and its wet-ink certification statement. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Nigeria, the Nigeria Immigration Service, or any Nigerian diplomatic mission.
Registry entry
ng/nis/application-for-visa-entry-permit
Machine access
- Schema document
registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ng/nis/application-for-visa-entry-permit/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
93 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
-
surnamestring requiredSurname (MR/MRS/MISS)
length: 0–150classification: pii -
otherNamesstring requiredGiven/first name(s), as distinguished from the surname on the same numbered row.
length: 0–150classification: pii -
formerNamestring optionalVietnam-edition-only field, not printed on the DC/Imm.22 edition. Not required: an applicant with no former name has nothing to declare and neither edition provides a separate "none" checkbox.
length: 0–200classification: pii -
sexenum requiredNeither edition prints more than the binary Male/Female option anywhere on the specimen.
enum: male | femaleclassification: pii -
maritalStatusenum requiredThe DC edition prints only the label "Marital Status" with a blank; the enum boundary is taken from the Vietnam edition's more explicit instruction, which spells out the same question's options.
enum: single | married | widowed | divorcedclassification: pii -
presentNationalitystring requiredPresent Nationality
length: 0–100classification: pii -
previousNationalitystring optionalNot required: an applicant with no former nationality has nothing to declare here.
length: 0–100classification: pii -
dateOfBirthdate requiredDate of Birth
classification: sensitive-pii -
placeOfBirthstring requiredPlace of Birth
length: 0–150classification: pii -
residentialAddressstring requiredPrinted as a two-line blank on the source; modelled as a single free-text field.
length: 0–300classification: pii -
residentialTelephonestring requiredResidential telephone number
length: 0–30classification: pii -
officeAddressstring optionalNot required: an applicant without an office (e.g. unemployed, student, retired) has nothing to declare here.
length: 0–300 -
officeTelephonestring optionalOffice telephone number
length: 0–30 -
professionstring requiredProfession
length: 0–150 -
armedForcesServicestring optionalNot required: an applicant with no military service has nothing to declare here.
length: 0–200 -
armedForcesFromstring optionalNot machine-gated on armedForcesService since that sibling field is itself optional and genuinely absent for a non-applicable applicant.
length: 0–50 -
armedForcesTostring optionalArmed Forces service: to
length: 0–50 -
hairColourstring requiredColour of Hair
length: 0–50classification: pii -
eyeColourstring requiredColour of eyes
length: 0–50classification: pii -
heightstring requiredHeight
length: 0–30classification: pii -
complexionstring optionalVietnam-edition-only field, not printed on the DC/Imm.22 edition's equivalent item 9 row.
length: 0–50classification: pii -
visibleIdentificationMarksstring optionalNot required: an applicant with none has nothing to declare and neither edition provides a separate "none" checkbox.
length: 0–200 -
passportNumberstring requiredPassport No.
length: 0–30classification: sensitive-pii -
passportIssueDatedate requiredDate of issue
classification: sensitive-pii -
passportExpiryDatedate requiredDate of expiry
classification: sensitive-pii -
passportPlaceOfIssuestring requiredPlace of issue
length: 0–100classification: sensitive-pii -
passportIssuingGovernmentstring requiredIssuing Government
length: 0–100 -
purposeOfJourneystring requiredThe source asks for "full details".
length: 0–500 -
numberOfEntriesRequiredenum requiredNumber of entries required
enum: single | multiple -
intendedDurationOfStaystring requiredIntended duration of stay
length: 0–50 -
proposedDateOfTraveldate requiredProposed date of travel
-
modeOfTravelToNigeriastring requiredMode of travel to Nigeria
length: 0–100 -
fundsAvailableForTripstring requiredModelled as free text since the source prints no currency instruction beyond "how much money".
length: 0–100classification: financial -
employmentEmployerNamestring optionalApplicable only if the reason for journey (item 12) is employment; not machine-gated since purposeOfJourney is free text with no reliable machine match against "employment".
length: 0–200 -
employmentPostToBeOccupiedstring optionalEmployment reason: Post to be occupied
length: 0–150 -
employmentJobDescriptionstring optionalEmployment reason: Description of job
length: 0–400 -
spouseParentsEmploymentParticularsstring optionalApplicable only if joining a spouse, parents, or relatives; not machine-gated (no dedicated eligibility field for this pathway on either edition).
length: 0–400 -
spouseParentsDurationInNigeriastring optionalHow long has/have your spouse/parents been in Nigeria
length: 0–100 -
intendedAddressInNigeriastring requiredThe source explicitly excludes a P.O. Box.
length: 0–300classification: pii -
previousNigerianVisaAppliedenum requiredHave you ever applied for a Nigerian visa before?
enum: yes | no -
previousVisaApplicationLocationstring optionalSafe to gate on previousNigerianVisaApplied since that field is itself always required/present.
length: 0–150 -
previousVisaOutcomeenum optionalWas the visa granted or rejected?
enum: granted | rejected -
previousVisaRejectionReasonstring optionalGated on previousVisaOutcome equalling 'rejected'; the equals comparison naturally evaluates false (not required) when previousVisaOutcome is itself absent, so this is safe even though the gating field is optional.
length: 0–300 -
previouslyVisitedNigeriaenum requiredHave you ever visited Nigeria?
enum: yes | no -
purposeOfPreviousVisitenum optionalPurpose of previous visit
enum: tourism_visit | business | temporary_employment | residency | transit -
previousVisit1Fromstring optionalDC/Imm.22 item 27 prints a bounded 3-row table (rows i-iii), not an open-ended list; flattened here to previousVisit1..3, matching this registry's bounded-repeating-group convention.
length: 0–50 -
previousVisit1Tostring optionalPrevious visit 1: To
length: 0–50 -
previousVisit1Addressstring optionalPrevious visit 1: Address stayed
length: 0–200classification: pii -
previousVisit2Fromstring optionalPrevious visit 2: From
length: 0–50 -
previousVisit2Tostring optionalPrevious visit 2: To
length: 0–50 -
previousVisit2Addressstring optionalPrevious visit 2: Address stayed
length: 0–200classification: pii -
previousVisit3Fromstring optionalPrevious visit 3: From
length: 0–50 -
previousVisit3Tostring optionalPrevious visit 3: To
length: 0–50 -
previousVisit3Addressstring optionalPrevious visit 3: Address stayed
length: 0–200classification: pii -
yearsLivedInApplyingCountrystring requiredHow long have you lived in the country where you are applying?
length: 0–100 -
everInfectedContagiousDiseaseOrMentalIllnessenum requiredEver infected by a contagious disease or suffered serious mental illness?
enum: yes | noclassification: health -
everArrestedOrConvictedenum requiredEver arrested or convicted for any offence or crime?
enum: yes | no -
everInvolvedNarcoticActivitiesenum requiredEver involved in narcotic activities?
enum: yes | no -
everDeportedenum requiredEver deported?
enum: yes | no -
deportedFromCountrystring optionalDeported from which country?
length: 0–100 -
everSoughtVisaByMisrepresentationOrFraudenum requiredEver sought to obtain a visa by misrepresentation or fraud?
enum: yes | no -
everTestedPositiveHivAidsenum requiredFaithfully modelled from the source's own printed question per this standard's source-of-truth-fidelity principle, not a GovSchema-invented field.
enum: yes | noclassification: health -
hivStatusDetailsstring optionalHIV/AIDS status details
length: 0–200classification: health -
countryLived1Countrystring optionalDC/Imm.22 item 30 prints a bounded 4-row table, not an open-ended list; flattened here to countryLived1..4, matching this registry's bounded-repeating-group convention. Not required: an applicant who has lived in fewer than 4 countries in the last 5 years leaves the remaining rows blank.
length: 0–100 -
countryLived1Citystring optionalCountry lived in (last 5 years), row 1: City
length: 0–100 -
countryLived1Datestring optionalCountry lived in (last 5 years), row 1: Date
length: 0–50 -
countryLived2Countrystring optionalCountry lived in (last 5 years), row 2: Country
length: 0–100 -
countryLived2Citystring optionalCountry lived in (last 5 years), row 2: City
length: 0–100 -
countryLived2Datestring optionalCountry lived in (last 5 years), row 2: Date
length: 0–50 -
countryLived3Countrystring optionalCountry lived in (last 5 years), row 3: Country
length: 0–100 -
countryLived3Citystring optionalCountry lived in (last 5 years), row 3: City
length: 0–100 -
countryLived3Datestring optionalCountry lived in (last 5 years), row 3: Date
length: 0–50 -
countryLived4Countrystring optionalCountry lived in (last 5 years), row 4: Country
length: 0–100 -
countryLived4Citystring optionalCountry lived in (last 5 years), row 4: City
length: 0–100 -
countryLived4Datestring optionalCountry lived in (last 5 years), row 4: Date
length: 0–50 -
countryVisited1Countrystring optionalDC/Imm.22 item 31 prints a second bounded 4-row table, flattened here to countryVisited1..4, matching this registry's bounded-repeating-group convention.
length: 0–100 -
countryVisited1Citystring optionalCountry visited (last 12 months), row 1: City
length: 0–100 -
countryVisited1Datestring optionalCountry visited (last 12 months), row 1: Date
length: 0–50 -
countryVisited2Countrystring optionalCountry visited (last 12 months), row 2: Country
length: 0–100 -
countryVisited2Citystring optionalCountry visited (last 12 months), row 2: City
length: 0–100 -
countryVisited2Datestring optionalCountry visited (last 12 months), row 2: Date
length: 0–50 -
countryVisited3Countrystring optionalCountry visited (last 12 months), row 3: Country
length: 0–100 -
countryVisited3Citystring optionalCountry visited (last 12 months), row 3: City
length: 0–100 -
countryVisited3Datestring optionalCountry visited (last 12 months), row 3: Date
length: 0–50 -
countryVisited4Countrystring optionalCountry visited (last 12 months), row 4: Country
length: 0–100 -
countryVisited4Citystring optionalCountry visited (last 12 months), row 4: City
length: 0–100 -
countryVisited4Datestring optionalCountry visited (last 12 months), row 4: Date
length: 0–50 -
emailAddressstring optionalVietnam-edition-only field, not printed on the DC/Imm.22 edition.
patternlength: 0–150classification: pii -
academicQualificationsstring optionalVietnam-edition-only field, not printed on the DC/Imm.22 edition.
length: 0–200 -
sourceOfSponsorshipstring optionalVietnam-edition-only field, not printed on the DC/Imm.22 edition.
length: 0–200classification: financial -
missionCountryReferenceNameAddressstring optionalVietnam-edition-only field, mission-localized: the Vietnam specimen prints "REFERENCE IN VIETNAM", naming the mission's own host country; other missions' editions of this same item would substitute their own country name. Not printed on the DC/Imm.22 edition.
length: 0–300classification: pii -
missionCountryReferenceTelephonestring optionalReference in country of application: Telephone No.
length: 0–30 -
signatureDatedate requiredSignature date
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice. It documents the provenance of the published fields and states the current verification claim honestly.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-12
This is a GovSchema Standard Research cycle (GOV-2561), continuing Nigeria's research thread from GOV-2551 (the parent research issue) and GOV-2553 (Taxes, 2 of 6).
Why this candidate
Nigeria stood at 2 of 6 verticals (Business Formation, Taxes) entering this cycle. GOV-2551's own research pass found three independent mirrors of the Nigeria Immigration Service's "Form Imm. 22 — Application Form for Visa/Entry Permit", all flat, print-and-fill PDFs, consistent with this registry's existing rw/dgie/visa-application precedent. This cycle authors the schema and independently re-verifies the cited sources rather than trusting the issue's citations at face value.
Sources examined
Source 1 (primary source, Embassy of Nigeria in Vietnam)
- Authority: Nigeria Immigration Service (NIS); distributed by the Embassy of the Federal Republic of Nigeria in Vietnam.
- Document: "APPLICATION FOR NIGERIAN VISA-ENTRY PERMIT FORM"
- URL (directly retrieved, HTTP 200, no login): https://nigeriaembassy.org.vn/wp-content/uploads/2020/11/VISA_FORM-1.pdf
- File identity:
sha256:97276666450c71d1eb7c1eeeec1549e0d9a8a075d025a611cae34761fa224914, 373,872 bytes,Content-Type: application/pdf,Last-Modified: Sat, 21 Nov 2020 08:31:52 GMT. Byte count matches the GOV-2561 issue's own citation exactly. - Structure: 2 pages, 15 numbered items (item 15 continues onto item 16 numbering conventions used by the mission, i.e. the printed form runs items 1-15 followed by unnumbered follow-on questions carried across to page 2 that this schema treats as a continuous 25-question sequence, matching the issue's own count).
- Own-domain status: this is the only one of the three cited mirrors hosted on the issuing embassy's own government domain (
nigeriaembassy.org.vn), which is why it is used as this schema's primary citablesource.urldespite being the less complete of the two directly-verified editions. - Retrieved / reviewed: 2026-07-12
Source 2 (fuller edition, Embassy of Nigeria in Washington, DC)
- URL (directly retrieved, HTTP 200, no login): https://www.samspassport.com/wp-content/uploads/2019/10/Nigeria-Visa-handwritten-application.pdf
- File identity:
sha256:7e7f7a6c804e2c1eaa33f4772873803fae9be8ec1984a9ffcfbbd25a7f8c3308, 43,156 bytes,Content-Type: application/pdf,Last-Modified: Tue, 29 Oct 2019 13:45:21 GMT. - Structure: 3 pages, 31 numbered items, matching the issue's own description exactly. This edition's page 1 header prints "EMBASSY OF THE FEDERAL REPUBLIC OF NIGERIA / 3519 International Court, NW Washington, DC 20008" and, distinctly, "Form Imm. 22" — confirming NIS's official form-number designation, which the Vietnam edition's specimen does not print anywhere on its own pages.
- Hosting: a third-party visa-services domain (
samspassport.com), not an embassy's own domain — used here as the base for field coverage (it is the fuller of the two directly-verified editions and is the one that identifies the official form number) while Source 1 remains the primary citablesource.urlfor its own-domain provenance. - Retrieved / reviewed: 2026-07-12
Source 3 (corroborating mirror, re-verified on a later pass this same cycle)
- URL: https://nigerianvisaservices.com/wp-content/uploads/2017/09/Nigerian-App-New.pdf
- First-pass finding: an early direct-fetch attempt this cycle (with and without a browser-like
User-Agentheader) returned an HTTP 200 Cloudflare human-verification challenge page (text/html, "Human verification", Turnstile widget), not the cited PDF, and was recorded above and inschema.jsonas an unreachable, unverified citation. - Later-pass correction: a subsequent independent re-fetch this same cycle (again both with and without a browser-like
User-Agent) returned a liveapplication/pdfresponse on every attempt —sha256:8b60aceaaa963eb8ad9690e74613b5cf9118baf6a94af60eb4989b127a2ba544, 88,509 bytes,Last-Modified: Sat, 30 Sep 2017 17:50:03 GMT. The earlier challenge page was therefore a transient failure (rate-limiting or a momentary bot-mitigation trigger), not a genuine, durable access gate — corrected here rather than left as a stale claim, per this registry's practice of re-verifying rather than trusting a single failed fetch. - Byte identity: not byte-identical to Source 1 or Source 2 (a distinct sha256/size from both) — a separately re-typeset/re-rendered copy, evidenced by irregular inter-character spacing in its extracted text layer (consistent with an OCR or re-layout pass, not a raw file copy). Its claimed byte-identity to Source 1, as originally cited in the GOV-2561 issue, does not hold and is corrected here.
- Content corroboration: despite not being byte-identical, a fresh
pdfjs-disttext extraction confirms this specimen carries the same "Form Imm. 22" title, the same 31 numbered items in the same order, and materially the same item text as Source 2 — corroborating Source 2's content as genuinely distributed (in at least two distinct renderings) by more than one channel, not a single mission's one-off variant. This corroboration is not relied upon for any field this schema would not otherwise carry from Source 1/Source 2; it strengthens confidence in the DC/Imm.22 edition's content, nothing more. - Retrieved / reviewed: 2026-07-12 (both passes)
Extraction method
pdfjs-dist (legacy build, v3, require'd via createRequire) was used for both page.getAnnotations() (confirming 0 Widget annotations across all pages of both directly-verified editions — flat, print-and-hand-fill forms, the same tier as this registry's rw/dgie specimen) and page.getTextContent() (position-sorted by item.transform[4]/[5] for x/y) to read each edition's full printed text directly. With 0 widgets on either edition, there are no digital field names to cross-check against; every field in this schema is derived directly from each edition's own printed item numbering and row/column position.
Field-set comparison: correcting the issue's "superset" framing
The GOV-2561 issue characterized the DC/Washington edition (31 questions) as "a superset of the Vietnam form" (adding number-of-entries, funds available, immigration/criminal/health history, countries lived-in/visited in the last 5 years, and the fee schedule). Independent side-by-side extraction of both editions' full printed text confirms the DC edition does add all of that content, but also finds this framing incomplete: the Vietnam edition independently asks 6 items the DC edition omits entirely:
| Vietnam-edition-only item | DC/Imm.22 equivalent | |---|---| | Item 4: "EMAIL ADDRESS" | none — DC edition has no e-mail field anywhere | | Item 10 continuation: "COMPLEXION" (alongside hair/eye colour, height) | DC item 9 asks hair/eye colour and height only, no complexion | | Item 21: "ACADEMIC QUALIFICATIONS" | none | | Item 24: "REFERENCE IN VIETNAM (Name and Address ... / TELEPHONE NO)" | none (a mission-localized field; other missions' own editions would presumably substitute their own host-country name here) | | Item 25: "SOURCE OF SPONSORSHIP FOR PROPOSED VISIT TO NIGERIA" | none |
This is disclosed and corrected rather than silently adopted: this schema models the union of both editions rather than treating the DC edition as fully containing the Vietnam edition. The DC edition's 31-item structure supplies 86 of this schema's 93 fields[] entries (it is the fuller, officially-form-numbered edition); the Vietnam edition's 6 edition-unique items above, plus a 7th ("FORMER NAME (if any)", which the DC edition also omits from its own item 1 row), are modelled as independently required: false fields — a specimen's omission of a question this registry has directly verified another edition asks is not evidence the question is inapplicable, only that this particular mission's edition does not print it.
Field inventory
93 fields[] entries, referenced by DC/Imm.22 item number (base structure) and Vietnam-edition item number (edition-unique additions):
| Source item | Printed content | Schema field(s) | |---|---|---| | DC 1 | Surname (MR/MRS/MISS) / Other Names | surname, otherNames | | VN 1 (cont.) | Former name (if any) | formerName | | DC 2 | Sex / Marital Status | sex, maritalStatus (enum boundary taken from VN item 5's explicit "Single, Married, Widowed, Divorced" instruction) | | DC 3a/3b | Present / Previous Nationality | presentNationality, previousNationality | | DC 4a/4b | Date of Birth / Place of Birth | dateOfBirth, placeOfBirth | | DC 5 | Residential Address / Telephone No. | residentialAddress, residentialTelephone | | DC 6 | Office Address / Telephone No. | officeAddress, officeTelephone | | DC 7 | Profession | profession | | DC 8 | Armed Forces branch served, From/to | armedForcesService, armedForcesFrom, armedForcesTo | | DC 9 | Colour of Hair / eyes / Height | hairColour, eyeColour, height | | VN 10 (cont.) | Complexion | complexion | | DC 10 | Visible Identification marks | visibleIdentificationMarks | | DC 11 | Passport No / Date of issue / Date of expiry / Place of issue / issuing Government | passportNumber, passportIssueDate, passportExpiryDate, passportPlaceOfIssue, passportIssuingGovernment | | DC 12 | Purpose of journey | purposeOfJourney | | DC 13 | Number of entries required (Single/Multiple) | numberOfEntriesRequired | | DC 14 | Intended duration of stay | intendedDurationOfStay | | DC 15a/15b | Proposed date of travel / Mode of travel | proposedDateOfTravel, modeOfTravelToNigeria | | DC 16 | Funds available for trip | fundsAvailableForTrip | | DC 17a/b/c | Employer name / Post / Job description | employmentEmployerName, employmentPostToBeOccupied, employmentJobDescription | | DC 18 | Spouse/parents employment particulars in Nigeria | spouseParentsEmploymentParticulars | | DC 19 | Duration of spouse/parents in Nigeria | spouseParentsDurationInNigeria | | DC 20 | Intended address in Nigeria | intendedAddressInNigeria | | DC 21 | Ever applied for a Nigerian visa before? | previousNigerianVisaApplied | | DC 22 | Where did you apply? | previousVisaApplicationLocation (requiredWhen previousNigerianVisaApplied=yes) | | DC 23 | Granted or rejected? | previousVisaOutcome (requiredWhen previousNigerianVisaApplied=yes) | | DC 24 | Reason if rejected | previousVisaRejectionReason (requiredWhen previousVisaOutcome=rejected) | | DC 25 | Ever visited Nigeria? | previouslyVisitedNigeria | | DC 26 | Purpose of previous visit (i-v) | purposeOfPreviousVisit (requiredWhen previouslyVisitedNigeria=yes) | | DC 27 (3-row table) | Period of visits and Addresses | previousVisit1..3From/To/Address | | DC 28 | Years lived in applying country | yearsLivedInApplyingCountry | | DC 29a-f | Health/security screening questions | everInfectedContagiousDiseaseOrMentalIllness, everArrestedOrConvicted, everInvolvedNarcoticActivities, everDeported (+ deportedFromCountry), everSoughtVisaByMisrepresentationOrFraud, everTestedPositiveHivAids (+ hivStatusDetails) | | DC 30 (4-row table) | Countries lived in for >1yr, last 5 years | countryLived1..4Country/City/Date | | DC 31 (4-row table) | Countries visited, last 12 months | countryVisited1..4Country/City/Date | | VN 4 | Email address | emailAddress | | VN 21 | Academic qualifications | academicQualifications | | VN 24 | Reference in [mission country]: Name/Address, Telephone | missionCountryReferenceNameAddress, missionCountryReferenceTelephone | | VN 25 | Source of sponsorship | sourceOfSponsorship | | both editions | Date beside the (unwidgeted) signature line | signatureDate |
documents[] (9 entries):
applicantPhoto— the "PHOTOGRAPH" box printed on page 1 of both editions, and the DC edition's page-3 photo specification ("colored passport photo showing full face on white background").originalPassport— DC page 3, "attach original passport" (identity document).letterOfInvitationFromNigeria— DC page 3.returnPrepaidMailer— DC page 3, with the explicit "DO NOT ATTACH ENVELOPE AND STAMP" handling instruction captured verbatim.childUnder16Requirements— DC page 3's "REQUIREMENTS FOR CHILDREN UNDER SIXTEEN" bundle (birth certificate, 1 photo, signed parental consent, parents' passport bio-data/valid ID copies). Not machine-gated: neither edition provides a boolean "applicant is under 16" field to gate arequiredWhenagainst.onlineVisaFeePayment— DC page 3, paid online atWWW.immigration.gov.ng(no fixed amount stated on the specimen; it varies by visa category/nationality).processingFeeMoneyOrder— DC page 3, a fixed $20.00 money-order fee mailed with the application.expeditedProcessingFeeMoneyOrder— DC page 3, an optional $65.00 money-order fee for expedited service.applicationCertification— the wet-ink certification statement beside the signature line, quoted verbatim from the DC edition; the Vietnam edition's differently-worded but substantively equivalent statement is disclosed in the field'ssourceRef, not silently merged into one "canonical" wording.
The DC edition's final "For official use only" block (page 3) is excluded as an office-only section, consistent with this registry's established convention (cf. rw/dgie).
Access notes and judgment calls
- Primary
source.urlis the less complete of the two directly-verified editions. The Vietnam embassy's own-domain copy was chosen over the fuller, third-party-hosted DC edition as this schema's citablesourcebecause it is the only one of the three cited mirrors hosted on an issuing government domain, per this registry's general preference for own-domain provenance. Field coverage, however, follows the DC edition's structure, since it is fuller and identifies the official "Form Imm. 22" designation; this split is stated explicitly in bothschema.json'sdescription/verification.notesand here, not left implicit. - The issue's "superset" characterization of the DC edition was found incomplete and corrected, not merely repeated — see "Field-set comparison" above.
maritalStatus's enum boundary is sourced from the Vietnam edition, not the DC edition, even though the DC edition supplies this schema's base structure: the DC edition's item 2 prints only the bare label "Marital Status" with no enumerated options, while the Vietnam edition's item 5 spells out "(Single, Married, Widowed, Divorced)" explicitly. Both editions ask the same underlying question; the more explicit edition's wording is used to avoid inventing an enum boundary neither edition's own text would otherwise resolve unambiguously.sexhas no third option on either edition. Modelled as a binary enum since neither specimen prints anything beyond Male/Female anywhere on either edition.previousVisaApplicationLocationandpreviousVisaOutcomeare gatedrequiredWhen: { field: "previousNigerianVisaApplied", equals: "yes" }. Safe to gate this way becausepreviousNigerianVisaAppliedis itselfrequired: true(always present in a conforming submission), matching this registry's establishedmaritalStatus-gates-spouse-fields pattern (cf.rw/dgie,ph/bi,ph/dfa,ph/lto,us/uscis).previousVisaRejectionReasonis gated onpreviousVisaOutcomeequalling"rejected", even thoughpreviousVisaOutcomeis itself optional. This is safe: anequalscomparison against an absent sibling field evaluates to false (not required), which is the correct outcome here — this is the safe direction of the shared Condition grammar, distinct from thenotEquals-against-an-absent-optional-field misfire class this registry has hit and fixed before (notequals-empty-string-absent-field-bug).deportedFromCountryandhivStatusDetailsare gated the same way, on their respectiveyes-valued sibling questions, which are themselvesrequired: true.everTestedPositiveHivAids/hivStatusDetailsfaithfully model the source's own printed question. This is not a GovSchema-invented field: it is verbatim from DC/Imm.22 item 29(f), and is modelled per this standard's source-of-truth-fidelity principle like every other field on this specimen, classifiedhealthfor consumer-side handling guidance.- DC item 27's prior-visit table is a bounded 3-row printed grid (rows i-iii, confirmed by direct text-position extraction), flattened to
previousVisit1..previousVisit3, each withFrom/To/Address, matching this registry's bounded-repeating-group convention (cf.rw/dgie's 4-slot children table,fi/migri). - DC items 30 and 31 are each a bounded 4-row printed grid (Country/City/Date columns, confirmed by direct text-position extraction), flattened to
countryLived1..4andcountryVisited1..4respectively. employmentEmployerName/employmentPostToBeOccupied/employmentJobDescription(DC 17a-c) andspouseParentsEmployment Particulars/spouseParentsDurationInNigeria(DC 18-19) are not machine-gated, even though each is conditional onpurposeOfJourneynaming employment or on the applicant joining a spouse/parent/relative respectively. Neither condition is machine-checkable:purposeOfJourneyis free text with no reliable pattern match for "employment", and neither edition provides a dedicated "reason: joining family" eligibility field. The human-facing constraint is documented in each field'sdescriptiononly, matching this registry's established practice for free-text-gated conditionals.missionCountryReferenceNameAddress/Telephoneare modelled as generically "mission country", not "Vietnam", even though the source specimen prints "REFERENCE IN VIETNAM" verbatim: this question is mission-localized (each embassy's own edition would presumably substitute its own host country's name), and the schema's fieldlabel/nameshould not hard-code one mission's locale while itssourceRefstill quotes the Vietnam edition's exact printed wording.applicationCertification'sstatementquotes the DC edition's wording verbatim, since DC supplies this schema's base structure; the Vietnam edition's differently-worded but substantively equivalent statement is disclosed in the field'ssourceRefrather than silently merged into one canonical wording or discarded.childUnder16Requirementsis not machine-gated since neither edition provides an applicant-is-a-minor eligibility field; the condition is documented in the document's ownsourceRefprose only.onlineVisaFeePaymentcarries noamount, since the DC edition's own text states only that the fee is "paid through the Nigeria immigration Website", with no fixed figure printed (unlike the $20/$65 money-order fees, which are fixed amounts stated explicitly).
Test run (Phase 4)
No live submission was attempted: Nigeria's diplomatic-mission visa channel is a printed, hand-completed, mailed application to a specific embassy or consulate together with a money-order processing fee, not a portal accepting programmatic submissions, and submitting fabricated identity data against a foreign government's consular/immigration process is not a safe or reversible action — the same reasoning already documented for this registry's other consular/immigration schemas (e.g. rw/dgie/visa- application, uy/mrree/formulario-unificado-de-visas).
Instead, two independent worked mock records were built from this document's own field inventory and checked with a purpose-written script (validate_instance.mjs, mirroring the approach used by rw/dgie and uy/mrree): compiles schema.json's fields[] into a JSON Schema document checked with ajv (+ajv-formats for date), plus a from-scratch evaluator for requiredWhen/documents[] conditional requiredness.
``` $ node validate_instance.mjs registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json \ conformance/ng/nis/application-for-visa-entry-permit/1.0.0/single-entry-tourist-first-time-applicant.json Static (required/type/pattern/enum) validation: PASS requiredWhen/documents[] conditional validation: PASS
OVERALL: PASS
$ node validate_instance.mjs registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json \ conformance/ng/nis/application-for-visa-entry-permit/1.0.0/multiple-entry-business-married-with-prior-rejected-visa.json Static (required/type/pattern/enum) validation: PASS requiredWhen/documents[] conditional validation: PASS
OVERALL: PASS ```
Mutation controls — five negative fixtures, each targeting a distinct validation rule:
``` $ # mutation-control-missing-required-field.json: 'passportNumber' (required: true) removed Static (required/type/pattern/enum) validation: FAIL - (root) must have required property 'passportNumber' requiredWhen/documents[] conditional validation: PASS OVERALL: FAIL
$ # mutation-control-invalid-date-format.json: 'dateOfBirth' set to 'not-a-date' Static (required/type/pattern/enum) validation: FAIL - /dateOfBirth must match format "date" requiredWhen/documents[] conditional validation: PASS OVERALL: FAIL
$ # mutation-control-invalid-enum-value.json: 'maritalStatus' set to 'engaged' (not in enum) Static (required/type/pattern/enum) validation: FAIL - /maritalStatus must be equal to one of the allowed values requiredWhen/documents[] conditional validation: PASS OVERALL: FAIL
$ # mutation-control-missing-conditional-visa-location.json: previousNigerianVisaApplied='yes', $ # previousVisaOutcome='granted' set, but 'previousVisaApplicationLocation' left absent Static (required/type/pattern/enum) validation: PASS requiredWhen/documents[] conditional validation: FAIL - field 'previousVisaApplicationLocation' is required (requiredWhen matched) but not provided OVERALL: FAIL
$ # mutation-control-missing-required-document.json: 'originalPassport' removed from documents[] Static (required/type/pattern/enum) validation: PASS requiredWhen/documents[] conditional validation: FAIL - document 'originalPassport' is required but not marked provided OVERALL: FAIL ```
Both meta-schema validators were run against the finished document and pass clean:
``` $ node tools/validate.mjs registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json ok registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json
1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json ok registry/ng/nis/application-for-visa-entry-permit/1.0.0/schema.json [v0.3]
1/1 document(s) validated against the meta-schema (ajv 2020-12). ```
A full-registry run of both validators (385/385 documents) also passed clean, and tools/govschema-client/registry-index.json was regenerated via npm run build-index (in tools/govschema-client/, after npm ci --include=dev since a plain npm ci under a local NODE_ENV=production skips ajv's devDependency install) to include this document's entry.
Nigeria DMV and Nigeria's other open verticals
NG DMV was screened this same cycle (GOV-2551) and confirmed a dead end: driving-licence issuance is run by the Federal Road Safety Corps (FRSC) nationally and by state motor-licensing authorities, both exclusively through SSO/login-gated online portals, with no downloadable blank specimen PDF found at any tier. Not a hard dead end if a genuinely new third-party-republished specimen surfaces.
Nigeria now stands at 3 of 6 verticals (Business Formation, Taxes, Visa). Passport (Form C1 lost/replacement bundle) and National ID (NIMC NIN Enrolment Form v2.0) were also found as strong candidates this cycle and are left as open backlog 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 Nigeria Immigration Service or any government. The authoritative source is always the live government form and its official instructions.