Revisión técnica por placa en Perú: los certificados CITV vía API REST

PlacApi expone /api/revision-tecnica-pe, una API REST que devuelve en JSON los certificados de inspección técnica vehicular —el CITV, equivalente peruano de la tecnomecánica colombiana— de un vehículo a partir de su placa, desde el registro del Ministerio de Transportes y Comunicaciones. La respuesta contesta primero la pregunta que se vino a hacer, vigente y vigenteHasta, y debajo entrega los tres certificados más recientes con número, vigencia, resultado, estado, centro de inspección, dirección, ámbito, tipo de servicio y observaciones. Una placa sin certificados es una respuesta válida, no un error.

Qué problema resuelve

Saber si un vehículo peruano tiene la inspección técnica al día es un requisito de contratación para una flota, una condición de suscripción para una aseguradora y una alerta de vencimiento para quien administra unidades ajenas. El registro oficial se consulta placa por placa desde un formulario web, sin API y sin descarga masiva, así que verificar cien unidades significa cien consultas a mano. Este endpoint convierte esa verificación en una llamada REST que se puede correr en lote, programar como cron o disparar cuando un vehículo entra al inventario.

Para quién sirve

Operadores de flota y de transporte de carga y pasajeros en Perú, empresas de rastreo satelital que dan de alta unidades, aseguradoras y corredores que verifican requisitos antes de emitir, plataformas de alquiler y de compraventa de usados, y áreas de cumplimiento que auditan la documentación de vehículos contratados a terceros.

Datos requeridos

  • placa — la placa peruana del vehículo. Se aceptan guiones: ABC-123 y ABC123 son la misma consulta.
  • refresh — opcional: salta la caché y vuelve a preguntarle al registro. Una consulta refrescada con datos cobra.

Fuentes y cobertura

  • MTC — Ministerio de Transportes y ComunicacionesRegistro de certificados de inspección técnica vehicular (CITV): número del certificado, inicio y fin de vigencia, resultado de la inspección, estado, centro que la practicó con su dirección, ámbito del certificado, tipo de servicio y observaciones. El registro informa cuántos certificados existen para la placa y entrega los más recientes.

Cuántos vehículos tienen certificado, medido y no estimado

El 1 de septiembre de 2026 barrimos 60 placas reales tomadas de la base de una empresa de flotas peruana. El resultado importa antes de integrar, porque define qué va a ver tu usuario: la mayoría de las consultas devuelve una lista vacía, y eso es correcto.

Por tipo de vehículo, la proporción de placas con al menos un certificado fue de 82 % en las placas de formato antiguo, 67 % en camiones, 41 % en autos modernos y 17 % en motos. La curva no es aleatoria ni indica un problema de la fuente: en Perú la moto lineal no pasa inspección técnica vehicular, y el auto particular nuevo está exento durante sus primeros años, así que un carro reciente sin certificado está tan en regla como un camión con tres.

La lectura para quien integra es que status y vigente no se pueden interpretar como un semáforo de cumplimiento sin cruzar el tipo y la antigüedad del vehículo. Una moto con la lista vacía no está infringiendo nada; un camión con la lista vacía sí es una señal. Esa distinción la pone el negocio, no la API, y por eso la respuesta entrega el dato crudo en vez de un veredicto.

Cómo se lee un certificado: resultado, estado, ámbito

Cada certificado trae dos campos que se parecen y no significan lo mismo. resultado es el veredicto de la inspección: APROBADO cuando el vehículo pasó. estado es la situación del certificado hoy: VIGENTE mientras no llegue su fecha de fin, VENCIDO después. Un certificado puede estar aprobado y vencido a la vez, que es el caso más común del historial.

Un certificado desaprobado se reconoce por dos marcas simultáneas y conviene manejarlo explícitamente: su número lleva el prefijo I- y no trae fecha de fin de vigencia, porque no hay vigencia que otorgar. Si tu código calcula «días para vencer» restando fechas, ese registro te va a devolver una resta contra null; hay que saltarlo, no tratarlo como un certificado que vence hoy.

