Endpoint: portal de impuesto vehicular por placa

Resuelve, desde el organismo de tránsito que reporta el RUNT para esa placa, en cuál de los portales departamentales se liquida y se paga el impuesto del vehículo, y devuelve el enlace. No liquida el impuesto y no pretende hacerlo: ningún departamento lo expone por API —todos blindan el portal con captcha y cuestionario—, así que data siempre llega en null y lo que vale está en portalUrl. Por eso este endpoint no cobra crédito. Es el único endpoint del catálogo que no cobra, y no por promoción: no hay nada que cobrar. Lo que devuelve es enrutamiento —qué departamento y qué portal—, no una liquidación, y se prefirió publicarlo así antes que no publicarlo: saber a qué portal ir ya ahorra el paso de averiguar dónde está matriculado el vehículo.

POST/api/impuestos0 créditos

Departamento donde está matriculado el vehículo y enlace al portal oficial de impuestos. El departamento se resuelve desde el organismo de tránsito del RUNT por placa. NO liquida el impuesto: ningún departamento lo expone por API (todos blindan el portal con captcha y cuestionario), así que `data` siempre viene null y el valor está en `portalUrl` + el mensaje de `error`. Gratis: no cobra crédito.

Cuerpo de la solicitud

body (JSON)
{
  "placa": "ABC123",
  "docType": "CC",
  "docNumber": "1020304050"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
placaobligatoriostringPlaca del vehículo. 5 a 7 caracteres alfanuméricos: cubre AAA000, AAA00A y los formatos menos comunes (AAA00, AAAA00). Los guiones y espacios se ignoran.
docTypeobligatoriostringTipo de documento del propietario (CC, CE, NIT, PA, TI, CD, PPT, RC). Se aceptan alias comunes: PAS y PASAPORTE se normalizan a PA, y P.P.T. y P.P. —como lo abrevia la tarjeta de propiedad— se normalizan a PPT.Valores: CC · CE · NIT · PA · TI · CD · PPT · RC
docNumberobligatoriostringNúmero de documento del propietario. Alias aceptado: `doc`.
refreshbooleanIgnora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).

Ejemplos por lenguaje

cURL
curl -X POST 'https://placapi.com/api/impuestos' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"placa":"ABC123","docType":"CC","docNumber":"1020304050"}'
JavaScript (fetch)
const res = await fetch("https://placapi.com/api/impuestos", {
  method: "POST",
  headers: {
    "x-api-key": "pk_live_TU_CLAVE",
    "content-type": "application/json",
  },
  body: JSON.stringify({"placa":"ABC123","docType":"CC","docNumber":"1020304050"}),
});
const data = await res.json();
Python (requests)
import requests

res = requests.post(
    "https://placapi.com/api/impuestos",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"placa":"ABC123","docType":"CC","docNumber":"1020304050"},
)
data = res.json()

Respuesta exitosa

200 OK — datos ficticios de ejemplo
{
  "source": "Bogotá D.C.",
  "status": "info",
  "data": null,
  "portalUrl": "https://www.haciendabogota.gov.co/es/sdh/pagos-impuesto-vehiculos",
  "error": "Tu vehículo está matriculado en Bogotá D.C. Paga tu impuesto en el portal oficial del departamento.",
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z"
}

Errores y cobro

Cuesta 0 créditos cuando devuelve datos. Códigos posibles: 400 401 402 404 429 500 502 — qué significa cada uno, cuál reintentar y cuál cobra, en errores y rate limits. Autenticación por x-api-key: cómo generar la clave.

Última revisión: 23 de agosto de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.

Contacto