Registry entry

Spain DGT Vehicle Procedures Request Form (Modelo 01)

The Dirección General de Tráfico's (DGT, Spain's traffic/vehicle authority, part of the Ministerio del Interior) Modelo 01, 'Solicitud - Trámites de Vehículos' — the single, standard paper/PDF request form a vehicle owner (or their representative) presents in person at a Jefatura de Tráfico (traffic office) to request any one of seven vehicle-registry procedures: a duplicate circulation permit (loss, theft, deterioration, name/surname/company-name change, technical-data change, or change of domicile); a vehicle information report (for up to eight plates); deregistration (temporary or definitive, each for a voluntary/theft/export/lease-end/EU-transit reason); reactivation from a temporary deregistration; new registration (ordinary or historic); a temporary circulation permit (for a registered or not-yet-registered vehicle, a pre-registration permit, a 10-day permit, or transfer abroad); or reinstatement ('rehabilitación') of a permit. A single top-level radio-button choice ('trámite') selects which of the seven procedures is being requested, and — for five of the seven — a second radio-button group narrows the specific reason/sub-type; the form's own shared header blocks (vehicle data, vehicle's registered domicile, and the requesting party's identity) apply across every procedure. The form also carries an optional 'conductor habitual' (habitual driver) notification block, distinct from the requesting party, and a free-text 'Otros' block. The form is genuinely downloadable and fillable (a 2-page AcroForm PDF hosted directly on sede.dgt.gob.es; page 2 is a printed instructions/fee/code-table page carrying no fillable fields). Deliberately does not model: DGT's own authenticated online-filing channel (available via Cl@ve/digital certificate for several of these same procedures, an entirely different session-based flow this document does not attempt to describe); the external municipal-census ('empadronamiento') and IAE datasets DGT's own instructions state it will consult electronically rather than have the applicant supply; or the physical-signature lines themselves, which are not applicant-supplied data. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Spain or the Dirección General de Tráfico.

Registry entry

es/dgt/solicitud-tramites-vehiculo

Jurisdiction
Spain · national
Version
1.0.0
Verification
draft

Authoritative source Modelo 01 ('MOD. 01/2025-08-ES'), 'Trámites de Vehículos' / 'Solicitud', Dirección General de Tráfico (DGT), Ministerio del Interior (2-page fillable AcroForm PDF; page 2 is a non-fillable instructions/fee/code-table page)

Machine access

Schema document
registry/es/dgt/solicitud-tramites-vehiculo/1.0.0/schema.jsonapplication/schema+json
Registry catalog
registry/index.jsonone record per schema id

Field reference

