Informes DGT

Consulta el historial y la transferibilidad de cualquier vehículo directamente desde los registros de la DGT. Elige entre el informe reducido —rápido, ideal para prevalidar operaciones— o el informe completo, que incluye cargas, incidencias e historial detallado del vehículo.

Las consultas son asíncronas. Dependemos de la DGT para obtener los datos —no siempre responde en tiempo real— y procesamos su respuesta para devolvértela ya estructurada. Recibirás el resultado a través de un webhook cuando el informe esté listo.

Informe reducido

Obtén una respuesta rápida sobre la transferibilidad del vehículo. Ideal para prevalidar operaciones antes de iniciar un trámite completo: con una matrícula sabes en segundos si el vehículo tiene cargas bloqueantes o alertas.

1. Creas el informe
2. Recibes el evento
3. Obtienes la información
Tu empresa
Punto
POST/v1/reports/reduced
201
Ver petición
{
  "vrm": "1234ABC"
}
Ver respuesta
{
  "id": "rep_k8mn2p",
  "vrm": "1234ABC",
  "type": "reduced",
  "status": "processing"
}
Consultamos la DGT y procesamos la respuesta
report.completed
webhook
Ver cuerpo
{
  "event": "report.completed",
  "data": {
    "id": "rep_k8mn2p",
    "path": "/v1/reports/rep_k8mn2p",
    "type": "reduced",
    "status": "completed",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}
GET/v1/reports/{id}
200
Ver respuesta
{
  "id": "rep_k8mn2p",
  "vrm": "1234ABC",
  "type": "reduced",
  "status": "completed",
  "transferabilityStatus": "transferable",
  "dgtExtractedData": {
    "vrm": "1234ABC",
    "vin": "WVWZZZ1JZYW123456",
    "brand": "VOLKSWAGEN",
    "model": "GOLF",
    "firstRegistrationDate": "12/03/2019"
  }
}

Paso 1 — Creas el informe reducido

Envía una llamada POST con la matrícula del vehículo. El informe queda registrado con estado processing y recibirás un identificador único para consultarlo después.

POST /v1/reports/reduced
{
  "vrm": "1234ABC"
}
POST /v1/reports/reduced — response 201
{
  "id": "rep_k8mn2p",
  "vrm": "1234ABC",
  "type": "reduced",
  "status": "processing"
}

Ver referencia completa del endpoint →


Paso 2 — Recibes el evento

Cuando el informe finaliza enviamos un evento report.completed a tu webhook:

report.completed
{
  "event": "report.completed",
  "data": {
    "id": "rep_k8mn2p",
    "path": "/v1/reports/rep_k8mn2p",
    "type": "reduced",
    "status": "completed",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

Paso 3 — Obtienes la información

Consulta el informe con el identificador recibido. El campo clave es transferabilityStatus, que resume la situación del vehículo en tres posibles valores:

ValorSignificado
transferableEl vehículo puede transferirse sin restricciones. No se han detectado cargas bloqueantes ni alertas.
transferable_with_alertsLa transferencia es posible, pero hay incidencias no bloqueantes (por ejemplo, ITV caducada o sin seguro en vigor). El comprador debería ser informado antes de cerrar la operación.
not_transferableEl vehículo tiene al menos una carga bloqueante (embargo, retención de titularidad, leasing, baja definitiva…). Hay que obtener un Informe Completo para saber qué carga es.
GET /v1/reports/{id} — response 200
{
  "id": "rep_k8mn2p",
  "vrm": "1234ABC",
  "type": "reduced",
  "status": "completed",
  "transferabilityStatus": "transferable_with_alerts",
  "dgtExtractedData": {
    "vrm": "1234ABC",
    "vin": "WVWZZZ1JZYW123456",
    "brand": "VOLKSWAGEN",
    "model": "GOLF",
    "firstRegistrationDate": "12/03/2019"
  }
}

Ver referencia completa del endpoint →


Informe completo

Obtén el historial completo del vehículo: cargas e incidencias detalladas, historial de ITV y propiedad, e información técnica completa extraída de la DGT. Incluye también un PDF descargable del informe oficial.

1. Creas el informe
2. Recibes el evento
3. Obtienes la información
Tu empresa
Punto
POST/v1/reports/complete
201
Ver petición
{
  "vrm": "1234ABC"
}
Ver respuesta
{
  "id": "rep_9xqr5w",
  "vrm": "1234ABC",
  "type": "complete",
  "status": "processing"
}
Consultamos la DGT y procesamos la respuesta
report.completed
webhook
Ver cuerpo
{
  "event": "report.completed",
  "data": {
    "id": "rep_9xqr5w",
    "path": "/v1/reports/rep_9xqr5w",
    "type": "complete",
    "status": "completed",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}
GET/v1/reports/{id}
200
Ver respuesta
{
  "id": "rep_9xqr5w",
  "vrm": "1234ABC",
  "type": "complete",
  "status": "completed",
  "transferabilityStatus": "transferable",
  "issues": [],
  "reportUrl": "https://api.punto.ai/v1/reports/rep_9xqr5w/download?token=...",
  "dgtExtractedData": {
    "vrm": "1234ABC",
    "vin": "WVWZZZ1JZYW123456",
    "brand": "VOLKSWAGEN",
    "model": "GOLF",
    "firstRegistrationDate": "12/03/2019",
    "registrationDate": "15/03/2019",
    "hasInvalidItv": false,
    "hasInvalidInsurance": false,
    "hasCharges": false,
    "hasDenial": false,
    "hasPendingSafetyCampaign": false
  }
}

Paso 1 — Creas el informe completo

Igual que el reducido: una llamada POST con la matrícula.

POST /v1/reports/complete
{
  "vrm": "1234ABC"
}
POST /v1/reports/complete — response 201
{
  "id": "rep_9xqr5w",
  "vrm": "1234ABC",
  "type": "complete",
  "status": "processing"
}

Ver referencia completa del endpoint →


Paso 2 — Recibes el evento

Igual que en el reducido, recibes un evento report.completed cuando el informe finaliza.

report.completed
{
  "event": "report.completed",
  "data": {
    "id": "rep_9xqr5w",
    "path": "/v1/reports/rep_9xqr5w",
    "type": "complete",
    "status": "completed",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

Paso 3 — Obtienes la información

El informe completo incluye varios campos adicionales respecto al reducido.

Transferibilidad

El campo transferabilityStatus puede ser transferable o not_transferable. En los informes completos no existe el valor transferable_with_alerts: las incidencias no bloqueantes se detallan directamente en el array issues en lugar de resumirse en un único estado.

Incidencias — campo issues

Lista de incidencias detectadas sobre el vehículo. Cada elemento tiene un concept que identifica el tipo, una description en texto legible, y opcionalmente date y authority.

ConceptTipoDescripción
ownership-holdBloqueanteRetención de titularidad activa
seizureBloqueanteEmbargo judicial sobre el vehículo
leasingBloqueanteContrato de leasing activo
rentingBloqueanteContrato de renting activo
deregistratedBloqueanteVehículo dado de baja definitiva
restrictionBloqueanteRestricción administrativa sobre la transferencia
itv-expiredAlertaITV caducada o no superada
no-insuranceAlertaEl vehículo no consta como asegurado
safety-recallAlertaCampaña de seguridad pendiente
unpaid-taxAlertaImpuestos pendientes de pago
temp-withdrawalAlertaBaja temporal reciente

Información del vehículo — campo dgtExtractedData

Datos extraídos directamente de los registros de la DGT, sin transformar. El informe completo incluye campos adicionales respecto al reducido:

CampoDescripción
vrmMatrícula
vinNúmero de bastidor
brandFabricante
modelModelo
firstRegistrationDateFecha de primera matriculación (DD/MM/YYYY)
registrationDateFecha de matriculación actual en España (DD/MM/YYYY)
vehicleTypeTipo de vehículo según clasificación DGT
serviceTipo de uso: A (público) o B (privado)
autonomousCommunityComunidad autónoma de matrícula
ownerNombre del titular registrado
hasInvalidItvBooleano — ITV no vigente
hasInvalidInsuranceBooleano — seguro no en vigor
hasChargesBooleano — tiene cargas registradas
hasDenialBooleano — tiene denegación de transferencia
hasPendingSafetyCampaignBooleano — campaña de seguridad pendiente
itvHistoryHistorial de inspecciones técnicas
ownerHistoryHistorial de titulares
lesseeHistoryHistorial de arrendatarios

PDF del informe — campo reportUrl

Los informes completos incluyen una URL prefirmada para descargar el PDF oficial del informe generado por la DGT. La URL es válida durante un tiempo limitado.

GET /v1/reports/{id} — response 200
{
  "id": "rep_9xqr5w",
  "vrm": "1234ABC",
  "type": "complete",
  "status": "completed",
  "transferabilityStatus": "not_transferable",
  "issues": [
    {
      "concept": "seizure",
      "description": "El vehículo tiene un embargo activo",
      "date": "2024-11-15T00:00:00.000Z",
      "authority": "Juzgado de Primera Instancia nº 4"
    },
    {
      "concept": "itv-expired",
      "description": "La ITV del vehículo ha caducado",
      "date": "2024-09-01T00:00:00.000Z",
      "authority": "Estación ITV"
    }
  ],
  "reportUrl": "https://api.punto.ai/v1/reports/rep_9xqr5w/download?token=...",
  "dgtExtractedData": {
    "vrm": "1234ABC",
    "vin": "WVWZZZ1JZYW123456",
    "brand": "VOLKSWAGEN",
    "model": "GOLF",
    "firstRegistrationDate": "12/03/2019",
    "registrationDate": "15/03/2019",
    "hasInvalidItv": true,
    "hasInvalidInsurance": false,
    "hasCharges": true,
    "hasDenial": false,
    "hasPendingSafetyCampaign": false
  }
}

Ver referencia completa del endpoint →


Siguientes pasos