Está en la página 1de 18

 

  
 
 
 
 
 

TOC Autocaptura 
Manual de integración 
Descripción  de  funcionalidades  y  modo  de  uso  de  la  tecnología  de  captura 
automática de documentos  

 
 

 
Responsables:  Juan Pablo Muñoz 
Javier Rodríguez 
Pablo Rodríguez 

Última actualización:  18-06-2020 

Contacto:  devs@toc.cl 

   

 
 

Descripción del producto 


 
La  herramienta  de  Autocaptura  de  TOC  es un sistema que permite la obtención de fotografías de 
documentos  de  identidad  desde  la  cámara  de  un  dispositivo,  procurando  que  las  imágenes 
capturadas  estén  enfocadas  y  sean  legibles.  Esta  herramienta  se  comunica  con  el  servicio  de 
detección  de  documentos  en  la  nube  de  TOC,  por  lo  que  requiere  de  una  conexión  a  internet 
activa para su correcto funcionamiento. 
 
TOC  Autocaptura  está  disponible  para  Android,  iOS  y  web.  Este  sistema  puede  incorporarse  y 
adaptarse  al  flujo  de  su  aplicación  según  se  requiera.  En  particular,  TOC  Autocaptura  puede  ser 
utilizada  en  conjunto  con  TOC  Liveness  y  la  API  Facial  de  TOC  para  realizar  verificaciones  de 
identidad con biometría facial seguras y menos propensas a errores de uso. 
 
La herramienta cuenta con dos componentes: 
● Sistema  de  adquisición  de  sesiones  (​Session  Manager​):  Se  expone  a  través  de  una  API 
RESTful  que  debe  ser  consumida  desde  el  backend  de  la  aplicación.  Retorna  un  id  de 
sesión necesario para poder realizar el proceso de Autocaptura. 
● SDK  para  la  obtención  de  fotografías:  Componente  para  la  captura  de  imágenes, 
dependiente  de  la  plataforma  de  integración  (iOS,  android,  web).  Se  comunica  con 
servidores de TOC para realizar el proceso de detección de documentos. 
 
 

   

 
CONFIDENCIAL  Página 2 de 18 
 
 

Funcionamiento 
TOC  Autocaptura  obtiene  imágenes  de  documentos  de  identidad  por  medio  de  un  proceso  en el 
que  el  usuario  posiciona  la  cámara  del  dispositivo  frente  al  documento  en  cuestión.  El 
procedimiento transcurre de la siguiente manera: 
 
1. En  la  aplicación  cliente,  el  usuario  debe  seleccionar  el  tipo  de  documento  que  desea 
fotografiar (cédula chilena antigua, cédula chilena nueva, pasaporte, etc). 
2. Desde  el  backend  de  la  aplicación  se  debe  enviar  una  solicitud  al  Session  Manager  para 
obtener un id de sesión. 
3. La  aplicación  cliente  debe  invocar  el  SDK  de  TOC  (con  el  id  de  sesión  previamente 
obtenido),  que  a  su  vez  levanta  la  cámara  del  dispositivo.  Es  necesario  indicar la cara del 
documento que se fotografiará. 
4. En  la  pantalla  del  dispositivo  se  despliega  la  imagen  de  la  cámara  con  un  ​overlay  blanco 
que indica dónde debe situarse el documento. 
5. Al  ubicar  el  documento  en  la  posición  indicada,  comenzará  el  proceso  de  detección  en 
base  a  un  análisis  de  los  cuadros  captados  por  la  cámara.  El  overlay  cambiará  de  color 
blanco  a  azul  una  vez  se  haya  detectado  la  presencia  de  un  documento  en  el  cuadro,  y 
tomará  un  color  verde  cuando  la  fotografía  obtenida  esté  correctamente  enfocada  y  sea 
nítida. 
6. Si  se  trata  de  un  documento  de  dos  caras,  se  debe  repetir  el proceso con el reverso de la 
cédula. 
7. Una  vez  completada  la  detección  se obtiene un ​capture_token que identifica de manera 
única  a  la  captura  realizada.  Este  token  puede  ser  utilizado  para  consumir  la  API  de 
verificación facial de TOC. 
   

 
CONFIDENCIAL  Página 3 de 18 
 
 

Sistema de sesiones 
 