El ámbito indica el alcance del certificado y en el barrido apareció con tres valores: NACIONAL, PROVINCIAL y REGIONAL. Llega en null cuando el registro no lo aplica, que es lo habitual en vehículos particulares: el ámbito describe hasta dónde puede operar un vehículo de servicio, y en un particular esa pregunta no tiene sentido. Un null ahí no es un dato que se perdió.

Por qué son tres certificados y no todo el historial

El registro publica cuántos certificados existen para la placa, pero entrega los más recientes, y son tres. No es un recorte nuestro: es el tope de la fuente. Para lo que se usa esta consulta —saber si está al día y desde cuándo viene cumpliendo— tres periodos alcanzan; para una auditoría de diez años atrás, esta no es la vía y conviene decirlo antes de que alguien construya un informe sobre un historial que la fuente no entrega.

El caso real: vencimientos de una flota, no consultas sueltas

Quien paga por este endpoint casi nunca consulta una placa. Consulta la lista completa de sus unidades una vez al día o una vez a la semana, compara vigenteHasta contra la fecha de hoy y dispara un aviso a treinta, quince y cinco días. Ese es el producto: no la consulta, el vencimiento.

La caché está diseñada para ese patrón y por eso no es un número fijo. Un vehículo con certificado vigente queda cacheado hasta la fecha exacta en que ese certificado vence, porque hasta entonces el dato no puede cambiar: repetir la consulta cada día costaría un crédito diario para recibir la misma respuesta. Un vehículo sin certificado vigente se cachea 24 horas, porque su dueño puede pasar la inspección mañana. En una flota estable eso significa que el barrido diario cobra solo por las unidades que de verdad cambiaron de estado.

¿Cómo consultar la revisión técnica de un vehículo peruano por API?

Con una llamada POST a /api/revision-tecnica-pe enviando la placa, y la API key en el header x-api-key. La respuesta trae vigente y vigenteHasta para contestar de una vez si está al día, y los tres certificados más recientes con número, vigencia, resultado, estado, centro de inspección, ámbito y tipo de servicio.

¿Qué es el CITV y en qué se parece a la tecnomecánica colombiana?

El Certificado de Inspección Técnica Vehicular es el documento que acredita que un vehículo peruano pasó la revisión obligatoria, el equivalente funcional de la tecnomecánica en Colombia. PlacApi usa para los dos el mismo valor de source y la misma forma de respuesta —vigente, hasta cuándo, historial— para que un cliente que ya integró Colombia no escriba un segundo parser.

Ejemplo de solicitud

POST https://placapi.com/api/revision-tecnica-pe. Autenticación por API key en el header x-api-key. Los datos del ejemplo son ficticios.

Ejemplo cURL de la solicitud
curl -X POST 'https://placapi.com/api/revision-tecnica-pe' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"placa":"ABC123"}'

Ejemplo de respuesta

Respuesta JSON (fragmento con los campos de esta consulta; la API integral devuelve todas las fuentes en el mismo objeto).

