Registry entry
Spain National (Long-Stay) Visa Application
Give the details for Spain's national (long-stay, Type D) visa application: the visa a non-EU/EEA/Swiss national needs before travelling to Spain for a stay exceeding the 90-day Schengen short-stay limit, for purposes including residence without a work permit, family reunification, employed or self-employed work, seasonal work, investment/entrepreneurship, study, internship, research, residence recovery, or accreditation. This document models the Ministerio de Asuntos Exteriores, Unión Europea y Cooperación's (MAEC) own 'Solicitud de visado nacional' / 'Application for a national visa' form, filed at the Spanish consulate with jurisdiction over the applicant's place of residence. The form's opening identity block (items 1-9) follows the same Schengen-harmonized personal-data numbering convention shared with Spain's own Schengen short-stay visa form and other EU member states' visa forms, but the remainder of the form (items 10-30) is genuinely Spain-specific: an 11-category residence-purpose taxonomy distinct from any other national visa form already in this registry, and three purpose-conditional data blocks (family-reunification sponsor, employer/company, educational establishment) with no counterpart in Germany's already-modelled de/auswaertiges-amt/national-visa-application (see VERIFICATION.md for the full field-by-field duplicate-detection comparison). It does not model Spain's own Schengen (Type C) short-stay visa form, a confirmed field-for-field duplicate of the already-modelled fr/france-visas/schengen-visa-application, nor any purpose-specific supplementary annex (e.g. an investor/entrepreneur visa's own economic-activity plan, or a specific bilateral working-holiday agreement) a consulate may request in addition to this base form for a given purpose. It does not submit the application; the live source is always authoritative.
Registry entry
es/maec/solicitud-visado-nacional
Machine access
- Schema document
registry/es/maec/solicitud-visado-nacional/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/es/maec/solicitud-visado-nacional/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
60 fields across 10 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.
Datos del solicitante / Applicant's identity
-
surnamestring requiredApellido(s) / Surname(s)
length: 0–200classification: pii -
surnameAtBirthstring optionalApellido(s) de nacimiento [apellido(s) anterior(es)] / Surname at birth (former surname(s))
length: 0–200classification: pii -
firstNamesstring requiredNombre(s) / First name(s)
length: 0–200classification: pii -
dateOfBirthdate requiredFecha de nacimiento (día-mes-año) / Date of birth
classification: sensitive-pii -
placeOfBirthstring requiredLugar de nacimiento / Place of birth
length: 0–150classification: pii -
countryOfBirthstring requiredPaís de nacimiento / Country of birth
length: 0–100classification: pii -
currentNationalitystring requiredNacionalidad actual / Current nationality
length: 0–100classification: pii -
nationalityAtBirthstring optionalNacionalidad de nacimiento, si difiere de la actual / Nationality at birth, if different
length: 0–100classification: pii -
otherNationalitiesstring optionalOtras nacionalidades / Other nationalities
length: 0–200classification: pii -
sexenum requiredSexo / Sex
enum: male | female -
maritalStatusenum requiredThe form's own checkbox list: Soltero-a/Single, Casado-a/Married, Unión registrada/Registered union, Separado-a/Separated, Divorciado-a/Divorced, Viudo-a/Widow(er), Otros/Other (with a free-text specify line). These are seven independent AcroForm checkbox widgets, not a native radio-button group; modelled as a single enum since the form's own layout presents them as one mutually exclusive choice, per this registry's established convention for this widget class.
enum: 7 values -
otherMaritalStatusDetailsstring optionalEstado civil -- Otros (especifíquese) / Marital status -- other (please specify)
length: 0–150
Menores y documento de viaje / Minors and travel document
-
guardianDetailsstring optionalA single free-text box collecting the legal guardian's full details, applicable only when the applicant is a minor. The form does not itself carry a separate 'is the applicant a minor?' checkbox to gate this field on, so it is left ungated rather than fabricating a condition the source does not state.
length: 0–500classification: pii -
nationalIdentityNumberstring optionalNúmero de documento nacional de identidad, si procede / National identity number, where applicable
length: 0–50classification: pii -
travelDocumentTypeenum requiredThe form's own checkbox list: Pasaporte ordinario/Ordinary passport, Pasaporte diplomático/Diplomatic passport, Pasaporte de servicio/Service passport, Pasaporte oficial/Official passport, Pasaporte especial/Special passport, Otro documento de viaje/Other (with a free-text specify line). Six independent AcroForm checkbox widgets, modelled as one enum per the same convention noted on maritalStatus.
enum: ordinary-passport | diplomatic-passport | service-passport | official-passport | special-passport | other -
otherTravelDocumentTypeDetailsstring optionalOtro documento de viaje (especifíquese) / Other travel document (please specify)
length: 0–150 -
travelDocumentNumberstring requiredNúmero del documento de viaje / Number of travel document
length: 0–50classification: pii -
travelDocumentDateOfIssuedate requiredFecha de expedición / Date of issue
-
travelDocumentValidUntildate requiredVálido hasta / Valid until
-
travelDocumentIssuedBystring requiredExpedido por (país) / Issued by (country)
length: 0–100
Contacto y residencia / Contact and residence
-
homeAddressAndEmailstring requiredThe source presents postal address and e-mail address as a single combined free-text box (one AcroForm field), not two separate boxes; modelled as one field rather than splitting a structure the source itself does not split.
length: 0–400classification: pii -
phoneNumbersstring requiredNúmero(s) de teléfono / Telephone number(s)
length: 0–150classification: pii -
residesInCountryOtherThanNationalityboolean requiredA genuine native AcroForm radio-button pair (No/Sí), unlike the independent-checkbox groups elsewhere on this form.
-
residencePermitNumberstring optionalPermiso de residencia o documento equivalente -- número / Residence permit or equivalent document -- number
length: 0–50 -
residencePermitValidUntildate optionalPermiso de residencia -- válido hasta / Residence permit -- valid until
-
currentOccupationstring requiredProfesión actual / Current occupation
length: 0–150
Motivo y datos del viaje / Purpose and journey details
-
purposeOfJourneyenum requiredThe form's own 12-option checkbox list, Spain's own residence-purpose taxonomy: Residencia sin finalidad laboral (no habilita para trabajar)/Residence without a work permit; Residencia para reagrupación familiar/Family reunification; Residencia y trabajo por cuenta ajena/Residence and employment; Residencia y trabajo por cuenta propia/Residence and self-employment; Residencia y trabajo de temporada por cuenta ajena (max. 9 meses al ano)/Seasonal employment (max. 9 months/year); Inversor/Emprendedor/Investor-entrepreneur; Estudios/Study; Prácticas/Internship; Investigación (en el marco de un convenio de acogida firmado por un organismo de investigación)/Research (under a hosting agreement signed by a research body); Recuperación de la residencia/Residence recovery; Acreditación/Accreditation; Otros/Other (with a free-text specify line). Twelve independent AcroForm checkbox widgets, modelled as one enum per the same convention noted on maritalStatus. This taxonomy has no equivalent structure in de/auswaertiges-amt/national-visa-application's own purpose enum (Employment/Study/Au-pair/Language course/Family reunion/Other) -- see VERIFICATION.md's duplicate-detection comparison.
enum: 12 values -
otherPurposeDetailsstring optionalMotivo del viaje -- Otros (especifíquese) / Purpose of journey -- other (please specify)
length: 0–200 -
intendedDateOfArrivaldate requiredFecha prevista de entrada en España / Intended date of arrival in Spain
-
numberOfEntriesRequestedenum requiredThree independent AcroForm checkbox widgets (Una/Dos/Multiples entradas), modelled as one enum per the same convention noted on maritalStatus.
enum: single | two | multiple -
addressInSpainstring requiredDomicilio postal del solicitante en España / Applicant's address in Spain
length: 0–400classification: pii
Resolución previa del órgano de extranjería / Prior immigration-authority ruling
-
nieNumberstring optionalPer the form's own footnote, only required when a prior ruling by the competent immigration authority (órgano de extranjería) has already authorized the applicant to reside or work in Spain -- the form does not gate this with a separate yes/no checkbox, so it is left ungated rather than fabricating that condition.
patternclassification: pii -
extranjeriaResolutionNotificationDatedate optionalSame conditional applicability as nieNumber (see its own description) -- left ungated for the same reason.
Datos del reagrupante / Family-reunification sponsor's details
-
sponsorFullNamestring optionalApellidos y nombre del reagrupante / Surname and first name of the sponsor (family reunification)
length: 0–200classification: pii -
sponsorRelationshipenum optionalThe form's own checkbox list: Cónyuge/Spouse, Pareja de hecho/Registered (de facto) partner, Hijo/a (del reagrupante o cónyuge)/Child (of the sponsor or spouse), Ascendiente de primer grado (del reagrupante o cónyuge) a su cargo/Dependent first-degree ascendant (of the sponsor or spouse), Persona dependiente sujeta a representación legal del reagrupante/Dependent person under the sponsor's legal representation, Otro (especifíquese)/Other (please specify). Six independent AcroForm checkbox widgets, modelled as one enum per the same convention noted on maritalStatus.
enum: spouse | registered-partner | child | dependent-ascendant | dependent-under-legal-representation | other -
otherSponsorRelationshipDetailsstring optionalParentesco -- Otro (especifíquese) / Family relationship -- other (please specify)
length: 0–150 -
sponsorDateOfBirthdate optionalFecha de nacimiento del reagrupante / Sponsor's date of birth
classification: pii -
sponsorNationalitystring optionalNacionalidad del reagrupante / Sponsor's nationality
length: 0–100classification: pii -
sponsorTravelDocumentOrIdNumberstring optionalNúmero de documento de viaje o del documento de identidad del reagrupante / Sponsor's travel document or identity document number
length: 0–50classification: pii -
sponsorAddressstring optionalDirección postal del reagrupante / Sponsor's postal address
length: 0–400classification: pii -
sponsorPhonestring optionalNúmero(s) de teléfono del reagrupante / Sponsor's telephone number(s)
length: 0–150classification: pii -
sponsorEmailstring optionalDirección de correo electrónico del reagrupante / Sponsor's e-mail address
length: 0–200classification: pii
Datos del empleador o de la empresa / Employer's or company's details
-
employerOrCompanyContactNamestring optionalApellidos y nombre del empleador o nombre de la empresa/institución y apellidos y nombre de la persona de contacto / Employer's or company's/institution's name and surname of the employer, or name of the company/institution and surname and first name of its contact person
length: 0–300classification: pii -
employerOrCompanyAddressstring optionalDirección postal del empleador o de la empresa/institución / Employer's or company's/institution's postal address
length: 0–400 -
employerOrCompanyPhonestring optionalNúmero de teléfono del empleador o de la empresa/institución / Employer's or company's/institution's telephone number
length: 0–150 -
employerOrCompanyEmailstring optionalCorreo electrónico del empresario o de la empresa/institución / Employer's or company's/institution's e-mail address
length: 0–200 -
employerOrCompanyRepresentativeIdNumberstring optionalNúmero de Identidad de Extranjero o Documento Nacional de Identidad del empleador o de la persona de contacto / Employer's or contact person's NIE or DNI number
length: 0–50classification: pii -
employerCompanyTaxIdstring optionalCódigo de Identificación Fiscal de la empresa / Company's Tax Identification Code (CIF)
length: 0–20
Datos del centro de estudios o investigación / Educational establishment's or research centre's details
-
educationalEstablishmentNamestring optionalNombre del centro de estudios o investigación / Name of the educational establishment or research centre
length: 0–300 -
educationalEstablishmentAddressstring optionalDirección postal del centro de estudios o investigación / Educational establishment's or research centre's postal address
length: 0–400 -
educationalEstablishmentPhonestring optionalNúmero de teléfono del centro de estudios o investigación / Educational establishment's or research centre's telephone number
length: 0–150 -
educationalEstablishmentEmailstring optionalCorreo electrónico del centro de estudios o investigación / Educational establishment's or research centre's e-mail address
length: 0–200 -
studiesStartDatedate optionalFecha prevista de inicio de los estudios o investigación / Intended date of start of studies or research
-
studiesEndDatedate optionalFecha prevista de finalización de los estudios o investigación / Intended date of end of studies or research
Desplazamiento temporal de menores con fines educativos / Temporary displacement of minors for educational purposes
-
minorHostNamestring optionalApplies only to the temporary displacement of minors for educational purposes under a program promoted/financed by a public administration, non-profit association, foundation, or other entity other than the persons holding parental authority/guardianship. The form does not gate this block with its own checkbox distinct from purposeOfJourney, so it is left ungated rather than fabricating a condition the source does not state.
length: 0–300classification: pii -
minorHostAddressstring optionalDirección postal de la persona que vaya a acoger al menor o de la entidad de acogida / Postal address of the host person or hosting entity
length: 0–400 -
minorHostPhonestring optionalNúmero de teléfono de la persona que vaya a acoger al menor o de la entidad de acogida / Telephone number of the host person or hosting entity
length: 0–150 -
minorHostEmailstring optionalCorreo electrónico de la persona que vaya a acoger al menor o de la entidad de acogida / E-mail address of the host person or hosting entity
length: 0–200 -
minorHostIdNumberstring optionalNúmero de Identidad de Extranjero o Documento Nacional de Identidad de la persona que vaya a acoger al menor / Host person's or contact person's NIE or DNI number
length: 0–50classification: pii
Firma / Signature
-
placeAndDateOfSigningstring requiredLugar y fecha / Place and date
length: 0–150
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-08
This is a GovSchema Standard Research cycle (GOV-1861), closing Spain's own explicitly-flagged Visa gap — CATALOG.md's "Known Gaps" section had listed Spain's Visa vertical as "an open, unscreened backlog candidate for a future cycle." Spain currently has 4 of 6 verticals (DMV, Business Formation, Taxes, National ID via es/dgp/tarjeta-identidad-extranjero); Passport is a confirmed dead end (Policía Nacional's DNI/passport channel is appointment-only, no downloadable form). This document opens Spain's Visa vertical, giving Spain 5 of its 6 verticals.
Why this candidate needed a fresh look, not a re-screen
A prior cycle (GOV-1652, the DGT DMV schema's own VERIFICATION.md) had already examined Spain's national visa form once and set it aside with the following note: "on close comparison, however, this is the same EU-harmonized national-visa template already modelled in this registry via de/auswaertiges-amt/national-visa-application ... both forms share the identical numbered-field structure ... consistent with the EU Regulation Annex that standardizes this form across Schengen states' national-visa channels." That characterization was then repeated as an established fact in three later documents' own VERIFICATION.md files (pl/mf/zeznanie-pit-37's note on Poland's own visa screening, cz/mzv/zadost-o-udeleni-dlouhodobeho-viza's "established convention" list, and CATALOG.md's own historical Executive Summary entries), each citing it rather than independently re-checking it.
Because the task brief for this cycle explicitly named this exact duplicate-detection convention and asked for the comparison to be shown "even if the answer here is not a duplicate," this cycle re-did the comparison from scratch rather than trusting the prior note: both the DE schema's own committed field list (registry/de/auswaertiges-amt/national-visa-application/1.0.0/schema.json, 81 fields) and the DE source PDF itself (re-fetched this cycle directly from auswaertiges-amt.de, re-extracted field-by-field via pdfjs-dist) were read in full, then compared side by side against Spain's own form (also independently re-fetched and re-extracted this cycle — see Sources examined below).
Finding: the prior "field-for-field duplicate" characterization does not hold up. The two forms' identity blocks (Spain's items 1-9: surname, surname at birth, first names, date/place/country of birth, nationality, sex, marital status) do follow the same Schengen-harmonized numbering convention already documented elsewhere in this registry as shared boilerplate across EU visa forms (see cz/mzv/zadost-o-udeleni-dlouhodobeho-viza's own VERIFICATION.md, which independently reached the same "shared opening block, diverges sharply afterward" conclusion for the Czech form against this same German template). But past that opening block the two forms have almost no structural overlap:
- Germany's own form (re-extracted this cycle,
de_visa.pdf, 5 pages, 81 modelled fields) has: a full spouse-details section (surname, former surname, first names, DOB, place/country of birth, nationality, place of residence); a children table; an unconditional parents section (father and mother, each with name/DOB/place-of-birth/nationality/residence); a "have you been to Germany before, list your last five stays" block; an accommodation-type question (single room/apartment with N rooms/ collective accommodation); a "do you intend to keep a permanent residence outside Germany" question; a "will family members accompany you" question; references in Germany; means of subsistence; health-insurance coverage; and, uniquely to Germany, a criminal-conviction disclosure (in Germany / abroad, each with when/where, reason, and penalty) and a notifiable-disease disclosure. None of this has any counterpart on Spain's form. - Spain's own form (re-extracted this cycle,
spain_visa_es.pdf, 4 pages, 110 AcroForm widgets) has, past its own item 9: a minors' guardian block (item 10); national-identity-number and travel-document fields (items 11-16, present in similar form on both — an ordinary overlap, not evidence of republication); contact/residence/occupation (items 17-19, likewise ordinary overlap with nearly every visa form in this registry); Spain's own 12-option residence-purpose taxonomy (item 20 — residence without a work permit, family reunification, employment, self-employment, seasonal employment, investor/entrepreneur, study, internship, research, residence recovery, accreditation, other); intended arrival date, number of entries, and address in Spain (items 21-23); a prior-immigration-ruling NIE/notification-date pair (items 24-25); and three fully structured, purpose-conditional blocks with no German counterpart at all — a family-reunification sponsor ("reagrupante") block with 9 fields including the sponsor's own NIE/DNI (item 26); an employer/company block with 6 fields including the company's own CIF tax ID (item 27); and an educational-establishment block with 6 fields (item 28) plus a distinct "temporary displacement of minors for educational purposes under third-party sponsorship" block (item 29).
Net: Spain's form shares only its opening ~9-item Schengen-harmonized identity block with Germany's, the same kind of shared boilerplate this registry already treats as expected convergence rather than duplication (see the CZ precedent above). Past that block the two forms diverge completely in both directions — Germany has extensive content (spouse, children, parents, prior-Germany-stays, accommodation, health, criminal history) absent from Spain's form, and Spain has extensive content (its own 12-category residence-purpose taxonomy, the sponsor/employer/school blocks) absent from Germany's form. This is a genuine, distinct national form, not a republication — the prior screening note is corrected by this document.
Spain's own Schengen (Type C) short-stay visa form, by contrast, is confirmed as a genuine duplicate — not modelled. Fetched this cycle (schengen_es.pdf, from a Spanish consulate's own site) and compared against fr/france-visas/schengen-visa-application: the two match field-for-field, including the destination-Member-State fields, the fingerprints-previously-collected question, the inviting-person-or-hotel block, and the "cost of travel funded by applicant/sponsor" section with matching means-of-subsistence checkbox sets — all present verbatim in the same order, consistent with the EU Regulation 810/2009 Annex I harmonized template that genuinely is binding across all Schengen states for the short-stay visa (unlike the national long-stay visa, which each member state designs independently). This confirms the same pattern already established for Poland's, Portugal's, Czechia's, and Switzerland's own Schengen short-stay forms. Not authored.
Sources examined
Source 1 (primary source, the form itself)
- Authority: Ministerio de Asuntos Exteriores, Unión Europea y Cooperación (MAEC)
- Document: "Solicitud de visado nacional" / "Application for a national visa"
- URL (as cited in
source.url): https://www.exteriores.gob.es/DocumentosAuxiliaresSC/M%C3%A9xico/M%C3%89XICO%20(C)/VIS/SolicitudVisadoNacional_ES.pdf (the same document is mirrored, byte-for-byte identical, at dozens of Spanish consulates' own subdomains — e.g.exteriores.gob.es/Consulados/nuevayork/...,exteriores.gob.es/Consulados/nador/..., and the unified public-administration portalone.gob.es/sites/default/files/2025-12/Solicitud%20de%20visado%20nacional.pdf, the latter dated 2025-12, corroborating this is the current, still-live edition). - Access note: fetched directly this cycle, HTTP 200, no login/CAPTCHA/WAF gate. A HEAD request to the same URL returns 403 (a WAF quirk affecting only HEAD requests — re-confirmed by immediately re-issuing a plain GET, which again returned HTTP 200 with an identical SHA-256 to the first fetch:
42549bddfe9ccc5512538b2fa6787b119ad41cff33f4e66717fc462dfb469a3a, 122,651 bytes). - Extraction method:
pdfjs-dist@3.11.174,legacy/build/pdf.js.getAnnotations()was used for the AcroForm widget layer — this edition of the form is a genuine fillable AcroForm PDF (110 widgets across 4 pages: 52 on page 1, 40 on page 2, 16 on page 3, 2 on page 4), with mostly descriptive Spanish field names (e.g."24 Número de Identificación de Extranjero NIE4","Apellidos y nombre del reagrupante"), not genericdato.X-style names.getTextContent()was combined with each widget's own rect (bounding box) into a y-descending, x-ascending ordered list per page, so every widget could be attributed to its printed label and numbered item by direct coordinate adjacency — the same method this registry used fores/dgt/solicitud-tramites-vehiculo. - Retrieved / reviewed: 2026-07-08.
- What it confirms: every field's exact printed Spanish label and its native AcroForm type (text/checkbox/radio); the 12-option purpose-of-journey checkbox grid (item 20); the "reagrupante"/employer/school blocks (items 26-28); and that the "PARTE RESERVADA A LA ADMINISTRACIÓN" (reserved for administration) column running down the right margin of pages 1-2 — the application-number/case-handler/decision/validity/entries-granted fields the consulate itself fills in — is a distinct set of widgets from the applicant-facing fields, excluded from
fields[]accordingly (see Judgment call 1 below).
Source 2 (corroborating, "still current" check)
one.gob.es/sites/default/files/2025-12/Solicitud%20de%20visado%20nacional.pdf(fetched this cycle, HTTP 200, 131,163 bytes) — a flat (non-AcroForm) copy of the same 30-item form hosted on Spain's unified public-administration portal, dated December 2025 per its own URL path. Its own text content was extracted and cross-checked word-for-word against Source 1's own text for every numbered item; both match. This corroborates Source 1 as the current, still-live edition rather than a stale mirror.
Source 3 (Schengen short-stay comparison, confirming a duplicate — not modelled)
exteriores.gob.es/Consulados/londres/en/ServiciosConsulares/Documents/Schengen%20Application%20Form.pdf(fetched this cycle, HTTP 200) — Spain's own Schengen (Type C) short-stay visa application, bilingual Spanish/English. Compared field-for-field againstfr/france-visas/schengen-visa-application's own committed field list — a full match (see "Why this candidate needed a fresh look" above for the detail). Confirms the established duplicate; not authored.
Source 4 (duplicate-detection comparison target)
de/auswaertiges-amt/national-visa-application's own source PDF, re-fetched this cycle directly fromauswaertiges-amt.de/resource/blob/207850/f9342033f2933dc05da54151efe283db/aufenthalten-data.pdf(HTTP 200, 496,828 bytes), plus the schema's own committedschema.json(81 fields). Both were read and compared in full against Spain's own form — see "Why this candidate needed a fresh look" above for the field-by-field comparison this produced.
Field inventory (Phase 3)
All 60 fields[] entries and their exact source item number are recorded inline in schema.json's own sourceRef per field. Summary by step:
| Step | Fields | Source items | Notes | |---|---|---|---| | applicant_identity | 12 | 1-9 | The Schengen-harmonized opening identity block; maritalStatus modelled as one enum from 7 independent checkbox widgets (see Judgment call 2) | | minor_and_travel_document | 8 | 10-16 | guardianDetails (item 10) left ungated — see Judgment call 3 | | contact_and_residence | 6 | 17-19 | homeAddressAndEmail modelled as one field, matching the source's own single combined box (see Judgment call 4) | | journey_details | 5 | 20-23 | purposeOfJourney, Spain's own 12-option residence-purpose taxonomy, modelled as one enum from 12 independent checkbox widgets | | prior_extranjeria_resolution | 2 | 24-25 | Both left ungated per the source's own footnote — see Judgment call 5 | | family_reunification_sponsor | 9 | 26 | requiredWhen purposeOfJourney == "family-reunification", per the item's own printed header | | employer_or_company | 6 | 27 | requiredWhen purposeOfJourney in [residence-and-employment, residence-and-self-employment, seasonal-employment, internship], per the item's own printed header ("en caso de solicitar un visado de residencia y trabajo/prácticas") | | educational_establishment | 6 | 28 | requiredWhen purposeOfJourney in [study, research], per the item's own printed header | | minor_temporary_educational_displacement | 5 | 29 | Left ungated — a distinct scenario from item 28, no explicit gating checkbox on the source (see Judgment call 6) | | signature | 1 | 30 | Physical signature itself not modelled, per this registry's standing convention |
Total: 60 fields, 7 documents[] entries, 2 crossFieldValidation rules.
Access notes and judgment calls
- The entire "PARTE RESERVADA A LA ADMINISTRACIÓN" (reserved for administration) column is excluded from
fields[]. This right-margin block on pages 1-2 (application date, application number, case handler, the documents-received checklist, the visa decision, validity dates, and entries/days granted) is filled in by the consulate, not the applicant — the same class of exclusion this registry applies elsewhere to internal-marker or office-use-only widgets (e.g.es/dgt's own excluded "Imprimir" button and stray margin widget). The documents-received checklist within this column, however, genuinely does describe the supporting-document types the consulate expects, so it is separately captured indocuments[](see Judgment call 7). - Every choice-of-one section (
maritalStatus,travelDocumentType,purposeOfJourney,numberOfEntriesRequested,sponsorRelationship) is modelled as a singleenumfield, not a set of booleans with anexclusivityGroupsentry. Each of these is a set of independent AcroForm checkbox widgets (confirmed viagetAnnotations():radioButton: false, checkBox: trueon every one), not a native radio-button group — unlikeresidesInCountryOtherThanNationality(item 18), which genuinely is a native radio pair (radioButton: true) and is modelled as abooleanaccordingly. Modelling the checkbox groups as a single enum follows the precedentcz/mzv/zadost-o-udeleni-dlouhodobeho-vizaset for this exact situation (its ownsex,maritalStatus, andpurposeOfStayfields), rather than the boolean-plus-exclusivityGroupsconventiones/aeat's Modelo 030/036 used for its own independent checkboxes — both are established patterns in this registry; this document follows the one set by its closer sibling (same vertical, same registry cycle's own reference example). guardianDetails(item 10) is leftrequired: falsewith no gating condition. The form's own instruction ("en caso de menores de edad") makes this conditional on the applicant being a minor, but no separate "is the applicant a minor?" field or checkbox exists on the form to gate on — fabricating one would assert a condition the source does not itself state as a checkable field.homeAddressAndEmail(item 17) merges postal address and e-mail address into one field, because the source itself presents them as a single combined free-text AcroForm box ("17 Domicilio postal y dirección de correo electrón..."), not two separate boxes — splitting it would fabricate a structure the source does not have, the same non-fabrication disciplinees/dgtapplied to its own combined NIF/NIE/CIF box.nieNumberandextranjeriaResolutionNotificationDate(items 24-25) are both left ungated. The form's own footnote states these are "imprescindibles cuando exista una resolución previa dictada por el órgano de extranjería competente" (indispensable when a prior ruling by the competent immigration authority already exists) — a condition about the applicant's immigration history, not something any other field on this form states or gates on, so norequiredWhenwas fabricated for it.- The item 29 minor-temporary-educational-displacement block is left ungated, for the same reason as
guardianDetails: it describes a distinct scenario (a minor travelling under a public administration/non-profit/foundation-sponsored educational program, as opposed to their own parent/guardian) with no separate checkbox distinguishing it from the ordinarystudy/researchpurpose values, and applies to a minor rather than the primary applicant regardless ofpurposeOfJourney. documents[]derives from the administration's own "documents presented" checklist, the same way this registry has previously treated comparable office-use checklists as a source for required supporting documents (e.g.cz/mzv's own checklist-deriveddocuments[]). Of the checklist's ten checkbox items (travel document; governmental authorization; application for governmental authorization; means of subsistence; proof of accommodation; medical certificate; criminal-record certificate; travel medical insurance; nota verbal; other), four map to universal, unconditional entries this cycle judged confidently required for every application (applicantPhoto, sourced separately from the form's own page-1 "FOTO" header rather than the checklist;travelDocument;subsistenceMeansProof;accommodationProof), and three map to entries this cycle could not confirm a universal trigger for and so modelled as optional (medicalCertificate,criminalRecordCertificate,travelMedicalInsurance) — the checklist itself does not state whichpurposeOfJourneyvalue(s), if any, make each mandatory. "Autorización gubernativa" / "Solicitud de autorización gubernativa" (a narrow nationality-specific prior-authorization requirement) and "Nota Verbal" (a diplomatic-channel document) were judged too narrow/edge-case for a v1.0.0documents[]entry and are not modelled.nieNumber'svalidation.pattern(^[XYZ][0-9]{7}[A-Z]$) covers only the NIE format, unlikees/dgt's combined NIF/NIE/CIF regex — this form's own item 24 box is explicitly labelled "Número de Identificación de Extranjero (NIE)" alone, not a unified identity-document box.crossFieldValidationmodels two checks:travelDocumentValidUntilaftertravelDocumentDateOfIssue(the same checkde/auswaertiges-amt/national-visa-applicationandcz/mzv/zadost-o-udeleni-dlouhodobeho-vizaboth already model), andstudiesEndDateafterstudiesStartDate(new to this document, since this form is the first in this registry's Visa vertical to model a distinct start/end date pair for a course of study).- The MAEC's own authenticated online channels (e.g. the visa-tracking portal referenced on consulate pages, and any Sede Electrónica submission flow) are out of scope for this v1.0.0 — this document models the paper/PDF form's own field set, the live source is always authoritative, consistent with this registry's standing scope convention for form-vs-portal candidates.
Test run (Phase 4)
No live submission was attempted: this is a request form against a real national visa-issuing authority, and submitting fabricated identity data into a real government system is not a safe or reversible action.
Instead, a fully hand-constructed mock record was built from this document's own field inventory (conformance/es/maec/solicitud-visado-nacional/1.0.0/application-packet.json) and independently checked with a standalone, ajv-free rule-tracing script (not committed — reads schema.json's own required/requiredWhen/ validation.pattern/validation.enum/validation.maxLength/ crossFieldValidation and evaluates them against each mock record), in addition to the repo's own validators.
Committed scenario — Ngozi Okafor, a Nigerian nurse applying for a family-reunification visa to join her spouse (a Spanish national) already resident in Madrid. purposeOfJourney: "family-reunification" correctly requires the full sponsorFullName…sponsorEmail block (via the requiredWhen tie) while leaving the employerOrCompany* and educationalEstablishment* blocks absent. Passes with zero errors.
Two further scenarios (traced only, not committed as separate fixture files): (1) Wei Chen, a Chinese student applying under purposeOfJourney: "study" with the educationalEstablishment* block and studiesStartDate/studiesEndDate populated, sponsor and employer blocks absent — passes with zero errors. (2) João Silva, a Brazilian software engineer applying under purposeOfJourney: "residence-and-employment" with the employerOrCompany* block populated — the first run of this scenario correctly caught a gap in the test data (a missing employerOrCompanyRepresentativeIdNumber, required whenever purposeOfJourney is one of the four work-related values), not a schema defect; corrected before the final run, which passes with zero errors.
Five negative controls (each expected to fail exactly one rule, run against the committed family-reunification packet): (a) removing sponsorFullName while purposeOfJourney is "family-reunification" — correctly flagged as a missing required field; (b) setting purposeOfJourney: "vacation" — correctly flagged as a validation.enum violation; (c) nieNumber: "1234567" (7 digits, no letters) — correctly flagged as a validation.pattern violation; (d) swapping travelDocumentDateOfIssue/travelDocumentValidUntil so the document is valid before it was issued — correctly flagged as a crossFieldValidation violation; (e) residesInCountryOtherThanNationality: true with no residencePermitNumber/residencePermitValidUntil supplied — correctly flagged as two missing required fields (the requiredWhen tie fires on both). All five negative controls were correctly rejected; no defects were found in the schema itself.
Both registry validators were run against the finished document and pass clean:
``` $ node tools/validate.mjs registry/es/maec/solicitud-visado-nacional/1.0.0/schema.json ok registry/es/maec/solicitud-visado-nacional/1.0.0/schema.json
1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/es/maec/solicitud-visado-nacional/1.0.0/schema.json ok registry/es/maec/solicitud-visado-nacional/1.0.0/schema.json [v0.3]
1/1 document(s) validated against the meta-schema (ajv 2020-12). ```
What is NOT modelled (out of scope), and why
- Spain's own Schengen (Type C) short-stay visa form — confirmed a field-for-field duplicate of
fr/france-visas/schengen-visa-application(see "Why this candidate needed a fresh look" above). - CIRCE's Documento Único Electrónico, MAEC's own authenticated visa-tracking portal, and any purpose-specific supplementary annex (e.g. an investor/entrepreneur visa's own economic-activity plan) a consulate may request in addition to this base form.
- The "PARTE RESERVADA A LA ADMINISTRACIÓN" column (application number/case-handler/decision/validity-granted fields) — office-use-only, not applicant-facing (see Judgment call 1).
- The physical signature itself (item 30's second half) — per this registry's standing convention.
Scope and jurisdiction notes
This document gives Spain 5 of its 6 verticals (DMV, Business Formation, Taxes, National ID, Visa); Passport remains a confirmed dead end (appointment-only, no downloadable form — see es/dgt/solicitud-tramites-vehiculo's own VERIFICATION.md).
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 Asuntos Exteriores, Unión Europea y Cooperación or any government. The authoritative source is always the live government form and its official instructions.