Registry entry
Dominican Republic Visa Application Form (Formulario Solicitud de Visa)
Application filed by a foreign national at a Dominican consular office abroad to request a Dominican Republic entry visa, using the Ministerio de Relaciones Exteriores' (MIREX) 2-page 'Formulario Solicitud de Visa', served from the Portal de Servicios Consulares (servicios360.mirex.gob.do). The form is print-and-fill (no AcroForm layer; both pages are native vector-drawn tables with a genuine embedded text layer, not scanned images) and is freely downloadable with no login/CAPTCHA/WAF gate; the same host also serves a byte-for-byte English-language edition used in this document as a cross-check on field labels and structure. It models the applicant's biographic data (surnames, names, birth/nationality), current residence and contact details, passport and optional secondary identity-document data, marital status and (where applicable) spouse data, the trip's purpose/dates/duration, planned Dominican accommodation, current employer/place-of-study data, who (if not the applicant) is funding the trip, the applicant's Dominican visa/entry history (prior visits, prior grants, cancellations/revocations, denials), work/study intent while in the Dominican Republic, whether anyone else has petitioned a visa on the applicant's behalf, accompanying travelers, and the supporting-document checklist the applicant brings to substantiate the request. Unlike do/mirex/passport-application (which carries the source's own '* Campos obligatorios' asterisk convention), this form prints no required-field marker of any kind on either page; requiredness in this version is asserted from context — the form's own explicit conditional-answer instructions ('si es afirmativo', 'si es usted mismo, no llenar') and this registry's established default of treating a field as required unless the source itself discloses it as optional or purely supplementary (see uy/mrree/formulario-unificado-de-visas, judgment call 4, for the precedent this document follows) — not from any printed convention. Two categories of the source form are out of scope: the 'Información Interna (No llenar)' office box (Expediente/Resolución number, date, place, status — explicitly marked 'do not fill in' on the form itself, consular-office tracking metadata rather than applicant-supplied data); and the 'Firma Solicitante'/'Dedo 1 (Índice Izquierdo)'/'Dedo 2 (Índice Derecho)' block (wet-ink signature plus two fingerprint captures), excluded as physical biometric/signature capture performed in the presence of consular staff, consistent with this registry's treatment of biometric capture elsewhere (e.g. do/mirex/passport-application, mx/sre/passport-application).
Registry entry
do/mirex/visa-application
Authoritative source Formulario Solicitud de Visa (Departamento Consular)
Machine access
- Schema document
registry/do/mirex/visa-application/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/do/mirex/visa-application/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
136 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
-
lastNameAsInPassportstring requiredApellidos — Como figura en el pasaporte
length: 0–150classification: pii -
otherLastNamesUsedstring optionalOtros apellidos utilizados (de soltera, casada, etc.)
length: 0–150classification: pii -
givenNamesAsInPassportstring requiredNombres — Como figura en el pasaporte
length: 0–150classification: pii -
otherNamesUsedstring optionalOtros nombres utilizados (religiosos, profesionales, alias, apodos etc.)
length: 0–150classification: pii -
countryOfBirthstring requiredPaís (de nacimiento)
length: 0–100classification: pii -
provinceOfBirthstring requiredProvincia (de nacimiento)
length: 0–100classification: pii -
localityOfBirthstring requiredLocalidad (de nacimiento)
length: 0–100classification: pii -
dateOfBirthdate requiredFecha (de nacimiento)
classification: pii -
primaryNationalitystring requiredPrimera Nacionalidad
length: 0–100classification: pii -
secondaryNationalitystring optionalOnly completed if the applicant holds a second nationality; the English-language variant of this form renders this label as 'Secondary nationality (if applicable)', confirming the qualifier the Spanish original leaves implicit.
length: 0–100classification: pii -
sexstring requiredUnlike do/mirex/passport-application's 'Sexo' field (which reproduces the passport form's own printed Femenino/Masculino checkbox options), this visa form's Section 4.1 is a single blank box with no printed options of any kind — confirmed by a 6x node-canvas render of the surrounding table. Modeled as free text rather than fabricating an enum the source does not print.
length: 0–20classification: pii -
highestEducationLevelstring optionalMayor grado académico alcanzado
length: 0–150 -
occupationstring requiredOcupación
length: 0–150 -
currentCountrystring requiredPaís (ubicación actual)
length: 0–100 -
currentProvincestring requiredProvincia (ubicación actual)
length: 0–100 -
currentLocalitystring requiredLocalidad (ubicación actual)
length: 0–100 -
currentStreetAddressstring requiredVía
length: 0–200 -
currentStreetNumberstring requiredNúmero (vía)
length: 0–20 -
currentFloorstring optionalPiso
length: 0–20 -
currentStaircasestring optionalEscalera
length: 0–20 -
currentDoorstring optionalPuerta
length: 0–20 -
currentPostalCodestring requiredCP
length: 0–20 -
currentHomePhonestring requiredTeléfono fijo
length: 0–30classification: pii -
currentMobilePhonestring requiredTeléfono Móvil (celular)
length: 0–30classification: pii -
currentWorkPhonestring optionalTeléfono Trabajo
length: 0–30classification: pii -
currentFaxstring optionalTeléfono Fax
length: 0–30 -
personalEmailstring requiredE-Mail personal
patternlength: 0–200classification: pii -
workEmailstring optionalE-Mail del trabajo
patternlength: 0–200classification: pii -
passportNumberstring requiredNúmero (de pasaporte)
length: 0–40classification: sensitive-pii -
passportIssuingCountrystring requiredPaís donde se emitió el pasaporte
length: 0–100 -
passportIssuingCitystring requiredLocalidad donde se emitió el pasaporte
length: 0–100 -
passportNationalityCountrystring requiredPaís al que pertenece el pasaporte
length: 0–100 -
passportIssueDatedate requiredFecha de Emisión (del pasaporte)
-
passportExpirationDatedate requiredFecha de Vencimiento (del pasaporte)
-
secondaryIdDocumentCountrystring optionalSection 7 is a single-row grid for an additional personal identity document beyond the passport (e.g. a national ID card); nothing on the form indicates every applicant holds one, so the whole section is modeled as optional supplementary data.
length: 0–100 -
secondaryIdDocumentTypestring optionalTipo de Documento
length: 0–100 -
secondaryIdDocumentNumberstring optionalNúmero (documento de identidad)
length: 0–40classification: sensitive-pii -
secondaryIdDocumentExpirationDatedate optionalFecha de vencimiento (documento de identidad)
-
maritalStatusstring requiredNo checkbox options are printed for this field (unlike do/mirex/passport-application's Estado Civil, which reproduces five printed options) — modeled as free text.
length: 0–30classification: pii -
spouseFullNamestring optionalBecause maritalStatus (8.1) is modeled as free text rather than an enum (no printed options), there is no reliable value to key a requiredWhen condition against for the spouse block — modeled as optional throughout, consistent with this registry's established treatment of the same situation (see uy/mrree/formulario-unificado-de-visas judgment call 4).
length: 0–200classification: pii -
spouseDateOfBirthdate optionalFecha Nacimiento del Esposo/a
classification: pii -
spouseNationalitystring optionalNacionalidad del Esposo/a
length: 0–100classification: pii -
travelDatedate required¿En qué fecha planea viajar?
-
lengthOfStayDaysinteger required¿Cuántos días durará?
range: 1–3650 -
purposeOfVisitenum required¿Por qué motivo?
enum: 10 values -
purposeOfVisitOtherSpecifystring optionalOtros (especifique)
length: 0–200 -
accommodationNamestring requiredNombre (hotel o persona física)
length: 0–200 -
accommodationHomePhonestring optionalTeléfono Fijo (alojamiento)
length: 0–30classification: pii -
accommodationMobilePhonestring optionalTeléfono Móvil (Celular) (alojamiento)
length: 0–30classification: pii -
accommodationProvincestring required¿En qué provincia?
length: 0–100 -
accommodationLocalitystring required¿En qué Localidad?
length: 0–100 -
accommodationSectorOrNeighborhoodstring optional¿En qué Sector o Barrio?
length: 0–100 -
accommodationStreetTypestring optionalTipo de Vía (alojamiento)
length: 0–50 -
accommodationStreetNamestring requiredNombre de la Vía (alojamiento)
length: 0–200 -
accommodationStreetNumberstring requiredThe source PDF prints the label '10. 8 Número' for this box — a duplicate of the immediately preceding 'Nombre de la Vía' field's own '10.8' label (a genuine numbering artifact in the form itself, confirmed in both the Spanish and English editions), not a re-entry of the street name field. Modeled as its own field per its distinct 'Número' caption and grid position.
length: 0–20 -
accommodationPostalCodestring optionalCódigo Postal (alojamiento)
length: 0–20 -
employer1Activitystring optionalSection 11's own heading qualifies repeated rows with 'anotar más de uno si existen' (note more than one if they exist); the whole 3-row block is modeled as optional, including its first row, since nothing on the form indicates every applicant currently has an employer or place of study.
length: 0–150 -
employer1InstitutionNamestring optionalNombre Institución (empleador/centro de estudio 1)
length: 0–200 -
employer1Phonestring optionalTeléfono (empleador/centro de estudio 1)
length: 0–30classification: pii -
employer1Addressstring optionalDirección (empleador/centro de estudio 1)
length: 0–200 -
employer2Activitystring optionalActividad (empleador/centro de estudio 2)
length: 0–150 -
employer2InstitutionNamestring optionalNombre Institución (empleador/centro de estudio 2)
length: 0–200 -
employer2Phonestring optionalTeléfono (empleador/centro de estudio 2)
length: 0–30classification: pii -
employer2Addressstring optionalDirección (empleador/centro de estudio 2)
length: 0–200 -
employer3Activitystring optionalActividad (empleador/centro de estudio 3)
length: 0–150 -
employer3InstitutionNamestring optionalNombre Institución (empleador/centro de estudio 3)
length: 0–200 -
employer3Phonestring optionalTeléfono (empleador/centro de estudio 3)
length: 0–30classification: pii -
employer3Addressstring optionalDirección (empleador/centro de estudio 3)
length: 0–200 -
travelExpensesPayerNamestring optionalThe source's own parenthetical instruction ('Si es usted mismo, no llenar' — if it is you yourself, do not fill in) makes this section conditional on a third party paying; modeled as optional since the form provides no boolean gate field to key a requiredWhen condition on.
length: 0–200classification: pii -
travelExpensesPayerRelationshipstring optionalParentesco (quién pagará los gastos)
length: 0–100 -
visitedDominicanRepublicBeforeboolean required¿Ha visitado República Dominicana alguna vez?
-
previousVisit1Datedate optionalThe source instructs answering 'empezando por la visita más recientes' (starting with the most recent visit); this most-recent-visit row is required once visitedDominicanRepublicBefore is true, while rows 2-4 are additional entries modeled as optional, consistent with this registry's entrantN convention (e.g. dk/cpr/notification-of-entry).
-
previousVisit1Daysinteger optional¿Cuántos días? (visita previa 1)
range: 1–3650 -
previousVisit2Datedate optional¿En qué fecha? (visita previa 2)
-
previousVisit2Daysinteger optional¿Cuántos días? (visita previa 2)
range: 1–3650 -
previousVisit3Datedate optional¿En qué fecha? (visita previa 3)
-
previousVisit3Daysinteger optional¿Cuántos días? (visita previa 3)
range: 1–3650 -
previousVisit4Datedate optional¿En qué fecha? (visita previa 4)
-
previousVisit4Daysinteger optional¿Cuántos días? (visita previa 4)
range: 1–3650 -
previouslyGrantedDominicanVisaboolean required¿Alguna vez se le ha otorgado una visa a República Dominicana?
-
priorVisaGranted1Datedate optionalNote: Colocar aquí sólo los datos para los cuales aporta constancia al momento de presentar esta solicitud (only include information provable at the time of filing) qualifies this whole sub-block; required once previouslyGrantedDominicanVisa is true, row 2 modeled as an optional additional entry.
-
priorVisaGranted1IssuingCountrystring optionalPaís de Emisión (visa DR otorgada 1)
length: 0–100 -
priorVisaGranted1Citystring optionalCiudad (visa DR otorgada 1)
length: 0–100 -
priorVisaGranted1Classstring optionalClase de Visa (visa DR otorgada 1)
length: 0–100 -
priorVisaGranted1Numberstring optionalNúmero de Visa (visa DR otorgada 1)
length: 0–60 -
priorVisaGranted2Datedate optionalFecha (visa DR otorgada 2)
-
priorVisaGranted2IssuingCountrystring optionalPaís de Emisión (visa DR otorgada 2)
length: 0–100 -
priorVisaGranted2Citystring optionalCiudad (visa DR otorgada 2)
length: 0–100 -
priorVisaGranted2Classstring optionalClase de Visa (visa DR otorgada 2)
length: 0–100 -
priorVisaGranted2Numberstring optionalNúmero de Visa (visa DR otorgada 2)
length: 0–60 -
otherCountryVisa1IssuingCountrystring optionalSection 15 carries no Si/No gate field of its own (unlike Sections 13/14/16/17/18/19) — it is simply a listing heading, so both rows are modeled as plain optional fields.
length: 0–100 -
otherCountryVisa1IssuingPlacestring optionalPaís de Emisión (visa otro país 1)
length: 0–100 -
otherCountryVisa1ExpirationDatedate optionalFecha de Vencimiento (visa otro país 1)
-
otherCountryVisa1Classstring optionalClase de Visa (visa otro país 1)
length: 0–100 -
otherCountryVisa1Numberstring optionalNúmero de Visa (visa otro país 1)
length: 0–60 -
otherCountryVisa2IssuingCountrystring optionalPaís Emisor (visa otro país 2)
length: 0–100 -
otherCountryVisa2IssuingPlacestring optionalPaís de Emisión (visa otro país 2)
length: 0–100 -
otherCountryVisa2ExpirationDatedate optionalFecha de Vencimiento (visa otro país 2)
-
otherCountryVisa2Classstring optionalClase de Visa (visa otro país 2)
length: 0–100 -
otherCountryVisa2Numberstring optionalNúmero de Visa (visa otro país 2)
length: 0–60 -
cancelledOrRevokedDominicanVisaboolean required¿Alguna vez le han cancelado o revocado una visa Dominicana?
-
deniedDominicanVisaboolean required¿Alguna vez se le ha negado una visa Dominicana?
-
visaDenied1Datedate optionalFecha (visa denegada 1)
-
visaDenied1Countrystring optionalPaís (visa denegada 1)
length: 0–100 -
visaDenied1Citystring optionalCiudad (visa denegada 1)
length: 0–100 -
visaDenied1Classstring optionalClase de Visa (visa denegada 1)
length: 0–100 -
visaDenied2Datedate optionalFecha (visa denegada 2)
-
visaDenied2Countrystring optionalPaís (visa denegada 2)
length: 0–100 -
visaDenied2Citystring optionalCiudad (visa denegada 2)
length: 0–100 -
visaDenied2Classstring optionalClase de Visa (visa denegada 2)
length: 0–100 -
intendToWorkOrStudyInDominicanRepublicboolean required¿Tiene intención de trabajar y/o estudiar en la República Dominicana?
-
workStudyAActivityTypestring optionalBlock 'a' is required once intendToWorkOrStudyInDominicanRepublic is true; block 'b' is the form's own second optional entry for a second employer/institution.
length: 0–150 -
workStudyANamestring optionalNombre (persona, empresa o institución educativa) (trabajo/estudio a)
length: 0–200 -
workStudyAPhonestring optionalTeléfono (móvil o fijo) (trabajo/estudio a)
length: 0–30classification: pii -
workStudyAProvincestring optionalProvincia (trabajo/estudio a)
length: 0–100 -
workStudyALocalitystring optionalLocalidad (trabajo/estudio a)
length: 0–100 -
workStudyAStreetstring optionalVía (trabajo/estudio a)
length: 0–200 -
workStudyAStreetNumberstring optionalNúmero (trabajo/estudio a)
length: 0–20 -
workStudyBActivityTypestring optionalTipo de actividad (trabajo/estudio b)
length: 0–150 -
workStudyBNamestring optionalNombre (persona, empresa o institución educativa) (trabajo/estudio b)
length: 0–200 -
workStudyBPhonestring optionalTeléfono (móvil o fijo) (trabajo/estudio b)
length: 0–30classification: pii -
workStudyBProvincestring optionalProvincia (trabajo/estudio b)
length: 0–100 -
workStudyBLocalitystring optionalLocalidad (trabajo/estudio b)
length: 0–100 -
workStudyBStreetstring optionalVía (trabajo/estudio b)
length: 0–200 -
workStudyBStreetNumberstring optionalNúmero (trabajo/estudio b)
length: 0–20 -
visaPetitionedByOtherOnBehalfboolean required¿Alguna vez ha sometido alguien una petición de visa a su nombre?
-
visaPetitionedByOther1Namestring optionalNombre (empresa o persona) (petición 1)
length: 0–200classification: pii -
visaPetitionedByOther1Relationshipstring optionalRelación/parentesco (petición 1)
length: 0–100 -
visaPetitionedByOther2Namestring optionalNombre (empresa o persona) (petición 2)
length: 0–200classification: pii -
visaPetitionedByOther2Relationshipstring optionalRelación/parentesco (petición 2)
length: 0–100 -
companion1Namestring optionalSection 20 carries no Si/No gate field of its own — it is simply a listing heading (like Section 15), so all rows are modeled as plain optional fields.
length: 0–200classification: pii -
companion1Relationshipstring optionalParentesco (acompañante 1)
length: 0–100 -
companion2Namestring optionalNombres (acompañante 2)
length: 0–200classification: pii -
companion2Relationshipstring optionalParentesco (acompañante 2)
length: 0–100 -
companion3Namestring optionalNombres (acompañante 3)
length: 0–200classification: pii -
companion3Relationshipstring optionalParentesco (acompañante 3)
length: 0–100
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-3168)
This candidate was pre-scouted during the GOV-3152 "GovSchema Standard Research" cycle, which independently scouted and live-verified all five of the Dominican Republic's remaining verticals in parallel. GOV-3158 (do/mirex/passport-application, opening DR's Passport vertical) already landed on the same servicios360.mirex.gob.do domain, and its own follow-up cycle (GOV-3166, DMV) and GOV-3167 (Business Formation) have since landed as well. This ticket is the disclosed next candidate: DR's Visa vertical, the fifth of six. Per this registry's standing convention, the source was re-verified from scratch this cycle rather than trusting the prior scouting note's field count or structure as-is.
Sources examined
- Document
(id, version):do/mirex/visa-application/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Ministerio de Relaciones Exteriores (MIREX), via its Portal de Servicios Consulares.
- Primary source:
https://servicios360.mirex.gob.do/pdf/formularios/Formulario_Solicitud_Visado.pdf— re-fetched fresh this cycle with a plaincurl, no browser User-Agent or session needed: HTTP 200,Content-Type: application/pdf, size 100,161 bytes, sha256398cb3629e1844f3064b62e3943563314c3121d50bcfa56ab974055abe0715a4, genuine%PDFmagic bytes. No login/CAPTCHA/WAF gate encountered. - English-language sibling (cross-check only, not the canonical source):
https://servicios360.mirex.gob.do/pdf/formularios/Formulario_Solicitud_Visado_english.pdf— also re-fetched fresh: HTTP 200,Content-Type: application/pdf, size 239,212 bytes, sha256347913db33ac524baf6ef0434c9dacf37ded194e3a0bb7deef53293be697fd97. Used only to confirm field-label meaning and section structure (e.g. confirming "Segunda Nacionalidad" is qualified "(if applicable)" in English even though the Spanish original leaves that implicit);source.urlinschema.jsonpoints at the Spanish original, consistent withprocess.language: "es-DO"and this registry's treatment of do/mirex/passport-application. - Structural check:
pdfjs-dist3.11.174 (installed standalone in a scratch directory for this task, not added as a repository dependency) confirmed 2 pages for both editions andpage.getAnnotations()returning0for every page — a print-and-fill form with no AcroForm layer, consistent with the sibling passport document.
Structure independently re-derived — no text-extraction gap this time, but a different required-marker gap
Unlike do/mirex/passport-application (where the applicant-data grid returned zero text items from a naive getTextContent() pass), this visa form's getTextContent() extraction recovered every field label on both pages of both editions directly, grouped by y-coordinate. This was independently re-run twice — once against a freshly re-curled copy of each PDF — and the two extraction passes matched byte-for-byte (ignoring only pdfjs-dist's own canvas-module warning banner), so no fabrication or transcription drift is possible between "the first pass" and "the schema below."
A programmatic scan of every text item on both pages for the glyph returned zero matches on either page, in either language edition. This form carries no asterisk, legend, or any other printed required/optional marker convention anywhere — a materially different situation from do/mirex/passport-application's explicit Campos obligatorios legend. Rather than inventing a marker the source doesn't have, every section was additionally cross-checked against a node-canvas render of both pages at 6x scale to confirm this by direct visual inspection, and two specific fields were re-examined at this resolution because their sibling document treats the same concept as an enum:
- Section 4.1 "Sexo" is a single blank box with no printed checkbox options of any kind (contrast do/mirex/passport-application's "Sexo", which reproduces printed Femenino/Masculino options).
- Section 8.1 "Estado Civil" is likewise a single blank box with no printed options (contrast do/mirex/passport-application's five-option Casado/Viudo/Soltero/Divorciado/Unión Libre checkbox row).
Both are modeled as free-text string fields rather than fabricated enums.
Every repeating table's exact row count was counted directly off the 6x render (cropped and re-inspected section by section), not assumed from the section heading text alone:
- Section 11 (Datos del empleador y/o centro de estudio actual): 3 data rows.
- Section 13 (¿Ha visitado República Dominicana alguna vez? — prior visits): header row (itself fillable) + 3 further blank rows = 4 total entries.
- Section 14 (visas previously granted to the Dominican Republic), Section 15 (visas granted by other countries), Section 17 (denied Dominican visa detail), and Section 19 (petition filed by someone else): 2 data rows each.
- Section 18 (intent to work/study): 2 lettered blocks,
aandb, each with its own 7-field sub-grid (activity, name, phone, province, locality, street, number). - Section 20 (accompanying persons): header row (itself fillable) + 2 further blank rows = 3 total entries.
Scope decisions
- No printed required-field marker exists anywhere on this form (see above). Requiredness is therefore asserted from context rather than a source convention: (a) core biographic/passport/current-location/contact fields are modeled
required: true; (b) fields the source itself qualifies as conditional or supplementary —otherLastNamesUsed,otherNamesUsed,secondaryNationality("if applicable" per the English edition),highestEducationLevel, apartment-specific address sub-fields (currentFloor/currentStaircase/currentDoor),currentWorkPhone,currentFax,workEmail, all of Section 7 (a wholly optional secondary identity document), all of Section 12 (explicitly "si es usted mismo, no llenar" — if it is you yourself, do not fill in) — are modeled optional; (c) the first row of each Si/No-gated repeating block (Sections 13/14/17/18/19) isrequiredWhenthe corresponding boolean gate istrue, while additional rows beyond the first are modeled as plain optional entries, per this registry's establishedentrantNconvention (e.g. dk/cpr/notification-of-entry) rather than chained/compounded conditions; (d) Sections 15 and 20 carry no Si/No gate field of their own on the source form (they are plain listing headings, not conditional blocks), so every row in those two sections is a plain optional field with norequiredWhen. This overall approach mirrors the precedent this registry already set for a visa form with the same no-marker situation — seeuy/mrree/formulario-unificado-de-visas, judgment call 4. maritalStatus(8.1) is modeled as free-textstring, not an enum (no printed options — see above), and as a direct consequencespouseFullName/spouseDateOfBirth/spouseNationality(8.2-8.4) are modeled fully optional rather thanrequiredWhen-gated againstmaritalStatus, since there is no reliable enum value to key a condition on. This is the same reasoning already applied inuy/mrree/formulario-unificado-de-visas(judgment call 4) to its own free-text marital-status field.- Section 10's street sub-grid has a genuine source numbering artifact, disclosed rather than silently resolved: the printed labels read "10. 7 Tipo de Vía 10.8 Nombre de la Vía 10. 8 Número 10.9 Código Postal" — i.e. the box captioned "Número" duplicates the immediately preceding "Nombre de la Vía" box's own "10.8" label, confirmed identical in both the Spanish and English editions (the English edition shows the same duplicate-"10.8" artifact). Modeled as four distinct fields (
accommodationStreetType,accommodationStreetName,accommodationStreetNumber,accommodationPostalCode) keyed to each box's own caption and grid position, not collapsed or renumbered. - Section 11 (employer/centro de estudio) is modeled fully optional, including its first row — unlike the
entrantN/Si-No-gated pattern used elsewhere in this document — because the section's own heading qualifier ("anotar más de uno si existen" — note more than one if they exist) discloses that even a single employer/institution entry may not apply to every applicant (e.g. a retired or independently-supported traveler), and the section carries no boolean gate field to key arequiredWhencondition on. - The 36-item "Indicar documentos que acompañan esta solicitud" checklist (Section, unnumbered, page 2 footer) is modeled as a single
documents[]supporting-evidenceentry (supportingDocumentation) withacceptedTypesenumerating all 36 source-defined document-type slugs (transcribed column-by-column directly off the render: 12 in each of the three printed columns), mirroring the same modeling choice already used fordo/mirex/passport-application'ssupportingDocumentationentry andmx/sre/passport-application's document entries, rather than as 36 separate boolean fields. - Excluded from this version, disclosed rather than silently omitted:
- The "Información Interna (No llenar)" box (Expediente/Resolución Número/Fecha/Lugar/Estatus) — explicitly marked "do not fill in" on the form itself, consular-office tracking metadata, the same treatment this registry gives office-assigned file numbers elsewhere (contrast do/mirex/passport-application's header box, which carries no such explicit instruction but is treated the same way by inference).
- "Firma Solicitante" / "Dedo 1 (Índice Izquierdo)" / "Dedo 2 (Índice Derecho)" — wet-ink signature plus two fingerprint captures, physical biometric/signature actions performed in the presence of consular staff, consistent with this registry's treatment of biometric capture in do/mirex/passport-application, mx/sre/passport-application, and il/mot/medical-examination-driving-license-renewal.
- The "Fotografía" photo box printed at the top of page 1 is not modeled as a standalone field: "Fotografía" already appears as one of the 36
acceptedTypesslugs indocuments[], and a standalone photo-slot field would duplicate that same underlying fact.
- Country/province/locality/phone/address fields are modeled as free-text strings, consistent with
do/mirex/passport-application's treatment of the same kind of field, not as ISO country-code enums — every instance on the source form is a blank line, not a picklist. purposeOfVisit(9.3) is modeled as anenum, not free text, because — unlike Sections 4.1/8.1 — this field's ten options (Placer, Estudio, Negocio, Trabajo, Dependencia, Oficial, Diplomático, Residencia, Cortesía, Otros) are genuinely printed on the form as a checkbox-style list with blank-line marks ("__"), the same textual-checkbox convention this registry already treats as enum-worthy elsewhere (e.g. do/mirex/passport-application'srequestType).
Conformance fixtures (Phase 3)
9 fixtures committed under conformance/do/mirex/visa-application/1.0.0/: 2 valid scenarios plus 7 mutation-control fixtures, each derived from one of the valid fixtures by a single targeted mutation. All 9 were run against a from-scratch, ephemeral field-by-field conformance checker (derived directly from this schema's own fields[]/documents[], not committed to the repo) before being finalized:
valid-first-time-single-applicant.json(first-time applicant, no prior DR visits/visas, traveling alone for Placer, no secondary ID document, no employer/institution rows filled in) — 0 errors.valid-repeat-visitor-with-history.json(prior DR visit, a previously granted DR visa, work/study intent, an accompanying companion, a third-party expense payer, and a secondary identity document) — 0 errors.mutation-control-missing-required-field.json(dropslastNameAsInPassport) — exactly 1 error.mutation-control-invalid-enum-purpose.json(setspurposeOfVisitto"vacation", not in the enum) — exactly 1 error.mutation-control-invalid-email-pattern.json(setspersonalEmailto"not-an-email") — exactly 1 error.mutation-control-missing-conditional-previous-visit.json(keepsvisitedDominicanRepublicBefore: truebut dropspreviousVisit1Date, testing therequiredWhengate) — exactly 1 error.mutation-control-missing-conditional-purpose-other.json(setspurposeOfVisit: "otros"but dropspurposeOfVisitOtherSpecify) — exactly 1 error.mutation-control-missing-supporting-documentation.json(setsdocuments.supportingDocumentationtofalse, testing the requireddocuments[]entry) — exactly 1 error.mutation-control-wrong-type-length-of-stay.json(setslengthOfStayDaysto a non-integer string) — exactly 1 error.
Structural validation
node tools/validate.mjs registry/do/mirex/visa-application/1.0.0/schema.json— ok.node tools/validate-ajv.mjs registry/do/mirex/visa-application/1.0.0/schema.json(ajv 2020-12 againstspec/v0.3) — ok.- Full-registry re-run after adding this document:
node tools/validate.mjs→ all documents pass (prior full-registry count plus this one);node tools/validate-ajv.mjs→ all documents pass (see repo-root validator output captured in the PR for the exact before/after counts). node tools/verify-sources.mjs registry/do/mirex/visa-application/1.0.0— clean (0 warnings, 0 failures) for this document's directory.npm run build-indexre-run intools/govschema-client/to regenerateregistry-index.jsonwith this document included.
Maturity
structural-reference: the source form's own 20 numbered applicant-facing sections plus its supporting-document checklist are fully transcribed from the genuine, currently-served form, cross-checked between an independent text-extraction pass and a high-resolution visual render (including an exact row-count of every repeating table), but no live filing through a MIREX consular office was attempted and no independent second reviewer has yet passed over this field list. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Dominican Republic or the Ministerio de Relaciones Exteriores.
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 Ministerio de Relaciones Exteriores or any government. The authoritative source is always the live government form and its official instructions.