Você está na página 1de 46

DOCUMENTO DE INTEGRACIÓN

PAQUETE I – API REST

SIB Documentación Técnica – API – Paquete I 1


Contenido

Contenido .................................................................................... 2
Introducción ................................................................................ 4
Flujo general del proceso ........................................................... 4
Métodos de integración .............................................................. 8
Scan Barcode ............................................................................ 10
New Operation .......................................................................... 12
Add front ................................................................................... 13
Add back ................................................................................... 14
Register ..................................................................................... 16
Add Barcode ............................................................................. 17
End Operation ........................................................................... 19
Códigos Generales de Retorno ................................................ 23
Anexo verificación comunicación Gateway ............................ 28
Servicio /status ......................................................................... 28
Servicio /.................................................................................... 29
Anexo ejemplo práctico de implementación ........................... 30
PHP ............................................................................................ 30
scanBarcode ............................................................................. 30
newOperation ............................................................................ 32
addFront .................................................................................... 33
addBack..................................................................................... 35
register ...................................................................................... 37

SIB Documentación Técnica – API – Paquete I 2


addBarcode ............................................................................... 39
endOperation ............................................................................ 41
Apartado de Recomendaciones para efectuar la prueba de
vida ............................................................................................ 44
¿Qué es la prueba de vida?...................................................... 44
Funcionamiento ........................................................................ 44
Características de la fotografía a enviar .................................. 45

SIB Documentación Técnica – API – Paquete I 3


Introducción

La solución SIB ofrece tres paquetes, el primer paquete (Paquete I) validación datos, DNI
frente y dorso y selfie, el segundo paquete (Paquete II) validación de datos + selfie y el último
paquete (paquete III) valida solo datos en formato alfanuméricos del ciudadano.

El paquete uno se compone de estos tres métodos de consumo:

Web: permite realizar la integración por API Rest del paquete de consumo.
Mobile: permite por medio de la utilización de la aplicación SIB de Renaper, consumir los tres
paquetes de consumo.
SDK: permite por medio de código SDK nativo compatible para los sistemas operativos
Android y iOS, consumir los tres paquetes de consumo.

Este documento de integración se refiere solo al paquete I vía Web (API Rest).

Flujo general del proceso

El siguiente flujo representa la implementación de los métodos de la API para


consumir correctamente las funcionalidades correspondientes al paquete de consumo,
a modo guía.

SIB Documentación Técnica – API – Paquete I 4


1. Para comenzar con el proceso, se precisa el número de documento y género
del ciudadano. Por tal motivo, se proporciona un método de uso opcional,
llamado scanBarcode, para obtener esta información por medio de la lectura

SIB Documentación Técnica – API – Paquete I 5


del PDF417 del documento de identidad, por medio de una fotografia del PDF
417.

En caso de no utilizar este método, es posible el ingreso manual de los mismos


para dar por iniciado el flujo.
2. El primer método del proceso es New Operation. Permite iniciar y crear la
transacción. Retorna el id de la operación, que se utilizará en el resto de los
métodos de la API, proporcionando trazabilidad en el flujo.
3. Se solicita fotografía del frente del documento de identidad al ciudadano.
4. Se adhiere a la operación el frente del documento utilizando el método Add
Front. Se envía una imagen en formato base64 al método y el número de
operación en la cual se incorpora esta imagen. La fotografía del frente del
documento se utiliza para obtener los datos personales contenidos en él y
efectuar la validación del plástico. Los resultados se retornan al final del
proceso.
5. Se solicita fotografía del dorso del documento de identidad ciudadano.
6. Se adhiere a la operación el dorso del documento utilizando el método Add
Back. Se envía una imagen en formato base64 al método y el número de
operación en la cual se incopora esta imagen. La fotografía del dorso del
documento se utiliza para obtener los datos personales contenidos en él y
efectuar la validación del plástico. Los resultados se retornan al final del
proceso.
7. Se debe adherir a la operación los datos capturados de la lectura del PDF 417
obtenidos en el primer paso del flujo. Para ello, se utiliza el método Add
Barcode. Este método permite incorporar a la operación la información
obtenida del PDF 417 del documento, para obtener la vigencia del documento
por medio del número de trámite, número de documento y género, al final del
proceso.

SIB Documentación Técnica – API – Paquete I 6


8. Se solicita fotografía selfie con prueba de vida al ciudadano. Para el correcto
funcionamiento del paquete de consumo por medio de este canal, es
obligatorio el envío de una fotografía del rostro con expresión neutral, que
cumpla con las normas ICAO detalladas en el anexo “Caracteristicas de la
fotografía a enviar” de este documento.
9. Se adhiere a la operación la fotografia selfie del ciudadano utilizando el método
Register. Esta fotografía será comparada biométricamente con la fotografía
que Renaper dispone en su base de datos.
10. Se finaliza la operación utilizando el método End Operation. Este método
permite obtener el resultado final del proceso, por medio de la siguiente
información:
o Porcentaje de match biométrico obtenido de la comparación entre la
selfie enviada en el método Register y la almacenada en la base de
datos de Renaper, para el número de documento y género informado.
o Información obtenida de la persona desde la base de datos de Renaper,
en caso que el documento de identidad se encuentre vigente. Se
considera que el documento de identidad está vigente si el número de
trámite adherido con el método Scan Barcode, corresponde con el que
posee almacenado Renaper en su base de datos para el número de
documento y género proporcionado.
o Información capturada del PDF 417 del documento de identidad del
ciudadano.

