Registry entry
Côte d'Ivoire Visa Application
The Ministry of the Interior's (Ministère de l'Intérieur) "Formulaire de demande de Visa / Application for Visa", processed by the Direction de la Surveillance du Territoire (DST), used by a foreign national requiring a visa to enter the Republic of Côte d'Ivoire under the general visa regime. Opens Côte d'Ivoire as a new jurisdiction in this registry (1 of 6 verticals). This schema models the applicant's own identity and biographic particulars, passport particulars, the type and requested duration of the visa, the reason for travel, the applicant's address in Côte d'Ivoire, the applicant's host/relative in Côte d'Ivoire, and (when the trip is for business) up to three merchants/industrialists the applicant intends to meet. It excludes the form's own "RESERVE A L'ADMINISTRATION" (office-only) box — the office's own determination of the granted length of stay, which service/embassy establishes the visa, the filing date, the handling officer, and the office's own attached-documents checklist — and the "Authority's signature" box, none of which is applicant-supplied. Filing this application is an applicant's own action performed with the Direction de la Surveillance du Territoire; 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 Côte d'Ivoire or the Ministère de l'Intérieur.
Registry entry
ci/dst/visa-application
Machine access
- Schema document
registry/ci/dst/visa-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ci/dst/visa-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
32 fields across 6 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.
Applicant Identity
-
surnamestring requiredSurname (in capital letters)
length: 0–100classification: pii -
maidenNamestring optionalMaiden Name
length: 0–100classification: pii -
givenNamesstring requiredGiven Name(s)
length: 0–150classification: pii -
spouseNamestring optionalSee this schema's own verification.notes Finding 5 for the disclosed French/English caption asymmetry (the printed English translation reads "Husband name").
length: 0–100classification: pii -
dateOfBirthdate requiredDate of Birth
classification: sensitive-pii -
sexenum requiredSee this schema's own verification.notes Finding 4 for why this is modelled as a literal M/F enum rather than spelled-out MALE/FEMALE values.
enum: M | Fclassification: sensitive-pii -
placeOfBirthstring requiredPlace of Birth
length: 0–150classification: pii -
maritalStatusenum requiredSee this schema's own verification.notes Finding 3 for the disclosed C/M/D/V letter-only source printing and this registry's own inferred expansion (Célibataire/Marié(e)/Divorcé(e)/Veuf(ve) — Single/Married/Divorced/Widowed).
enum: C | M | D | V -
originNationalitystring requiredNationality of Origin
length: 0–100classification: pii -
presentNationalitystring requiredPresent Nationality
length: 0–100classification: pii -
presentResidencestring requiredPresent Residence
length: 0–200classification: pii
Occupation and Passport Particulars
-
occupationstring requiredOccupation
length: 0–150 -
passportNumberstring requiredPassport Number
length: 0–50classification: sensitive-pii -
passportIssueDatedate requiredPassport Issue Date
classification: sensitive-pii -
passportIssuedBystring requiredPassport Issued By
length: 0–150classification: pii -
passportValidUntildate requiredPassport Valid Until
classification: sensitive-pii -
passportTypeenum requiredType of Passport
enum: ORDINARY | DIPLOMATIC | SERVICE | OTHER_TRAVEL_DOCUMENT
Visa Sought and Reason for Travel
-
visaTypeenum requiredType of Visa Applied For
enum: ORDINARY | COURTESY | DIPLOMATIC -
requestedVisaDurationenum requiredSee this schema's own verification.notes Finding 6 — distinct from the form's own office-only granted-length-of-stay box.
enum: TRANSIT | SHORT_STAY | ROUND_TRIP_ONE_YEAR -
travelReasonenum requiredReason for Travel
enum: BUSINESS | MISSION | HOLIDAYS_LEISURE | STUDY_RESEARCH | HEALTH -
departureDatedate requiredDeparture Date
Merchants/Industrialists to Meet (Business Trips Only)
-
businessContact1Namestring optionalSee this schema's own verification.notes Finding 7.
length: 0–150classification: pii -
businessContact1Addressstring optionalBusiness Contact 1 — Address
length: 0–200classification: pii -
businessContact2Namestring optionalBusiness Contact 2 — Name
length: 0–150classification: pii -
businessContact2Addressstring optionalBusiness Contact 2 — Address
length: 0–200classification: pii -
businessContact3Namestring optionalBusiness Contact 3 — Name
length: 0–150classification: pii -
businessContact3Addressstring optionalBusiness Contact 3 — Address
length: 0–200classification: pii
Address in Côte d'Ivoire and Host/Relative
-
addressInCotedIvoirestring requiredAddress in Côte d'Ivoire
length: 0–300classification: pii -
relativeNamestring requiredRelative in Côte d'Ivoire — Name
length: 0–150classification: pii -
relativeAddressstring requiredRelative in Côte d'Ivoire — Address
length: 0–200classification: pii -
relativePhonestring requiredRelative in Côte d'Ivoire — Telephone Number
length: 0–50classification: pii
Declaration and Signature
-
applicantSignaturestring requiredSignature of Applicant
classification: pii
Verification record
Candidate selection
GOV-4539 ("GovSchema Standard Research", 2026-07-23). Côte d'Ivoire was not previously in this registry (89 jurisdictions before this cycle). Scouted fresh across all 6 verticals via an independent research agent, then independently re-verified before authoring:
- DMV — confirmed dead end. DGTTC (
dgttc.ci) and OSER handle licensing/registration in person via auto-écoles/CGI centers; the only online channel found (eservices.cgi.ci/avit/) is a login/account-gated SPA. No downloadable driving-licence or vehicle-registration form found on any official domain. - Business Formation — a real candidate (CEPICI's "formulaire unique" sole-trader form, and DGI's
Formulaire_Enregistrement_des_Entreprises_FNE.doc, the latter confirmed live and ungated), but CEPICI's own live host currently sits behind a Sucuri bot-detection JS challenge that 307/404s a plain fetch — left as open backlog pending a real-browser-capable pass. - Visa — STRONG (this schema). See below.
- Passport — STRONG, independently re-verified (
https://snedai.com/docs/formulaire_passeport.pdf, HTTP 200, 69,840 bytes) but not authored this cycle; left as open backlog for a future cycle, alongside Visa's sibling verification. - Taxes — a real, unauthenticated, live candidate (DGI's micro-enterprise income-tax declaration,
11_DECLARATION_DE_LIMPOT_DES_MICROENTREPRISES.pdf, 245,929 bytes), left as open backlog for a future cycle. - National ID & Civic Documents — weak. ONECI's actual CNI application is a live, unauthenticated HTML pre-enrollment form (not a static document); the only PDF found on
oneci.ciis an instructions/checklist sheet, not the fillable form itself.
Visa was chosen for this cycle's authoring since it is one of GovSchema's six core verticals and its bilingual specimen was the more completely legible of the two STRONG candidates (Visa, Passport) on independent review.
Reaching the live source
Fetched https://snedai.com/docs/Formulaire_visa.pdf directly with a plain curl request using a realistic desktop User-Agent (Cloudflare-fronted but not gated — no login wall, CAPTCHA, or paywall):
- HTTP 200,
Content-Type: application/pdf,Content-Length: 128087— a byte-for-byte match with the scouting agent's own reported size. - sha256
80384ff148e9a323df4109388ac5f9de93e70ff750301a4488e13957596265d2. snedai.com(Société Nouvelle d'Exploitation du Domaine Aéroportuaire d'Abidjan — the Abidjan airport operator) mirrors this Ministry of the Interior form for arriving/departing travellers, a third-party-but- official-content mirror of the same genre this registry has accepted before (e.g. Ireland'sdlrceb.ie-mirrored RBN1, GOV-4178).
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 (±4pt tolerance) and sorted by x-coordinate to reconstruct column/reading order. Both of the document's 2 pages were additionally rendered to PNG via pdfjs-dist + node-canvas (also vendored at /tmp/node_modules/canvas) at 2.5x scale and visually reviewed — necessary because the raw text layer alone cannot distinguish an office-only box from an applicant-facing one on this form.
Document structure
A 2-page, bilingual (French/English) form: "Formulaire de demande de Visa/Application for Visa", Ministère de l'Intérieur / Direction de la Surveillance du Territoire (DST). Page 1 carries a "RESERVE A L'ADMINISTRATION" office box (top) followed by the applicant's identity, passport, and visa-request fields. Page 2 carries a conditional business-contacts block, a declaration paragraph, and the signature block (applicant + authority representative).
Fields modelled
32 fields[] across 6 steps (Applicant Identity; Occupation and Passport Particulars; Visa Sought and Reason for Travel; Merchants/Industrialists to Meet — Business Trips Only; Address in Côte d'Ivoire and Host/Relative; Declaration and Signature) plus 1 documents[] entry (the form's own "Photo" placeholder box).
Disclosed source-fidelity findings
- The entire top box (from the page's own top rule down to just above "Nom (en majuscule)") is excluded as office-only. The rendered page confirms this box is divided into three columns — "Durée du séjour" (the office's own granted-length-of-stay determination: Transit/Court séjour/Long séjour), "Service qui établit le Visa" (Ambassade or DST (Côte d'Ivoire), a fixed two-option office routing choice), and "RESERVE A L'ADMINISTRATION" itself (Date du dépôt de la demande, Dossier traité par, and a numbered 1-7 Pièces jointes checklist) — none of it printed as applicant input. This is a distinct decision from the form's applicant-facing "Durée du visa sollicité" (requested visa duration) lower on the same page, which carries an almost-identical Transit/Court séjour wording but is modelled as
requestedVisaDuration(Finding 6 below) since it is the applicant's own request, not the office's grant. - The unlabelled row of boxes directly beneath "Résidence actuelle" (Present residence) and above "Profession" is excluded. The rendered page confirms a full-width row of entry boxes with no adjacent label in either French or English anywhere on the page — no derivable meaning, so no field is fabricated for it.
maritalStatusmodelled as a literalC/M/D/Venum, not spelled-out status names. The source prints only the four single letters ("Situation matrimoniale (Marital's Status) C M D V") with no expansion anywhere on either page — unlike this registry's other marital-status fields (e.g.bw/dic/visa-application'smaritalStatus), which are sourced from forms that spell every option out in full. The C/M/D/V initials are modelled as-is (matching the standard French administrative ordering Célibataire/Marié(e)/Divorcé(e)/Veuf(ve) — Single/Married/Divorced/ Widowed — but that expansion is this registry's own inference, not printed on the source, and is disclosed rather than substituted as the enum's actual values).sexmodelled as a literalM/Fenum, not spelled-outMALE/FEMALE. Unlikebw/dic/visa-application'ssexfield (sourced from a form that prints "Male"/"Female" in full), this source's "Sexe : (Gender) M ▢ F ▢" never spells out either value anywhere on either page — modelled literally per the source's own printed letters.spouseNamesourced from a field whose French and English captions disagree on gender-neutrality. The French caption reads "Nom du conjoint" (spouse's name, gender-neutral), but the form's own English translation reads "(Husband name)" — narrower than the French. Modelled as gender-neutralspouseNameper the French (the form's primary-language caption), with the English asymmetry disclosed here rather than silently resolved.requestedVisaDuration("Durée du visa sollicité"/"Validity period of visa") is a separate, applicant-facing field from the office-only top-box duration discussed in Finding 1, despite both printing a near-identical Transit/Court séjour wording. This field's own third option reads "Sortie-retour (un an)"/"(In an out : 1 year)" — distinct from the office box's own third option, "Long séjour (1 à 2 ans)"/"Long stay (from 1 to 2 years)" — confirming these are two structurally different fields on the same page, not one field duplicated by extraction.- The 3-slot business-contacts block (
businessContact1Name/AddressthroughbusinessContact3Name/Address) is gatedvisibleWhen/requiredWhenontravelReasonequallingBUSINESS, per the section's own printed instruction ("Indiquez avec précision les noms et adresses ... s'il s'agit d'un voyage d'affaires" — "Indicate precisely names and addresses ... if it's a business trip"), a genuine printed conditional this registry's GSP-0013 grammar is built to express. Only the first slot (businessContact1Name/businessContact1Address) isrequiredWhengated; the second and third slots remain optional even when visible, since the source gives no indication that meeting more than one contact is expected of every business traveller. - The page-2 declaration paragraph ("Vous engagez-vous à n'accepter aucun emploi rémunéré ...") is excluded — it is pure declaratory prose printed immediately above the signature block, with no discrete checkbox, Oui/Non pair, or blank answer line printed anywhere near it, unlike a genuine yes/no question. The applicant's agreement is captured by the act of signing, already modelled via
applicantSignature. photomodelled as a requireddocuments[]entry, matching this registry'sbw/dic/visa-applicationprecedent for a placeholder photo box. The rendered page confirms the box is drawn within the visual area beside the RESERVE-A-L'ADMINISTRATION column, but it is genuinely the applicant's own photo affixed to the application, not an office-completed field.addressInCotedIvoireand the three "Répondant en Côte d'Ivoire" (Relative in Côte d'Ivoire) fields (relativeName,relativeAddress,relativePhone) are modelled as required. Neither section prints an optionality marker; unlikebw/dic/visa-application's own references section (Finding 4 there, excluded from required status due to a genuinely unlabelled shared box), this form dedicates one clearly bounded, singly-labelled field to each, with no ambiguity about what is being asked.
Conformance
3 valid mock scenarios — valid-tourist-short-stay (a single, ordinary passport, short-stay holiday applicant with a full relative-in-country section); valid-business-with-contact (a married business applicant declaring one merchant contact, exercising maidenName/spouseName and the gated businessContact1Name/businessContact1Address); and valid-transit-diplomatic (a widowed, diplomatic-passport transit applicant on a mission) — plus 15 mutation-control fixtures (a missing-required-field fixture for each of surname, givenNames, dateOfBirth, sex, placeOfBirth, maritalStatus, originNationality, presentNationality, presentResidence, passportNumber, passportType, visaType, requestedVisaDuration, travelReason, and applicantSignature; an invalid-enum fixture for maritalStatus; and an unknown-field-rejected fixture) are committed under conformance/ci/dst/visa-application/1.0.0/.
An ephemeral, from-scratch conformance checker (deriving required/enum rules directly from this schema's own fields[], including its visibleWhen/requiredWhen gates, discarded after use, not committed) ran all 19 fixtures: all 3 valid scenarios at 0 errors, and all 16 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. 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 Direction de la Surveillance du Territoire or any government. The authoritative source is always the live government form and its official instructions.