Endpoint: certificados de antecedentes en PDF

Con el documento de una persona, /api/certificado-antecedentes consulta en una sola llamada sus antecedentes disciplinarios, fiscales y judiciales y la busca en las listas de sanciones de OFAC y de la ONU. Cada resultado llega con su PDF para ver o descargar: el certificado original cuando la entidad lo expide y una constancia de consulta de PlacApi cuando no.

POST/api/certificado-antecedentes10 créditos

Las cinco verificaciones de antecedentes de una persona en una sola llamada, cada una con su PDF para ver o descargar: disciplinarios (Procuraduría), fiscales (Contraloría), judiciales (Policía Nacional) y las listas de sanciones de OFAC y de la ONU. Procuraduría y Contraloría entregan el certificado original que expide la entidad (pdf.tipo: "oficial"), con su número o código de verificación. La Policía, OFAC y la ONU no expiden documento: para ellas el PDF es una constancia de consulta que emite PlacApi (pdf.tipo: "constancia") y dice que no reemplaza un certificado de la entidad. Basta con el documento: el nombre para buscar en OFAC y ONU se toma del registro, y se busca también en variantes cortas (primer nombre y apellidos) para que no se escape alguien listado con menos nombres; si mandas nombre, se usa ese. consultas permite pedir solo algunas. Cobro por consulta: 2 créditos con resultado y PDF, 1 con resultado sin PDF, 0 si falla o no aplica — 10 créditos las cinco completas, y la respuesta declara el total en cost. Tarda lo que la consulta más lenta: la Procuraduría expide el certificado en unos 7 s con el registro sano y hasta 140 s en un bache.

Cuerpo de la solicitud