o Información capturada del código MRZ del documento de identidad del


ciudadano.

SIB Documentación Técnica – API – Paquete I 7


o Información capturada del frente y dorso del documento de identidad
del ciudadano, utilizando tecnología OCR.
o Porcentajes de validación de áreas del documento de identidad, para
chequear su veracidad. Se analizan en particular dos areas del plástico,
retornando un porcentaje de match respecto al plástico real:

11. Se obtiene el score de face match en este paso. Se realiza una llamada interna
al servicio de validación de identidades de Renaper. Se compara la selfie
tomada con la fotografía del legajo de la persona que contiene Renaper. Se
retornan los datos obtenidos por las distintas fuentes: OCR, MRZ, PDF417 y
servicio de datos de Renaper.

Métodos de integración

A continuación, se detallan los métodos de integración correspondientes al paquete de


consumo II de SIB, por el canal web.
Los parámetros subrayados son obligatorios.

SIB Documentación Técnica – API – Paquete I 8


El dominio a utilizar para consumir los servicios, es el siguiente:

https://renaper.dnm.gob.ar/

$apiKey='APIKey proporcionada por RENAPER';

$dominio='https://renaper.dnm.gob.ar/';

$url="http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding";

$type="application/json";

$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)

);

Para obtener la APIKey de acceso, ingresar al portal de autogestión, y en la opción de menú


Administración > API Key.

NOTA: Si el método invocado no retorna una respuesta exitosa o un código de error conocido,
se debe asumir que el método no se ejecutó correctamente, y debe repetirse.
Ejemplo de respuesta método endOperation:

SIB Documentación Técnica – API – Paquete I 9


string'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-
1"/>
<title>502 - Web server received an invalid response while acting as
a gateway or proxy server.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica,
sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-
family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-
top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>502 - Web server received an invalid response while acting as a
gateway or proxy server.</h2>
<h3>There is a problem with the page you are looking for, and it
cannot be displayed. When the Web server (while acting as a gateway
or proxy) contacted the upstream content server, it received an
invalid response from the content server.</h3>
</fieldset></div>
</div>
</body>
</html>
' (length=1477)

Código HTTP inesperado: 502

Scan Barcode

Este método permite realizar la lectura del código PDF 417 a partir de una imagen enviada
como parámetro. Es de uso opcional, y automatiza la obtención de los datos requeridos para
la creación de la operación del paquete de consumo.

SIB Documentación Técnica – API – Paquete I 10


La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/scanBarcode

Parámetros de entrada:
file: imagen en formato base64 del PDF 417 del documento de identidad.
Especificaciones de la imagen a enviar:
• Tipo de imagen: JPG.
• Tamaños recomendados:
o 469 x 230 px
o 916 x 230 px

Ejemplo de llamada:

{
"file": "PDF417 image"
}

Parámetros de respuesta:
code: código de respuesta.
message: descripción de la respuesta.
documentData: retorna los datos obtenidos mediante lectura del PDF 417 del documento
de identidad. Esta estructura puede retornarse vacía en caso que no se logre la lectura del
código PDF 417:
• number: número de documento.
• names: nombres de la persona obtenidos del documento.
• lastNames: apellidos de la persona obtenidos del documento.
• gender: género de la persona obtenido del documento (M o F).
• birth: fecha de nacimiento obtenida del documento.
• type: tipo del ID. Los valores posibles son “Nuevo” o “Antiguo”.
• order: número de tramite

SIB Documentación Técnica – API – Paquete I 11


New Operation

Este método permite la creación de una nueva operación. Este método es el punto de partida
para el consumo del paquete. Retorna el ID de la operación que funciona como identificador
del flujo y se utiliza en el resto de los métodos del paquete.
La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/newOperation

Parámetros de entrada:
number: número de documento del usuario.
gender: genéro de la persona. Masculino (M o m) y Femenino (F o f).
ipAddress: IP del dispositivo que se está utilizando para realizar la operación.
applicationVersion: versión de la aplicación.
browserFingerprintData: se incorpora el hash del fingerprint del dispositivo y la información
del browser que realiza la llamada al servicio. Para ello, utilizar el plugin de fingerprint
browser, proporcionado como parte del paquete de consumo. El anexo “Integración plugin
browser fingerprint” contiene toda la información de integración del mismo.

Ejemplo de llamada:

{
"number": "34021659",
"gender": "M",
"ipAddress": "192.168.1.1",
"applicationVersion": "1.0.0",
"browserFingerprintData": "base64Fingerprint"
}

