Skip to content
Caso de clienteTarifasSeguridadComparativaBlog

Europe

Americas

Oceania

Automatización13 min de lectura

API de verificación documental: guía de integración

Integra la verificación de documentos mediante API REST con OAuth 2.0, webhooks y SDKs. Endpoints, ejemplos de código, precios y cumplimiento RGPD.

Carlos Ruiz, Consultor de cumplimiento normativo
Carlos Ruiz, Consultor de cumplimiento normativo·
Illustration for API de verificación documental: guía de integración — Automatización

Resumir este artículo con

Una API de verificación documental es una interfaz programática que permite a los desarrolladores enviar documentos de identidad, facturas, certificados o justificantes de domicilio y recibir resultados de verificación estructurados — comprobaciones de autenticidad, extracción de datos, señales de fraude — sin construir los modelos de IA subyacentes. La API de CheckFile procesa un documento en 4,2 segundos de media, alcanza un 98,7 % de precisión OCR en 24 idiomas y gestiona más de 3 200 tipos de documentos en 32 jurisdicciones.

El Reglamento de IA de la UE (Reglamento (UE) 2024/1689, art. 6 y anexo III) clasifica los sistemas de IA utilizados para la verificación de documentos de identidad en servicios financieros como de alto riesgo, exigiendo a los proveedores mantener documentación técnica, un sistema de gestión de riesgos y capacidades de supervisión humana. Cualquier API que integres debe cumplir estas obligaciones, o heredas la brecha de cumplimiento.

Esta guía cubre autenticación, endpoints principales, configuración de webhooks, gestión de errores, opciones de SDK y precios. Está dirigida a desarrolladores backend, equipos DevOps y responsables técnicos que evalúan APIs de verificación documental para integración en producción.

Este artículo tiene fines exclusivamente informativos y no constituye asesoramiento legal, financiero ni regulatorio.

Autenticación y seguridad

La API de CheckFile utiliza OAuth 2.0 client credentials para autenticación máquina a máquina, siguiendo el RFC 6749, Sección 4.4. Se intercambia client_id y client_secret por un token bearer de duración limitada (60 minutos de validez), que se incluye en el encabezado Authorization de cada solicitud posterior.

Todo el tráfico de la API está cifrado con TLS 1.3. Los documentos se cifran en reposo con AES-256, y los datos personales se eliminan automáticamente de los registros, cumpliendo con el artículo 32 del RGPD sobre medidas técnicas apropiadas (RGPD, art. 32).

 # Obtener token de acceso