body (JSON)
{
  "docType": "CC",
  "docNumber": "1020304050"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
docTypestringTipo de documento. Obligatorio si pides alguna de `disciplinario`, `fiscal` o `judicial` (lo son por defecto). Cada registro maneja los suyos —disciplinario: CC, CE, NIT, PPT, PEP; fiscal: CC, CE, TI, PA, PPT, PEP; judicial: CC, CE, PA, CD—; la consulta que no maneja el tipo enviado responde `code: "no_aplica"` y no cobra.Valores: CC · CE · NIT · PA · TI · CD · PPT · PEP
docNumberstringNúmero de documento. Alias aceptado: `doc`.
nombrestringNombre completo para OFAC y ONU. OPCIONAL si mandas el documento: sin él se toma el del registro. Obligatorio si solo pides `ofac` u `onu`.
consultasarrayQué consultar: cualquier combinación de `disciplinario`, `fiscal`, `judicial`, `ofac`, `onu` (arreglo en JSON o separadas por coma en GET). Por defecto, las cinco. Solo se reservan los créditos de las pedidas.
primerNombrestringPrimer nombre del titular. OPCIONAL: solo agiliza la consulta disciplinaria. No cambia el resultado.

Ejemplos por lenguaje

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

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

Respuesta exitosa

200 OK — ejemplo (placas y documentos ficticios)
{
  "source": "certificado-antecedentes",
  "status": "ok",
  "documento": {
    "docType": "CC",
    "docNumber": "1020304050"
  },
  "nombreConsultado": {
    "valor": "JUAN CARLOS PEREZ GOMEZ",
    "origen": "registro",
    "variantes": [
      "JUAN CARLOS PEREZ GOMEZ",
      "JUAN PEREZ GOMEZ",
      "JUAN PEREZ",
      "JUAN CARLOS PEREZ"
    ]
  },
  "consultas": {
    "disciplinario": {
      "status": "ok",
      "data": {
        "documento": "1020304050",
        "tipoDocumento": "Cédula de ciudadanía",
        "nombre": "JUAN CARLOS PEREZ GOMEZ",
        "tieneAntecedentes": false,
        "descripcion": "No registra sanciones ni inhabilidades vigentes",
        "anotaciones": [],
        "totalAnotaciones": 0,
        "inhabilitadoHasta": "",
        "certificadoNumero": "304326366",
        "fechaExpedicion": "06 de octubre del 2026"
      },
      "pdf": {
        "tipo": "oficial",
        "url": "https://placapi.com/api/certificados/Xk3v9QpL2mN7rT1wY5zA8cE4gH6jK0bD",
        "expiraEn": "2026-10-09T15:04:05.000Z",
        "nombreArchivo": "certificado-disciplinario-1020304050.pdf",
        "bytes": 52557,
        "sha256": "9f2c1e7a4b8d3f6e0a5c2b9d8e7f6a1b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f"
      },
      "cost": 2
    },
    "fiscal": {
      "status": "ok",
      "data": {
        "documento": "1020304050",
        "tipoDocumento": "Cédula de Ciudadanía",
        "tieneAntecedentes": false,
        "descripcion": "No se encuentra reportado como responsable fiscal",
        "codigoVerificacion": "1020304050261006095647",
        "fechaConsulta": "martes 06 de octubre de 2026 09:56:47"
      },
      "pdf": {
        "tipo": "oficial",
        "url": "https://placapi.com/api/certificados/Rt5yU8iO1pA4sD7fG0hJ3kL6zX9cV2bN",
        "expiraEn": "2026-10-09T15:04:05.000Z",
        "nombreArchivo": "certificado-fiscal-1020304050.pdf",
        "bytes": 48081,
        "sha256": "3b7e9a1c5d2f8e4a6b0c9d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a"
      },
      "cost": 2
    },
    "judicial": {
      "status": "ok",
      "data": {
        "documento": "1020304050",
        "nombre": "PEREZ GOMEZ JUAN CARLOS",
        "tipoDocumento": "Cédula de Ciudadanía",
        "tieneAntecedentes": false,
        "descripcion": "No tiene asuntos pendientes con las autoridades judiciales",
        "anotaciones": [],
        "fechaConsulta": "06/10/2026 10:04:05 AM"
      },
      "pdf": {
        "tipo": "constancia",
        "url": "https://placapi.com/api/certificados/Mn8bV5cX2zL9kJ6hG3fD0sA7pO4iU1yT",
        "expiraEn": "2026-10-09T15:04:05.000Z",
        "nombreArchivo": "constancia-judicial-1020304050.pdf",
        "bytes": 5371,
        "sha256": "c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5"
      },
      "cost": 2
    },
    "ofac": {
      "status": "ok",
      "data": {
        "nombreConsultado": "JUAN CARLOS PEREZ GOMEZ",
        "tieneAntecedentes": false,
        "descripcion": "No aparece en las listas de sanciones consultadas",
        "enListas": false,
        "totalCoincidencias": 0,
        "coincidencias": [],
        "listaActualizada": "2026-07-24T15:04:05.000Z"
      },
      "pdf": {
        "tipo": "constancia",
        "url": "https://placapi.com/api/certificados/Qw2eR5tY8uI1oP4aS7dF0gH3jK6lZ9xC",
        "expiraEn": "2026-10-09T15:04:05.000Z",
        "nombreArchivo": "constancia-ofac-1020304050.pdf",
        "bytes": 5123,
        "sha256": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2"
      },
      "cost": 2
    },
    "onu": {
      "status": "ok",
      "data": {
        "nombreConsultado": "JUAN CARLOS PEREZ GOMEZ",
        "tieneAntecedentes": false,
        "descripcion": "No aparece en la lista de sanciones del Consejo de Seguridad de la ONU",
        "enLista": false,
        "totalCoincidencias": 0,
        "coincidencias": [],
        "listaActualizada": "2026-07-24T15:04:05.000Z"
      },
      "pdf": {
        "tipo": "constancia",
        "url": "https://placapi.com/api/certificados/Zx1cV4bN7mQ0wE3rT6yU9iO2pA5sD8fG",
        "expiraEn": "2026-10-09T15:04:05.000Z",
        "nombreArchivo": "constancia-onu-1020304050.pdf",
        "bytes": 5011,
        "sha256": "e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6"
      },
      "cost": 2
    }
  },
  "fetchedAt": "2026-07-24T15:04:05.000Z",
  "mode": "live",
  "cost": 10
}

Errores y cobro

Cuesta 10 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.

¿Qué consulta y qué PDF trae cada una?

ClaveRegistroPDFSe busca por
disciplinarioProcuraduría General de la Nación (SIRI)Oficialdocumento
fiscalContraloría General de la República (boletín de responsables fiscales)Oficialdocumento
judicialPolicía Nacional (antecedentes judiciales)Constanciadocumento
ofacOFAC: lista SDN («lista Clinton») y listas no-SDNConstancianombre
onuLista consolidada del Consejo de Seguridad de la ONUConstancianombre

pdf.tipo: "oficial" es el certificado que expide la entidad, byte a byte, con su número o código de verificación: no se regenera ni se modifica. La Policía, OFAC y la ONU no expiden un documento descargable, así que para ellas pdf.tipo es "constancia": un PDF que emite PlacApi con la fecha y hora de la consulta, la persona consultada y el resultado, con la leyenda del registro copiada tal cual. No es un certificado de la entidad ni lo reemplaza, y así lo dice el propio documento.

Con consultas pides solo las que necesitas, por ejemplo ["fiscal", "ofac"]. Cada fuente responde en su propio bloque dentro de consultas, con status, data (la misma forma que su endpoint individual, como antecedentes disciplinarios), pdf y cost. Si una falla, las demás llegan igual.

¿De dónde sale el nombre para OFAC y ONU?

Las listas de sanciones se buscan por nombre, no por documento. Si no envías nombre, se toma el que devuelve el registro disciplinario o el judicial. Como una persona puede figurar en la lista con menos nombres de los que tiene en la cédula, ese nombre se busca también en variantes cortas (primer nombre con los apellidos, primer nombre con el primer apellido) y se unen los resultados. nombreConsultado dice qué nombre se usó, de dónde salió y qué variantes se probaron. Si envías nombre, se busca exactamente ese.

Una coincidencia por nombre no identifica por sí sola a la persona: compara el documento y la fecha de nacimiento que trae cada coincidencia antes de concluir.

¿Cómo llega el PDF?

El PDF no viaja dentro del JSON. pdf.url lo abre en el navegador; agregándole ?descargar=1 lo baja como archivo con el nombre de pdf.nombreArchivo. El enlace no pide API key, así que puedes entregárselo a tu usuario final, y deja de funcionar en pdf.expiraEn (72 horas): si necesitas conservar el documento, descárgalo y guárdalo. pdf.sha256 sirve para comprobar que el archivo guardado es el que se entregó. El enlace se abre en una pestaña o se descarga; no se puede incrustar en un iframe de otro dominio.

¿Cuánto cuesta y cuánto tarda?

Se cobra por fuente: 2 créditos si trae resultado y PDF, 1 si trae resultado pero el PDF no se pudo generar (pasa con el disciplinario cuando ya se expidió el máximo de certificados del día para ese documento; el motivo llega en pdfError y pdfErrorCode), y 0 si falla o no aplica a ese tipo de documento. Las cinco completas son 10 créditos; el total va en cost. Si ninguna fuente responde, no se cobra nada. No hay caché: cada llamada es una consulta nueva y un documento nuevo.

Las cinco se consultan en paralelo y la respuesta llega cuando termina la más lenta: casi siempre la Procuraduría, que expide el certificado en unos 7 segundos y puede tardar hasta 2 minutos y medio cuando su registro está lento. Configura el timeout de tu cliente en al menos 180 segundos.

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

Contacto