Parámetros de respuesta:
code: código de respuesta.
SIB Documentación Técnica – API – Paquete I 12
message: descripción de la respuesta.
operationId: id de la operación creada.

Ejemplo de respuesta:
{
"code": 901,
"message": "New operation created",
"operationId": 1
}

Add front

Este método permite incorporar a la operación la fotografía del frente del documento, para
su posterior análisis y extracción de información. Para utilizarlo, es necesario contar con el id
de operación que proporciona el método newOperation.
La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addFront

Parámetros de entrada:
operationId: id de la operación obtenido del método newOperation.
gender: género de la persona.
number: número de documento de la persona.
analyzeAnomalies: variable de tipo booleana. Si su valor es true habilita el análisis de
veracidad del plástico por áreas. El resultado obtenido se retornará en el método
EndOperation.
analyzeOcr: variable de tipo booleana. Si su valor es true habilita la extracción de datos del
documento de identidad por OCR. El resultado obtenido se retornará en el método
EndOperation.
file: imagen del frente del documento en formato base64.
Especificaciones de la imagen a enviar:

SIB Documentación Técnica – API – Paquete I 13


• Tipo de imagen: JPG.
• Mínimo de largo esperado: 1000 px
• Máximo de largo esperado: 2000 px
• Recomendado: 1200 px de largo

Ejemplo de llamada:

{
"operationId": 1,
"number": "34021659",
"gender": "M",
"analyzeAnomalies": true,
"analyzeOcr": true,
"file": "dorso documento en base64"
}

Parámetros de respuesta:
code: código de respuesta.
message: descripción de la respuesta.

Ejemplo de respuesta:
{
"code": 909,
"message": "Add front success"
}

Add back

Este método permite incorporar a la operación la fotografía del dorso del documento, para su
posterior análisis y extracción de información. Para utilizarlo, es necesario contar con el id de
operación que proporciona el método newOperation.
SIB Documentación Técnica – API – Paquete I 14
La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addBack

Parámetros de entrada:
operationId: id de la operación obtenido del método newOperation.
gender: género de la persona.
number: número de documento de la persona.
analyzeAnomalies: variable de tipo booleana. Si su valor es true habilita el análisis de
veracidad del plástico por áreas. El resultado obtenido se retornará en el método
EndOperation.
analyzeOcr: variable de tipo booleana. Si su valor es true habilita la extracción de datos del
documento de identidad por OCR. El resultado obtenido se retornará en el método
EndOperation.
file: imagen del frente del documento en formato base64.
Especificaciones de la imagen a enviar:

• Tipo de imagen: JPG.


• Mínimo de largo esperado: 1000 px
• Máximo de largo esperado: 2000 px
• Recomendado: 1200 px de largo

Ejemplo de llamada:

{
"operationId": 1,
"number": "34021659",
"gender": "M",
"analyzeAnomalies": true,
"analyzeOcr": true,
"file": "dorso documento en base64"
}

SIB Documentación Técnica – API – Paquete I 15


Parámetros de respuesta:
code: código de respuesta.
message: descripción de la respuesta.

Ejemplo de respuesta:
{
"code": 912,
"message": "Add back success"
}

Register

Este método permite incorporar a la operación la fotografía selfie del ciudadano, para realizar
la validación biométrica. No contempla el desafío de vida del usuario. Se solicita el envío de
una fotografía del ciudadano con expresión neutral, que cumpla con las normas ICAO.
Para utilizarlo, es necesario contar con el id de operación que proporciona el método
newOperation.
La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/register

Parámetros de entrada:
operationId: id de la operación obtenido del método newOperation.
gender: género de la persona.
number: número de documento de la persona.
selfieList: lista de imágenes con:
file: imagen de la selfie en formato base64.
imageType: tipo de la selfie enviada. El tipo esperado es:

Ejemplo de llamada:

SIB Documentación Técnica – API – Paquete I 16


{
"operationId": 1,
"number": "34021659",
"gender": "M",
"selfieList":
[
{"file": "imagen selfie con rostro neutral base64",
"imageType": "SN"}
]

}
Parámetros de respuesta:
code: código de respuesta.
message: descripción de la respuesta.

Ejemplo de respuesta:
{
"code": 932,
"message": "Register success"
}

Add Barcode

Este método permite incorporar a la operación la información obtenida del PDF 417 del
documento, para obtener la vigencia del documento por medio del número de trámite,
número de documento y género.
Para utilizarlo, es necesario contar con el id de operación que proporciona el método
newOperation.
La operación se realiza mediante un POST y el servidor entrega mediante plain/text el
resultado de la operación.

URL del servicio:


SIB Documentación Técnica – API – Paquete I 17
http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addBarcode

Parámetros de entrada:
operationId: id de la operación obtenido del método newOperation.
gender: género de la persona.
number: número de documento de la persona.
document: estructura para envío de los datos capturados del PDF 417. La estructura contiene
los siguiente datos:
• names: nombres de la persona
• lastNames: apellidos de la persona
• number: número de documento
• birthdate: fecha de nacimiento de la persona
• gender: género de la persona
• order: número de trámite del documento

