Skip to Content
API REST

API REST

Todos los endpoints están bajo https://api.saremi.io/v1/verify/ y requieren el header X-API-Key (ver Autenticación).

Verificación automática (recomendada)

POST /v1/verify/document Content-Type: multipart/form-data

Envías el archivo y SAREMI detecta el tipo de documento automáticamente (por texto extraído, y si no es suficiente, con clasificación visual). Es el endpoint recomendado para la mayoría de integraciones.

Campo (form-data)RequeridoDescripción
fileEl PDF o imagen a verificar (PDF, JPEG, PNG, WEBP)
document_type_hintNoFuerza el tipo si lo conoces de antemano (ver Tipos de documento) — tiene prioridad sobre la auto-detección
original_filenameNoNombre original del archivo, para tus reportes
client_reference_idNoTu identificador interno (expediente, id de tu sistema, etc.)
pending_idNoId devuelto por /v1/verify/pending, si lo usaste primero
terminal
curl -X POST https://api.saremi.io/v1/verify/document \ -H "X-API-Key: TU_API_KEY" \ -F "file=@ine_frontal.jpg" \ -F "client_reference_id=expediente-1234"

Endpoints por tipo de documento

Si ya sabes el tipo de documento, puedes llamar directamente al endpoint específico en vez de /document — evita el paso de auto-detección:

EndpointDocumento
POST /v1/verify/ineCredencial para votar (INE)
POST /v1/verify/curpCURP
POST /v1/verify/rfcRFC (SAT + listas 69/69-B)
POST /v1/verify/csfConstancia de Situación Fiscal
POST /v1/verify/cfdiCFDI / Factura electrónica
POST /v1/verify/bank-statementEstado de cuenta bancario
POST /v1/verify/proof-of-addressComprobante de domicilio
POST /v1/verify/speiComprobante SPEI
POST /v1/verify/escrituraEscritura pública
POST /v1/verify/predialBoleta predial
POST /v1/verify/passportPasaporte (mexicano o extranjero)
POST /v1/verify/acta-nacimientoActa de nacimiento
POST /v1/verify/acta-matrimonioActa de matrimonio
POST /v1/verify/acta-defuncionActa de defunción
POST /v1/verify/cert-libertad-gravamenCertificado de Libertad de Gravamen
POST /v1/verify/avaluoAvalúo inmobiliario
POST /v1/verify/carta-no-adeudoCarta de no adeudo
POST /v1/verify/licenciaLicencia de conducir
POST /v1/verify/fm-residenciaTarjeta de residencia / FM
POST /v1/verify/cedula-profesionalCédula profesional

Todos aceptan multipart/form-data con un campo file, y responden el mismo modelo de respuesta que /document.

Registrar antes de analizar (opcional)

POST /v1/verify/pending

Crea un registro en estado processing antes de que termine el análisis — útil si tu flujo necesita mostrar “en revisión” de inmediato. Devuelve { "id": "..." }, que puedes pasar como pending_id a la llamada real.

Modelo de respuesta

Todos los endpoints de verificación devuelven el mismo objeto:

{ "document_type": "ine", "status": "verified", "confidence_score": 0.925, "extracted_data": { "full_name": "JUAN PÉREZ LÓPEZ", "curp": "PELJ800101HDFRPN09" }, "checks": [ { "name": "curp_format", "status": "passed", "detail": "El formato del CURP es válido" } ], "conclusion": "Documento verificado correctamente...", "warnings": [], "fraud_flags": [ { "code": "AI_GENERATED", "severity": "critical", "description": "El documento presenta patrones consistentes con generación por IA", "source_check": "image_authenticity" } ], "processing_time_ms": 18432 }
CampoTipoDescripción
document_typestringTipo de documento verificado (el detectado, si usaste /document)
statusstringVeredicto final — ver valores posibles
confidence_scorenumber (0.0–1.0)Puntuación de confianza del veredicto
extracted_dataobjectCampos extraídos del documento (varía según el tipo)
checksarrayCada verificación individual realizada, con su status: passed, failed, warning o skipped
conclusionstringTexto legible con el veredicto, para mostrar a un humano
warningsstring[]Advertencias menores que no invalidan el documento
fraud_flagsarrayAlertas críticas de fraude. Vacío si no se detectó nada. Cada una trae code, severity (critical/high/medium), description y source_check
processing_time_msnumberTiempo de procesamiento en milisegundos

extracted_data varía según el tipo de documento — un INE devuelve curp/full_name/domicilio, un estado de cuenta devuelve banco/saldo/ingresos, etc. La forma de checks, status y fraud_flags es siempre la misma.

Last updated on