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

Jurisdiction
Dominican Republic · national
Version
1.0.0
Verification
draft

Authoritative source Formulario Solicitud de Visa (Departamento Consular)

Machine access

Schema document
registry/do/mirex/visa-application/1.0.0/schema.jsonapplication/schema+json
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

  • lastNameAsInPassport string required

    Apellidos — Como figura en el pasaporte

    length: 0–150classification: pii
  • otherLastNamesUsed string optional

    Otros apellidos utilizados (de soltera, casada, etc.)

    length: 0–150classification: pii
  • givenNamesAsInPassport string required

    Nombres — Como figura en el pasaporte

    length: 0–150classification: pii
  • otherNamesUsed string optional

    Otros nombres utilizados (religiosos, profesionales, alias, apodos etc.)

    length: 0–150classification: pii
  • countryOfBirth string required

    País (de nacimiento)

    length: 0–100classification: pii
  • provinceOfBirth string required

    Provincia (de nacimiento)

    length: 0–100classification: pii
  • localityOfBirth string required

    Localidad (de nacimiento)

    length: 0–100classification: pii
  • dateOfBirth date required

    Fecha (de nacimiento)

    classification: pii
  • primaryNationality string required

    Primera Nacionalidad

    length: 0–100classification: pii
  • secondaryNationality string optional

    Only 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
  • sex string required

    Unlike 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
  • highestEducationLevel string optional

    Mayor grado académico alcanzado

    length: 0–150
  • occupation string required

    Ocupación

    length: 0–150
  • currentCountry string required

    País (ubicación actual)

    length: 0–100
  • currentProvince string required

    Provincia (ubicación actual)

    length: 0–100
  • currentLocality string required

    Localidad (ubicación actual)

    length: 0–100
  • currentStreetAddress string required

    Vía

    length: 0–200
  • currentStreetNumber string required

    Número (vía)

    length: 0–20
  • currentFloor string optional

    Piso

    length: 0–20
  • currentStaircase string optional

    Escalera

    length: 0–20
  • currentDoor string optional

    Puerta

    length: 0–20
  • currentPostalCode string required

    CP

    length: 0–20
  • currentHomePhone string required

    Teléfono fijo

    length: 0–30classification: pii
  • currentMobilePhone string required

    Teléfono Móvil (celular)

    length: 0–30classification: pii
  • currentWorkPhone string optional

    Teléfono Trabajo

    length: 0–30classification: pii
  • currentFax string optional

    Teléfono Fax

    length: 0–30
  • personalEmail string required

    E-Mail personal

    patternlength: 0–200classification: pii
  • workEmail string optional

    E-Mail del trabajo

    patternlength: 0–200classification: pii
  • passportNumber string required

    Número (de pasaporte)

    length: 0–40classification: sensitive-pii
  • passportIssuingCountry string required

    País donde se emitió el pasaporte

    length: 0–100
  • passportIssuingCity string required

    Localidad donde se emitió el pasaporte

    length: 0–100
  • passportNationalityCountry string required

    País al que pertenece el pasaporte

    length: 0–100
  • passportIssueDate date required

    Fecha de Emisión (del pasaporte)

  • passportExpirationDate date required

    Fecha de Vencimiento (del pasaporte)

  • secondaryIdDocumentCountry string optional

    Section 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
  • secondaryIdDocumentType string optional

    Tipo de Documento

    length: 0–100
  • secondaryIdDocumentNumber string optional

    Número (documento de identidad)

    length: 0–40classification: sensitive-pii
  • secondaryIdDocumentExpirationDate date optional

    Fecha de vencimiento (documento de identidad)

  • maritalStatus string required

    No 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
  • spouseFullName string optional

    Because 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
  • spouseDateOfBirth date optional

    Fecha Nacimiento del Esposo/a

    classification: pii
  • spouseNationality string optional

    Nacionalidad del Esposo/a

    length: 0–100classification: pii
  • travelDate date required

    ¿En qué fecha planea viajar?

  • lengthOfStayDays integer required

    ¿Cuántos días durará?

    range: 1–3650
  • purposeOfVisit enum required

    ¿Por qué motivo?

    enum: 10 values
  • purposeOfVisitOtherSpecify string optional

    Otros (especifique)

    length: 0–200
  • accommodationName string required

    Nombre (hotel o persona física)

    length: 0–200
  • accommodationHomePhone string optional

    Teléfono Fijo (alojamiento)

    length: 0–30classification: pii
  • accommodationMobilePhone string optional

    Teléfono Móvil (Celular) (alojamiento)

    length: 0–30classification: pii
  • accommodationProvince string required

    ¿En qué provincia?

    length: 0–100
  • accommodationLocality string required

    ¿En qué Localidad?

    length: 0–100
  • accommodationSectorOrNeighborhood string optional

    ¿En qué Sector o Barrio?

    length: 0–100
  • accommodationStreetType string optional

    Tipo de Vía (alojamiento)

    length: 0–50
  • accommodationStreetName string required

    Nombre de la Vía (alojamiento)

    length: 0–200
  • accommodationStreetNumber string required

    The 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
  • accommodationPostalCode string optional

    Código Postal (alojamiento)

    length: 0–20
  • employer1Activity string optional

    Section 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
  • employer1InstitutionName string optional

    Nombre Institución (empleador/centro de estudio 1)

    length: 0–200
  • employer1Phone string optional

    Teléfono (empleador/centro de estudio 1)

    length: 0–30classification: pii
  • employer1Address string optional

    Dirección (empleador/centro de estudio 1)

    length: 0–200
  • employer2Activity string optional

    Actividad (empleador/centro de estudio 2)

    length: 0–150
  • employer2InstitutionName string optional

    Nombre Institución (empleador/centro de estudio 2)

    length: 0–200
  • employer2Phone string optional

    Teléfono (empleador/centro de estudio 2)

    length: 0–30classification: pii
  • employer2Address string optional

    Dirección (empleador/centro de estudio 2)

    length: 0–200
  • employer3Activity string optional

    Actividad (empleador/centro de estudio 3)

    length: 0–150
  • employer3InstitutionName string optional

    Nombre Institución (empleador/centro de estudio 3)

    length: 0–200
  • employer3Phone string optional

    Teléfono (empleador/centro de estudio 3)

    length: 0–30classification: pii
  • employer3Address string optional

    Dirección (empleador/centro de estudio 3)

    length: 0–200
  • travelExpensesPayerName string optional

    The 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
  • travelExpensesPayerRelationship string optional

    Parentesco (quién pagará los gastos)

    length: 0–100
  • visitedDominicanRepublicBefore boolean required

    ¿Ha visitado República Dominicana alguna vez?

  • previousVisit1Date date optional

    The 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).

  • previousVisit1Days integer optional

    ¿Cuántos días? (visita previa 1)

    range: 1–3650
  • previousVisit2Date date optional

    ¿En qué fecha? (visita previa 2)

  • previousVisit2Days integer optional

    ¿Cuántos días? (visita previa 2)

    range: 1–3650
  • previousVisit3Date date optional

    ¿En qué fecha? (visita previa 3)

  • previousVisit3Days integer optional

    ¿Cuántos días? (visita previa 3)

    range: 1–3650
  • previousVisit4Date date optional

    ¿En qué fecha? (visita previa 4)

  • previousVisit4Days integer optional

    ¿Cuántos días? (visita previa 4)

    range: 1–3650
  • previouslyGrantedDominicanVisa boolean required

    ¿Alguna vez se le ha otorgado una visa a República Dominicana?

  • priorVisaGranted1Date date optional

    Note: 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.

  • priorVisaGranted1IssuingCountry string optional

    País de Emisión (visa DR otorgada 1)

    length: 0–100
  • priorVisaGranted1City string optional

    Ciudad (visa DR otorgada 1)

    length: 0–100
  • priorVisaGranted1Class string optional

    Clase de Visa (visa DR otorgada 1)

    length: 0–100
  • priorVisaGranted1Number string optional

    Número de Visa (visa DR otorgada 1)

    length: 0–60
  • priorVisaGranted2Date date optional

    Fecha (visa DR otorgada 2)

  • priorVisaGranted2IssuingCountry string optional

    País de Emisión (visa DR otorgada 2)

    length: 0–100
  • priorVisaGranted2City string optional

    Ciudad (visa DR otorgada 2)

    length: 0–100
  • priorVisaGranted2Class string optional

    Clase de Visa (visa DR otorgada 2)

    length: 0–100
  • priorVisaGranted2Number string optional

    Número de Visa (visa DR otorgada 2)

    length: 0–60
  • otherCountryVisa1IssuingCountry string optional

    Section 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
  • otherCountryVisa1IssuingPlace string optional

    País de Emisión (visa otro país 1)

    length: 0–100
  • otherCountryVisa1ExpirationDate date optional

    Fecha de Vencimiento (visa otro país 1)

  • otherCountryVisa1Class string optional

    Clase de Visa (visa otro país 1)

    length: 0–100
  • otherCountryVisa1Number string optional

    Número de Visa (visa otro país 1)

    length: 0–60
  • otherCountryVisa2IssuingCountry string optional

    País Emisor (visa otro país 2)

    length: 0–100
  • otherCountryVisa2IssuingPlace string optional

    País de Emisión (visa otro país 2)

    length: 0–100
  • otherCountryVisa2ExpirationDate date optional

    Fecha de Vencimiento (visa otro país 2)

  • otherCountryVisa2Class string optional

    Clase de Visa (visa otro país 2)

    length: 0–100
  • otherCountryVisa2Number string optional

    Número de Visa (visa otro país 2)

    length: 0–60
  • cancelledOrRevokedDominicanVisa boolean required

    ¿Alguna vez le han cancelado o revocado una visa Dominicana?

  • deniedDominicanVisa boolean required

    ¿Alguna vez se le ha negado una visa Dominicana?

  • visaDenied1Date date optional

    Fecha (visa denegada 1)

  • visaDenied1Country string optional

    País (visa denegada 1)

    length: 0–100
  • visaDenied1City string optional

    Ciudad (visa denegada 1)

    length: 0–100
  • visaDenied1Class string optional

    Clase de Visa (visa denegada 1)

    length: 0–100
  • visaDenied2Date date optional

    Fecha (visa denegada 2)

  • visaDenied2Country string optional

    País (visa denegada 2)

    length: 0–100
  • visaDenied2City string optional

    Ciudad (visa denegada 2)

    length: 0–100
  • visaDenied2Class string optional

    Clase de Visa (visa denegada 2)

    length: 0–100
  • intendToWorkOrStudyInDominicanRepublic boolean required

    ¿Tiene intención de trabajar y/o estudiar en la República Dominicana?

  • workStudyAActivityType string optional

    Block '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
  • workStudyAName string optional

    Nombre (persona, empresa o institución educativa) (trabajo/estudio a)

    length: 0–200
  • workStudyAPhone string optional

    Teléfono (móvil o fijo) (trabajo/estudio a)

    length: 0–30classification: pii
  • workStudyAProvince string optional

    Provincia (trabajo/estudio a)

    length: 0–100
  • workStudyALocality string optional

    Localidad (trabajo/estudio a)

    length: 0–100
  • workStudyAStreet string optional

    Vía (trabajo/estudio a)

    length: 0–200
  • workStudyAStreetNumber string optional

    Número (trabajo/estudio a)

    length: 0–20
  • workStudyBActivityType string optional

    Tipo de actividad (trabajo/estudio b)

    length: 0–150
  • workStudyBName string optional

    Nombre (persona, empresa o institución educativa) (trabajo/estudio b)

    length: 0–200
  • workStudyBPhone string optional

    Teléfono (móvil o fijo) (trabajo/estudio b)

    length: 0–30classification: pii
  • workStudyBProvince string optional

    Provincia (trabajo/estudio b)

    length: 0–100
  • workStudyBLocality string optional

    Localidad (trabajo/estudio b)

    length: 0–100
  • workStudyBStreet string optional

    Vía (trabajo/estudio b)

    length: 0–200
  • workStudyBStreetNumber string optional

    Número (trabajo/estudio b)

    length: 0–20
  • visaPetitionedByOtherOnBehalf boolean required

    ¿Alguna vez ha sometido alguien una petición de visa a su nombre?

  • visaPetitionedByOther1Name string optional

    Nombre (empresa o persona) (petición 1)

    length: 0–200classification: pii
  • visaPetitionedByOther1Relationship string optional

    Relación/parentesco (petición 1)

    length: 0–100
  • visaPetitionedByOther2Name string optional

    Nombre (empresa o persona) (petición 2)

    length: 0–200classification: pii
  • visaPetitionedByOther2Relationship string optional

    Relación/parentesco (petición 2)

    length: 0–100
  • companion1Name string optional

    Section 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
  • companion1Relationship string optional

    Parentesco (acompañante 1)

    length: 0–100
  • companion2Name string optional

    Nombres (acompañante 2)

    length: 0–200classification: pii
  • companion2Relationship string optional

    Parentesco (acompañante 2)

    length: 0–100
  • companion3Name string optional

    Nombres (acompañante 3)

    length: 0–200classification: pii
  • companion3Relationship string optional

    Parentesco (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: draft
  • verification.method: manual-source-review-v1
  • verification.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 plain curl, no browser User-Agent or session needed: HTTP 200, Content-Type: application/pdf, size 100,161 bytes, sha256 398cb3629e1844f3064b62e3943563314c3121d50bcfa56ab974055abe0715a4, genuine %PDF magic 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, sha256 347913db33ac524baf6ef0434c9dacf37ded194e3a0bb7deef53293be697fd97. 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.url in schema.json points at the Spanish original, consistent with process.language: "es-DO" and this registry's treatment of do/mirex/passport-application.
  • Structural check: pdfjs-dist 3.11.174 (installed standalone in a scratch directory for this task, not added as a repository dependency) confirmed 2 pages for both editions and page.getAnnotations() returning 0 for 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, a and b, 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

  1. 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) is requiredWhen the corresponding boolean gate is true, while additional rows beyond the first are modeled as plain optional entries, per this registry's established entrantN convention (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 no requiredWhen. This overall approach mirrors the precedent this registry already set for a visa form with the same no-marker situation — see uy/mrree/formulario-unificado-de-visas, judgment call 4.
  2. maritalStatus (8.1) is modeled as free-text string, not an enum (no printed options — see above), and as a direct consequence spouseFullName/spouseDateOfBirth/spouseNationality (8.2-8.4) are modeled fully optional rather than requiredWhen-gated against maritalStatus, since there is no reliable enum value to key a condition on. This is the same reasoning already applied in uy/mrree/formulario-unificado-de-visas (judgment call 4) to its own free-text marital-status field.
  3. 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.
  4. 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 a requiredWhen condition on.
  5. The 36-item "Indicar documentos que acompañan esta solicitud" checklist (Section, unnumbered, page 2 footer) is modeled as a single documents[] supporting-evidence entry (supportingDocumentation) with acceptedTypes enumerating 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 for do/mirex/passport-application's supportingDocumentation entry and mx/sre/passport-application's document entries, rather than as 36 separate boolean fields.
  6. 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 acceptedTypes slugs in documents[], and a standalone photo-slot field would duplicate that same underlying fact.
  7. 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.
  8. purposeOfVisit (9.3) is modeled as an enum, 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's requestType).

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 (drops lastNameAsInPassport) — exactly 1 error.
  • mutation-control-invalid-enum-purpose.json (sets purposeOfVisit to "vacation", not in the enum) — exactly 1 error.
  • mutation-control-invalid-email-pattern.json (sets personalEmail to "not-an-email") — exactly 1 error.
  • mutation-control-missing-conditional-previous-visit.json (keeps visitedDominicanRepublicBefore: true but drops previousVisit1Date, testing the requiredWhen gate) — exactly 1 error.
  • mutation-control-missing-conditional-purpose-other.json (sets purposeOfVisit: "otros" but drops purposeOfVisitOtherSpecify) — exactly 1 error.
  • mutation-control-missing-supporting-documentation.json (sets documents.supportingDocumentation to false, testing the required documents[] entry) — exactly 1 error.
  • mutation-control-wrong-type-length-of-stay.json (sets lengthOfStayDays to a non-integer string) — exactly 1 error.

Structural validation

  • node tools/validate.mjs registry/do/mirex/visa-application/1.0.0/schema.jsonok.
  • node tools/validate-ajv.mjs registry/do/mirex/visa-application/1.0.0/schema.json (ajv 2020-12 against spec/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-index re-run in tools/govschema-client/ to regenerate registry-index.json with 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.0 draft latest this page has verification record schema.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.