Ejemplo de llamada:

{
"operationId": 1,
"number": "34021659",
"gender": "M",
"document": {
"names": "firstName",
"lastNames": "lastName",
"number": "number",
"birthdate": "birthdate",
"gender": "gender",
“order”: “order”
},
"data": {
"code":0,
"message":"Return Barcode",

SIB Documentación Técnica – API – Paquete I 18


"document": {
"firstName": "firstName",
"lastName": "lastName",
"number": "number",
"birthdate": "birthdate",
"gender": "gender",
“order”: “order”

}
}
}

Parámetros de respuesta:
code: código de respuesta.
Message: descripción de la respuesta.

Ejemplo de respuesta:
{
"code": 920,
"message": "Add Barcode success"
}
Nota: es importante la utilización de este método en el proceso, enviando siempre el dato
order (número de trámite del documento), para que se pueda utilizar en la validación de
vigencia del documento. En caso de no contar con el número de trámite en este método, no
será posible acceder a la validación mencionada en el retorno del método End Operation.

End Operation

Este método permite obtener el porcentaje de reconocimiento facial de Renaper, la vigencia


del documento, y los datos personales del ciudadano proporcionados por Renaper, en análisis
de veracidad de documento (estudio de áreas del plástico), y datos personales obtenidos de
la lectura del frente y dorso del documento.
Para utilizar este método, es necesario previamente haber realizado la llamada de los
siguientes, y contar con el id de operación que proporciona el método newOperation:
• newOperation
SIB Documentación Técnica – API – Paquete I 19
• addFront
• addBack
• Register
• addBarcode

La operación se realiza mediante un POST y el servidor entrega mediante plain/text el


resultado de la operación.

URL del servicio:


http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/endOperation

Parámetros de entrada:
number: número de ID.
gender: género de la persona obtenido del ID.
operationId: id de la operación obtenido del método newOperation.

Parámetros de respuesta:

operationStatusId: estado de la operación.


confidence: valor entre 0 y 100, que detalla el score obtenido entre la comparación de la
fotografía.
matchThreshold: variable booleana que se encontrará en true si el confidence es igual o
superior al umbral definido para el paquete de consumo por el negocio, en el portal de
autogestión.
anomalies: se retornan las validaciones en las áreas del plástico del documento. Se respetará
la estructura con los siguientes objetos:
• Front_Shield: se retorna el porcentaje de validación respecto al chequeo del escudo
en el frente del plástico.

• Reverse_Country: se retorna el porcentaje de validación respecto al chequeo de la


imagen del país en el dorso del documento.

SIB Documentación Técnica – API – Paquete I 20


OCR: estructura que contiene la información obtenida por extracción por OCR de los datos del
frente y dorso del documento de identidad. Los datos a retornar son los siguientes:
• number: número de documento.
• gender: género de la persona obtenido del documento.
• names: nombres de la persona obtenidos del documento.
• lastNames: apellidos de la persona obtenidos del documento.
• birthdate: fecha de nacimiento de la persona obtenida del documento.

additional: estructura que contiene datos adicionales obtenidos por extracción por OCR de
los datos del frente y dorso del documento de identidad. Los datos a retornar son los
siguientes:
• expiryDate: fecha de vencimiento del documento
• address: domicilio de la persona.
• detected_country: tipo de documento detectado por la fotografía.
• issueDate: fecha de emisión del documento.
• tramitNumber: número de trámite.
• nationality: nacionalidad de la persona.
mrz: estructura que contiene la información capturada del MRZ del documento de
identidad. Los datos a retornar son los siguientes:
• ExpiryDate: fecha de vencimiento del documento.
• Gender: género de la persona.
• DocumentNumber: número de documento de la persona.
• FullName: apellidos y nombres de la persona.
• BirthDate: fecha de nacimiento de la persona.
personData: estructura que contiene la información capturada del servicio de datos de
Renaper. Solo se retornará esta información cuando coincida el número de trámite extraído
por lectura del PDF417 (dato order enviado en el método addBarcode) con el almacenado en
la base de datos de Renaper:
• number: número de ID.
• names: nombres de la persona obtenidos del ID.
• lastNames: apellidos de la persona obtenidos del ID.
• gender: género de la persona obtenido del ID.
• birthdate: fecha de nacimiento obtenida del ID.
• copy: ejemplar del documento.
• expirationDate: fecha de vencimiento del documento.
• creationDate: fecha de emisión del documento.
• cuil: CUIL de la persona.

SIB Documentación Técnica – API – Paquete I 21


• streetAddress: calle del domicilio de la persona.
• numberStreet: número de la calle del domicilio de la persona.
• floor: piso del domicilio de la persona.
• department: departamento del domicilio de la persona.
• zipCode: código postal del domicilio de la persona.
• city: ciudad del domicilio de la persona.
• municipality: municipio del domicilio de la persona.
• province: provincia del domicilio de la persona.
• country: país del domicilio de la persona.
• messageOfDeath: mensaje de fallecimiento de la persona.
• valid: representa la validez del documento. Retorna "Vigente" si el número de trámite
ingresado como parámetro corresponde con que posee almacenado Renaper en su
base de datos. Caso contrario, retorna "No Vigente".

