API SOAP
SAREMI expone su motor de verificación como servicio SOAP 1.1 para clientes que no consumen REST/JSON — por ejemplo, plataformas de bajo código como QuickBase. Es una capa sobre el mismo pipeline de la API REST: mismos verificadores, misma base de datos, mismo registro en blockchain.
| Recurso | URL |
|---|---|
| Endpoint SOAP | POST https://api.saremi.io/soap |
| WSDL | GET https://api.saremi.io/soap?wsdl |
| Content-Type | text/xml; charset=utf-8 |
Autenticación: elemento <apiKey> dentro del body, o header HTTP
X-API-Key — ver Autenticación y permisos.
Operaciones
1. SubmitDocument (recomendada)
Envía el documento y responde de inmediato con un folio
(verificationId). El análisis corre en segundo plano (10–60 segundos). Es la
operación recomendada para pipelines con límite de tiempo, como QuickBase.
Request:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SubmitDocumentRequest xmlns="urn:saremi:verify:v1">
<apiKey>TU_API_KEY</apiKey>
<documentType>auto</documentType>
<fileName>ine_frente.pdf</fileName>
<fileContentBase64>JVBERi0xLjQK...</fileContentBase64>
<clientReferenceId>expediente-1234</clientReferenceId>
</SubmitDocumentRequest>
</soap:Body>
</soap:Envelope>Response (inmediata):
<SubmitDocumentResponse xmlns="urn:saremi:verify:v1">
<verificationId>a1b2c3d4-...</verificationId>
<status>processing</status>
<message>Documento recibido. Consulte el resultado con GetVerificationResult.</message>
</SubmitDocumentResponse>2. GetVerificationResult (consultar el resultado)
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetVerificationResultRequest xmlns="urn:saremi:verify:v1">
<apiKey>TU_API_KEY</apiKey>
<verificationId>a1b2c3d4-...</verificationId>
</GetVerificationResultRequest>
</soap:Body>
</soap:Envelope>Si sigue en proceso responde <status>processing</status>; si terminó,
responde el resultado completo:
<GetVerificationResultResponse xmlns="urn:saremi:verify:v1">
<verificationId>a1b2c3d4-...</verificationId>
<documentType>ine</documentType>
<status>verified</status>
<confidenceScore>0.925</confidenceScore>
<conclusion>Documento verificado correctamente...</conclusion>
<processingTimeMs>18432</processingTimeMs>
<checks>
<check><name>curp_format</name><status>passed</status><detail>...</detail></check>
</checks>
<fraudFlags>
<fraudFlag><code>AI_GENERATED</code><severity>critical</severity><description>...</description></fraudFlag>
</fraudFlags>
<warnings><warning>...</warning></warnings>
<extractedData>
<field><name>full_name</name><value>JUAN PÉREZ LÓPEZ</value></field>
<field><name>curp</name><value>PELJ800101HDFRPN09</value></field>
</extractedData>
</GetVerificationResultResponse>Recomendado: reintentar cada 10–15 segundos hasta que status deje de ser
processing.
3. VerifyDocument (síncrona)
Mismo request que SubmitDocument (elemento raíz VerifyDocumentRequest),
pero espera el resultado completo en la misma llamada — puede tardar
10–60 segundos (OCR + análisis de fraude + IA).
Si tu plataforma corta la conexión por timeout antes de esos 60 segundos
(como suele pasar con QuickBase Pipelines), usa SubmitDocument +
GetVerificationResult en su lugar. VerifyDocument es más útil para
pruebas manuales con Postman o SoapUI.
Campos del request
| Elemento | Requerido | Descripción |
|---|---|---|
apiKey | Sí (si no usas el header) | Tu API key |
documentType | No | auto (default, detecta el tipo solo) o uno específico — ver Tipos de documento |
fileName | No | Nombre del archivo; la extensión determina el formato (.pdf por default) |
fileContentBase64 | Sí | El archivo codificado en base64, sin saltos de línea. Máx. 30 MB decodificado |
clientReferenceId | No | Tu identificador interno — se devuelve en los reportes |
Formatos aceptados: PDF, JPEG, PNG, WEBP.
Errores (SOAP Fault)
Ver el detalle completo en Errores y estados.