Skip to main content

Referencia de APIs


🔑 Autenticación

Todas las APIs requieren autenticación mediante API Key o JWT Token.

Headers Requeridos

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Obtener API Key

Contactar a: soporte@verifik.co


📋 APIs por Caso de Uso COMPENSAR

🏋️ Caso 1: Acceso a Gimnasios

Flujo Completo

1. Registro Inicial → Document Validation + Biometric Validation
2. Acceso Diario → Biometric Validation (búsqueda 1:N)

APIs Necesarias

APIEndpointUso
Document ValidationPOST /v2/document-validationsRegistro inicial - validar documento
Citizen LookupPOST /v2/colombian-citizensRegistro inicial - validar con Registraduría
Biometric ValidationPOST /v2/biometric-validationsRegistro inicial - crear sesión liveness
Biometric ValidationPOST /v2/biometric-validations/validateAcceso diario - reconocimiento facial

💳 Caso 2: Validación de Identidad en Créditos

Flujo Completo

1. Captura de Documento → Document Validation
2. Validación Oficial → Citizen Lookup
3. Captura Biométrica → Biometric Validation
4. Decisión Automática → Webhook

APIs Necesarias

APIEndpointUso
Document ValidationPOST /v2/document-validationsOCR + extracción de datos
Citizen LookupPOST /v2/colombian-citizensValidación con Registraduría
Biometric ValidationPOST /v2/biometric-validationsLiveness + facial match
WebhooksPOST /v2/webhooksConfigurar notificaciones

🏢 Caso 3: Control de Acceso a Sedes

Flujo Completo

1. Registro de Empleado → Document + Biometric + Email/Phone
2. Acceso Diario → Biometric Validation
3. Registro de Asistencia → Webhook

APIs Necesarias

APIEndpointUso
Document ValidationPOST /v2/document-validationsValidar documento de empleado
Biometric ValidationPOST /v2/biometric-validationsRegistro facial + acceso
Email ValidationPOST /v2/email-validationsValidar email corporativo
Phone ValidationPOST /v2/phone-validationsValidar teléfono

📱 Caso 4: Trámites Digitales

Flujo Completo

1. Validación de Documento → Document Validation
2. Validación de Email → Email Validation (OTP)
3. Validación de Teléfono → Phone Validation (OTP)
4. Validación Biométrica → Biometric Validation

APIs Necesarias

APIEndpointUso
Document ValidationPOST /v2/document-validationsValidar documento
Email ValidationPOST /v2/email-validationsEnviar y validar OTP por email
Phone ValidationPOST /v2/phone-validationsEnviar y validar OTP por SMS
WhatsApp ValidationPOST /v2/whatsapp/send-otpEnviar OTP por WhatsApp
Biometric ValidationPOST /v2/biometric-validationsValidación facial

🔐 APIs de Validación de Documentos

1. Document Validation (OCR + Validación)

Endpoint: POST /v2/document-validations
Documentación: https://docs.verifik.co/api/document-validations

Descripción:
Extrae datos de documentos de identidad usando OCR con IA (Google Gemini) y valida su autenticidad.

Request:

{
"image": "base64_encoded_image",
"backImage": "base64_encoded_image_back",
"country": "CO",
"documentType": "CC",
"inputMethod": "SCAN"
}

Response:

{
"status": "ACTIVE",
"documentType": "CC",
"documentNumber": "1058843805",
"OCRExtraction": {
"fullName": "JUAN PEREZ GOMEZ",
"firstName": "JUAN",
"lastName": "PEREZ GOMEZ",
"dateOfBirth": "1990-01-15",
"expirationDate": "2030-01-15",
"documentNumber": "1058843805"
},
"imageValidated": false,
"namesMatch": false
}

Características:

  • ✅ OCR con IA (precisión >95%)
  • ✅ Soporte para 18+ países
  • ✅ Detección de documentos falsos
  • ✅ Extracción de datos estructurados

Países Soportados:

  • 🇨🇴 Colombia (CC, CE, PEP, PPT)
  • 🇧🇷 Brasil (CPF)
  • 🇵🇪 Perú (DNI)
  • 🇦🇷 Argentina (DNI)
  • 🇨🇱 Chile (RUN)
  • 🇲🇽 México (CURP)
  • Y 12+ países más

2. Document Validation - Name Validation

Endpoint: POST /v2/document-validations/:id/name-validation
Documentación: https://docs.verifik.co/api/document-validations/name-validation

