{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "es/dgt/solicitud-tramites-vehiculo",
  "version": "1.0.0",
  "title": "Spain DGT Vehicle Procedures Request Form (Modelo 01)",
  "description": "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.",
  "status": "draft",
  "jurisdiction": {
    "country": "ES",
    "level": "national"
  },
  "authority": {
    "name": "Dirección General de Tráfico",
    "abbreviation": "DGT",
    "url": "https://sede.dgt.gob.es"
  },
  "process": {
    "type": "request",
    "language": "es-ES"
  },
  "source": {
    "url": "https://sede.dgt.gob.es/export/sites/dgt/.galleries/modelos-solicitud/01/Mod.01-ES.pdf",
    "retrievedAt": "2026-07-07",
    "documentRef": "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)"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-07",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-07",
    "notes": "GovSchema Standard Research cycle (GOV-1652), screening Spain's remaining open verticals (Passport, DMV, Business Formation, Visa, National ID) after Spain opened as the registry's 21st jurisdiction via GOV-1645 (Taxes, AEAT Modelo 030). Screened alongside Spain's national long-stay visa application (exteriores.gob.es 'Solicitud de visado nacional') — a genuine AcroForm PDF, but confirmed to be the same EU-harmonized national (Type D) visa template already modelled in this registry via de/auswaertiges-amt/national-visa-application, so authoring it again would duplicate an existing schema, not fill a gap — and CIRCE's Documento Único Electrónico (DUE) for company formation, an authenticated portal that itself unifies 25+ separate administrative forms, judged too broad/unbounded for one session. sede.dgt.gob.es itself times out on every direct connection attempt from this environment (DNS resolves to 195.53.65.140, but the TCP handshake never completes — the same class of access issue this registry has previously worked around for other government domains); the form and its accompanying instruction sheet were instead retrieved via Wayback Machine snapshots, both HTTP 200. Its AcroForm field structure was extracted via pdfjs-dist (annotation/widget layer plus page text layer), corroborated with a rendered page-image visual check via pdfjs-dist+canvas at 3x zoom to resolve the exact procedure/reason grid the radio-button groups implement. See VERIFICATION.md for the full field inventory, sourcing, and every disclosed judgment call."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-07"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "required": false,
      "name": "matricula",
      "label": "Matrícula",
      "type": "string",
      "description": "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.",
      "sourceRef": "p.1 'DATOS DEL VEHÍCULO', 'Matrícula:' (AcroForm field 'Matrícula', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "fechaMatriculacionVehiculo",
      "label": "Fecha de matriculación",
      "type": "date",
      "description": "Date the vehicle was first registered, printed dd/mm/aaaa.",
      "sourceRef": "p.1 'DATOS DEL VEHÍCULO', 'Fecha de matriculación (dd/mm/aaaa):' (AcroForm field 'Fecha matriculación')"
    },
    {
      "required": false,
      "name": "bastidorNive",
      "label": "Bastidor/NIVE",
      "type": "string",
      "description": "Chassis number / NIVE (Número de Identificación de Vehículo) of the vehicle.",
      "sourceRef": "p.1 'DATOS DEL VEHÍCULO', 'Bastidor/NIVE:' (AcroForm field 'BastidorNIVE', maxLen 32)",
      "validation": {
        "maxLength": 32
      }
    },
    {
      "required": false,
      "name": "tipoViaDomicilioVehiculo",
      "label": "Tipo de vía",
      "type": "string",
      "description": "Street-type abbreviation (e.g. Calle, Avenida) of the vehicle's registered domicile (domicilio de empadronamiento del titular del vehículo).",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Tipo de vía:' (AcroForm field 'Tipo Vía', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "nombreViaDomicilioVehiculo",
      "label": "Nombre de la vía",
      "type": "string",
      "description": "Street name of the vehicle's registered domicile.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Nombre de la vía:' (AcroForm field 'Nombre de la vía', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "numeroDomicilioVehiculo",
      "label": "Número",
      "type": "string",
      "description": "House/building number of the vehicle's registered domicile.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Número:' (AcroForm field 'Número', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "bloqueDomicilioVehiculo",
      "label": "Bloque",
      "type": "string",
      "description": "Block identifier of the vehicle's registered domicile, when applicable.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Bloque:' (AcroForm field 'Bloque', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "portalDomicilioVehiculo",
      "label": "Portal",
      "type": "string",
      "description": "Portal/entrance identifier of the vehicle's registered domicile, when applicable.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Portal:' (AcroForm field 'Portal', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "escaleraDomicilioVehiculo",
      "label": "Escalera",
      "type": "string",
      "description": "Staircase identifier of the vehicle's registered domicile, when applicable.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Escalera:' (AcroForm field 'Escalera', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "plantaDomicilioVehiculo",
      "label": "Planta",
      "type": "string",
      "description": "Floor of the vehicle's registered domicile, when applicable.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Planta:' (AcroForm field 'Planta', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "puertaDomicilioVehiculo",
      "label": "Puerta",
      "type": "string",
      "description": "Door identifier of the vehicle's registered domicile, when applicable.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Puerta:' (AcroForm field 'Puerta', maxLen 10)",
      "validation": {
        "maxLength": 10
      }
    },
    {
      "required": false,
      "name": "kmDomicilioVehiculo",
      "label": "KM",
      "type": "string",
      "description": "Kilometre-marker identifier of the vehicle's registered domicile, for addresses on a rural/interurban road (e.g. carretera + km).",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'KM:' (AcroForm field 'KM', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "codigoPostalDomicilioVehiculo",
      "label": "Código postal",
      "type": "string",
      "description": "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.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Código postal:' (AcroForm field 'Código Postal')",
      "validation": {
        "pattern": "^[0-9]{5}$"
      }
    },
    {
      "required": false,
      "name": "provinciaDomicilioVehiculo",
      "label": "Provincia",
      "type": "enum",
      "description": "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).",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Provincia:' (AcroForm field 'Provincia', combo box with 52 embedded options)",
      "validation": {
        "enum": [
          "Albacete", "Alicante/Alacant", "Almería", "Araba/Álava", "Asturias", "Ávila",
          "Badajoz", "Balears, Illes", "Barcelona", "Bizkaia", "Burgos", "Cáceres",
          "Cádiz", "Cantabria", "Castellón/Castelló", "Ciudad Real", "Córdoba",
          "Coruña, A", "Cuenca", "Gipuzkoa", "Girona", "Granada", "Guadalajara",
          "Huelva", "Huesca", "Jaén", "León", "Lleida", "Lugo", "Madrid", "Málaga",
          "Murcia", "Navarra", "Ourense", "Palencia", "Palmas, Las", "Pontevedra",
          "Rioja, La", "Salamanca", "Santa Cruz de Tenerife", "Segovia", "Sevilla",
          "Soria", "Tarragona", "Teruel", "Toledo", "Valencia/València", "Valladolid",
          "Zamora", "Zaragoza", "Ceuta", "Melilla"
        ]
      }
    },
    {
      "required": false,
      "name": "municipioDomicilioVehiculo",
      "label": "Municipio",
      "type": "string",
      "description": "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.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Municipio:' (AcroForm field 'Municipio', combo box, dynamically populated, own alternative text 'Despliegue la lista para ver los municipios después de haber elegido la provincia')"
    },
    {
      "required": false,
      "name": "localidadDomicilioVehiculo",
      "label": "Localidad",
      "type": "string",
      "description": "Locality of the vehicle's registered domicile, when distinct from the municipality above.",
      "sourceRef": "p.1 'DOMICILIO DEL VEHÍCULO', 'Localidad:' (AcroForm field 'Localidad')"
    },
    {
      "required": true,
      "name": "nifNieCifInteresado",
      "label": "NIF/NIE/CIF",
      "type": "string",
      "classification": "sensitive-pii",
      "description": "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.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'NIF/NIE/CIF:' (AcroForm field 'NIFNIECIF', maxLen 11)",
      "validation": {
        "pattern": "^([0-9]{8}[A-Z]|[XYZ][0-9]{7}[A-Z]|[A-Z][0-9]{7}[A-Z0-9])$"
      }
    },
    {
      "required": false,
      "name": "fechaNacimientoInteresado",
      "label": "Fecha de nacimiento",
      "type": "date",
      "classification": "sensitive-pii",
      "description": "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.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Fecha de nacimiento (dd/mm/aaaa):' (AcroForm field 'Fecha de nacimiento')"
    },
    {
      "required": false,
      "name": "telefonoInteresado",
      "label": "Teléfono",
      "type": "string",
      "classification": "pii",
      "description": "Telephone number of the requesting party.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Teléfono:' (AcroForm field 'Teléfono', maxLen 9)",
      "validation": {
        "maxLength": 9
      }
    },
    {
      "required": false,
      "name": "nombreRazonSocialInteresado",
      "label": "Nombre/Razón social",
      "type": "string",
      "classification": "pii",
      "description": "Given name of the requesting party, or company name (razón social) if the interesado is a legal entity.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Nombre/Razón social:' (AcroForm field 'NombreRazón social', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "primerApellidoInteresado",
      "label": "Primer apellido",
      "type": "string",
      "classification": "pii",
      "description": "First (paternal) surname of the requesting party, when a natural person.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Primer apellido:' (AcroForm field 'Apellido 1', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "segundoApellidoInteresado",
      "label": "Segundo apellido",
      "type": "string",
      "classification": "pii",
      "description": "Second (maternal) surname of the requesting party, when applicable.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Segundo apellido:' (AcroForm field 'Apellido 2', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "correoElectronicoInteresado",
      "label": "Correo electrónico",
      "type": "string",
      "classification": "pii",
      "description": "Email address of the requesting party.",
      "sourceRef": "p.1 'DATOS DEL INTERESADO', 'Correo electrónico:' (AcroForm field 'Correo electrónico')"
    },
    {
      "required": true,
      "name": "tramite",
      "label": "Trámite",
      "type": "enum",
      "description": "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).",
      "sourceRef": "p.1 'SELECCIONE EL TRÁMITE...' (AcroForm field 'tramite', radio button group, 7 widgets)",
      "validation": {
        "enum": [
          "duplicado",
          "informe",
          "baja",
          "alta_de_baja_temporal",
          "matriculacion",
          "permiso_temporal",
          "rehabilitacion"
        ]
      }
    },
    {
      "required": false,
      "name": "duplicadoMotivo",
      "label": "Duplicados del permiso de circulación — motivo",
      "type": "enum",
      "requiredWhen": {
        "field": "tramite",
        "equals": "duplicado"
      },
      "description": "Reason for requesting a duplicate circulation permit, when tramite is 'duplicado'.",
      "sourceRef": "p.1 'DUPLICADOS DEL PERMISO DE CIRCULACIÓN' (AcroForm field 'subtramite1', radio button group, 6 widgets)",
      "validation": {
        "enum": [
          "extravio",
          "deterioro",
          "sustraccion",
          "cambio_domicilio",
          "variacion_nombre_apellidos_razon_social",
          "variacion_datos_tecnicos"
        ]
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo1",
      "label": "Informe de vehículos — matrícula 1",
      "type": "string",
      "requiredWhen": {
        "field": "tramite",
        "equals": "informe"
      },
      "description": "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.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 1 of 8 (AcroForm field 'INFORME DE VEHÍCULOS1', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo2",
      "label": "Informe de vehículos — matrícula 2",
      "type": "string",
      "description": "Second plate number for the vehicle information report, when more than one vehicle is being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 2 of 8 (AcroForm field 'INFORME DE VEHÍCULOS2', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo3",
      "label": "Informe de vehículos — matrícula 3",
      "type": "string",
      "description": "Third plate number for the vehicle information report, when more than two vehicles are being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 3 of 8 (AcroForm field 'INFORME DE VEHÍCULOS3', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo4",
      "label": "Informe de vehículos — matrícula 4",
      "type": "string",
      "description": "Fourth plate number for the vehicle information report, when more than three vehicles are being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 4 of 8 (AcroForm field 'INFORME DE VEHÍCULOS4', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo5",
      "label": "Informe de vehículos — matrícula 5",
      "type": "string",
      "description": "Fifth plate number for the vehicle information report, when more than four vehicles are being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 5 of 8 (AcroForm field 'INFORME DE VEHÍCULOS5', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo6",
      "label": "Informe de vehículos — matrícula 6",
      "type": "string",
      "description": "Sixth plate number for the vehicle information report, when more than five vehicles are being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 6 of 8 (AcroForm field 'INFORME DE VEHÍCULOS6', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo7",
      "label": "Informe de vehículos — matrícula 7",
      "type": "string",
      "description": "Seventh plate number for the vehicle information report, when more than six vehicles are being reported.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 7 of 8 (AcroForm field 'INFORME DE VEHÍCULOS7', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "matriculaInformeVehiculo8",
      "label": "Informe de vehículos — matrícula 8",
      "type": "string",
      "description": "Eighth (last) plate number for the vehicle information report, the maximum this form's own grid accommodates.",
      "sourceRef": "p.1 'INFORME DE VEHÍCULOS (indicar las matrículas)', box 8 of 8 (AcroForm field 'INFORME DE VEHÍCULOS8', maxLen 8)",
      "validation": {
        "maxLength": 8
      }
    },
    {
      "required": false,
      "name": "bajaMotivo",
      "label": "Baja — tipo y motivo",
      "type": "enum",
      "requiredWhen": {
        "field": "tramite",
        "equals": "baja"
      },
      "description": "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.",
      "sourceRef": "p.1 'BAJA' (AcroForm field 'subtramite31', radio button group, 6 widgets)",
      "validation": {
        "enum": [
          "temporal_voluntaria",
          "temporal_sustraccion",
          "temporal_fin_arrendamiento",
          "definitiva_voluntaria",
          "definitiva_exportacion",
          "definitiva_transito_comunitario"
        ]
      }
    },
    {
      "required": false,
      "name": "altaBajaTemporalMotivo",
      "label": "Alta de baja temporal — motivo",
      "type": "enum",
      "requiredWhen": {
        "field": "tramite",
        "equals": "alta_de_baja_temporal"
      },
      "description": "Reason the vehicle is being reactivated ('alta') from a prior temporary deregistration, when tramite is 'alta_de_baja_temporal'.",
      "sourceRef": "p.1 'ALTA DE BAJA TEMPORAL' (AcroForm field 'subtramite4', radio button group, 2 widgets)",
      "validation": {
        "enum": [
          "voluntaria",
          "sustraccion"
        ]
      }
    },
    {
      "required": false,
      "name": "matriculacionTipo",
      "label": "Matriculación — tipo",
      "type": "enum",
      "requiredWhen": {
        "field": "tramite",
        "equals": "matriculacion"
      },
      "description": "Whether the registration being requested is an ordinary new registration or a historic-vehicle registration, when tramite is 'matriculacion'.",
      "sourceRef": "p.1 'MATRICULACIÓN' (AcroForm field 'subtramite6', radio button group, 2 widgets)",
      "validation": {
        "enum": [
          "ordinaria",
          "historica"
        ]
      }
    },
    {
      "required": false,
      "name": "servicioVehiculo",
      "label": "Servicio al que se destina el vehículo",
      "type": "enum",
      "description": "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.",
      "sourceRef": "p.1 'Servicio al que se destina el vehículo (*3):' (AcroForm field 'Servicio al que se destina el vehículo', combo box, 25 non-blank embedded options); code meanings per p.2 'SERVICIO PÚBLICO'/'SERVICIO PARTICULAR' legend: A-00 Sin especificar, A-01 Alquiler SIN conductor, A-02 Alquiler CON conductor, A-03 Aprendizaje conducción, A-04 Taxi, A-05 Auxilio en carretera, A-07 Ambulancia, A-08 Funerario, A-10 Mercancías peligrosas, A-11 Basurero, A-12 Transporte escolar, A-13 Policía, A-14 Bomberos, A-15 Protección civil y salvamento, A-16 Ministerio de Defensa, A-18 Actividad económica, A-20 Mercancías perecederas, B-00 Sin especificar, B-06 Agrícola, B-09 Obras, B-17 Vivienda, B-18 Actividad económica, B-19 Recreativo, B-21 Vehículo de ferias, B-22 Histórico",
      "validation": {
        "enum": [
          "A-00", "A-01", "A-02", "A-03", "A-04", "A-05", "A-07", "A-08", "A-10",
          "A-11", "A-12", "A-13", "A-14", "A-15", "A-16", "A-18", "A-20",
          "B-00", "B-06", "B-09", "B-17", "B-18", "B-19", "B-21", "B-22"
        ]
      }
    },
    {
      "required": false,
      "name": "codigoElectronicoMatriculacion",
      "label": "Código electrónico de matriculación",
      "type": "string",
      "description": "Electronic registration code (CEM), when the applicant already holds one — typically supplied by a dealer/manufacturer ahead of a new-vehicle registration.",
      "sourceRef": "p.1 'MATRICULACIÓN', 'Código electrónico. de matriculación:' (AcroForm field 'CEM')"
    },
    {
      "required": false,
      "name": "codigoElectronicoMaquinariaAgricola",
      "label": "Código electrónico de maquinaria agrícola",
      "type": "string",
      "description": "Electronic agricultural-machinery registration code (CEMA), the agricultural-vehicle equivalent of the CEM above, when applicable.",
      "sourceRef": "p.1 'MATRICULACIÓN', 'Código electrónico de maquinaria agrícola:' (AcroForm field 'CEMA')"
    },
    {
      "required": false,
      "name": "permisoTemporalTipo",
      "label": "Permiso temporal — tipo",
      "type": "enum",
      "requiredWhen": {
        "field": "tramite",
        "equals": "permiso_temporal"
      },
      "description": "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.",
      "sourceRef": "p.1 'PERMISO TEMPORAL' (AcroForm field 'subtramite71', radio button group, 5 widgets)",
      "validation": {
        "enum": [
          "empresa_vehiculo_matriculado",
          "empresa_vehiculo_sin_matricular",
          "particular_traslado_extranjero",
          "particular_previa_matriculacion",
          "particular_10_dias"
        ]
      }
    },
    {
      "required": false,
      "name": "nifNieConductorHabitual",
      "label": "NIF/NIE (conductor habitual)",
      "type": "string",
      "classification": "sensitive-pii",
      "description": "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.",
      "sourceRef": "p.1 'NOTIFICACIÓN DE CONDUCTOR HABITUAL (indicar conductor)', 'NIF/NIE:' (AcroForm field 'NIFNIE', maxLen 13)",
      "validation": {
        "maxLength": 13
      }
    },
    {
      "required": false,
      "name": "nombreConductorHabitual",
      "label": "Nombre (conductor habitual)",
      "type": "string",
      "classification": "pii",
      "description": "Given name of the habitual driver.",
      "sourceRef": "p.1 'NOTIFICACIÓN DE CONDUCTOR HABITUAL', 'Nombre:' (AcroForm field 'Nombre', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "primerApellidoConductorHabitual",
      "label": "Primer apellido (conductor habitual)",
      "type": "string",
      "classification": "pii",
      "description": "First (paternal) surname of the habitual driver.",
      "sourceRef": "p.1 'NOTIFICACIÓN DE CONDUCTOR HABITUAL', 'Primer apellido:' (AcroForm field 'Apellido 1_2', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "segundoApellidoConductorHabitual",
      "label": "Segundo apellido (conductor habitual)",
      "type": "string",
      "classification": "pii",
      "description": "Second (maternal) surname of the habitual driver, when applicable.",
      "sourceRef": "p.1 'NOTIFICACIÓN DE CONDUCTOR HABITUAL', 'Segundo apellido:' (AcroForm field 'Apellido 2_conductor habitual', maxLen 40)",
      "validation": {
        "maxLength": 40
      }
    },
    {
      "required": false,
      "name": "otros",
      "label": "Otros",
      "type": "string",
      "description": "Free-text remarks/additional information the applicant wants to add, not captured by any other field on the form.",
      "sourceRef": "p.1 'OTROS:' (AcroForm field 'OTROS', maxLen 350)",
      "validation": {
        "maxLength": 350
      }
    },
    {
      "required": false,
      "name": "lugarFirma",
      "label": "En [lugar]",
      "type": "string",
      "description": "Place of signature ('En ___, a ___ de ___ de ___').",
      "sourceRef": "p.1 signature line (AcroForm field 'En')"
    },
    {
      "required": false,
      "name": "fechaFirma",
      "label": "Fecha de la solicitud",
      "type": "date",
      "description": "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.",
      "sourceRef": "p.1 signature line, 'a ___ de ___ de ___' (AcroForm fields 'a'/'de'/'de_2', day/month/year)"
    }
  ],
  "documents": [
    {
      "id": "identityDocument",
      "label": "Documento oficial que acredite la identidad (y, para personas físicas, el domicilio) del interesado",
      "category": "identity-document",
      "required": true,
      "belongsTo": "applicant",
      "issuingAuthority": "Ministerio del Interior / Ministerio de Asuntos Exteriores",
      "handling": "For a natural person: DNI en vigor, permiso de conducción español, tarjeta de residencia, or passport plus NIE. For a legal entity: tarjeta de identificación fiscal plus proof of the signatory's identity and representation. Confirmed via DGT's own accompanying instruction sheet for the 'duplicados y renovaciones del permiso de circulación' procedure group specifically (05-Duplicados-y-renovaciones-permiso-circulacion.pdf); this cycle did not independently confirm an identical requirement is published for each of the other six trámites this form covers, though DGT's own general in-person-filing practice makes an equivalent identity check likely across all of them — disclosed rather than asserted as confirmed for every trámite."
    }
  ]
}