El  componente  de  auto  captura  funciona en base a sesiones. Cada sesión tiene una duración de 
15  minutos  máximo​,  y  de  cada  sesión  se  obtendrá  a  lo  más  una  captura  frontal  y  una trasera, y 
opcionalmente, una transacción de Liveness exitosa. 
 
En  primer  lugar,  se  debe obtener un identificador de sesión. Para esto la aplicación, ​desde el lado 
del  servidor​,  debe  enviar  un  ​POST  request  a  la  API  de  adquisición  de  id de sesión, en el siguiente 
endpoint: 
 
https://sandbox-api.7oc.cl/session-manager/v1/session-id 

Formato del request 


Es necesario incluir los siguientes parámetros al enviar la solicitud: 
➔ Content-type​ del request 
Se aceptan como válidos los request de los siguientes tipos 
● multipart/form-data
● application/json 
(Consulte  cuál  es  la forma correcta de generar un request del tipo deseado en su lenguaje 
de preferencia) 
 
➔ Body​ del request: 
1) apiKey​:  String  correspondiente  a  la  “clave”  proporcionada  por  TOC  al  momento  de 
registrarse  como  cliente,  para  poder  interactuar  con  nuestros  servicios.  Es  requisito 
tener activo el servicio de Autocaptura para poder obtener un id de sesión. 
2) autocapture​:  Se  debe  enviar  este  parámetro  con  valor  ‘true’  para  indicar  que  se 
desea  obtener  un  id  de  sesión  autorizado  para  el  proceso  de  autocaptura. En request 
multipart/form-data  el  parámetro  debe  ser  un  string;  si  el  request  es 
application/json​, debe enviarse como booleano. 
3) liveness​:  (Opcional1)  Se  debe  enviar  este  parámetro  con  valor  ‘true’  para indicar que 
se  desea  obtener  un  id  de  sesión  autorizado  para  el  proceso  de  liveness.  En  request 
multipart/form-data  el  parámetro  debe  ser  un  string;  si  el  request  es 
application/json​, debe enviarse como booleano. 
4) fake_detector​:  (Opcional)  Se  debe  enviar  este  parámetro  con  valor  ‘​true​’  si  se 
desea  obtener  un  id  de  sesión  autorizado  para  el  proceso  de  detección  de 
documentos  adulterados.  Solo  funciona  si  además se envía el parámetro autocapture 

1
Para mayor información, referirse al manual de integración de TOC Liveness. 
 
CONFIDENCIAL  Página 4 de 18 
 
 
con  valor  ‘​true​’.  En  request  ​multipart/form-data  el  valor  debe  ser  un  string;  si  el 
request es ​application/json​, debe enviarse como booleano. 
5) mode​: (Opcional​1​) Complejidad del Liveness Detection que se desea implementar. 
 

Formato de la respuesta 
Si el proceso es exitoso, la respuesta será un objeto JSON con dos parámetros: 
● session_id​:​ String con el id de sesión creado. 
● status​: ​Un  código  de  estado  para  la  transacción  de  solicitud  de  id  de  sesión.  Si  la 
generación de ​session_id​ es exitosa, el estado será ​200​. 

Si  algo  falla  durante  el  proceso,  solo  se  obtendrá  el  parámetro  ​status​,  con  el  código 
correspondiente  al  problema  que  se  produjo.  Los  posibles  valores  para  el  campo  status  están 
definidos en la T​ abla de estados del Session Manager​. 
 

Ejemplos de consumo 
 
Consumo en Node.js del Session Manager: 
const​ request = ​require​(​"request"​);

let​ options = { method: ​'POST'​,


url: ​'https://sandbox-api.7oc.cl/session-manager/v1/session-id'​,
headers:
{ ​'Cache-Control'​: ​'no-cache'​,
​'Content-Type'​: ​'multipart/form-data'​ },
formData: { apiKey: ​'API_KEY'​ , autocapture: ​'true'​} };

request(options, ​function​ (error, response, body) {



​if​ (error) ​throw​ ​new​ ​Error​(error);
​console​.log(body);
}); 

 
 
Consumo en PHP del Session Manager: 
<?php
$apiKey = ​'API_KEY'​;
$url = ​'https://sandbox-api.7oc.cl/session-manager/v1/session-id'​;
$post = ​array​(​'apiKey'​=>$apiKey , ​'autocapture'=>'true'​);
$curl = curl_init();

 
CONFIDENCIAL  Página 5 de 18 
 
 