Descripción:
Valida los datos extraídos del documento contra fuentes oficiales (Registraduría, etc.).

Request:

{
"force": false
}

Response:

{
"documentType": "CC",
"documentNumber": "1058843805",
"imageValidated": true,
"namesMatch": true,
"fullNameMatchPercentage": 95,
"firstNameMatchPercentage": 100,
"lastNameMatchPercentage": 92,
"scoreValidation": {
"fullName": "JUAN PEREZ GOMEZ",
"firstName": "JUAN",
"lastName": "PEREZ GOMEZ",
"dateOfBirth": "1990-01-15",
"validatedAt": "2024-12-16T13:00:00Z"
}
}

Características:

  • ✅ Validación con fuentes oficiales
  • ✅ Matching score de nombres
  • ✅ Detección de discrepancias
  • ✅ Trazabilidad completa

👤 APIs de Validación de Identidad (Bases de Datos Oficiales)

3. Colombian Citizens (Registraduría)

Endpoint: POST /v2/colombian-citizens
Documentación: https://docs.verifik.co/api/colombian-citizens

Descripción:
Consulta la base de datos de la Registraduría Nacional de Colombia para validar cédulas de ciudadanía.

Request:

{
"documentType": "CC",
"documentNumber": "1058843805"
}

Response:

{
"fullName": "JUAN PEREZ GOMEZ",
"firstName": "JUAN",
"lastName": "PEREZ GOMEZ",
"documentType": "CC",
"documentNumber": "1058843805",
"dateOfBirth": "1990-01-15",
"placeOfBirth": "BOGOTA",
"validated": true,
"source": "REGISTRADURIA_NACIONAL"
}

Características:

  • ✅ Consulta directa a Registraduría
  • ✅ Datos oficiales verificados
  • ✅ Tiempo de respuesta: 2-5 segundos
  • ✅ Disponibilidad: 99.5%

4. Colombian Foreigners (Migración Colombia)

Endpoints:

  • POST /v2/colombian-citizens/ce - Cédula de Extranjería
  • POST /v2/colombian-citizens/pep - Permiso Especial de Permanencia
  • POST /v2/colombian-citizens/ppt - Permiso por Protección Temporal

Documentación: https://docs.verifik.co/api/colombian-citizens/foreigners

Request (CE):

{
"documentType": "CE",
"documentNumber": "123456789",
"expirationDate": "2025-12-31"
}

Response:

{
"fullName": "MARIA RODRIGUEZ",
"firstName": "MARIA",
"lastName": "RODRIGUEZ",
"documentType": "CE",
"documentNumber": "123456789",
"expirationDate": "2025-12-31",
"nationality": "VENEZUELA",
"validated": true,
"source": "MIGRACION_COLOMBIA"
}

5. Other Countries Citizens

Endpoints:

  • POST /v2/brazil-citizens - Brasil (CPF)
  • POST /v2/peruvian-citizens - Perú (DNI)
  • POST /v2/chilean-citizens - Chile (RUN)
  • POST /v2/argentina-citizens - Argentina (DNI)
  • POST /v2/mexican-citizens - México (CURP)
  • POST /v2/ecuadorian-citizens - Ecuador (CC)
  • POST /v2/panama-citizens - Panamá (CC)
  • Y 11+ países más

Documentación: https://docs.verifik.co/api/citizen-lookups

Request (Generic):

{
"documentType": "DNI",
"documentNumber": "12345678",
"dateOfBirth": "1990-01-15"
}

🎭 APIs de Validación Biométrica

6. Biometric Validation - Create Session

Endpoint: POST /v2/biometric-validations
Documentación: https://docs.verifik.co/api/biometric-validations

Descripción:
Crea una sesión de validación biométrica con liveness detection.

Request:

{
"type": "login",
"identifier": "user@example.com",
"project": "PROJECT_ID",
"projectFlow": "PROJECT_FLOW_ID"
}

Response:

{
"livenessSession": {
"_id": "SESSION_ID",
"identifier": "user@example.com",
"status": "active",
"expiresAt": "2024-12-16T13:04:00Z"
},
"biometricValidation": {
"_id": "VALIDATION_ID",
"status": "new",
"type": "login",
"url": "https://access.verifik.co/stand-alone/PROJECT_ID?type=liveness"
},
"token": "JWT_TOKEN"
}

Características:

  • ✅ Liveness detection integrado
  • ✅ Sesión con expiración (4 minutos)
  • ✅ URL para captura de selfie
  • ✅ Token JWT para autenticación