Ejemplo de respuesta JSON
{
  "source": "rtm",
  "status": "ok",
  "data": {
    "pais": "PE",
    "placa": "ABC123",
    "vigente": true,
    "vigenteHasta": "2027-03-09",
    "certificados": [
      {
        "numero": "C-2026-013-123-003563",
        "vigenciaInicio": "2026-03-09",
        "vigenciaFin": "2027-03-09",
        "resultado": "APROBADO",
        "estado": "VIGENTE",
        "centro": "REVISIONES TECNICAS DEL PERU SOCIEDAD ANONIMA CERRADA - REVISIONES TECNICAS DEL PERU S.A.C.",
        "direccion": "VIA AUXILIAR DE LA AV. PANAMERICANA SUR A LA ALTURA DEL KM. 11.300 - LIMA - LIMA - SAN JUAN DE MIRAFLORES",
        "ambito": null,
        "tipoServicio": "PARTICULAR",
        "observacion": "Sin observaciones"
      },
      {
        "numero": "C-2025-013-123-001484",
        "vigenciaInicio": "2025-02-07",
        "vigenciaFin": "2026-02-07",
        "resultado": "APROBADO",
        "estado": "VENCIDO",
        "centro": "REVISIONES TECNICAS DEL PERU SOCIEDAD ANONIMA CERRADA - REVISIONES TECNICAS DEL PERU S.A.C.",
        "direccion": "VIA AUXILIAR DE LA AV. PANAMERICANA SUR A LA ALTURA DEL KM. 11.300 - LIMA - LIMA - SAN JUAN DE MIRAFLORES",
        "ambito": null,
        "tipoServicio": "PARTICULAR",
        "observacion": "Sin observaciones"
      },
      {
        "numero": "C-2024-013-123-001548",
        "vigenciaInicio": "2024-02-07",
        "vigenciaFin": "2025-02-07",
        "resultado": "APROBADO",
        "estado": "VENCIDO",
        "centro": "REVISIONES TECNICAS DEL PERU SOCIEDAD ANONIMA CERRADA - REVISIONES TECNICAS DEL PERU S.A.C.",
        "direccion": "VIA AUXILIAR DE LA AV. PANAMERICANA SUR A LA ALTURA DEL KM. 11.300 - LIMA - LIMA - SAN JUAN DE MIRAFLORES",
        "ambito": null,
        "tipoServicio": "PARTICULAR",
        "observacion": "Sin observaciones"
      }
    ]
  },
  "portalUrl": "https://rec.mtc.gob.pe/Citv/ArConsultaCitv",
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z",
  "cost": 1
}

Explicación campo por campo

CampoTipoDescripción
sourcestringQué dato es: "rtm", el mismo valor que usa la tecnomecánica colombiana. El contrato es compartido a propósito.
statusstringok con certificado vigente, warn cuando solo hay historial vencido, info cuando no hay certificados. Las tres son HTTP 200: califican el hallazgo, no la llamada.
data.vigentebooleanSi hay al menos un certificado vigente hoy. Es la respuesta corta y la que se pinta en un tablero.
data.vigenteHastastring|nullFecha de fin del certificado vigente, en ISO. null cuando no hay ninguno vigente. Es el campo sobre el que se calculan los avisos de vencimiento.
data.certificados[].numerostringNúmero del certificado. Un desaprobado lleva el prefijo I-, y esa es la marca que lo distingue sin mirar el resultado.
data.certificados[].vigenciaFinstring|nullFin de la vigencia en ISO. Llega null en un certificado desaprobado, porque no otorga vigencia: restar fechas contra ese null es el error clásico de la primera integración.
data.certificados[].resultadostringVeredicto de la inspección; APROBADO cuando el vehículo pasó. No confundir con estado.
data.certificados[].estadostringSituación del certificado hoy: VIGENTE o VENCIDO. Un certificado aprobado y vencido a la vez es lo normal en el historial.
data.certificados[].centrostringRazón social del centro de inspección que practicó la revisión, tal como la escribe el registro.
data.certificados[].direccionstringDirección del centro, con distrito y provincia. Sirve para ubicar dónde se hizo la inspección sin cruzar contra otra base.
data.certificados[].ambitostring|nullAlcance del certificado: NACIONAL, PROVINCIAL o REGIONAL. null en los vehículos donde el registro no lo aplica, que es el caso habitual de un particular.
data.certificados[].tipoServiciostringServicio al que está destinado el vehículo, por ejemplo PARTICULAR. Es lo que decide con qué periodicidad le toca inspección.
data.certificados[].observacionstringTexto libre del registro sobre la inspección. "Sin observaciones" cuando no hay nada anotado.
modestringlive si se consultó el registro en ese momento; cache si vino de caché. Un hit de caché no cobra crédito.
fetchedAtstring (ISO 8601)Instante en que se obtuvo el dato. Con una caché que puede durar hasta el vencimiento del certificado, es lo que dice si la respuesta se leyó hoy o hace meses.

Tiempo de respuesta

Mediana de 3,7 segundos y percentil 90 de 6,7 segundos, medidos el 1 de septiembre de 2026 sobre 60 placas reales dentro de un barrido de 173 consultas que terminó sin un solo error. Es tiempo suficiente para llamarlo dentro de una petición web, y en un barrido de flota conviene igual paralelizarlo.

Precio y cobro