curl -X POST https://api.checkfile.ai/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=TU_ID&client_secret=TU_SECRET"

 # Respuesta
{
  "access_token": "eyJhbGciOi...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Funciones de seguridad clave:

  • Lista blanca de IPs — restringir el acceso a la API a IPs de servidor conocidas
  • Limitación de tasa — configurable por plan (ver sección de precios)
  • Firmas de webhooks — verificación HMAC-SHA256 en cada callback
  • Registro de auditoría — cada llamada a la API se registra con marca de tiempo, ID de cliente, tipo de documento y resultado

Scopes y permisos

Scope Permiso Caso de uso
documents:write Cargar y enviar documentos Flujo de verificación estándar
documents:read Recuperar resultados y estado Integraciones basadas en polling
webhooks:manage Crear y configurar webhooks Arquitecturas basadas en eventos
analytics:read Acceder a métricas de uso Paneles de monitorización
admin:manage Gestionar claves API y acceso de equipo DevOps y administración

Endpoints principales

La API sigue convenciones RESTful con payloads JSON. URL base: https://api.checkfile.ai/v1.

Envío de documentos

POST /v1/documents/verify
Content-Type: multipart/form-data
Authorization: Bearer {token}

 # Campos:
 # file (requerido) — imagen o PDF del documento (máx. 20 MB)
 # document_type (opcional) — "passport", "id_card", "invoice", "proof_of_address"
 # country (opcional) — código ISO 3166-1 alfa-2
 # webhook_url (opcional) — URL de callback para resultados asíncronos
 # reference_id (opcional) — tu referencia interna para correlación

Respuesta (HTTP 202 Accepted):

{
  "document_id": "doc_8f3a2b1c",
  "status": "processing",
  "estimated_completion_seconds": 4,
  "created_at": "2026-03-19T10:15:00Z"
}

Cuando se omite document_type, la API usa su motor de clasificación IA — que alcanza 96,1 % de precisión en nuestro benchmark de más de 3 200 tipos de documentos — para detectar el tipo automáticamente.

Obtención de resultados

GET /v1/documents/{document_id}
Authorization: Bearer {token}

Respuesta (HTTP 200):

{
  "document_id": "doc_8f3a2b1c",
  "status": "completed",
  "document_type": "dni",
  "country": "ES",
  "verification": {
    "authentic": true,
    "confidence": 0.97,
    "fraud_signals": [],
    "checks": {
      "mrz_valid": true,
      "photo_tamper": false,
      "expiry_valid": true,
      "data_consistency": true
    }
  },
  "extracted_data": {
    "full_name": "María García López",
    "date_of_birth": "1990-05-12",
    "document_number": "12345678Z",
    "expiry_date": "2031-05-11",
    "nationality": "ESP"
  },
  "processing_time_ms": 3840,
  "created_at": "2026-03-19T10:15:00Z",
  "completed_at": "2026-03-19T10:15:03.840Z"
}

El objeto extracted_data alcanza un 94,3 % de precisión en extracción de campos en nuestro benchmark interno, cubriendo campos estructurados de todos los tipos de documentos soportados.

Verificación por lotes

Para integraciones de alto volumen, el endpoint batch acepta hasta 50 documentos por solicitud:

POST /v1/documents/verify/batch
Content-Type: multipart/form-data
Authorization: Bearer {token}

 # files[] — array de archivos de documentos
 # options — objeto JSON con configuración compartida

Las solicitudes batch devuelven un batch_id y entregan resultados por webhook a medida que cada documento se completa.

Configuración de webhooks

Las arquitecturas basadas en eventos evitan la sobrecarga del polling. Registra un endpoint webhook para recibir notificaciones en tiempo real cuando las verificaciones finalicen.

POST /v1/webhooks
Authorization: Bearer {token}
Content-Type: application/json

{
  "url": "https://tu-app.com/webhooks/checkfile",
  "events": ["document.completed", "document.failed", "document.review_required"],
  "secret": "whsec_tu_clave_secreta"
}

Cada entrega de webhook incluye un encabezado X-CheckFile-Signature con un hash HMAC-SHA256 del payload. Verifícalo antes de procesar:

import hmac
import hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Política de reintentos del webhook: 3 intentos con backoff exponencial (5s, 30s, 300s). Tras 3 fallos, el webhook se desactiva y tu equipo recibe una alerta por correo.

Evento Disparador El payload incluye
document.completed Verificación finalizada con éxito Objeto de resultado completo
document.failed Error de procesamiento (archivo corrupto, formato no soportado) Código y mensaje de error
document.review_required Resultado de baja confianza marcado para revisión humana Resultado parcial + puntuación de confianza
batch.completed Todos los documentos del lote procesados Resumen con estados individuales

SDK y opciones de integración

La API REST funciona desde cualquier lenguaje, pero los SDKs oficiales reducen el tiempo de integración de días a horas.

SDKs disponibles

Lenguaje Paquete Instalación
Python checkfile-sdk pip install checkfile-sdk
Node.js @checkfile/sdk npm install @checkfile/sdk
Java com.checkfile:sdk Maven Central
Go github.com/checkfile/sdk-go go get

Ejemplo de integración en Python

from checkfile import CheckFileClient

client = CheckFileClient(
    client_id="TU_CLIENT_ID",
    client_secret="TU_CLIENT_SECRET"
)

 # Verificación síncrona
result = client.documents.verify(
    file=open("dni.pdf", "rb"),
    document_type="id_card",
    country="ES"
)

print(f"Auténtico: {result.verification.authentic}")
print(f"Nombre: {result.extracted_data.full_name}")
print(f"Tiempo de procesamiento: {result.processing_time_ms}ms")

Ejemplo de integración en Node.js

import { CheckFileClient } from '@checkfile/sdk';
import { readFileSync } from 'fs';

const client = new CheckFileClient({
  clientId: process.env.CHECKFILE_CLIENT_ID,
  clientSecret: process.env.CHECKFILE_CLIENT_SECRET,
});

const result = await client.documents.verify({
  file: readFileSync('dni.pdf'),
  documentType: 'id_card',
  country: 'ES',
});

console.log(`Auténtico: ${result.verification.authentic}`);
console.log(`Confianza: ${result.verification.confidence}`);

Los SDKs gestionan la renovación de tokens, los reintentos con backoff exponencial y la verificación de firmas de webhook automáticamente. Nuestro análisis muestra que las integraciones basadas en SDK reducen el tiempo medio de puesta en producción de 8 días (REST directo) a 2 días.

Gestión de errores y límites de tasa

La API utiliza códigos HTTP estándar con cuerpos de error estructurados:

{
  "error": {
    "code": "DOCUMENT_UNREADABLE",
    "message": "El archivo cargado no pudo analizarse. Asegúrate de que DPI >= 300.",
    "details": { "min_dpi": 300, "detected_dpi": 72 },
    "request_id": "req_9f2c4d1e"
  }
}

Códigos de error comunes

Estado HTTP Código de error Resolución
400 INVALID_FILE_FORMAT Usar PDF, JPEG, PNG o TIFF
400 DOCUMENT_UNREADABLE Aumentar resolución del escaneo a 300+ DPI
401 TOKEN_EXPIRED Renovar el token OAuth
413 FILE_TOO_LARGE Reducir el archivo por debajo de 20 MB
429 RATE_LIMIT_EXCEEDED Esperar la duración del encabezado Retry-After
503 SERVICE_DEGRADED Reintentar con backoff exponencial

Límites de tasa por plan

Plan Solicitudes/minuto Burst Cargas simultáneas
Starter 60 10 5
Business 500 50 25
Enterprise 2.000+ 200 100

Los encabezados de límite de tasa (X-RateLimit-Remaining, X-RateLimit-Reset) se incluyen en cada respuesta. Construye tu lógica de reintentos basándote en estos encabezados en lugar de codificar retrasos fijos.

Cumplimiento normativo y tratamiento de datos

La verificación documental involucra datos personales en múltiples jurisdicciones. La API está diseñada con el cumplimiento como requisito de primer orden.

Desde marzo de 2026, el RGPD (Reglamento (UE) 2016/679, art. 28) exige a los responsables del tratamiento utilizar únicamente encargados que ofrezcan garantías suficientes de medidas técnicas y organizativas apropiadas. CheckFile actúa como encargado del tratamiento, con un contrato de encargo de tratamiento (DPA) incluido en todos los planes Business y Enterprise.

Para las entidades supervisadas por la CNMV (Comisión Nacional del Mercado de Valores) y sujetas a la Ley 10/2010 de prevención del blanqueo de capitales, la API proporciona:

  • Retención: los documentos se eliminan tras el procesamiento salvo solicitud explícita de almacenamiento (configurable de 0 a 365 días)
  • Residencia de datos: procesamiento en la UE por defecto; regiones US y APAC disponibles en planes Enterprise
  • Pista de auditoría: cada llamada a la API genera un registro inmutable con hash del documento, marca de tiempo, resultado e ID del cliente
  • Certificación SOC 2 Type II que cubre la infraestructura de la API
  • Cumplimiento PCI DSS para el tratamiento de documentos financieros

Para integraciones sujetas a las directrices del Sepblac sobre identificación formal, CheckFile proporciona la documentación de garantías de terceros requerida, resultados de pruebas de continuidad de negocio y condiciones de estrategia de salida.

Estructura de precios

CheckFile utiliza un modelo de precio por documento con descuentos por volumen. Todos los planes incluyen acceso completo a la API, webhooks y registros de auditoría.

Plan Precio mensual Verificaciones incluidas Verificación adicional Soporte
Starter Gratis 100 -- Comunidad
Business Desde 299 EUR/mes 2.000 0,12 EUR Email prioritario (< 4h)
Enterprise Personalizado Volumen personalizado Negociado CSM dedicado + SLA

Consulta la página de precios para detalles sobre tramos de volumen, descuentos anuales y condiciones SLA Enterprise.

Nuestro análisis de plataforma muestra que las organizaciones que pasan de la verificación manual de documentos a la verificación por API reducen el coste por expediente un 67 % y el tiempo de procesamiento un 83 %. El período medio de amortización para clientes Business es inferior a 3 meses al procesar más de 500 documentos mensuales.

Proceso manual Automatizado por API Ahorro
12 min/documento 4,2 segundos 99,4 % de reducción de tiempo
4,80 EUR/documento (mano de obra) 0,12-0,15 EUR/documento 67-97 % de reducción de costes
89 % de precisión (error humano) 98,7 % de precisión OCR Menos re-verificaciones
Solo horario laboral 99,94 % de disponibilidad, 24/7 Sin restricciones horarias

Patrones de arquitectura de integración

Patrón 1: síncrono (simple)

Para integraciones de bajo volumen (< 60 solicitudes/min), enviar y consultar:

Cliente → POST /v1/documents/verify → 202 Accepted
Cliente → GET /v1/documents/{id} (polling cada 2s) → 200 con resultados

Adecuado para flujos de onboarding donde el usuario espera la verificación.

Patrón 2: asíncrono con webhooks (recomendado)

Para cargas de trabajo en producción, enviar y recibir resultados por webhook:

Cliente → POST /v1/documents/verify (con webhook_url) → 202 Accepted
CheckFile → POST webhook_url (payload firmado) → Tu handler procesa el resultado

Desacopla envío de procesamiento. Escala linealmente con el volumen.

Patrón 3: pipeline por lotes

Para procesamiento back-office (revisiones KYC nocturnas, comprobaciones de cumplimiento masivas):

Cliente → POST /v1/documents/verify/batch (hasta 50 archivos) → batch_id
CheckFile → POST webhook_url por documento a medida que se completa
CheckFile → POST webhook_url con resumen batch.completed

Nuestra plataforma procesa más de 180.000 documentos al mes con estos patrones. El patrón asíncrono con webhooks cubre el 94 % de las integraciones en producción.

Primeros pasos

La integración sigue cuatro pasos:

  1. Crear una cuenta en checkfile.ai y generar credenciales API desde el panel
  2. Probar en sandbox — el entorno sandbox replica producción con documentos sintéticos (sin facturación)
  3. Integrar usando el SDK o llamadas REST directas, comenzando con el patrón síncrono
  4. Pasar a producción — cambiar a credenciales de producción y configurar webhooks

La documentación de la API incluye un playground interactivo para probar endpoints, y la página de precios detalla las opciones de plan según tu volumen previsto.

Para equipos que construyen flujos de verificación documental automatizados, la API se integra directamente con los patrones descritos en nuestra guía de configuración de workflows. Si estás evaluando soluciones de verificación de forma más amplia, nuestra guía de automatización de la verificación cubre todo el panorama de enfoques de verificación documental.

Preguntas frecuentes

Que tipos de documentos admite la API

La API de CheckFile admite más de 3.200 tipos de documentos en 32 jurisdicciones: pasaportes, DNI, permisos de conducir, facturas, extractos bancarios, justificantes de domicilio, declaraciones de la renta, nóminas y certificados de inscripción de empresas. El motor de clasificación IA identifica automáticamente el tipo de documento con un 96,1 % de precisión cuando se omite el parámetro document_type.

Cuanto tiempo tarda la verificación

El tiempo medio de procesamiento es de 4,2 segundos por documento. La latencia P95 es inferior a 12 segundos para tipos de documentos estándar. Los envíos por lotes procesan documentos en paralelo: un lote de 50 documentos se completa normalmente en 30 a 60 segundos, según la complejidad del documento.

Es la API conforme al RGPD

Sí. CheckFile actúa como encargado del tratamiento según el artículo 28 del RGPD con DPA firmado, infraestructura de procesamiento en la UE, retención de datos configurable (0 a 365 días) y eliminación automática de datos personales de los registros. Las certificaciones SOC 2 Type II e ISO 27001 cubren la infraestructura de la API.

Puedo probar la API antes de contratar un plan de pago

El plan Starter incluye 100 verificaciones gratuitas al mes, y el entorno sandbox permite pruebas ilimitadas con documentos sintéticos sin coste. No se requiere tarjeta de crédito para empezar.

Que ocurre si la API no puede verificar un documento

Los documentos que caen por debajo del umbral de confianza se marcan con estado review_required y se dirigen a tu cola de revisión humana por webhook. La respuesta incluye el resultado parcial con la puntuación de confianza, los datos extraídos y las señales de fraude específicas que activaron la marca. Esto garantiza que ningún documento quede sin procesar.

Pase a la acción

Descubra nuestras ofertas adaptadas a su volumen y hable con un experto.