Inyo360 — Verificación de Identidad (KYC)
La API de Verificación de Identidad es parte de la suite de cumplimiento Inyo360 — una nueva tecnología de verificación de identidad desarrollada internamente por Inyo. Combina machine learning e IA agéntica con técnicas avanzadas de visión por computadora para realizar una verificación KYC robusta, en lugar de depender de un proveedor externo.



El cliente fotografía un documento emitido por el gobierno — pasaporte, licencia de conducir o cédula de identidad — y se toma una selfie. Inyo extrae los datos del documento, los valida, comprueba que el documento sea auténtico y no esté vencido, confirma que la selfie corresponde a una persona viva y compara a esa persona con el retrato del documento. La IA agéntica orquesta estas comprobaciones y resuelve los casos límite, de modo que usted recibe una única decisión normalizada: approved, declined o in_review.
Cómo Funciona
sequenceDiagram
autonumber
participant Y as Su Sistema
participant I as Inyo
participant C as Cliente
Y->>I: POST /v1/sessions
I-->>Y: sessionId +<br/>widgetUrl
Y->>C: entrega el widgetUrl
C->>I: documento<br/>frente / reverso
C->>I: selfie + prueba de vida
Note over I: Ejecuta<br/>verificaciones
I-->>Y: webhook firmado<br/>o redirección
Y->>I: GET /v1/sessions/{id}
I-->>Y: approved /<br/>declined /<br/>in_review
Y->>C: muestra el resultado
Dos Formas de Integrarse
Elija una por verificación — ambas producen el mismo resultado normalizado y respetan la misma configuración.
| Modo | Cómo funciona | Elíjalo cuando |
|---|---|---|
| Widget alojado | Usted crea una sesión y recibe un widgetUrl. Envíelo a su cliente o ábralo en un webview. Inyo se encarga de la captura con cámara, la guía de encuadre, los reintentos y la localización. | Quiere la integración más rápida y sin código de cámara propio. Es la opción predeterminada recomendada. |
| Servidor a servidor | Usted captura las imágenes por su cuenta y las envía a POST /v1/verifications. El resultado llega en la respuesta. | Ya tiene una UI de captura, o la verificación ocurre sin un cliente en vivo (por ejemplo, re-verificar documentos almacenados). |
Pasos de Integración
| Paso | Acción | Endpoint | Descripción |
|---|---|---|---|
| 1 | Autenticarse | POST /oauth/token | Intercambie sus credenciales de cliente por un token Bearer |
| 2 | Crear una sesión | POST /v1/sessions | Devuelve un sessionId y un widgetUrl |
| 3 | Entregar el widget | — | Envíe el enlace, o ábralo en un webview |
| 4 | Recibir el resultado | su webhookUrl | Un POST firmado con el resultado de la verificación |
| 5 | Leer la decisión | — | Interprete status, autoStatus y checks[] |
| 6 | Confirmar del lado del servidor | GET /v1/sessions/{sessionId} | El registro autoritativo, para sondeo o conciliación |
¿Va a omitir el widget? Reemplace los pasos 2-4 con una única verificación servidor a servidor.
Qué Recibe
Toda verificación se resuelve en un único resultado normalizado que contiene la decisión, los datos extraídos del documento y de la persona, y las comprobaciones individuales que produjeron la decisión:
{
"sessionId": "…",
"userRef": "user-123",
"status": "approved",
"autoStatus": "approved",
"document": { "type": "passport", "number": "…", "expirationDate": "2033-09-30" },
"person": { "firstName": "…", "lastName": "…", "dateOfBirth": "1988-03-04" },
"checks": [
{ "name": "document_not_expired", "status": "passed", "group": "document", "detail": "…" },
{ "name": "face_match", "status": "passed", "group": "selfie", "detail": "similarity vs threshold 90.0" }
],
"provider": "inyo"
}
El payload completo y las reglas para leerlo están en Comprobaciones y Decisiones.
Patrón de Arquitectura
Sus credenciales OAuth son exclusivas del lado del servidor. Cree las sesiones desde su backend y entregue al cliente únicamente el widgetUrl devuelto — contiene un código de un solo uso y con tiempo limitado, y no otorga acceso a nada más que a esa única verificación.
flowchart TB
subgraph browser["Dispositivo del cliente"]
C["Navegador /<br/>webview"]
end
subgraph yours["Su infraestructura"]
S["Su servidor<br/>guarda las credenciales OAuth"]
end
subgraph inyo["Inyo"]
W["Widget alojado"]
A["API del tenant"]
end
S -->|"POST /v1/sessions<br/>token Bearer"| A
A -->|"widgetUrl"| S
S -->|"solo el widgetUrl"| C
C -->|"documento + selfie"| W
W --> A
A -->|"resultado firmado"| S
Entornos
| Recurso | URL |
|---|---|
| API del tenant (sandbox) | https://{FQDN} |
| API del tenant (producción) | https://{FQDN} |
| Host del widget | https://{FQDN} |
Las URL base, las credenciales de cliente OAuth y la lista de IP permitidas son emitidas por Inyo durante el onboarding. Las credenciales de sandbox y de producción no son intercambiables.
Próximos Pasos
| Página | Qué cubre |
|---|---|
| Primeros Pasos | Ejecute una verificación de principio a fin |
| Autenticación | Tokens, alcances y manejo de errores |
| Sesiones de Verificación | Cada campo de POST /v1/sessions |
| Recepción de Resultados | Verificación de firmas y modos de entrega |
| Revisión Manual | Cómo manejar in_review correctamente |
| Sandbox y Datos de Prueba | Pruebas antes de salir a producción |