curl_setopt($curl, CURLOPT_URL, $url);


curl_setopt($curl, CURLOPT_POST, ​1) ​ ;
curl_setopt($curl, CURLOPT_TIMEOUT, ​30​);
curl_setopt($curl, CURLOPT_POST, count($post));
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,​true​);
curl_setopt($curl, CURLOPT_VERBOSE,​true​);
$result = curl_exec($curl);
if​(!$result){
​die​(​'Error: "'​ . curl_error($curl) . ​'" - Code: '​ . curl_errno($curl));
}
curl_close($curl);
print​($result)
?>

   

 
CONFIDENCIAL  Página 6 de 18 
 
 

SDK autocaptura de documentos 


 
El  SDK se encarga de desplegar el componente visual de la herramienta para la adquisición de las 
fotografías,  comunicándose  con  el  servidor  de  Autocaptura  en  la  nube  de  TOC.  En  esta 
comunicación, el cliente debe enviar el ​session_id previamente obtenido, además del tipo y cara 
del  documento  que  se  va  a  fotografiar,  a  fin  de  poder  realizar  el  proceso  de  detección  de  la 
cédula.  Es  importante  considerar  que  cada ​session_id tiene una validez de máximo 10 minutos 
o hasta que se complete satisfactoriamente la detección del documento, lo primero que ocurra. 
 
Los documentos soportados, y sus correspondientes códigos, se especifican en el A ​ péndice A​. 
 
A  continuación,  se  detalla  el  modo  de  integración  del  componente  según  la  tecnología  de 
implementación.  

A. Cliente Web (v. 1.3) 


Para  aplicaciones  web,  el  componente  a  integrar  corresponde  a  una  librería  javascript.  Esta 
librería  hace  uso  de  la  tecnología  WebRTC2  para  tomar  control  de  la  cámara  a  través  del 
navegador,  sin  necesidad  de  instalar  plugins  extra.  Es  necesario  que  el usuario permita el uso de 
la cámara para el correcto funcionamiento del cliente. 

Librerías 
Sólo se requiere agregar la librería JS de Autocaptura. Ejemplo: 
 
<script
src=​"​https://sandbox-web-plugins.s3.amazonaws.com/autocapture/autocapture.js​"​></​scr
ipt​>

Implementación 
La  implementación  se  hace  sobre  un  componente  vacío  (un  div  por  ejemplo).  Existen  dos 
inicializadores, utilizando Javascript puro (recomendado) y JQuery. 
 
JAVASCRIPT 
TOCautocapture(container, options) 
 

2
h
​ ttps://webrtc.org/ 
 
CONFIDENCIAL  Página 7 de 18 
 
 
JQUERY 
.autocapture(options) 
 
Ambas  invocaciones  son  idénticas.  La  función  de  jQuery  se  aplica  sobre  un  componente  div 
vacío. Los parámetros que reciben son: 
● container​:  (sólo  en  JS  puro)  componente  div  vacío  en  la  página,  donde  se  cargará  el 
plugin.  Puede  ser  una  string  que  contenga  la  ID  del  div,  o  puede  ser  el  contenedor 
obtenido  mediante  las  funciones  ​document.getElementById  o 
document.querySelector​.
● options​: JSON que recibe opciones para configurar el plugin. 
○ locale​: Determina el idioma a utilizar (“es” por defecto). 
○ session_id​: El ID para poder invocar la sesión de captura automática. 
○ document_type​:  String  que  indica  el  tipo  de  documento  al  cual se le va a hacer la 
captura automática (ver ​Apéndice A​). 
○ document_side​:  String  que  indica el lado del documento a capturar. Las opciones 
son ​“front”​ y ​“back”​. 
○ callback​:  Función  a  ejecutar  una  vez  realizada  la  captura  del  documento.  La 
función recibe dos parámetros: 
■ captured_token​:  String  que  contiene  el  token  de  la  transacción,  y 
funciona como imagen para la utilización de la API Facial. 
■ image​: String que posee la imagen en base64 capturada. 
Por defecto genera un a ​ lert​ que muestra el token de la transacción. 
○ failure​:  Función  a  ejecutar  en  caso  que  la  captura  no  se  haya  podido  realizar, 
permitiendo  seguir  un  flujo  de  error. Recibe un parámetro ​error ​que es una string 
con  el  código  de  error  que  se  ha  entregado.  Por  defecto  genera  un 
alert(“FAILURE”)​. 
○ retry_on_timeout​:  (opcional)  booleano  que  cuando  es  ​true​,  muestra  las 
instrucciones  de  ayuda  en  vez  de  terminar  el  flujo  de  autocaptura.  Por  defecto es 
false​. 
○ no_instructions​:  (opcional)  booleano  que  cuando  es  ​true​,  oculta  las 
instrucciones mostradas en la parte inferior de la interfaz. Por defecto es false. 
○ alt_server​:  (Se  debe  setear  para  el  paso  a  producción)  Setea  el  endpoint  del 
servidor  al  cual  el  plugin  se  comunica.  Si  no  se  define,  se  utilizará  por  defecto  el 
servidor sandbox de TOC. 
○ url_lbac​:  (Se  debe  setear  para  el  paso  a  producción)  Setea  el  endpoint  del 
servidor  al  cual  el  plugin  entrega  los  resultados  una  vez  obtenida la captura. Si no 
se define, se utilizará por defecto el servidor sandbox de TOC. 
 
