Realiza tus trámites con la DGT

Automatiza cualquier trámite con la DGT en una sola llamada: adjunta los documentos por URL, recibe eventos en tiempo real cuando el estado cambia y descarga los documentos generados cuando el trámite finaliza.

Crea tu trámite

Envía el trámite en una sola llamada, recibe eventos conforme avanza la tramitación y descarga los documentos una vez completado.

1. Creas el trámite
2. Recibes eventos
3. Descargas los documentos
Tu empresa
Punto
POST/v1/procedures/registration
202
Ver petición
{
  "vin": "WVWZZZ1JZYW123456",
  "documents": [
    { "url": "https://storage.ejemplo.com/docs/dni.pdf" },
    { "url": "https://storage.ejemplo.com/docs/ficha-tecnica.pdf" }
  ]
}
Ver respuesta
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "status": "PENDING"
}
Iniciamos la tramitación con la DGT
procedure.status_changed
webhook
Ver cuerpo
{
  "event": "procedure.status_changed",
  "data": {
    "id": "pro_k8mn2p",
    "path": "/v1/procedures/pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "status": "IN_PROGRESS",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}
Tramitación completada
procedure.finished
webhook
Ver cuerpo
{
  "event": "procedure.finished",
  "data": {
    "id": "pro_k8mn2p",
    "path": "/v1/procedures/pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "status": "COMPLETED",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}
GET/v1/procedures/{id}
200
Ver respuesta
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "status": "COMPLETED",
  "vrm": "1234ABC",
  "documents": [
    { "type": "temp_veh_registration_cert", "url": "https://..." },
    { "type": "es_576_doc", "url": "https://..." }
  ]
}

Paso 1 — Creas el trámite

Envía una llamada POST al endpoint del tipo de trámite correspondiente. El trámite queda registrado con estado PENDING y recibirás un identificador único.

Primera matriculación de un vehículo en España. Aplica tanto a coches nuevos que se venden por primera vez como a vehículos importados desde el extranjero que se incorporan al parque español.
CampoDescripción
vinobligatorioNúmero de bastidor del vehículo. Ej: WVWZZZ1JZYW123456
documentsobligatorioArray de documentos. Cada elemento requiere url. Ver tipos →
confirmedopcionalSi es false, crea el trámite en modo borrador sin enviarlo a tramitar. Por defecto true.
legalBasisopcionalBase legal para exención o reducción del IEDMT. Ej: LARGE_FAMILY, DISABILITY, TAXI
servicePurposeopcionalCódigo de uso del vehículo. Ej: A00 (particular), B00 (taxi)
docRecipientopcionalDestinatario de la documentación. Ej: customer, buyer u other
docRecipientAddressopcionalDirección del destinatario. Ej: { street: "Calle Mayor 1", zipCode: "28001", municipality: "Madrid" }
shippingAddressIdopcionalID de una dirección de envío predefinida. Ej: addr_ABC123
metadataopcionalMetadatos adicionales con información de vuestra empresa. Ej: { internal_id: "REG-2025-001" }
POST /v1/procedures/registration — Request
{
  "vin": "WVWZZZ1JZYW123456",
  "documents": [
    { "url": "https://storage.ejemplo.com/docs/dni.pdf" },
    { "url": "https://storage.ejemplo.com/docs/ficha-tecnica.pdf" }
  ]
}
202 Accepted — Response
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "vin": "WVWZZZ1JZYW123456",
  "vrm": null,
  "status": "PENDING",
  "confirmed": true
}

Ver referencia completa de este endpoint →


Paso 2 — Recibes eventos

Punto envía eventos a tu webhook cada vez que cambia el estado de un trámite.

Eventos de un trámite

EventoCuándo se emite
procedure.finishedCuando la DGT ha tramitado el expediente
procedure.status_changedCada vez que el trámite cambia de estado — ver Anexo — Eventos
procedure.document.addedCuando se genera un nuevo documento — ver Anexo — Eventos

procedure.finished

Este evento indica que la DGT ya ha tramitado el expediente. Es posible que todavía quede trabajo pendiente con el colegio o el envío de documentación física, pero desde el punto de vista de la DGT el trámite está resuelto.

procedure.finished
{
  "event": "procedure.finished",
  "data": {
    "id": "pro_k8mn2p",
    "path": "/v1/procedures/pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "status": "COMPLETED",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

Paso 3 — Descargas los documentos

Cuando el trámite finaliza, recibes la matrícula del vehículo (vrm) que puedes guardar en tu sistema, así como los documentos generados por la DGT que puedes descargar directamente desde las URLs proporcionadas. Puedes consultar el estado del trámite en cualquier momento:

GET /v1/procedures/{id} — response 200
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "vrm": "1234ABC",
  "status": "COMPLETED",
  "documents": [
    { "type": "temp_veh_registration_cert", "url": "https://..." },
    { "type": "temp_technical_sheet", "url": "https://..." },
    { "type": "es_576_doc", "url": "https://..." },
    { "type": "es_ivtm_doc", "url": "https://..." }
  ]
}

Edita y confirma tu trámite

Si necesitas revisar o ajustar los datos antes de tramitar, puedes crear el trámite en modo borrador (confirmed: false). El trámite queda en estado DRAFT y no se procesa hasta que lo confirmes explícitamente.

1. Creas el trámite
2. Editas o añades documentos
3. Confirmas

Paso 1 — Creas el trámite no confirmado

Envía el trámite con confirmed: false para crearlo en modo borrador. Mientras esté en DRAFT, puedes editarlo y añadir documentos sin restricciones.

POST /v1/procedures/registration — request
{
  "vin": "WVWZZZ1JZYW123456",
  "confirmed": false,
  "documents": [
    { "url": "https://storage.ejemplo.com/docs/dni.pdf" }
  ]
}
POST /v1/procedures/registration — response 202
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "status": "DRAFT",
  "confirmed": false
}

Paso 2 — Actualizas el trámite

Antes de confirmar puedes editar los campos del trámite o añadir nuevos documentos.

Para actualizar campos, usa PATCH con formato JSON Merge Patch (RFC 7396): envía solo los campos que quieres cambiar. Una vez confirmado, el trámite ya no admite modificaciones — cualquier intento devolverá 409 Conflict.

PATCH /v1/procedures/registration/{id}
{
  "legalBasis": "LARGE_FAMILY",
  "docRecipient": "customer"
}

Para adjuntar documentos adicionales, usa el endpoint de documentos:

POST /v1/procedures/{id}/documents
{
  "url": "https://storage.ejemplo.com/docs/poder-notarial.pdf"
}

Paso 3 — Confirmas el trámite

Cuando tengas todos los datos y documentos listos, confirma el trámite para que Punto inicie la tramitación con la DGT. La operación es idempotente: si llamas varias veces devuelve siempre el estado actual sin error.

POST /v1/procedures/{id}/confirm — response 200
{
  "id": "pro_k8mn2p",
  "procedureType": "VEHICLE_REGISTRATION",
  "status": "PENDING",
  "confirmed": true
}

A partir de este momento el trámite sigue el flujo normal: recibirás eventos de procedure.status_changed y procedure.finished conforme avance la tramitación, igual que en Crea tu trámite.


Anexo — Estados de un trámite

EstadoDescripción
DRAFTTrámite creado pero no confirmado (confirmed: false)
PENDINGTrámite recibido, pendiente de procesarse
IN_PROGRESSEn tramitación con la DGT
COMPLETEDTrámite completado con éxito
FAILEDEl trámite no pudo completarse

Anexo — Eventos

Todos los eventos que Punto emite bajo la familia procedure.*.

procedure.finished

Estado terminal del trámite. La DGT ha tramitado el expediente; puede haber trabajo pendiente con el colegio o el envío de documentación física.

procedure.finished
{
  "event": "procedure.finished",
  "data": {
    "id": "pro_k8mn2p",
    "path": "/v1/procedures/pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "status": "COMPLETED",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

procedure.status_changed

Se emite cada vez que el trámite cambia de estado.

procedure.status_changed
{
  "event": "procedure.status_changed",
  "data": {
    "id": "pro_k8mn2p",
    "path": "/v1/procedures/pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "status": "IN_PROGRESS",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

procedure.document.added

Se emite cuando se genera un nuevo documento asociado al trámite.

procedure.document.added
{
  "event": "procedure.document.added",
  "data": {
    "id": "doc_5678",
    "path": "/v1/procedures/pro_k8mn2p/documents/doc_5678",
    "documentType": "temp_veh_registration_cert",
    "downloadUrl": "https://api.punto.ai/v1/procedures/pro_k8mn2p/documents/doc_5678/download",
    "procedureId": "pro_k8mn2p",
    "procedureType": "VEHICLE_REGISTRATION",
    "procedurePath": "/v1/procedures/pro_k8mn2p",
    "timestamp": "2025-08-12T10:30:00.000Z"
  }
}

Siguientes pasos