Ejemplo de respuesta:
{
"code": 903,
"message": "End operation success",
"operationStatusId": 5,
"confidence": 60,
"anomalies":
"{\"Front_Shield\":\"0.729885995388031\",\"Reverse_Country\":\"0.862970232963562\"}",
"ocr": {
"extra": {
"additional": "{\"ExpiryDate\":\"2026-08-09\",\"Address\":\"ARIAS 1950 8 C - NÚÑEZ -
CIUDAD DE BUENOS AIRES - CIUDAD DE BUENOS
AIRES\",\"DETECTED_COUNTRY\":\"argentinaantiguo\",\"IssueDate\":\"2011-08-
09\",\"TramitNumber\":\"0006454742\",\"Nationality\":\"ARGENTINA\"}",
"mrz": "{\"ExpiryDate\":\"2026-08-
09\",\"Gender\":\"M\",\"DocumentNumber\":\"33402288\",\"FullName\":\"BERON
FACUNDO MATIAS\",\"BirthDate\":\"1987-10-04\"}"
},
"number": "33402288",
"gender": "M",
"names": "FACUNDO MATIAS",
"lastNames": "BERON",
SIB Documentación Técnica – API – Paquete I 22
"birthdate": "1987-10-04"
},
"personData": {
"person": "",
"valid": "No vigente"
},
"identical": true
}

Códigos Generales de Retorno

A continuación, se detallan los códigos de retorno de todos los métodos de integración


expuestos en este documento:

NEW_OPERATION_OK = 901;
NEW_OPERATION_ALREDY_EXIST = 902;
END_OPERATION_OK = 903;
END_OPERATION_FAIL = 904;
END_OPERATION_EMPTY_FAIL = 905;
CANCEL_OPERATION_OK = 906;
CANCEL_OPERATION_FAIL = 907;
STATUS_OPERATION_OK = 908;
ADD_FRONT_OK = 909;
ADD_FRONT_FAIL = 910;
FRONT_ALREADY_EXIST = 911;
ADD_BACK_OK = 912;
ADD_BACK_FAIL = 913;
BACK_ALREADY_EXIST = 914;
ADD_OCR_OK = 915;
ADD_OCR_FAIL = 916;
OCR_ALREADY_EXIST = 917;
ANALYZE_OCR_OK = 918;
SIB Documentación Técnica – API – Paquete I 23
ANALYZE_OCR_FAIL = 919;
ADD_BARCODE_OK = 920;
ADD_BARCODE_FAIL = 921;
BARCODE_ALREADY_EXIST = 922;
ANALYZE_BARCODE_OK = 923;
ANALYZE_BARCODE_FAIL = 924;
ADD_ANOMALIES_OK = 925;
ADD_ANOMALIES_FAIL = 926;
ANOMALIES_ALREADY_EXIST = 927;
ANALYZE_ANOMALIES_OK= 928;
ANALYZE_ANOMALIES_FAIL= 929;
INTERNAL_OK= 930;
INTERNAL_FAIL= 931;
ADD_SELFIES_OK = 932;
ADD_SELFIES_FAIL = 933;
ADD_SELFIES_EMPTY = 933;
ADD_SELFIES_INCORRECT_TYPES = 934;
SCORE_EMPTY_FRONT= 935;
SCORE_EMPTY_SELFIE= 936;
SCORE_SUCCESS= 937;
ADD_DOCUMENTIMAGE_OK = 938;
ADD_DOCUMENTIMAGE_FAIL = 939;
DOCUMENTIMAGE_ALREADY_EXIST = 940;
ADD_LOCATION_OK = 950;
ADD_LOCATION_FAIL = 951;
OPERATION_NOT_EXIST = 952;
OPERATION_DOESNT_BELONG = 953;
OPERATION_DISABLED = 954;
OPERATION_CANCELED = 955;
OPERATION_EXIST = 956;
PERSON_CREATE_OK = 957;
PERSON_CREATE_FAIL = 958;

SIB Documentación Técnica – API – Paquete I 24


PERSON_ALREADY_EXIST = 959;
IMAGE_NOT_VALID = 960;
ADD_DOCUMENTDATA_OK = 961;
ADD_DOCUMENTDATA_FAIL = 962;
ANALYZE_DOCUMENT_OK= 963;
ANALYZE_DOCUMENT_FAIL= 964;
QRCODE_OK = 965;
QRCODE_FAILED = 966;
OPERATION_ENDPOINT_BUSINESS_POST_FAILED = 966;
FACE_ENDPOINT_BUSINESS_POST_FAILED = 967;
INFORMATION_ENDPOINT_BUSINESS_POST_FAILED = 968;
ENCRYPTION_FAIL = 1013;
APIKEY_FILTER_INVALID = 1014;
APIKEY_FILTER_MISSING = 1015;
APIKEY_FILTER_UNDEFINED = 1016;
APIKEY_FILTER_DISABLED = 1017;
APIKEY_All_RETURNED = 1018;
APIKEY_RETURNED = 1019;
APIKEY_ID_NOT_SENT = 1020;
APIKEY_ID_NOT_EXIST = 1021;
APIKEY_UPDATED = 1022;
APIKEY_ACTIVE_INVALID = 1023;
APIKEY_ACTIVE_REQUIRED = 1024;
APIKEY_KEY_REQUIRED = 1025;
APIKEY_DESCRIPTION_REQUIRED = 1026;
APIKEY_CREATED = 1027;
INCORRECT_PARAMETERS = 1000;
USER_NOT_EXISTS = 1001;
LOGIN_OK = 1002;
LOGIN_FAIL = 1003;
USER_ALREADY_EXISTS = 1004;
USER_DOESNT_HAVE_IMAGES = 1005;

