API KYC Colombia: cédula, biometría y antecedentes

API KYC Colombia (2026): 10 verificaciones para validar cédula, antecedentes y PEP

Tabla de Contenidos
Comparte este artículo

Respuesta corta: Un flujo de API KYC en Colombia con Verifik combina la cédula (GET /v2/co/cedula), el certificado de vigencia de la Registraduría, la comparación facial con prueba de vida y, según el riesgo, antecedentes de Policía, Procuraduría, Contraloría y PEP. Todas usan token Bearer y se pagan con créditos de smartCHECK desde $49 al mes.

Si buscas una API KYC en Colombia, no necesitas un solo endpoint sino un flujo por capas. Esta guía, actualizada en noviembre de 2026, es el mapa: reúne las 10 verificaciones que Verifik ofrece para conocer a un cliente colombiano, explica qué fuente oficial consulta cada una y enlaza a la guía detallada de cada consulta. Si solo necesitas validar el documento, empieza por la verificación de cédula de Colombia.

Nota: este artículo resume normas oficiales con fines informativos y no constituye asesoría legal. Valida tu caso con tu oficial de cumplimiento.

Qué es KYC en Colombia y por qué importa en 2026

KYC (conoce a tu cliente) es el conjunto de controles para saber quién es tu cliente antes de darle un producto. En Colombia esos controles se apoyan en tres marcos:

  • Prevención de lavado de activos. Las entidades vigiladas por la Superintendencia Financiera aplican el SARLAFT, que exige identificar y conocer al cliente con un enfoque basado en riesgos. Las sociedades vigiladas por la Supersociedades tienen un régimen equivalente (SAGRILAFT).
  • Suplantación de identidad. La Ley 2573 de 2026 obliga a telcos, entidades financieras o crediticias y comercios con esa competencia a adoptar medidas “suficientes y razonables” para verificar la identidad. Lo resumimos en nuestra página de cumplimiento de la Ley 2573.
  • Datos personales. Si guardas datos de la cédula, selfies o antecedentes, aplica la Ley 1581 de 2012: necesitas autorización del titular y una finalidad clara.

Las 10 verificaciones de un KYC colombiano

Cada verificación responde a una pregunta distinta. Esta tabla resume qué endpoint usar y qué devuelve según la documentación oficial de Verifik:

PreguntaEndpointQué pidesQué devuelve
¿La cédula existe y a quién pertenece?GET /v2/co/ceduladocumentType (CC o PPT) y documentNumberNombre completo, nombres, apellidos y firma de Verifik
¿La cédula está vigente ante la Registraduría Nacional del Estado Civil?GET /v2/co/registraduria/certificadodocumentNumber y date (fecha de expedición, DD/MM/AAAA)novedad (por ejemplo VIGENTE), fecha y lugar de expedición, código de verificación y PDF
¿El extranjero residente tiene una cédula de extranjería válida?GET /v2/co/foreigner-id/cedocumentNumber y expeditionDate (DD/MM/AAAA)Nombre, estado (por ejemplo VIGENTE) y vencimiento
¿La persona frente a la cámara es el titular?POST /v2/face-recognition/compare-with-livenessprobe (selfie), gallery y umbralesPuntaje de comparación y resultado de prueba de vida
¿Tiene asuntos pendientes con las autoridades judiciales? (Policía Nacional)GET /v2/co/policia/consultardocumentType (CC, CE, PPT, PA, DP) y documentNumberNombre y texto oficial del certificado de antecedentes
¿Tiene medidas correctivas pendientes? (RNMC)GET /v2/co/policia/rnmcdocumentType, documentNumber y date de expediciónLista de medidas correctivas con estado, municipio y expediente
¿Tiene sanciones disciplinarias? (Procuraduría General de la Nación)GET /v2/co/procuraduria/antecedentesdocumentType (CC, PEP, CE) y documentNumberhasRecord, leyenda y sanciones
¿Tiene responsabilidad fiscal? (Contraloría General)GET /v2/co/contraloria/certificadodocumentType (CC, CE, PA, PEP) y documentNumberFecha de consulta y certificado en PDF
¿Es una persona expuesta políticamente (AML)?GET /v2/co/politically-exposed-personsdocumentType (CC o NIT) y documentNumberDeclaraciones con entidad, cargo y fecha de publicación; 404 si no hay coincidencia
¿Puede conducir? (movilidad, delivery, alquiler)GET /v2/co/runt/conductordocumentType (CC, CE, PA, PPT) y documentNumberEstado del conductor, licencias, categorías y vencimientos