47 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

  • matricula string optional

    Vehicle's licence plate number. Applies to every procedure except 'informe de vehículos' (which carries its own dedicated list of up to eight plates below) and, typically, 'matriculación' (a not-yet-registered vehicle has no plate yet) — the form's own header block is shared across all seven procedures with no field distinguishing which apply, so this document leaves it required:false throughout rather than fabricating a per-procedure gate the source does not itself state.

    length: 0–8
  • fechaMatriculacionVehiculo date optional

    Date the vehicle was first registered, printed dd/mm/aaaa.

  • bastidorNive string optional

    Chassis number / NIVE (Número de Identificación de Vehículo) of the vehicle.

    length: 0–32
  • tipoViaDomicilioVehiculo string optional

    Street-type abbreviation (e.g. Calle, Avenida) of the vehicle's registered domicile (domicilio de empadronamiento del titular del vehículo).

    length: 0–10
  • nombreViaDomicilioVehiculo string optional

    Street name of the vehicle's registered domicile.

    length: 0–40
  • numeroDomicilioVehiculo string optional

    House/building number of the vehicle's registered domicile.

    length: 0–10
  • bloqueDomicilioVehiculo string optional

    Block identifier of the vehicle's registered domicile, when applicable.

    length: 0–10
  • portalDomicilioVehiculo string optional

    Portal/entrance identifier of the vehicle's registered domicile, when applicable.

    length: 0–10
  • escaleraDomicilioVehiculo string optional

    Staircase identifier of the vehicle's registered domicile, when applicable.

    length: 0–10
  • plantaDomicilioVehiculo string optional

    Floor of the vehicle's registered domicile, when applicable.

    length: 0–10
  • puertaDomicilioVehiculo string optional

    Door identifier of the vehicle's registered domicile, when applicable.

    length: 0–10
  • kmDomicilioVehiculo string optional

    Kilometre-marker identifier of the vehicle's registered domicile, for addresses on a rural/interurban road (e.g. carretera + km).

    length: 0–8
  • codigoPostalDomicilioVehiculo string optional

    Postal code of the vehicle's registered domicile. Tightened to Spain's standard 5-digit format as a disclosed judgment call (the native AcroForm widget carries no maxLen/pattern of its own): this section is explicitly the domicilio de empadronamiento (Spanish municipal-census domicile), necessarily a domestic Spanish address.

    pattern
  • provinciaDomicilioVehiculo enum optional

    Province of the vehicle's registered domicile, selected from the widget's own embedded dropdown list (Spain's 50 provinces plus the autonomous cities Ceuta and Melilla).

    enum: 52 values
  • municipioDomicilioVehiculo string optional

    Municipality of the vehicle's registered domicile. The source widget is itself a combo box, but its own option list is populated dynamically after 'Provincia' is chosen (the PDF ships zero embedded options for this field) — left a plain string, since no static municipality list is reproduced in this document.

  • localidadDomicilioVehiculo string optional

    Locality of the vehicle's registered domicile, when distinct from the municipality above.

  • nifNieCifInteresado string required

    Tax/identity number of the requesting party (interesado) — NIF for a Spanish natural person, NIE for a foreign resident, or CIF for a legal entity. Modelled required:true: every submission, regardless of which of the seven procedures is requested, needs to identify who is filing. Pattern combines the three coexisting formats this single widget accepts.

    patternclassification: sensitive-pii
  • fechaNacimientoInteresado date optional

    Date of birth of the requesting party, printed dd/mm/aaaa. Not applicable when the interesado is a legal entity (razón social) rather than a natural person — the form provides no separate field distinguishing the two, so this is left optional rather than gated.

    classification: sensitive-pii
  • telefonoInteresado string optional

    Telephone number of the requesting party.

    length: 0–9classification: pii
  • nombreRazonSocialInteresado string optional

    Given name of the requesting party, or company name (razón social) if the interesado is a legal entity.

    length: 0–40classification: pii
  • primerApellidoInteresado string optional

    First (paternal) surname of the requesting party, when a natural person.

    length: 0–40classification: pii
  • segundoApellidoInteresado string optional

    Second (maternal) surname of the requesting party, when applicable.

    length: 0–40classification: pii
  • correoElectronicoInteresado string optional

    Email address of the requesting party.

    classification: pii
  • tramite enum required

    The single vehicle procedure being requested — the form's own top-level, mutually-exclusive radio-button choice ('SELECCIONE EL TRÁMITE QUE DESEA REALIZAR Y RELLENE LOS CAMPOS CORRESPONDIENTES'). Native AcroForm radio-button group (field name 'tramite'), so modelled as a single enum, not separate booleans — consistent with this registry's established convention for native single-choice PDF radio groups (e.g. co/runt/formulario-solicitud-tramites-vehiculo's tramiteType).

    enum: 7 values
  • duplicadoMotivo enum optional

    Reason for requesting a duplicate circulation permit, when tramite is 'duplicado'.

    enum: extravio | deterioro | sustraccion | cambio_domicilio | variacion_nombre_apellidos_razon_social | variacion_datos_tecnicos
  • matriculaInformeVehiculo1 string optional

    First plate number for which an 'informe de vehículos' (vehicle information report) is requested, when tramite is 'informe'. The source provides a fixed grid of eight plate boxes with no field indicating how many are actually used per submission; this document requires at least the first (a report needs at least one plate) and leaves the remaining seven optional, rather than fabricating a minimum/maximum count the form itself does not state.

    length: 0–8
  • matriculaInformeVehiculo2 string optional

    Second plate number for the vehicle information report, when more than one vehicle is being reported.

    length: 0–8
  • matriculaInformeVehiculo3 string optional

    Third plate number for the vehicle information report, when more than two vehicles are being reported.

    length: 0–8
  • matriculaInformeVehiculo4 string optional

    Fourth plate number for the vehicle information report, when more than three vehicles are being reported.

    length: 0–8
  • matriculaInformeVehiculo5 string optional

    Fifth plate number for the vehicle information report, when more than four vehicles are being reported.

    length: 0–8
  • matriculaInformeVehiculo6 string optional

    Sixth plate number for the vehicle information report, when more than five vehicles are being reported.

    length: 0–8
  • matriculaInformeVehiculo7 string optional

    Seventh plate number for the vehicle information report, when more than six vehicles are being reported.

    length: 0–8
  • matriculaInformeVehiculo8 string optional

    Eighth (last) plate number for the vehicle information report, the maximum this form's own grid accommodates.

    length: 0–8
  • bajaMotivo enum optional

    Type (Temporal/Definitiva) and reason for deregistering the vehicle, when tramite is 'baja'. Visually confirmed via a rendered page crop as a 2-column (Temporal/Definitiva) x 3-row grid, plus one additional reason per column not shared with the other: Temporal offers Voluntaria, Sustracción, and Fin de arrendamiento; Definitiva offers Voluntaria, Exportación, and Tránsito comunitario.

    enum: temporal_voluntaria | temporal_sustraccion | temporal_fin_arrendamiento | definitiva_voluntaria | definitiva_exportacion | definitiva_transito_comunitario
  • altaBajaTemporalMotivo enum optional

    Reason the vehicle is being reactivated ('alta') from a prior temporary deregistration, when tramite is 'alta_de_baja_temporal'.

    enum: voluntaria | sustraccion
  • matriculacionTipo enum optional

    Whether the registration being requested is an ordinary new registration or a historic-vehicle registration, when tramite is 'matriculacion'.

    enum: ordinaria | historica
  • servicioVehiculo enum optional

    Public- or private-service classification code the vehicle is put into service under, selected from the widget's own embedded dropdown. Positioned inside the 'MATRICULACIÓN' block but the source does not itself state this is mandatory for every registration, so left required:false with no requiredWhen gate rather than asserting one. The widget's own option list omits two codes ('A-09 Obras', 'B-07 Ambulancia') that page 2's own descriptive code-table legend otherwise documents — a minor inconsistency in the source itself, flagged here rather than silently corrected; this document enumerates only the codes the widget itself actually offers.

    enum: 25 values
  • codigoElectronicoMatriculacion string optional

    Electronic registration code (CEM), when the applicant already holds one — typically supplied by a dealer/manufacturer ahead of a new-vehicle registration.

  • codigoElectronicoMaquinariaAgricola string optional

    Electronic agricultural-machinery registration code (CEMA), the agricultural-vehicle equivalent of the CEM above, when applicable.

  • permisoTemporalTipo enum optional

    Type of temporary circulation permit being requested, when tramite is 'permiso_temporal'. Visually confirmed as a 2-column grid: 'Empresas' offers a registered or not-yet-registered vehicle; 'Particulares' offers transfer abroad, a permit prior to registration, or a 10-day permit.

    enum: empresa_vehiculo_matriculado | empresa_vehiculo_sin_matricular | particular_traslado_extranjero | particular_previa_matriculacion | particular_10_dias
  • nifNieConductorHabitual string optional

    Tax/identity number of the habitual driver ('conductor habitual'), when the requesting party wants to notify DGT of a driver distinct from themselves. This whole block is optional and independent of which trámite is selected above.

    length: 0–13classification: sensitive-pii
  • nombreConductorHabitual string optional

    Given name of the habitual driver.

    length: 0–40classification: pii
  • primerApellidoConductorHabitual string optional

    First (paternal) surname of the habitual driver.

    length: 0–40classification: pii
  • segundoApellidoConductorHabitual string optional

    Second (maternal) surname of the habitual driver, when applicable.

    length: 0–40classification: pii
  • otros string optional

    Free-text remarks/additional information the applicant wants to add, not captured by any other field on the form.

    length: 0–350
  • lugarFirma string optional

    Place of signature ('En ___, a ___ de ___ de ___').

  • fechaFirma date optional

    Date of signature. Merged from three adjacent day/month/year text boxes into one date field, per this registry's established date-merge convention (e.g. es/aeat/declaracion-censal-personas-fisicas-modelo-030's fechaFirma). The same asymmetry disclosed on that sibling schema recurs here: the day (maxLen 2) and year (maxLen 4) sub-boxes are purely numeric-sized, but the month sub-box carries maxLen 10 — wide enough for a spelled-out month name (e.g. 'julio') rather than a 2-digit number. Normalized to a single ISO date regardless.

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: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-07

This is a GovSchema Standard Research cycle (GOV-1652), screening Spain's five remaining open verticals (Passport, DMV, Business Formation, Visa, National ID & Civic Documents) after Spain opened as this registry's 21st jurisdiction via GOV-1645 (Taxes, AEAT Modelo 030). This document opens Spain's DMV vertical.

Why this candidate

The brief was to find a real, currently-live, unauthenticated, field-level government source filling one of Spain's remaining open verticals. This cycle screened the following candidates, in the order investigated:

  1. Visa — Spain's national (long-stay, Type D) visa application. exteriores.gob.es publishes a genuine, free ("Impreso gratuito"), directly downloadable AcroForm PDF ("Solicitud de visado nacional" / "Application for a national visa"), mirrored across dozens of consulate subdomains — fetched directly (HTTP 200), text/AcroForm-extracted via pdfjs-dist (110 widgets across 4 pages, mostly descriptive field names, not generic dato.X). 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 (Germany's own "Antrag auf Erteilung eines nationalen Visums") — both forms share the identical numbered-field structure (1. Apellido(s), 2. Apellido(s) de nacimiento, 3. Nombre(s), ... 26-29 reagrupante/empleador/centro de estudios blocks), consistent with the EU Regulation Annex that standardizes this form across Schengen states' national-visa channels. Authoring it again would duplicate an existing schema, not fill a gap — the same class of rejection this registry has already applied to NL's Schengen visa (dupes FR). Not picked.
  2. Business Formation — CIRCE's Documento Único Electrónico (DUE). A real, unauthenticated-landing-page system (administracion.gob.es, paeelectronico.es), but the DUE is explicitly CIRCE's own "master form" that unifies 25+ separate administrative forms (Agencia Tributaria, Seguridal Social, Registro Mercantil, Notaría, etc.), varies by company type (SL, SLFS, Comunidad de Bienes, autónomo, ...), and is filed through an authenticated online portal (PAE Virtual) rather than a single static field-level document. Judged too broad/unbounded for one session, the same class of rejection this registry applies to other 100+-field, multi-form-unifying sources. Not picked; a narrower single-company-type DUE sub-form could be a future candidate if one is found isolated from the rest.
  3. Passport / National ID — Policía Nacional (DNI/pasaporte). sede.policia.gob.es and citapreviadnie.es confirm both processes run through an in-person Documentation Unit appointment (citapreviadnie.es), with no downloadable field-level application form found for either the DNI or the passport itself — the same appointment-only, biometric-capture pattern this registry has confirmed for comparable processes elsewhere (e.g. Argentina's RENAPER, screened in GOV-1645). A distinct, separately-issued document — the EX-15 "Solicitud de Número de Identidad de Extranjero (NIE) y Certificados" — is a real downloadable form, but it is a foreigner-registration/tax-identification number process administered by the same Policía Nacional, not Spain's own national identity document; left as a possible future National ID/Civic Documents candidate rather than picked this cycle, since DMV's own candidate (below) was cleanly stronger.
  4. DMV — DGT's Modelo 01 'Trámites de Vehículos' (this document). The Dirección General de Tráfico publishes a single, standard, multi-procedure vehicle-request form covering seven distinct vehicle-registry procedures via one shared AcroForm PDF — genuinely unauthenticated, currently maintained (own printed edition marker 'MOD. 01/2025-08-ES'), and confirmed as the actual official in-person form by a second, independent DGT source (see below). Same class of source as the sibling co/runt/formulario-solicitud-tramites-vehiculo (a single official multi-trámite vehicle-procedure request form) already in this registry. Picked as this cycle's candidate.

Sources examined

Source 1 (primary source, the form itself)
  • Authority: Dirección General de Tráfico (DGT), Ministerio del Interior
  • Document: Modelo 01 ("MOD. 01/2025-08-ES"), "Trámites de Vehículos" / "Solicitud"
  • URL (as cited in source.url): https://sede.dgt.gob.es/export/sites/dgt/.galleries/modelos-solicitud/01/Mod.01-ES.pdf
  • Access note: sede.dgt.gob.es times out on every direct connection attempt from this environment — curl -v confirms DNS resolves the host (195.53.65.140) but the TCP handshake itself never completes (Connection timed out after 12001 milliseconds), the same class of access issue this registry has previously worked around for other government domains via Wayback Machine snapshots. The form was retrieved instead via the Wayback Machine's most recent crawl of the exact URL above, timestamp 20260603024414 (2026-06-03), HTTP 200, 308,633 bytes, SHA-256 2afca792f740a1f05d1f870f4e2afb1b0394bf7c3d9d8045da6024779bacdff5. The Wayback CDX index for this exact URL shows an unbroken run of identical-digest captures (7DHG2UKNM23A3SU2NFV5VV7JFUO5REPJ) from 2026-01-04 through 2026-06-03 (the most recent crawl available), i.e. this edition of the form was still the live one as of days before this cycle's own retrieval date.
  • Extraction method: pdfjs-dist@3.11.174, legacy/build/pdf.js (CJS build), plus the canvas package for a rendered visual cross-check. getAnnotations() was used for the AcroForm widget layer (field name, type, rect, maxLen, checkbox/radio flag, and — for the two Ch (choice) widgets that carry them — each widget's own embedded options list); page 1 carries 73 widgets, page 2 (an instructions/fee/code-table page) carries zero. getTextContent() was used for each page's own text layer, combined with the widget rects into a y-descending, x-ascending ordered list per page to attribute each widget to its printed label. Because the top 'SELECCIONE EL TRÁMITE...' block packs three trámite/sub-trámite radio groups side by side in a dense grid with several ambiguous rows (in particular BAJA's Temporal/Definitiva 2-column x 3-row grid and PERMISO TEMPORAL's Empresas/Particulares grid), that specific region was additionally rendered at 3x zoom via pdfjs-dist's own page.render() into a canvas bitmap and visually cropped/inspected before any radio-group export value was attributed to a specific label in schema.json — no attribution in this document relies on the coordinate/text match alone without this visual cross-check having been performed for that region.
  • Retrieved / reviewed: 2026-07-07.
  • What it confirms: every field's exact printed label, its native AcroForm type (text/checkbox/radio/choice) and maxLen where the source asserts one; the seven-way top-level trámite radio group and the five narrower sub-trámite radio groups nested beneath five of those seven trámites; the two Ch widgets' own embedded option lists (Provincia's 52 provinces, and the vehicle-service code list); and that page 2 carries no fillable fields at all (a plain instructions/fee/code-table page).
Source 2 (corroborating, "this is the real official form" check)
  • DGT's own accompanying information sheet, 05-Duplicados-y-renovaciones-permiso-circulacion.pdf (also Wayback-retrieved, HTTP 200, 201,460 bytes), for the "Duplicados y renovaciones del permiso de circulación" procedure group — one of the seven this document models. Its own text states the in-person channel requires "Solicitud en impreso oficial. (Impreso disponible en www.dgt.es)" — confirming Modelo 01 is indeed the official downloadable impreso this procedure group's in-person filing requires, not an unrelated or superseded form — and separately documents the accompanying identity-document requirement modelled in this document's own documents[] entry (see Judgment call 7 below).
  • DGT's own service landing pages (sede.dgt.gob.es/es/vehiculos/..., sede.dgt.gob.es/es/permisos-de-conducir/..., both found via web search but not independently fetched this cycle beyond their search-result summaries, since the primary form PDF and its own instruction sheet already gave a stronger, directly-checkable confirmation) describe the same procedures this form's own trámite/sub-trámite grid names, and confirm the online (Cl@ve/certificado-authenticated) channel this document deliberately does not model as an alternative to the paper form.

Field inventory (Phase 3)

All 47 fields[] entries and their exact source widget/box/label are listed inline in schema.json's own sourceRef per field. Summary by section:

| Section | Fields | Notes | |---|---|---| | Datos del vehículo | matricula, fechaMatriculacionVehiculo, bastidorNive | All optional — this header block is shared across all seven trámites with no field distinguishing which apply | | Domicilio del vehículo | 10 fields (Tipo de vía … Localidad) | All optional; provinciaDomicilioVehiculo is a closed enum (the widget's own 52 embedded province options) | | Datos del interesado | 7 fields | nifNieCifInteresado is the only field modelled required: true unconditionally — every submission needs to identify the requesting party | | Selección de trámite | tramite (enum, 7 values) | required: true — the form's own top-level radio-button choice | | Duplicados del permiso de circulación | duplicadoMotivo (enum, 6 values) | requiredWhen tramite == "duplicado" | | Informe de vehículos | matriculaInformeVehiculo18 | Only slot 1 is requiredWhen tramite == "informe"; the remaining 7 are optional (the form's own fixed 8-box grid carries no field stating how many are actually used) | | Baja | bajaMotivo (enum, 6 values) | requiredWhen tramite == "baja"; visually confirmed as a Temporal/Definitiva x 3-reason grid | | Alta de baja temporal | altaBajaTemporalMotivo (enum, 2 values) | requiredWhen tramite == "alta_de_baja_temporal" | | Matriculación | matriculacionTipo (enum, 2), servicioVehiculo (enum, 25), codigoElectronicoMatriculacion, codigoElectronicoMaquinariaAgricola | Only matriculacionTipo is requiredWhen-gated; the other three are left ungated (see Judgment call 5) | | Permiso temporal | permisoTemporalTipo (enum, 5 values) | requiredWhen tramite == "permiso_temporal"; visually confirmed as an Empresas/Particulares grid | | Rehabilitación | (none) | The trámite itself carries no further sub-fields | | Notificación de conductor habitual | 4 fields | All optional and independent of which trámite is selected | | Otros | otros | Free text, maxLen 350 | | Fecha y firma | lugarFirma, fechaFirma | Physical signature itself not modelled, per this registry's standing convention |

Total: 47 fields, plus 1 documents[] entry (identityDocument). No exclusivityGroups are needed: unlike the sibling es/aeat schema (whose causa checkboxes are independent native checkbox widgets requiring a modelled exclusivityGroup to express mutual exclusivity), every choice-of-one construct in this form is a native AcroForm radio-button group and is modelled as a single enum field, consistent with this registry's established convention for that widget type (e.g. co/runt/formulario-solicitud-tramites-vehiculo's tramiteType).

Access notes and judgment calls

  1. Two widgets are deliberately excluded from fields[]: the "Imprimir" button widget (a JavaScript print-action button, not applicant data) and a tiny (rect 5x14pt, maxLen 1) text widget named "Elija un trámite" sitting at the left margin of the trámite-selection header row — almost certainly an internal marker/helper widget rather than a printed, applicant-facing box, the same class of exclusion this registry applies elsewhere to non-applicant control widgets (e.g. Modelo 030's off-page dato.77/dato.80/dato.81/dato.86/dato.87).
  2. Every choice-of-one section is modelled as a single native-radio-backed enum field, not a set of booleans with an exclusivityGroups entry — because, unlike Modelo 030's causa checkboxes (which are independent AcroForm checkbox widgets that merely happen to be visually grouped), the tramite, subtramite1, subtramite31, subtramite4, subtramite6, and subtramite71 fields are each a genuine single AcroForm radio-button field name shared across multiple widgets with distinct export values — the PDF format itself enforces mutual exclusivity. Matches co/runt/formulario-solicitud-tramites-vehiculo's own established convention for this exact widget type.
  3. The BAJA and PERMISO TEMPORAL sub-trámite grids were resolved by a rendered visual crop, not coordinate-matching alone. Both radio groups' export values on their own ("Sustracción", "Exportación", "Veh matriculado", "Veh sin matricular", etc.) do not fully disambiguate which column (Temporal/Definitiva, Empresas/Particulares) each option belongs to; a 3x-zoom render of that exact page region (see Extraction method above) confirmed the column groupings this document's own bajaMotivo/permisoTemporalTipo enum values encode (temporal_sustraccion vs. a hypothetical definitiva_sustraccion that does not actually exist on the form, for example).
  4. matriculaInformeVehiculo1 is the only one of the eight plate-number boxes modelled requiredWhen-gated (tramite == "informe"); the remaining seven are left required: false with no gate at all. The source provides a fixed 8-box grid with no field indicating how many plates a given submission actually uses — gating only the first slot (a report needs at least one plate) avoids fabricating a minimum/maximum count the form itself does not state, the same non-fabrication discipline this registry has applied to other fixed-size, partially-used repeating structures (e.g. es/aeat's own causa-checkbox-to-section correspondence, disclosed as an inference rather than a stated cross-reference).
  5. servicioVehiculo, codigoElectronicoMatriculacion, and codigoElectronicoMaquinariaAgricola are positioned inside the 'MATRICULACIÓN' block on the form but are deliberately left required: false with no requiredWhen tie to tramite == "matriculacion" — no source examined this cycle states that a service classification or electronic pre-registration code is mandatory for every new registration (a private individual's ordinary registration plausibly needs neither), so this document does not assert a gate the source itself does not publish.
  6. The vehicle-service dropdown (servicioVehiculo) omits two codes its own page 2 descriptive legend documents. The widget's own embedded option list carries 25 non-blank codes (A-00A-20, B-00B-22); page 2's own "SERVICIO PÚBLICO"/"SERVICIO PARTICULAR" legend additionally describes A-09 Obras and B-07 Ambulancia, neither of which appears as a selectable value in the actual combo-box widget — a minor inconsistency inside the source PDF itself. This document's enum reproduces only the codes the widget itself actually offers (not the legend's superset), and flags the discrepancy here and in the field's own description rather than silently reconciling it.
  7. One documents[] entry (identityDocument) is modelled, sourced from DGT's own accompanying instruction sheet for the duplicado/renovación procedure group specifically — natural persons present a DNI, Spanish driving licence, residence card, or passport+NIE; legal entities present a tarjeta de identificación fiscal plus proof of the signatory's identity and representation. This cycle did not independently confirm an identical requirement is published for each of the form's other six trámites (informe, baja, alta de baja temporal, matriculación, permiso temporal, rehabilitación) — disclosed as confirmed for one procedure group specifically, not asserted as verified for all seven.
  8. nifNieCifInteresado's validation.pattern combines three coexisting ID formats into one regular expression (NIF: 8 digits + letter; NIE: X/Y/Z + 7 digits + letter; CIF: letter + 7 digits + letter-or-digit), since the source itself presents a single unified "NIF/NIE/CIF" box rather than three separate fields — a disclosed synthesis, not a citation to an AEAT/DGT-published single regular expression.
  9. fechaFirma is merged from three adjacent day/month/year AcroForm text boxes into one date-typed field, consistent with this registry's established convention (e.g. es/aeat/declaracion-censal-personas-fisicas-modelo-030's own fechaFirma). The same asymmetry disclosed on that sibling schema recurs here: the day (maxLen 2) and year (maxLen 4) sub-boxes are purely numeric-sized, but the month sub-box carries maxLen 10 — wide enough for a spelled-out month name (e.g. "julio") rather than a 2-digit number. Normalized to ISO date regardless, per this document's own consistent date-merge convention.
  10. DGT's own authenticated online-filing channel (Cl@ve/certificado, per the corroborating source pages) is out of scope for this v1.0.0 — an entirely different session-based flow this document does not attempt to describe, the same scope boundary this registry applies to AEAT's own Sede Electrónica channel in the sibling es/aeat schema.
  11. No accompanying municipal-census ("empadronamiento") or IAE data is modelled as applicant-supplied. Page 2's own privacy notice states DGT will consult these electronically itself ("consultará electrónicamente sus datos referidos al empadronamiento y al IAE") — this document does not add a field for data the source itself says is looked up, not supplied.

Test run (Phase 4)

No live submission was attempted: this is a request form against a real government vehicle registry, and submitting fabricated identity/vehicle 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/dgt/solicitud-tramites-vehiculo/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 and evaluates them against each mock record), in addition to the repo's own validators.

Committed scenario — an individual requesting a duplicate circulation permit for a damaged permit (tramite: "duplicado", duplicadoMotivo: "deterioro"). Correctly requires nifNieCifInteresado and duplicadoMotivo (via the tramite == "duplicado" requiredWhen tie); leaves every other trámite's sub-fields absent. Passes with zero errors.

Three further scenarios (traced only, not committed as separate fixture files): (1) tramite: "informe" with three of the eight plate slots populated, the remaining five correctly left absent; (2) tramite: "matriculacion" with matriculacionTipo: "ordinaria" and servicioVehiculo: "A-04" (Taxi); (3) tramite: "permiso_temporal" with permisoTemporalTipo: "particular_previa_matriculacion". All three pass with zero errors.

Negative controls (each expected to fail exactly one rule): (a) removing tramite from the committed packet — correctly flagged as a missing required field; (b) setting tramite: "baja" while both duplicadoMotivo and bajaMotivo are absent — correctly flagged as a missing required field (bajaMotivo's requiredWhen fires); (c) tramite: "invalid_value" — correctly flagged as a validation.enum violation; (d) nifNieCifInteresado: "1234567" (7 digits, no letter) — correctly flagged as a validation.pattern violation; (e) provinciaDomicilioVehiculo: "Nonexistent" — correctly flagged as a validation.enum violation. All five negative controls were correctly rejected.

Both meta-schema validators were run against the finished document and pass clean:

``` $ node tools/validate.mjs registry/es/dgt/solicitud-tramites-vehiculo/1.0.0/schema.json ok registry/es/dgt/solicitud-tramites-vehiculo/1.0.0/schema.json

1/1 document(s) passed.

$ node tools/validate-ajv.mjs registry/es/dgt/solicitud-tramites-vehiculo/1.0.0/schema.json ok registry/es/dgt/solicitud-tramites-vehiculo/1.0.0/schema.json [v0.3]

1/1 document(s) validated against the meta-schema (ajv 2020-12). ```

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 Dirección General de Tráfico or any government. The authoritative source is always the live government form and its official instructions.