7. Biometric Validation - Validate

Endpoint: POST /v2/biometric-validations/validate
Documentación: https://docs.verifik.co/api/biometric-validations/validate

Descripción:
Valida una imagen facial contra una colección (1:1 o 1:N) con liveness detection.

Request:

{
"image": "base64_encoded_selfie",
"livenessMinScore": 0.6,
"searchMinScore": 0.85,
"searchMode": "ACCURATE"
}

Response:

{
"status": "validated",
"livenessScore": 0.85,
"person": {
"id": "PERSON_ID",
"name": "JUAN PEREZ",
"email": "juan@example.com",
"similarity": 0.92
},
"liveness": {
"score": 0.85,
"isLive": true,
"antiSpoofing": true
}
}

Características:

  • ✅ Liveness detection (anti-spoofing)
  • ✅ Reconocimiento facial 1:1 o 1:N
  • ✅ Precisión >99%
  • ✅ Tiempo de respuesta <2 segundos

Configuración de Scores:

  • livenessMinScore: 0.55-0.7 (recomendado: 0.6)
  • searchMinScore: 0.8-0.95 (recomendado: 0.85)
  • searchMode: "FAST" o "ACCURATE"

8. Face Verification (1:1)

Endpoint: POST /v2/face-verification
Documentación: https://docs.verifik.co/api/face-verification

Descripción:
Compara dos imágenes faciales para verificar si pertenecen a la misma persona.

Request:

{
"image1": "base64_encoded_image_1",
"image2": "base64_encoded_image_2",
"minScore": 0.85
}

Response:

{
"match": true,
"similarity": 0.92,
"confidence": "high",
"liveness": {
"image1": 0.87,
"image2": 0.91
}
}

Casos de Uso:

  • Comparar selfie con foto del documento
  • Validar identidad sin colección
  • Verificación rápida 1:1

📧 APIs de Validación de Email

9. Email Validation - Send OTP

Endpoint: POST /v2/email-validations
Documentación: https://docs.verifik.co/api/email-validations

Descripción:
Envía un código OTP al email del usuario para validación.

Request:

{
"email": "user@example.com",
"language": "es",
"projectName": "COMPENSAR"
}

Response:

{
"_id": "VALIDATION_ID",
"email": "user@example.com",
"status": "pending",
"otpSent": true,
"expiresAt": "2024-12-16T13:05:00Z"
}

Características:

  • ✅ Templates personalizables con branding
  • ✅ Códigos de 6 dígitos
  • ✅ Expiración configurable (5 minutos)
  • ✅ Detección de emails temporales

10. Email Validation - Verify OTP

Endpoint: POST /v2/email-validations/:id/verify
Documentación: https://docs.verifik.co/api/email-validations/verify

Request:

{
"code": "123456"
}

Response:

{
"_id": "VALIDATION_ID",
"email": "user@example.com",
"status": "validated",
"validated": true,
"validatedAt": "2024-12-16T13:01:00Z"
}

📱 APIs de Validación de Teléfono

11. Phone Validation - Send OTP (SMS)

Endpoint: POST /v2/phone-validations
Documentación: https://docs.verifik.co/api/phone-validations

Descripción:
Envía un código OTP por SMS al teléfono del usuario.

Request:

{
"phone": "+573001234567",
"countryCode": "+57",
"method": "SMS"
}

Response:

{
"_id": "VALIDATION_ID",
"phone": "+573001234567",
"status": "pending",
"otpSent": true,
"method": "SMS",
"expiresAt": "2024-12-16T13:05:00Z"
}

Características:

  • ✅ Envío vía Twilio (alta confiabilidad)
  • ✅ Cobertura global
  • ✅ Códigos de 4-6 dígitos
  • ✅ Reintentos limitados

12. Phone Validation - Verify OTP

Endpoint: POST /v2/phone-validations/:id/verify
Documentación: https://docs.verifik.co/api/phone-validations/verify

Request:

{
"code": "1234"
}

Response:

{
"_id": "VALIDATION_ID",
"phone": "+573001234567",
"status": "validated",
"validated": true,
"validatedAt": "2024-12-16T13:01:00Z"
}

13. WhatsApp Validation - Send OTP

Endpoint: POST /v2/whatsapp/send-otp
Documentación: https://docs.verifik.co/api/whatsapp

Descripción:
Envía un código OTP por WhatsApp Business API.

Request:

{
"phone": "+573001234567",
"countryCode": "+57",
"language": "es"
}