Para el detalle de cada consulta tienes guías propias: verificación de identidad con cédula de ciudadanía, cédulas de extranjería, antecedentes policiales, medidas correctivas RNMC, certificado de Contraloría, registros del INPEC y licencias de conducir.

Ojo con las siglas: “PEP” aparece dos veces. En /v2/co/politically-exposed-persons es la persona expuesta políticamente (AML); como documentType=PEP en Procuraduría o Contraloría es el Permiso Especial de Permanencia, un documento migratorio.

Flujo recomendado paso a paso

Este orden reduce costos y fricción, porque cada paso solo se ejecuta si el anterior salió bien:

  1. Captura de datos y autorización. Pide tipo y número de documento, la fecha de expedición y registra la autorización de tratamiento de datos (Ley 1581).
  2. Documento. Consulta /v2/co/cedula y compara fullName con lo que escribió el cliente. Si es extranjero, usa /v2/co/foreigner-id/ce.
  3. Vigencia. Consulta /v2/co/registraduria/certificado y aprueba solo si novedad es VIGENTE; cualquier otro valor va a revisión manual.
  4. Biometría. Pide una selfie y llama a /v2/face-recognition/compare-with-liveness.
  5. Listas y antecedentes según riesgo. PEP para productos financieros; Policía, RNMC, Procuraduría y Contraloría para contratación, crédito o proveedores.
  6. Decisión y evidencia. Aprueba, rechaza o envía a revisión. Guarda el id y la signature de cada respuesta: te sirven para el cotejo de documentos que exige la Ley 2573.

Cómo integrarlo con la API de Verifik

Todas las llamadas van a https://api.verifik.co con tu token en el encabezado Authorization: Bearer. Los ejemplos usan datos ficticios con la forma de respuesta de la documentación oficial.

Paso 1: validar la cédula

La documentación de identidad de Colombia pide documentType (CC o PPT) y documentNumber:

curl -G "https://api.verifik.co/v2/co/cedula" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $VERIFIK_TOKEN" \
  --data-urlencode "documentType=CC" \
  --data-urlencode "documentNumber=123456789"

Respuesta 200 de ejemplo:

{
  "data": {
    "arrayName": [
      "JUAN",
      "CARLOS",
      "PEREZ",
      "GOMEZ"
    ],
    "documentNumber": "123456789",
    "documentType": "CC",
    "firstName": "JUAN CARLOS",
    "fullName": "JUAN CARLOS PEREZ GOMEZ",
    "lastName": "PEREZ GOMEZ"
  },
  "signature": {
    "dateTime": "November 3, 2026 9:15 AM",
    "message": "Certified by Verifik.co"
  },
  "id": "CC01A"
}

Si envías un tipo de documento no admitido, la API responde 409:

{
  "code": "MissingParameter",
  "message": "documentType must be one of: [CC,PPT]"
}

Paso 2: certificado de vigencia de la Registraduría

El endpoint del certificado exige la fecha de expedición de la cédula, un dato que solo el titular suele tener a mano:

import os, requests

