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
Iniciamos la tramitación con la DGT
procedure.status_changed
webhook
Tramitación completada
procedure.finished
webhook
GET/v1/procedures/{id}
200

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.
userEmailopcionalEmail del usuario que solicita el trámite. Si existe en el sistema, el trámite se asocia a su cuenta.
companyTaxIdopcionalNIF/CIF de la empresa a la que se atribuye el trámite. Necesario cuando la cuenta tiene acceso a varias empresas.
taxableBaseopcionalBase imponible para el cálculo de impuestos (en euros).
iedmtLegalBasisopcionalTipo de beneficio fiscal del IEDMT. Ej: NONE, LARGE_FAMILY, DISABILITY, TAXI
iedmtTaxAmountopcionalImporte a pagar en concepto de IEDMT (en euros).
servicePurposeopcionalCódigo de uso del vehículo. Ej: A00 (particular), B00 (taxi)
docRecipientopcionalDestinatario de la documentación física. Valores: customer o buyer.
docRecipientAddressopcionalDirección del destinatario. Ej: { street: "Calle Mayor 1", zipCode: "28001", municipality: "Madrid" }
additionalInstructionsopcionalInstrucciones adicionales en texto libre para el equipo de tramitación.
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",
  "type": "VEHICLE_REGISTRATION",
  "typeDescription": "Matriculación",
  "status": "PENDING",
  "statusDescription": "Pendiente",
  "vehicle": {
    "vin": "WVWZZZ1JZYW123456",
    "vrm": null
  },
  "webUrl": "https://clientes.puntoauto.com/procedures/pro_k8mn2p"
}

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. Queda todavía trabajo pendiente con el colegio de gestores y 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 los documentos generados por la DGT que puedes descargar directamente desde las URLs proporcionadas y en el caso de una matriculación, la matrícula del vehículo (vrm) que puedes guardar en tu sistema. 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 enviado, pendiente de procesarse por Punto
IN_PROGRESSEn tramitación por el equipo de Punto
BLOCKEDRequiere atención del cliente o falta información
ON_HOLDEn espera de respuesta de organismos externos
DONETrámite finalizado con éxito
DELIVERED_TO_CLIENTDocumentación final entregada al cliente
CANCELLEDTrámite cancelado por solicitud o por incidencias

Anexo — Eventos

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

procedure.finished

La DGT ha tramitado el expediente. Queda todavía trabajo pendiente con el colegio de gestores y 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"
  }
}

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 Punto guarda un nuevo documento asociado al trámite. No se emite cuando tú subes un documento.

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