1 crédito por consulta con datos, desde 349 COP. El precio por crédito baja por volumen: 349 COP desde 30, 249 COP desde 1.000, 149 COP desde 5.000, 139 COP desde 10.000, 119 COP desde 20.000, 99 COP desde 50.000. Los créditos se compran por adelantado (mínimo 30 = 10.470 COP), no vencen y no hay mensualidad. El mismo precio aplica por la web y por API. Solo se cobra cuando la consulta devuelve datos; por API, las consultas sin resultado (404) tienen 10 gratis al mes por cada tipo de respuesta sin datos y después cobran igual.

Caché y actualización

Hasta la fecha en que vence el certificado vigente: mientras esté al día el dato no puede cambiar, y repetir la consulta a diario costaría un crédito por día para recibir lo mismo. Sin certificado vigente, 24 horas, porque el dueño puede pasar la inspección mañana. Un hit de caché no cobra. Con refresh en true se vuelve a preguntarle al registro, y esa consulta, si trae datos, cobra.

Seguridad y privacidad

La placa y el documento se usan solo para ejecutar la consulta; el resultado queda en caché temporal. No se almacenan datos de tarjetas (los pagos los procesa Wompi). Ver privacidad y seguridad.

Limitaciones y posibles errores

  • La cobertura depende del tipo de vehículo y está medida: 82 % de las placas de formato antiguo, 67 % de los camiones, 41 % de los autos modernos y 17 % de las motos tenían al menos un certificado. La moto lineal no pasa inspección técnica en Perú y el auto particular nuevo está exento sus primeros años, así que una lista vacía suele ser cumplimiento, no incumplimiento.
  • El registro entrega los tres certificados más recientes aunque informe que existen más. No sirve para reconstruir un historial largo de inspecciones.
  • Un certificado desaprobado llega con el prefijo I- en el número y sin fecha de fin de vigencia. Un cálculo de días restantes que no contemple ese null se rompe en el primer vehículo que reprobó.
  • El ámbito llega en null cuando el registro no lo aplica, que es lo habitual en vehículos particulares. Es ausencia de la categoría, no un dato perdido.
  • Una placa sin certificados es una respuesta válida —certificados vacío y vigente en false— y COBRA 1 crédito: «nunca ha pasado inspección» es exactamente el dato que se vino a comprar. Lo que no cobra es un fallo del registro o de la salida de red, que devuelve data en null y reembolsa.

Códigos de error del endpoint (401, 402, 429, 5xx) en la referencia de errores.

Otras preguntas frecuentes

¿Por qué muchas placas responden sin ningún certificado?

+

Porque no todos los vehículos están obligados. En un barrido de 60 placas reales del 1 de septiembre de 2026, solo el 17 % de las motos y el 41 % de los autos modernos tenían certificado, frente al 82 % de las placas de formato antiguo. La moto lineal no pasa inspección técnica y el auto particular nuevo está exento sus primeros años: una lista vacía en esos casos es cumplimiento, no una falta.

¿Cobra una consulta de una placa que nunca ha pasado inspección?

+

Sí, cobra 1 crédito. Esa respuesta no es un error: es el resultado de una consulta que sí se ejecutó contra el registro, y «no tiene certificados» es la información que se vino a comprar. Lo que no cobra es un fallo del registro, del captcha o de la salida de red, que devuelve data en null y reembolsa el crédito reservado.

¿Cuántos certificados devuelve del historial?

+

Los tres más recientes. El registro informa cuántos existen en total, pero entrega esos tres, así que el tope es de la fuente y no del endpoint. Alcanza para saber si el vehículo viene cumpliendo; no alcanza para auditar una década hacia atrás.

¿Cada cuánto conviene reconsultar una flota completa?

+

Una vez al día basta, y la caché hace que eso no se traduzca en un crédito por unidad por día: un vehículo con certificado vigente queda cacheado hasta la fecha exacta en que vence, así que el barrido solo cobra por las unidades que cambiaron de estado. Los avisos se calculan sobre vigenteHasta, restando contra la fecha de hoy.

Seguir explorando

Última revisión: 1 de septiembre de 2026 · Versión de la API: v1 · Fuentes y metodología

Contacto