SIB Documentación Técnica – API – Paquete I 25


LOGIN_FAIL_CROSSCHECK = 1006;
LOGIN_FAIL_CROSSCHECKSAMETYPE = 1007;
FACE_NOT_FOUND = 2001;
FACE_ATTR_OK = 2002;
FACE_COMPARE_OK = 2003;
FACE_DETECT_FAIL = 2004;
FACE_COMPARE_FAIL = 2005;
FACE_SERVICE_FAIL = 2006;
FACE_IMAGE_OK = 2020;
FACE_IMAGE_BRIGHTNESS_FAIL=2021;
FACE_IMAGE_LAPLACIAN_FAIL=2022;
REGISTER_SUCCESS = 3001;
REGISTER_FAIL = 3002;
REGISTER_FAIL_CROSSCHECK = 3003;
SERVICE_OK = 4001;
USERS_OK = 4002;
BARCODE_SCAN_OK = 5001;
BARCODE_SCAN_NOT_DETECTED = 5002;
SELFIE_OK = 6001;
LOGIN_MULTIPLE_OK = 7001;
LOGIN_VALIDATION_MULTIPLE_OK = 7002;
LOGIN_VALIDATION_MULTIPLE_FAIL = 7003;
LOGIN_MULTIPLE_ON_PROCESS = 7004;
COMPARE_TWO_FACES_OK = 8001;
COMPARE_TWO_FACES_WRONG_PARAMS = 8002;
COMPARE_MULTI_FACES_OK = 8003;
COMPARE_MULTI_FACES_MISSING_FILES = 8004;
DOCUMENT_PROCESSED_OK = 9001;
DOCUMENT_IMAGEN_FALTANTE = 9002;
DOCUMENT_PAIS_NO_RECONOCIDO = 9003;
DOCUMENT_NOT_DETECTED = 9004;
DOCUMENT_GUID_INCORRECTO = 9005;

SIB Documentación Técnica – API – Paquete I 26


IMAGE_SANITIZATION_FAILURE = 9100;
BUSINESS_CONFIGURATION_EMPTY = 9200;
BUSINESS_CONFIGURATION_SCORE_ONBOARDING_OK = 9201;
BUSINESS_CONFIGURATION_SCORE_ONBOARDING_EMPTY = 9202;
BUSINESS_CONFIGURATION_SCORE_FACE_OK = 9203;
BUSINESS_CONFIGURATION_SCORE_FACE_EMPTY = 9204;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_ONE_OK = 9205;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_ONE_EMPTY = 9206;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_TWO_OK = 9207;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_TWO_EMPTY = 9208;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_THREE_OK = 9209;
BUSINESS_CONFIGURATION_URL_ENDPOINT_PACKAGE_THREE_EMPTY = 9210;
INFORMATION_RENAPER_FAILED = 9220;
RENAPER_OK_EXITO = 10001;
RENAPER_OK_DNIPAS_FIRMADO = 10002;
RENAPER_ERROR_PROBLEMA_DB = 10003;
RENAPER_ERROR_SIN_DNI_DIGITAL = 10004;
RENAPER_ERROR_PROBLEMAS_INTERNOS = 10005;
RENAPER_ERROR_PERSONA_NO_ENCONTRADA = 10006;
RENAPER_ERROR_BUSCAR_DATOS = 10007;
RENAPER_ERROR_NO_ENCONTRO_INFORMACION = 10008;
RENAPER_ERROR_SEXO_INCORRECTO = 10009;
RENAPER_ERROR_DNI_INCORRECTO = 10010;
RENAPER_ERROR_NO_DEFINIDO = 10011;
RENAPER_ERROR_DNI_INVALIDO = 10012;
RENAPER_ERROR_GENERO_INVALIDO = 10013;
RENAPER_ERROR_IMAGEN_INVALIDA = 10014;
RENAPER_ERROR_SERVICIO_FACEMATCH_NO_RESPONDE = 10015;
RENAPER_ERROR_SERVICIO_DATOS_NO_RESPONDE = 10016;
RENAPER_ERROR_TRANSACCION_INVALIDA = 10017;

SIB Documentación Técnica – API – Paquete I 27