Para el ambiente productivo, se deben setear con los siguientes valores: 
"​alt_server​": "​https://prod-capture.tocws.com​"

 
CONFIDENCIAL  Página 8 de 18 
 
 
"​url_lbac​": "​https://prod-api.7oc.cl/auto-capture/data/v2​" 

 
○ http​:  (Opcional)  Booleano.  Si  es  true,  ignora  la  comprobación de dominio seguro. 
USAR SÓLO EN AMBIENTES DE DESARROLLO​. 
 
Ejemplo de implementación con Javascript puro: 
TOCautocapture(​'container'​, {
locale: ​"es"​,
session_id: ​"SESSION ID HERE",
​document_type: ​"CHL2",
document_side: ​"front",
callback: ​function​(captured_token, image)​{ alert(token); },
failure: ​function​(error)​{ alert(error); }
}
);

 
 
Ejemplo de implementación con jQuery: 
$(​'#container'​).autocapture({
locale: ​"es"​,
session_id: ​"SESSION ID HERE",
​document_type: ​"CHL2",
document_side: ​"front",
callback: ​function​(captured_token, image)​{ alert(token); },
failure: ​function​(error)​{ alert(error); }
}
);

Locales (idiomas) 
Los  archivos  de  locale  son  archivos  JSON  con  traducciones  de  las  frases  en  la  interfaz. 
Actualmente hay dos locales implementados: 
● “es”: español. 
● “en”: inglés. 

Compatibilidad 
● PC/Android: Todos los navegadores compatibles con WebRTC. 
● Mac: Navegadores compatibles con WebRTC. Se recomienda el uso de Safari 11. 

 
CONFIDENCIAL  Página 9 de 18 
 
 
● iPhone:  Safari  11  en  adelante  es  ​obligatorio​.  No  existe  otro  navegador  compatible  con 
WebRTC. 

Consideraciones 
● Para  mejor  visualización,  es  recomendado  que  el  contenedor  del  plugin  ocupe  >50%  del 
ancho  de  la  pantalla  en  resoluciones  menores a 1200px, y menos del 50% del ancho de la 
pantalla en resoluciones mayores. 
● En  dispositivos  móviles  la  captura  solo  se  puede  realizar de forma horizontal. Idealmente 
el  contenedor  debe  ocupar  el  mayor espacio posible de la pantalla (sobre 80% del ancho). 
La interfaz siempre estará en landscape, incluso en portrait (interfaz se mostrará de lado). 
● Dado  que  el  plugin  hace  uso  de  componentes  de  video,  asegurar  que  en la página donde 
se ejecuta el plugin no hay cámaras en funcionamiento. 
● Es  requerido  implementar  el  plugin  en  dominios  seguros  (https)  de  modo  de  asegurar  la 
mayor  compatibilidad  con  dispositivos,  y  el  mejor  funcionamiento  del  plugin  y la cámara. 
El  plugin no funcionará en ambientes de producción a menos que esté en dominio seguro, 
mostrando un mensaje en pantalla y necesitando recargar la página para poder continuar. 
● Si  se  desea  hacer  más  de  una  captura  automática  en  la  misma  página,  es recomendado 
vaciar  el  componente  utilizado  (​container.innerHTML = “”  o  ​.empty()​)  antes  de 
volver a cargar la segunda invocación. 
 