Response:

{
"_id": "VALIDATION_ID",
"phone": "+573001234567",
"status": "pending",
"otpSent": true,
"method": "WHATSAPP",
"expiresAt": "2024-12-16T13:05:00Z"
}

Ventajas vs SMS:

  • ✅ Mayor tasa de entrega
  • ✅ Menor costo
  • ✅ Confirmación de lectura
  • ✅ Soporte multimedia

🚗 APIs de Validación de Vehículos (Colombia)

14. RUNT - Vehicle Lookup

Endpoint: POST /v2/runt
Documentación: https://docs.verifik.co/api/runt

Descripción:
Consulta información de vehículos en el RUNT (Registro Único Nacional de Tránsito).

Request:

{
"plate": "ABC123"
}

Response:

{
"plate": "ABC123",
"brand": "CHEVROLET",
"model": "SPARK",
"year": 2020,
"color": "BLANCO",
"owner": {
"name": "JUAN PEREZ",
"documentType": "CC",
"documentNumber": "1058843805"
},
"status": "ACTIVE",
"validated": true
}

15. Fasecolda - Stolen Vehicles

Endpoint: POST /v2/fasecolda
Documentación: https://docs.verifik.co/api/fasecolda

Descripción:
Consulta si un vehículo está reportado como robado en Fasecolda.

Request:

{
"plate": "ABC123"
}

Response:

{
"plate": "ABC123",
"stolen": false,
"reportDate": null,
"validated": true
}

🏢 APIs de Validación de Empresas (Colombia)

16. RUES - Company Lookup

Endpoint: POST /v2/rues
Documentación: https://docs.verifik.co/api/rues

Descripción:
Consulta información de empresas en el RUES (Registro Único Empresarial y Social).

Request:

{
"nit": "900123456-1"
}

Response:

{
"nit": "900123456-1",
"businessName": "EMPRESA EJEMPLO SAS",
"legalRepresentative": "JUAN PEREZ",
"status": "ACTIVE",
"registrationDate": "2015-01-15",
"economicActivity": "Servicios de consultoría",
"validated": true
}

🔍 APIs de Antecedentes (Colombia)

17. Contraloría - Fiscal Background

Endpoint: POST /v2/contraloria
Documentación: https://docs.verifik.co/api/contraloria

Request:

{
"documentType": "CC",
"documentNumber": "1058843805"
}

Response:

{
"fullName": "JUAN PEREZ GOMEZ",
"documentNumber": "1058843805",
"hasFiscalBackground": false,
"validated": true
}

18. INPEC - Criminal Background

Endpoint: POST /v2/inpec
Documentación: https://docs.verifik.co/api/inpec

Request:

{
"documentType": "CC",
"documentNumber": "1058843805"
}

Response:

{
"fullName": "JUAN PEREZ GOMEZ",
"documentNumber": "1058843805",
"hasCriminalBackground": false,
"validated": true
}

19. Procuraduría - Disciplinary Background

Endpoint: POST /v2/procuraduria
Documentación: https://docs.verifik.co/api/procuraduria

Request:

{
"documentType": "CC",
"documentNumber": "1058843805"
}

Response:

{
"fullName": "JUAN PEREZ GOMEZ",
"documentNumber": "1058843805",
"hasDisciplinaryBackground": false,
"validated": true
}

🔔 Webhooks

20. Configure Webhook

Endpoint: POST /v2/webhooks
Documentación: https://docs.verifik.co/api/webhooks

Descripción:
Configura webhooks para recibir notificaciones de eventos.

Request:

{
"url": "https://compensar.com/webhooks/verifik",
"events": ["document_validation_created", "document_validation_completed", "biometric_validation_validated", "biometric_validation_failed"],
"secret": "YOUR_WEBHOOK_SECRET"
}

Response:

{
"_id": "WEBHOOK_ID",
"url": "https://compensar.com/webhooks/verifik",
"events": [...],
"status": "active"
}

Eventos Disponibles:

  • document_validation_created
  • document_validation_completed
  • document_validation_source_lookup
  • biometric_validation_created
  • biometric_validation_validated
  • biometric_validation_failed
  • email_validation_completed
  • phone_validation_completed

Webhook Payload Example:

{
"event": "biometric_validation_validated",
"timestamp": "2024-12-16T13:00:00Z",
"data": {
"_id": "VALIDATION_ID",
"status": "validated",
"livenessScore": 0.85,
"person": {...}
},
"signature": "HMAC_SHA256_SIGNATURE"
}

