Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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).
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
https://renaper.dnm.gob.ar/
$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,
)
);
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:
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.
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
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.
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.
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:
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.
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:
Ejemplo de llamada:
{
"operationId": 1,
"number": "34021659",
"gender": "M",
"analyzeAnomalies": true,
"analyzeOcr": true,
"file": "dorso documento en base64"
}
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.
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:
}
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.
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",
}
}
}
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
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:
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.
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
}
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;
Servicio /status
Este servicio permite verificar la conexión y llegada con el Gateway.
Parámetros de entrada:
Parámetros de respuesta:
Respuesta esperada:
Codigo: 200
Cuerpo: null
Este servicio permite verificar acceso de APIKey a una determinada URL del Gateway.
Parámetros de entrada:
Parámetros de respuesta:
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
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";
$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);
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);
$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,
$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';
$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,
$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/';
$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,
)
);
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",
$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);
$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
$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);
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);
?>
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.
• 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.
• Las imágenes que se capturen deben recortarse para que tengan las
siguientes dimensiones: 600 x 720.