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.
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"
}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"
}
}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"
}
}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.
| Campo | Descripción | |
|---|---|---|
vin | obligatorio | Número de bastidor del vehículo. Ej: WVWZZZ1JZYW123456 |
documents | obligatorio | Array de documentos. Cada elemento requiere url. Ver tipos → |
confirmed | opcional | Si es false, crea el trámite en modo borrador sin enviarlo a tramitar. Por defecto true. |
legalBasis | opcional | Base legal para exención o reducción del IEDMT. Ej: LARGE_FAMILY, DISABILITY, TAXI |
servicePurpose | opcional | Código de uso del vehículo. Ej: A00 (particular), B00 (taxi) |
docRecipient | opcional | Destinatario de la documentación. Ej: customer, buyer u other |
docRecipientAddress | opcional | Dirección del destinatario. Ej: { street: "Calle Mayor 1", zipCode: "28001", municipality: "Madrid" } |
shippingAddressId | opcional | ID de una dirección de envío predefinida. Ej: addr_ABC123 |
metadata | opcional | Metadatos adicionales con información de vuestra empresa. Ej: { internal_id: "REG-2025-001" } |
{
"vin": "WVWZZZ1JZYW123456",
"documents": [
{ "url": "https://storage.ejemplo.com/docs/dni.pdf" },
{ "url": "https://storage.ejemplo.com/docs/ficha-tecnica.pdf" }
]
}{
"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
| Evento | Cuándo se emite |
|---|---|
procedure.finished | Cuando la DGT ha tramitado el expediente |
procedure.status_changed | Cada vez que el trámite cambia de estado — ver Anexo — Eventos |
procedure.document.added | Cuando 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.
{
"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:
{
"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.
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.
{
"vin": "WVWZZZ1JZYW123456",
"confirmed": false,
"documents": [
{ "url": "https://storage.ejemplo.com/docs/dni.pdf" }
]
}{
"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.
{
"legalBasis": "LARGE_FAMILY",
"docRecipient": "customer"
}Para adjuntar documentos adicionales, usa el endpoint de documentos:
{
"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.
{
"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
| Estado | Descripción |
|---|---|
DRAFT | Trámite creado pero no confirmado (confirmed: false) |
PENDING | Trámite recibido, pendiente de procesarse |
IN_PROGRESS | En tramitación con la DGT |
COMPLETED | Trámite completado con éxito |
FAILED | El 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.
{
"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.
{
"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.
{
"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
- Informes DGT — solicita informes de vehículos sin crear un trámite
- Firmas electrónicas — envía documentos a firmar
- Referencia API — documentación completa de todos los endpoints