B. Cliente Android (v. 1.10.14) 


El  cliente  Android  de autocaptura se encuentra alojado en un repositorio Maven, el cual puede ser 
accedido  utilizando  las  credenciales  pertinentes.  Para esto es necesario agregar las credenciales 
en el b​ uild.gradle​ del proyecto, como se muestra a continuación: 
 
allprojects {
repositories {
jcenter()
maven {
url ​"http://maven.toc.ai/artifactory/labs-release"
​credentials {
username = ​"YOUR_USERNAME"
​password = ​"YOUR_PASSWORD"
​}
}
google()
}
}

 
CONFIDENCIAL  Página 10 de 18 
 
 
Una  vez  las  credenciales  sean  ingresadas  en  el  ​build.gradle​,  es  necesario  importar  el 
repositorio  de  Maven.  Esto  se  hace  en  el  ​build.gradle  del  módulo  donde  se  quiere  utilizar  la 
librería.  Para  importar  la  librería  solo  se  necesita  agregar  la  siguiente  línea  al  ​build.gradle  del 
módulo: 
 
implementation ​'​cl.toc.AutoCapture​:sdk:1.10.14'

 
Si  las  credenciales  ingresadas  en  el  paso  anterior no son correctas, el proyecto no podrá obtener 
esta librería y el proceso de autocaptura no funcionará. 
 
 

Implementación 
Una  vez  la  librería  esté  integrada  al  proyecto,  solo  se  requiere llamar a la actividad que maneja el 
componente  de  Autocaptura.  Esto  se  hace  al  enviar  un  intent  a  la  clase  ​CaptureActivity ​y 
enviando como parte del intent las variables ​session_id, document_side y document_type​. 
 
Para  el  ambiente  productivo,  se  deben  agregar  y  asignar  variables  ​url_wsac ​y  ​url_lbac ​con 
los siguientes valores: 
"​url_wsac​ ​": "​https://prod-capture.tocws.com​"

"​url_lbac​ ​": "​https://prod-api.7oc.cl/auto-capture/data/v2​" 

Si no se especifican estas variables, el servicio utilizará por defecto el ambiente Sandbox de TOC. 

También  es  posible  activar  un  botón  para  prender  y  apagar  el  flash  del  dispositivo,  esto se logra 
con el parámetro: 

“show_flash_button”: True 
 
Dónde ‘True’ es un Boolean. 
 
 
Código de ejemplo: 
Intent intent = ​new​ Intent(Disclaimer.​this​, CaptureActivity.class);
intent.putExtra(​"session_id"​, ​"YOUR_SESSION_ID"​);
intent.putExtra(​"document_side"​, ​"THE_DOCUMENT_SIDE"​);
intent.putExtra(​"document_type"​, ​"THE_DOCUMENT_TYPE"​);
startActivityForResult(intent, ​"YOUR_INTENT_CODE"​);

 
CONFIDENCIAL  Página 11 de 18 
 
 
Es  preciso  llamar  a  la  actividad  con  un  ​startActivityForResult​,  ya  que  una  vez  terminado el 
proceso  de  Auto  captura,  la  actividad  entregará  el  token  y  la  imagen  en  base64  con  el  Flag 
“​URL_SAFE​”,  asociadas  al  proceso.  Para  adquirir  este  token  y  la  imagen,  basta  con  obtenerlo 
desde el intent como se muestra a continuación: 
 
protected​ ​void​ ​onActivityResult​(​int​ requestCode, ​int​ resultCode, Intent data) ​{
​super​.onActivityResult(requestCode, resultCode, data);
​if​(requestCode == ​"YOUR_INTENT_CODE"​ && resultCode == 200) {
String toc_token = data.getStringExtra(​"capture_token"​);
String image = data.getStringExtra(“image”);
}
}

 
 
Se  debe  tener  en  cuenta  que  la  librería  de  Auto  captura  utiliza  permisos  de  cámara,  los  cuales 
deben  ser  solicitados  al  usuario  en  la  aplicación.  El  siguiente  código  permite  solicitar  estos 
permisos de forma programática: 
 