📊 Resumen de APIs por Categoría

Validación de Documentos (2 APIs)

  1. POST /v2/document-validations - OCR + extracción
  2. POST /v2/document-validations/:id/name-validation - Validación oficial

Validación de Identidad - Colombia (4 APIs)

  1. POST /v2/colombian-citizens - Registraduría (CC)
  2. POST /v2/colombian-citizens/ce - Migración (CE)
  3. POST /v2/colombian-citizens/pep - Migración (PEP)
  4. POST /v2/colombian-citizens/ppt - Migración (PPT)

Validación de Identidad - Internacional (15+ APIs)

  • POST /v2/brazil-citizens - Brasil
  • POST /v2/peruvian-citizens - Perú
  • POST /v2/chilean-citizens - Chile
  • POST /v2/argentina-citizens - Argentina
  • ✅ Y 11+ países más

Validación Biométrica (3 APIs)

  1. POST /v2/biometric-validations - Crear sesión
  2. POST /v2/biometric-validations/validate - Validar facial
  3. POST /v2/face-verification - Comparación 1:1

Validación de Email (2 APIs)

  1. POST /v2/email-validations - Enviar OTP
  2. POST /v2/email-validations/:id/verify - Verificar OTP

Validación de Teléfono (3 APIs)

  1. POST /v2/phone-validations - Enviar OTP (SMS)
  2. POST /v2/phone-validations/:id/verify - Verificar OTP
  3. POST /v2/whatsapp/send-otp - Enviar OTP (WhatsApp)

Validación de Vehículos - Colombia (2 APIs)

  1. POST /v2/runt - Consulta RUNT
  2. POST /v2/fasecolda - Vehículos robados

Validación de Empresas - Colombia (1 API)

  1. POST /v2/rues - Consulta RUES

Antecedentes - Colombia (3 APIs)

  1. POST /v2/contraloria - Antecedentes fiscales
  2. POST /v2/inpec - Antecedentes penales
  3. POST /v2/procuraduria - Antecedentes disciplinarios

Webhooks (1 API)

  1. POST /v2/webhooks - Configurar webhooks

Total: 35+ APIs disponibles


Documentación General

Documentación por Categoría

SDKs y Herramientas


💻 Ejemplos de Código

JavaScript (Node.js)

const axios = require("axios");

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://verifik.co/v2";

// Ejemplo 1: Validar documento
async function validateDocument(image) {
const response = await axios.post(
`${BASE_URL}/document-validations`,
{
image: image,
country: "CO",
documentType: "CC",
inputMethod: "SCAN",
},
{
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
}
);
return response.data;
}

// Ejemplo 2: Validar con Registraduría
async function validateCitizen(documentNumber) {
const response = await axios.post(
`${BASE_URL}/colombian-citizens`,
{
documentType: "CC",
documentNumber: documentNumber,
},
{
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
}
);
return response.data;
}

// Ejemplo 3: Validación biométrica
async function validateBiometric(image) {
const response = await axios.post(
`${BASE_URL}/biometric-validations/validate`,
{
image: image,
livenessMinScore: 0.6,
searchMinScore: 0.85,
searchMode: "ACCURATE",
},
{
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
}
);
return response.data;
}

// Ejemplo 4: Enviar OTP por email
async function sendEmailOTP(email) {
const response = await axios.post(
`${BASE_URL}/email-validations`,
{
email: email,
language: "es",
projectName: "COMPENSAR",
},
{
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
}
);
return response.data;
}

Python

import requests
import base64

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://verifik.co/v2'

headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}

# Ejemplo 1: Validar documento
def validate_document(image_path):
with open(image_path, 'rb') as image_file:
image_base64 = base64.b64encode(image_file.read()).decode('utf-8')

response = requests.post(
f'{BASE_URL}/document-validations',
json={
'image': image_base64,
'country': 'CO',
'documentType': 'CC',
'inputMethod': 'SCAN'
},
headers=headers
)
return response.json()

# Ejemplo 2: Validar ciudadano
def validate_citizen(document_number):
response = requests.post(
f'{BASE_URL}/colombian-citizens',
json={
'documentType': 'CC',
'documentNumber': document_number
},
headers=headers
)
return response.json()

# Ejemplo 3: Enviar OTP por SMS
def send_sms_otp(phone):
response = requests.post(
f'{BASE_URL}/phone-validations',
json={
'phone': phone,
'countryCode': '+57',
'method': 'SMS'
},
headers=headers
)
return response.json()