url = "https://api.verifik.co/v2/co/registraduria/certificado"
headers = {
    "Accept": "application/json",
    "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
params = {"documentNumber": "123456789", "date": "10/10/2020"}

r = requests.get(url, headers=headers, params=params)
print(r.status_code, r.json())

Respuesta 200 de ejemplo (el PDF va recortado):

{
  "data": {
    "codigoVerificacion": "ABC123XYZ",
    "novedad": "VIGENTE",
    "pdfBase64": "JVBERi0xLjQK...",
    "documento": {
      "cedula": "123456789",
      "fechaExpedicion": "10/10/2020",
      "lugarExpedicion": "BOGOTA D.C.",
      "nombre": "JUAN CARLOS PEREZ GOMEZ"
    }
  },
  "signature": {
    "dateTime": "November 3, 2026 9:16 AM",
    "message": "Certified by Verifik.co"
  }
}

Paso 3: comparación facial con prueba de vida

Comparar con detección de vitalidad compara la selfie con la galería y, si supera compare_min_score, ejecuta la prueba de vida:

import os, requests

url = "https://api.verifik.co/v2/face-recognition/compare-with-liveness"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
payload = {
    "probe": "<base64>",
    "gallery": ["<base64>"],
    "search_mode": "FAST",
    "liveness_min_score": 0.6,
    "compare_min_score": 0.8
}

r = requests.post(url, json=payload, headers=headers)
print(r.json())

Respuesta 200 de ejemplo:

{
  "id": "CWL01",
  "data": {
    "comparison": {
      "score": 0.88
    },
    "liveness": {
      "liveness_score": 0.91,
      "min_score": 0.6,
      "passed": true
    }
  },
  "signature": {
    "message": "Certified by Verifik.co",
    "dateTime": "November 3, 2026 9:25 AM"
  }
}

Más contexto en la guía de prueba de vida para evitar la suplantación.

Paso 4: antecedentes de Policía y Procuraduría

La consulta de la Policía Nacional no pide fecha:

curl -G "https://api.verifik.co/v2/co/policia/consultar" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $VERIFIK_TOKEN" \
  --data-urlencode "documentType=CC" \
  --data-urlencode "documentNumber=123456789"

Respuesta 200 de ejemplo:

{
  "data": {
    "arrayName": [
      "JUAN",
      "CARLOS",
      "PEREZ",
      "GOMEZ"
    ],
    "documentNumber": "123456789",
    "documentType": "CC",
    "firstName": "JUAN CARLOS",
    "lastName": "PEREZ GOMEZ",
    "fullName": "JUAN CARLOS PEREZ GOMEZ",
    "details": "NO TIENE ASUNTOS PENDIENTES CON LAS AUTORIDADES JUDICIALES"
  },
  "signature": {
    "dateTime": "November 3, 2026 9:20 AM",
    "message": "Certified by Verifik.co"
  },
  "id": "POL01"
}

Para la Procuraduría, revisa hasRecord antes de leer las sanciones:

import axios from "axios";

const { data } = await axios.get("https://api.verifik.co/v2/co/procuraduria/antecedentes", {
  params: { documentType: "CC", documentNumber: "123456789" },
  headers: {
    Accept: "application/json",
    Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
  },
});

console.log(data.data.hasRecord, data.data.legend);

Códigos de respuesta que debes manejar

CódigoQué significaQué hacer
200Consulta exitosa con datos y firmaGuarda id y signature como evidencia
404No hay registro (en PEP, que no hay coincidencia)Revisa el número; en listas, trátalo como “sin resultado”
409Parámetro faltante o inválido (MissingParameter, formato de fecha) o fuente no disponible (Endpoint_out_of_service)Corrige el parámetro o reintenta más tarde
500Error de la fuente o del servicioReintenta con espera y envía a revisión si persiste

Verifik - la mejor plataforma de verificación de identidad

Más allá de la persona: vehículos y empresas

Si tu producto involucra vehículos o clientes empresariales, el mismo token cubre las consultas complementarias: RUNT por placa, propietario del vehículo por placa, SOAT y revisión técnico-mecánica y la validación RUES de empresas.

Sin código: smartCHECK

Para consultas puntuales sin programar, smartCHECK permite hacer las mismas verificaciones desde la web. Cada consulta, por API o por web, se descuenta de los créditos de tu plan, con planes desde $49 al mes. El costo por llamada de cada endpoint lo ves en tu panel al crear la cuenta.

Errores comunes en el KYC colombiano

  • Validar solo el número de cédula. Confirma que el documento existe, no que quien lo presenta sea su titular. Suma la comparación facial con prueba de vida.
  • Confundir fecha de expedición y de nacimiento. El certificado de la Registraduría, la CE y el RNMC piden la fecha de expedición en DD/MM/AAAA.
  • Enviar una CE a /v2/co/cedula. Ese endpoint solo acepta CC y PPT; la CE tiene su propio endpoint.
  • Tratar un 409 como un rechazo. Puede ser una fuente fuera de servicio. Reintenta antes de decidir.
  • Guardar más datos de los necesarios. Conserva la evidencia de la verificación y define plazos de retención según la Ley 1581.

Respuestas rápidas

¿Qué se necesita para hacer KYC en Colombia por API? Como mínimo, validar la cédula con /v2/co/cedula, confirmar su vigencia con el certificado de la Registraduría y comparar el rostro con prueba de vida. Según el riesgo, se suman PEP y antecedentes.

¿Qué devuelve la consulta de cédula? Nombre completo, nombres, apellidos, número y tipo de documento, más una firma de Verifik con fecha y hora de la consulta.

¿Cómo sé si una cédula está vigente? Con /v2/co/registraduria/certificado, enviando el número y la fecha de expedición. El campo novedad indica el estado, por ejemplo VIGENTE.

¿Qué antecedentes puedo consultar por API? Policía Nacional, medidas correctivas (RNMC), Procuraduría, Contraloría e INPEC, además de la lista de personas expuestas políticamente.

¿Cómo verifico a un extranjero residente en Colombia? Con /v2/co/foreigner-id/ce para la cédula de extranjería, o con /v2/co/cedula y documentType=PPT para el Permiso por Protección Temporal.

¿Cuánto cuesta? Cada consulta consume créditos de smartCHECK, con planes desde $49 al mes.

Arma tu flujo KYC para Colombia

Con estas consultas cubres a ciudadanos, extranjeros residentes, conductores y personas con exposición política, y cada respuesta trae una firma de Verifik que puedes guardar como evidencia. Revisa la documentación de identidad para Colombia y haz tus primeras pruebas.

¿Listo para empezar? Crea tu cuenta gratis en Verifik o agenda una demo para ver cómo integrar el KYC en tu onboarding de clientes colombianos.

Johan Castellanos - CEO Verifik

Preguntas frecuentes

➖

¿Qué se necesita para hacer KYC en Colombia por API?

Como mínimo, validar la cédula con /v2/co/cedula, confirmar su vigencia con el certificado de la Registraduría y comparar el rostro con prueba de vida. Según el riesgo del producto se suman la consulta de personas expuestas políticamente (PEP) y los antecedentes.

➕

¿Qué devuelve la consulta de cédula de Verifik?

Nombre completo, nombres, apellidos, número y tipo de documento (CC o PPT), más una firma de Verifik con la fecha y hora de la consulta y un id que puedes guardar como evidencia.

➕

¿Cómo sé si una cédula está vigente ante la Registraduría?

Con GET /v2/co/registraduria/certificado, enviando el número y la fecha de expedición en formato DD/MM/AAAA. El campo novedad indica el estado, por ejemplo VIGENTE, y la respuesta incluye el certificado en PDF.

➕

¿Qué antecedentes se pueden consultar por API en Colombia?

Policía Nacional (/v2/co/policia/consultar), medidas correctivas RNMC (/v2/co/policia/rnmc), Procuraduría, Contraloría e INPEC, además de la lista de personas expuestas políticamente.

➕

¿Cómo verifico a un extranjero residente en Colombia?

Con GET /v2/co/foreigner-id/ce para la cédula de extranjería, enviando número y fecha de expedición, o con /v2/co/cedula y documentType=PPT para el Permiso por Protección Temporal.

➕

¿Cuánto cuesta el KYC por API con Verifik?

Cada consulta se descuenta de los créditos de tu plan de smartCHECK, con planes desde $49 al mes. El costo por llamada de cada endpoint aparece en tu panel al crear la cuenta.