if​ (ContextCompat.checkSelfPermission(​this​, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(​this​, ​new
String[]{Manifest.permission.CAMERA}, ​1​);
}

 
Se  requiere  corroborar  que  los  permisos  fueron  exitosamente  aceptados  antes  de  iniciar  el 
proceso de Auto captura. 

Compatibilidad 
La  librería  TOC  Auto  captura  ha  sido  probada  satisfactoriamente  en  sistemas  Android  5.0  y 
superiores, y funciona en dispositivos cuya cámara cuenta con autofoco. 

C. Cliente iOS 
Para  aplicaciones  iOS,  el  SDK  de  auto  captura  se ofrece como un iOS framework. A continuación 
se describen los pasos para integrar la herramienta en una aplicación: 

 
CONFIDENCIAL  Página 12 de 18 
 
 

Inclusión del framework a un proyecto 


Para  utilizar  las  funcionalidades  de  TOC  auto  captura  se  debe  incorporar 
AutoCapture.framework ​al  proyecto  de  la  aplicación,  el  cual  cuenta  con  las  siguientes 
dependencias: 
● SocketIO v. 15.0.0 
El  proyecto  debe  contener  tanto  los  frameworks  a  utilizar  como  sus  dependencias, por lo que se 
deben incluir los siguientes frameworks como “Embedded binaries” del target de la aplicación: 
● AutoCapture.framework 
● SocketIO.framework 
● Starscream.framework 

Descarga de dependencias usando Carthage 


A  fin  de  asegurar  compatibilidad  de  las  librerías  requeridas  con  el  ambiente  en  que  se 
desarrollará  la  aplicación  cliente,  lo  recomendado  es  obtener  y  compilar  localmente  las 
dependencias.  Esto  puede  hacerse  fácilmente  a  través  del  software  de  administración  de 
dependencias ​Carthage​, de la siguiente manera: 
 
1. Instalar Carthage: ​ b ​ rew install carthage
2. Crear un archivo C ​ artfile​ en el directorio de trabajo 
3. En el Cartfile escribir: 
 
github "socketio/socket.io-client-swift" ~> 15.0.0 
 
4. Verificar  que  esté  configurado  el  valor  de  “Command  Line  Tools”  en Xcode. Se encuentra 
en Xcode > Preferences > Locations. 
5. En el directorio donde se encuentra el Cartfile, ejecutar  
carthage update --platform iOS 
6. Una carpeta C ​ arthage​ se creará en el directorio. 
7. Copiar los archivos . ​ framework​ generados en C ​ arthage/build/iOS
8. En  el  proyecto  de  la  aplicación  a  desarrollar,  incluir  los  frameworks  generados  como 
Embedded Binaries, en la pestaña General de las opciones del Target de la aplicación. 
9. El  archivo  ​AutoCapture.framework  será  provisto  directamente  por  TOC;  incorporarlo 
como Embedded Binaries de la misma forma. 
 
Los tres framework deben ser copiados a la carpeta del proyecto. 

Configuración 
En el archivo I
​ nfo.plist​ del proyecto de la aplicación agregar:  

 
CONFIDENCIAL  Página 13 de 18 
 
 
 
Key  Type  Value 

Privacy - Camera Usage Description  String  <Una descripción> 

url_wsac  String  url1 del endpoint auto captura 

url_lbac  String  url1 del endpoint auto captura 


 
Para  el  ambiente  productivo,  las  variables  ​url_wsac  ​y ​url_lbac ​se deben setear con los siguientes 
valores: 
"​url_wsac​ ​": "​https://prod-capture.tocws.com​"

"​url_lbac​ ​": "​https://prod-api.7oc.cl/auto-capture/data/v2​" 

Si no se setean estos valores, la comunicación irá al ambiente sandbox por defecto. 

Implementación 
Para utilizar auto captura iOS primero se debe importar el framework a la clase que lo utilizará:  
 
Objective C: 
#import "AutoCapture.framework/Headers/AutoCapture-Swift.h" 

 
Swift: 
import​ AutoCapture 

 
Luego se debe agregar el delegado c
​ aptureDelegate​: 
 
Objective C: 
@interface​ ​ViewController​ : ​UIViewController​<​captureDelegate​> 

 
Swift: 
class​ ​ViewController​: ​UIViewController​, ​captureDelegate​{...} 

 
A continuación se solicitará implementar la función f
​ inished:

 
CONFIDENCIAL  Página 14 de 18 
 
 
Objective C, agregar al .
​ h
- (​void​) finishedWithStatus:(​NSInteger​ *) status captured_token:(NSString *) token; 

 
Objective C, agregar al .
​ m
- (​void​) finishedWithStatus:(​NSInteger​ *) status captured_token:(NSString *) token{
​NSLog​(​@"autocapture finished with status: %d token: %@"​, status, token);

 
Swift: 
func​ f​ inished​(status: Int, captured_token: String)​{
​print​(​"autocapture finishes with status: ​\(​status​) and token:
\(captured_​token​)​"​)

 
 
Por último, se hace la llamada al proceso de Autocaptura: 
 
Objective C 
captureInterface *acvc = [[captureInterface alloc] init];
[acvc setDelegateWithDel:​self​];
[acvc setSessionIdWithSid:@​"session_id"​];

[acvc captureFrontWithCurrentController:​self type:@”CHL2”​];


o
[acvc captureBackWithCurrentController:​self type:@”CHL2”​];

 
Swift: 
let​ autocapture = ​captureInterface​()
autocapture.setDelegate(del: self)
autocapture.setSessionId(sid: ​"session_id"​)

autocapture.captureFront(currentController: ​self, type: “CHL2”​)


o
autocapture.captureBack(currentController: ​self, type: “CHL2”​)

   

 
CONFIDENCIAL  Página 15 de 18 
 
 
 

Tabla de estados del Session Manager 


 
La  siguiente  tabla muestra los posibles valores retornados en el campo status de la respuesta del 
proceso de obtención de un id de sesión. 
 
 
Código  Tipo de respuesta  Descripción 

200  Proceso exitoso  Proceso concluyó sin interrupciones 

400    Request mal formado 

401    Servicio no habilitado 

402    El  límite  de  transacciones  o  tiempo  de 


prueba del cliente fue superado. 

411  Parámetros  malos  o  faltantes.  Parámetro a


​ piKey​ no encontrado 
Verifique  que  el  request  contenga 
todos  los  parámetros  indicados  y 
que los nombres coinciden 

421  Contenido  malo o faltante. Verifique  apiKey​ no existe 


que  el  contenido  de  cada  atributo 
422  del  request  sea  el  correcto  y  mode​ no existe 
responda al formato indicado 
423  Valor incorrecto de a
​ utocapture​ o 
liveness

5XX  Errores internos del servicio  Error interno, contactar a soporte 


 
 
 
 
 
 
 
 
 
 

 
CONFIDENCIAL  Página 16 de 18 
 
 

Tabla de estados del SDK 


Los componentes de auto captura iOS, Android y Web responden un status 200 en caso de 
terminar el proceso exitosamente. La siguiente tabla describe los códigos de status alternativos. 
 
 
Código  Tipo de respuesta  Descripción 

200  Proceso exitoso  Proceso concluyó sin interrupciones 

401    Envío de datos fallido 

402    Tiempo límite excedido 

403    Cancelado por usuario 

404    Sin internet 

405    Sesión expirada 

406    No hay conexión con servidor (ws) 

411  Parámetros faltantes  Falta ​session_id

412    Falta ​document_type

413    Falta ​document_side

414    Falta ​iOS delegate

415    Falta ​iOS controller

421  Error en contenido de parámetros  session_id​ no válido 

422    document_type​ no soportado 

430    La cédula no pudo ser validada 

431    session_id​ ya utilizado 

450    Error de plugin web 

502    Error de camara 


   

 
CONFIDENCIAL  Página 17 de 18 
 
 
 

Apéndice  A:  Códigos  para  los  tipos  de  documentos 


soportados 
 
 
CHL1  Documento de identidad chileno antiguo 

CHL2  Documento de identidad chileno nuevo 

PER1  Documento de identidad peruano antiguo 

PER2  Documento de identidad peruano nuevo 

COL1  Documento de identidad colombiano 

ARG1  Documento de identidad argentino antiguo 

ARG2  Documento de identidad argentino nuevo 


 

 
CONFIDENCIAL  Página 18 de 18 
 

También podría gustarte