cURL

# Ejemplo 1: Validar documento
curl -X POST https://verifik.co/v2/document-validations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "BASE64_IMAGE",
"country": "CO",
"documentType": "CC",
"inputMethod": "SCAN"
}'

# Ejemplo 2: Validar ciudadano
curl -X POST https://verifik.co/v2/colombian-citizens \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"documentType": "CC",
"documentNumber": "1058843805"
}'

# Ejemplo 3: Validación biométrica
curl -X POST https://verifik.co/v2/biometric-validations/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "BASE64_SELFIE",
"livenessMinScore": 0.6,
"searchMinScore": 0.85,
"searchMode": "ACCURATE"
}'

---

## 🔐 ZelfProof (Zero Knowledge) API

Endpoints para la gestión de pruebas de identidad cifradas y privadas.

### Encriptar Identidad (Enrollment)

Crea una prueba ZK cifrada usando la biometría facial del usuario como llave.

`POST /v2/zelf-proof/encrypt-qr-code`

**Request Body:**

```json
{
"documentData": {
"documentType": "CC",
"documentNumber": "1234567890",
"fullName": "JUAN PEREZ"
},
"faceImage": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"projectFlow": "flow_123"
}

Response:

{
"status": "success",
"data": {
"qrCode": "data:image/png;base64,iVBORw0KGgo...",
"ipfsHash": "QmXyZ...",
"encryptionMetadata": {
"algorithm": "AES-256-GCM",
"keyDerivedFrom": "face_template"
}
}
}

Desencriptar Identidad (Login)

Intenta descifrar un ZelfProof usando una captura facial reciente. No requiere base de datos central.

POST /v2/zelf-proof/decrypt

Request Body:

{
"ipfsHash": "QmXyZ...",
"faceImage": "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
}

Response:

{
"status": "success",
"data": {
"decrypted": true,
"identity": {
"documentNumber": "1234567890",
"fullName": "JUAN PEREZ"
},
"matchScore": 0.92
}
}

🛡️ Document Liveness API

Validación de presencia física del documento para prevenir ataques de presentación.

Detectar Ataques (Screen/Print/Fake)

POST /v2/document-liveness

Request Body:

{
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRg...",
"checkType": "FULL_CHECK" // SCREEN_REPLAY, PRINTED_COPY, etc.
}

Response:

{
"status": "success",
"data": {
"isLive": true,
"checks": {
"screenReplay": { "passed": true, "score": 0.05 }, // Score bajo es bueno (baja prob de ataque)
"printedCopy": { "passed": true, "score": 0.1 },
"portraitSubstitution": { "passed": true, "score": 0.02 }
}
}
}

🔢 Common Error Codes

Códigos de Estado HTTP

CódigoSignificadoAcción
200OKSolicitud exitosa
201CreatedRecurso creado exitosamente
400Bad RequestVerificar parámetros de la solicitud
401UnauthorizedVerificar API Key
404Not FoundRecurso no encontrado
409ConflictConflicto (ej: documento ya validado)
429Too Many RequestsRate limit excedido
500Internal Server ErrorError del servidor

Formato de Error

{
"error": true,
"statusCode": 400,
"message": "document_number_required",
"details": {
"field": "documentNumber",
"reason": "Field is required"
}
}

📈 Rate Limits

PlanRequests/MinutoRequests/Día
Starter6010,000
Professional300100,000
EnterpriseIlimitadoIlimitado

Headers de Rate Limit:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1702742400

🔒 Seguridad

Best Practices

  1. Nunca exponer API Keys en frontend

    • Usar proxy backend
    • Variables de entorno
  2. Validar webhooks con HMAC

    const crypto = require("crypto");

    function validateWebhook(payload, signature, secret) {
    const hmac = crypto.createHmac("sha256", secret);
    const digest = hmac.update(JSON.stringify(payload)).digest("hex");
    return digest === signature;
    }
  3. Usar HTTPS siempre

    • Todas las APIs requieren HTTPS
    • Certificados TLS 1.3
  4. Implementar retry logic

    • Exponential backoff
    • Máximo 3 reintentos

📞 Soporte

Contacto Técnico

Horarios de Soporte

  • Estándar: Lunes a Viernes 8am-6pm COT
  • Premium: Lunes a Viernes 7am-10pm COT
  • Enterprise: 24/7/365

Documento preparado por Verifik - Diciembre 2025
Versión 1.0