Anexo verificación comunicación Gateway
A continuación, se detallan dos métodos de verificación de interacción con el Gateway.

Servicio /status
Este servicio permite verificar la conexión y llegada con el Gateway.

URL del servicio:


/status

Parámetros de entrada:

El método no tiene requerimientos

Parámetros de respuesta:

Código: código de retorno

Códigos de respuesta posibles:

200: Requerimiento procesado con éxito, se pudo alcanzar al Gateway.

444: Requerimiento filtrado por geolocalización o blacklist. Si la IP no se encuentra


entre los paises permitidos. Se encuentra únicamente habilitado Argentina. Si la IP
se encuentra en la blacklist de IP's fraudulentas o estar usando un agente de pentest
conocido o ser un spider de un buscador conocido para búsqueda de sitios
vulnerables.

Ejemplo de llamada al servicio:

curl "https://renaper.dnm.gob.ar/status" -vvv

Respuesta esperada:
Codigo: 200
Cuerpo: null

SIB Documentación Técnica – API – Paquete I 28


Servicio /

Este servicio permite verificar acceso de APIKey a una determinada URL del Gateway.

URL del servicio:


/

Parámetros de entrada:

El método necesita de forma mandatoria:


apikey: llave de acceso proporcionada por canal al organismo, por medio del portal
de autogestión.

url: ruta del servicio a testear.

Parámetros de respuesta:

Código: código de retorno

Códigos de respuesta posibles:

444: Requerimiento filtrado por geolocalización o blacklist. Si la IP no se encuentra


entre los paises permitidos. Se encuentra únicamente habilitado Argentina. Si la IP
se encuentra en la blacklist de IP's fraudulentas o estar usando un agente de pentest
conocido o ser un spider de un buscador conocido para búsqueda de sitios
vulnerables.

501: URL o dominio inválido.

511: Revela la no existencia del api key utilizada en el dominio.


555: El mismo es generado si el canal por el cual se utiliza una api key no coresponde
al mismo.

Cualquier otra respuesta obtenida, corresponderá a la respuesta del servicio que se


consumió. Este retorno se retorna en el body de la respuesta.

Ejemplo de llamada al servicio:

SIB Documentación Técnica – API – Paquete I 29


curl "https://renaper.dnm.gob.ar/" -H "apikey:XXXXXXXX-XXXX-XXXX-XXXX-
XXXXXXXXXXXX" -H "url:http://onboarding.renaper.prod.vusecurity.com:8080/vu-
onboarding-rest/" -vvv

Respuesta esperada:

Codigo: 200
Cuerpo: {"code":0,"message":"VU Onboarding API","data":{"version":"1.1.0"}}

NOTA: estos códigos de error deberán contemplarse además dentro del listado de
errores HTTP según RFC 2616 https://tools.ietf.org/html/rfc2616

Anexo ejemplo práctico de implementación


PHP
A continuación, se ejemplifica un script en el lenguaje PHP para realizar el consume del
paquete I por medio del canal web:
PHP

scanBarcode
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"file" => "imagenB64"
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/scanBarcode";

SIB Documentación Técnica – API – Paquete I 30


$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)
);

$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

SIB Documentación Técnica – API – Paquete I 31


?>

newOperation
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"number" => "12345678",
"gender" => "M",
"ipAddress" => "192.168.1.1",
"deviceHash" => "hash",
"rooted" => false,
"applicationVersion" => "1.0.0",
"operativeSystem" => "Android"
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/newOperation";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
SIB Documentación Técnica – API – Paquete I 32
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)
);

$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

addFront
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

SIB Documentación Técnica – API – Paquete I 33


$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"operationId" => "2062",
"number" => "12345678",
"gender" => "M",
"documentType" => 1,
"documentVersion" => "1",
"country" => "AR",
"hasBarcode" => false,
"barcodeType" => "barcodeType",
"analyzeAnomalies" => true,
"analyzeOcr" => true,
"sideFace" => false,
"file" => "imagenB64"
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addFront";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,

SIB Documentación Técnica – API – Paquete I 34


'url:'.$url,
)
);

$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

addBack
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';

SIB Documentación Técnica – API – Paquete I 35


$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"operationId" => "2062",
"number" => "12345678",
"gender" => "M",
"documentType" => 1,
"documentVersion" => "1",
"country" => "AR",
"hasBarcode" => false,
"barcodeType" => "barcodeType",
"analyzeAnomalies" => true,
"analyzeOcr" => true,
"sideFace" => false,
"file" => "imagenB64"
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addBack";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,

SIB Documentación Técnica – API – Paquete I 36


)
);

$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

register
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

SIB Documentación Técnica – API – Paquete I 37


$datos=array(
"operationId" => 2062,
"number" => "12345678",
"gender" => "M",
"selfieList" =>
array(
array("file" => "imagen B64",
"imageType" => "SN"),
array("file" => "imagen B64",
"imageType" => "SS"),
array("file" => "imagen B64",
"imageType" => "SCE")
)
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/register";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)
);

SIB Documentación Técnica – API – Paquete I 38


$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

addBarcode
<?php
ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"operationId" => "2062",

SIB Documentación Técnica – API – Paquete I 39


"number" => "12345678",
"gender" => "M",
"document" => array(
"number" => "12345678",
"gender" => "M",
"names" => "Nombre",
"lastNames" => "Apellido",
"birthdate" => "dd/mm/aaaa",
"order" => "123456"
),
"data" => array(
"code" =>0,
"message" =>"Barcode",
"document" => array(
"number" => "12345678",
"gender" => "M",
"firstName" => "Nombre",
"lastName" => "Apellido",
"birthdate" => "dd/mm/aaaa",
"order" => "123456"
)
)
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/addBarcode";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);

SIB Documentación Técnica – API – Paquete I 40


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)
);

$result = curl_exec($ch);
echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

endOperation
<?php

SIB Documentación Técnica – API – Paquete I 41


ini_set('xdebug.var_display_max_depth', -1);
ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);

$apiKey='apiKey Proporcionada';
$dominio='https://renaper.dnm.gob.ar/';

$datos=array(
"operationId" => 2062,
"number" => "12345678",
"gender" => "M"
);

$data_string = json_encode($datos);

$url = "http://onboarding.renaper.prod.vusecurity.com:8080/vu-onboarding-
rest/onboarding/endOperation";
$type = "application/json";
$ch = curl_init($dominio);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'apikey: ' . $apiKey,
'Content-Type:'.$type,
'url:'.$url,
)
);

$result = curl_exec($ch);

SIB Documentación Técnica – API – Paquete I 42


echo "RESULTADO<br>";
var_dump($result);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200:
echo "OK";
echo "<br>";
var_dump($result);
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}
curl_close($ch);

?>

SIB Documentación Técnica – API – Paquete I 43


Apartado de Recomendaciones para efectuar la prueba de vida

El objetivo del documento es establecer un conjunto de recomendaciones para


efectuar de forma correcta y eficiente la prueba de vida para obtener porcentajes
acertados de match con el algoritmo de Face Match de Renaper.

¿Qué es la prueba de vida?


Se denomina prueba de vida, al proceso efectuado en la captura de las fotografías
selfie que garantiza que la persona se encuentra con sus signos vitales aptos para la
realización de la validación.

Utilizando la cámara en tiempo real, se pide al usuario que realice distintos gestos
para avanzar en el proceso. Por cada gesto solicitado, se captura por detrás una
fotografía que se almacena como parte del flujo.

Funcionamiento
Se debe implementar la cámara del dispositivo intervenido en tiempo real, solicitando
distintos gestos de seguridad para asegurar su veracidad.

Para incrementar los niveles de seguridad, la solución es deseable que implemente


aleatoriedad en los gestos solicitados.

Los gestos más comunes y fáciles de ejecutar, se consideran los siguientes:

• Sonrisa
• Ambos ojos cerrados
• Guiño de ojo derecho
• Guiño de ojo izquierdo
• Giro de cabeza a la derecha
• Giro de cabeza a la izquierda

Siempre se debe solicitar que el usuario ubique su rostro centrado en la pantalla para
iniciar el proceso. Para incrementar el éxito de la operación, se recomienda incorporar
SIB Documentación Técnica – API – Paquete I 44
una guia en la pantalla, para que el usuario tenga en claro donde ubicar su rostro
durante el proceso. Un ejemplo de esto, podria ser el siguiente:

Una vez que el usuario centre su rostro en la pantalla se recomienda que se le solicite
expresión neutral y otros dos gestos de forma aleatoria, de la lista mencionada
anteriormente en este apartado.

La foto con rostro neutral es la que se debe enviar a la API de verificación biométrica.
Para ello, la aplicación debe tomar una fotografía en el momento, mientras la cámara
se encuentra operando en tiempo real.

Como se mencionó anteriormente, es deseable que el orden para solicitar cada gesto,
y los gestos a solicitar, vayan variando en cada ejecución del proceso, en forma
aleatoria. Pero siempre se pida en alguno de los pasos que centre su rostro con
expresión neutral para capturar la fotografía necesaria para el proceso.

Características de la fotografía a enviar


A continuación, se detallan las caracteristicas a tener en cuenta para el correcto
funcionamiento del algoritmo:

• Que el rostro ocupe el 70-80% de la fotografía


• En foco nitido y claro
• Rostro mirando directamente a la cámara
• Cuente con un brillo y contraste apropiado
SIB Documentación Técnica – API – Paquete I 45
• Tonalidad en color neutral sin filtros de imágenes aplicados
• Mostrar los ojos abiertos y claramente visibles, sin cabello que los cubra
• Fotografia capturada con un fondo liso
• La fotografía debe mostrar ambos ojos con claridad, sin anteojos.

• Muestre a la persona sola (sin otras personas visibles), mirando a la cámara


con una expresión neutra y boca cerrada.

• Las imágenes que se capturen deben recortarse para que tengan las
siguientes dimensiones: 600 x 720.

SIB Documentación Técnica – API – Paquete I 46

Você também pode gostar