SDK

Autentia logo

Bienvenido a AutentiaSDK

El SDK de Autentia contiene varias funcionalidades, las cuales serán descritas en el contenido de éste documento.

Tabla de contenido

  1. Integración
  2. Credenciales
  3. Requisitos
  4. H+
  5. Parámetros
  6. Resultados

Integración

Siga las siguientes instrucciones para el correcto uso del SDK:

  1. Abrir el archivo build.gradle a nivel de aplicación.
  2. Ubicar zona de dependencies.
  3. Agregar la siguiente línea de comando.
implementation('id.autentiaplus:sdk:x.y.z')

Luego, para agregar las dependencias de maven al proyecto sigue los siguientes pasos

  1. Abrir el archivo build.gradle a nivel de proyecto.
  2. Ubicar la zona de repositorios.
  3. Agregar las siguientes líneas de código.
allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://gitlab.endpoints.autentiax-ctl.cloud.goog/api/v4/projects/251/packages/maven"
            name "Autentia SDK"
            credentials(HttpHeaderCredentials) {
                name = 'Private-Token'
                value = '<<TOKEN_VALUE>>'
            }
            authentication {
                header(HttpHeaderAuthentication)
            }
        }
        maven { url 'https://maven.microblink.com' }
    }
}

Credenciales

Para poder descargar y utilizar el SDK es necesario colocar las credenciales como aparece en el ejemplo anterior.

Debe solicitar las credenciales a su ejecutivo de ventas o jefe de proyecto asignado.

Requisitos

El SDK requiere que el API mínimo de Android sea 25, como se muestra en la pantalla.

android {
        ...
        defaultConfig {
            minSdkVersion 25
            ...
        }
    ...
}

Autentia H+

Descripción

H+ tiene la funcionalidad de poder validar a una persona mediante sus huellas digitales. Con una foto que captura la huella dactilar es posible verificar que una persona sea quien dice ser.

Implementación

Ésta funcionalidad consta de 2 métodos, los cuales iniciarán el flujo H+, la diferencia es la siguiente:

El Método 1 requerirá escribir el OTP_MOVIL mediante una interfaz de usuario ya sea de manera manual o mediante lectura de un código QR.

El Método 2 no lo solicitará, ya que asumirá que viene en la llamada y ejecutará este paso automáticamente.

Método 1 - Kotlin

SdkManager(this).hPlusCaller(REQUEST_CODE)

Método 2 - Kotlin

SdkManager(this).hPlusCaller(OTP_MOVIL,REQUEST_CODE)

Parámetros

OTP_MOVIL: Código numérico de 6 dígitos en formato String.

REQUEST_CODE: Código asignado por el usuario en formato Int para obtener la respuesta de H+ en el método onActivityResult.

Resultados

Para obtener los resultados de H+, se utiliza el método

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {  
    super.onActivityResult(requestCode, resultCode, data)  
    if(requestCode == REQUEST_CODE){  
        when (resultCode){  
            Activity.RESULT_OK -> {  
                if(data!=null){  
                    if(data.hasExtra("autentia_sdk_error")){  
                        val sdk_error = data.getStringExtra("autentia_sdk_error")
                        //do something with sdk_error  
                    }  
                    if(data.hasExtra("h_plus_response")){  
                        val sdk_response = data.getBooleanExtra("h_plus_response",false)  
                        //do something with sdk_response 
                    }
                    if(data.hasExtra("autentia_sdk_code")){  
                        val sdk_code = data.getIntExtra("autentia_sdk_code",-1)
                        //do something with sdk_code 
                    }  
                }  
            }  
            Activity.RESULT_CANCELED -> {  
                 //do something with result
            }  
        }  
    }  
}

Posibles respuestas de RESULT_OK

Este resultado se da cuando el SDK termina el flujo completo de manera natural.

autentia_sdk_error: Nombre del error tipo String.

autentia_sdk_code: Código del error ocurrido, tipo Int.

h_plus_response: Indica si la verificación fue exitosa o no, tipo boolean.

Cuando el resultado es exitoso, autentia_sdk_code tendrá valor 0 y h_plus_response puede tomar valor true o false.

El valor true se retorna cuando la validación de identificación fue exitosa.

El valor false se retorna cuando la validación de identificación fue fallida.

Posibles respuestas de RESULT_CANCELED

Este resultado se da cuando el SDK no termina el flujo completo de manera natural, ya que el usuario canceló o cerró el flujo invocado.

H+ maneja los errores de la siguiente manera:

Código Valor Descripción
399 h_plus_otp_error El OTP es inválido
398 h_plus_cancel_permission El usuario canceló los permisos de la aplicación y aseguró que no quería darle permisos (hay un diálogo de confirmación)
397 h_plus_unexpected_error Error no previsto por el SDK

Flujos Registro sin huella dactilar

Descripción

Los flujos de registro son los que tienen la capacidad de registrar usuarios en nuestras bases de datos, utilizando el hardware del dispositivo Android.

Para la captura de los documentos del usuario, Autentia SDK integra dos APIs de lectura de documentos, una nuestra, llamada AUTENTIA API y la otra de MICROBLINK, llamada MICROBLINK API, para ésta última es necesario una llave productiva del producto.

Implementación

Ésta funcionalidad cuenta con dos métodos, los cuales inicializan los flujos de registro, la diferencia de éstos son las siguientes:

El Método 1 debe ser utilizado con AUTENTIA API, para ésto el parámetro APIDEFAULT debe llevar el nombre corespondiente a autentia_api.

El Método 2 debe ser utilizado con MICROBLINK API, para ésto el parámetro APIDEFAULT debe llevar el nombre corespondiente a microblink_api y además el parámetro APYKEY debe ser enviado con la Key de Microblink.

Método 1 - Kotlin

SdkManager(this).docIntentCaller(APIDEFAULT,REQUEST_CODE)

Método 2 - Kotlin

SdkManager(this).docIntentCaller(APIDEFAULT,APIKEY,REQUEST_CODE)

Parámetros

APIDEFAULT: String correspondiente a la api de lectura de documentos que se quiera utilizar, debe tener uno de los siguientes valores : autentia_api o microblink_api

APIKEY: String correspondiente a la llave otorgada por microblink.

REQUEST_CODE: Código asignado por el usuario en formato Int para obtener la respuesta del proceso en el método onActivityResult.

Resultados

Para obtener los resultados del registro de documentos, se utiliza el método onActivityResult:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {  
    super.onActivityResult(requestCode, resultCode, data)  
    if(requestCode == REQUEST_CODE){  
        when (resultCode){  
            Activity.RESULT_OK -> {  
                if(data!=null){  
                    if(data.hasExtra("autentia_sdk_error")){  
                        val sdk_error = data.getStringExtra("autentia_sdk_error")
                        //do something with sdk_error  
                    }                      
                    if(data.hasExtra("autentia_sdk_code")){  
                        val sdk_code = data.getIntExtra("autentia_sdk_code",-1)
                        //do something with sdk_code 
                    }
                    if(data.hasExtra("autentia_token")){
	                    val registry_token = data.getStringExtra("autentia_token")
	                    //do something with registry_token
	                }
                }  
            }  
            Activity.RESULT_CANCELED -> {  
                 //do something with result
            }  
        }  
    }  
}

Posibles respuestas de RESULT_OK

Este resultado se da cuando el SDK termina el flujo completo de manera natural.

autentia_sdk_error: Nombre del error tipo String.

autentia_sdk_code: Código del error ocurrido, tipo Int.

autentia_token: Es un token de registro, devuelto solo en finalización del flujo de registro y se utiliza en caso de que se quiera continuar con un flujo de Login (VER SECCIÓN XXXXXXXXXXXX).

Cuando el resultado es exitoso, autentia_sdk_code tendrá valor 0 y autentia_token contendrá un denominado token de registro, el cuál sirve para realizar un login con nuestros servicios (VER SECCIÓN XXXXXXX).

Posibles respuestas de RESULT_CANCELED

Este resultado se da cuando el SDK no termina el flujo completo de manera natural, ya que el usuario canceló o cerró el flujo invocado.

Tabla de Errores flujos de registro.

Código Valor Descripción
999 cualquiera Retorna el String de error de la API Microblink directamente.
998 microblink_invalid_key La key de microblink es inválida.
997 microblink_empty Léase la documentación oficial de Microblink para la descripción de éstos casos.
996 microblink_uncertain Léase la documentación oficial de Microblink para la descripción de éstos casos.
995 microblink_not_key_found Cuando no se envía el parámetro APIKEY en la llamada al SDK.
3 document_person_underage La persona no tiene una edad válida para continuar el proceso.

Errores Generales:

Código Valor Descripción
1000 cualquiera Error no previsto por el SDK.
699 retrofit_http_error Error de retrofit, con el envío de evidencias.
298 invalid_extra_values Alguno de los valores enviados en la llamada al SDK no son válidos.
297 invalid_return_code Cuando el return code de alguno de los flujos no es el correcto.
1 document_not_supported El documento reconocido no es soportado para el flujo que se está realizando.
2 document_invalid El documento reconocido no es válido para el flujo que se está realizando.
4 document_invalid_flow El flujo que se quiere realizar no está soportado.
5 nfc_error Existe un problema con el NFC del dispositivo.
6 front_camera_error_open Existe un problema abriendo la cámara frontal del dispositivo.
7 front_camera_error_preview Error creando la vista de la cámara.
11 delete_images_error Error eliminando las imágenes del dispositivo.

Flujos Registro con huella dactilar

Descripción

Los flujos de registro con huella dactilar son los que tienen la capacidad de registrar usuarios en nuestras bases de datos, utilizando el hardware del dispositivo Android y dispositivos biométricos.

Para la captura de los documentos del usuario, Autentia SDK integra dos APIs de lectura de documentos, una nuestra, llamada AUTENTIA API y la otra de MICROBLINK, llamada MICROBLINK API, para ésta última es necesario una llave productiva del producto.

Para la captura de las huellas dactilares, es necesario utilizar uno de los huellero Eikon o UareU (DETERMINAR LOS MODELOS Y DEMASES***************).**

Para algunos flujos es necesario que el dispositivo tenga NFC

Implementación

Ésta funcionalidad cuenta con dos métodos, los cuales inicializan los flujos de registro, la diferencia de éstos son las siguientes:

El Método 1 debe ser utilizado con AUTENTIA API, para ésto el parámetro APIDEFAULT debe llevar el nombre corespondiente a autentia_api.

El Método 2 debe ser utilizado con MICROBLINK API, para ésto el parámetro APIDEFAULT debe llevar el nombre corespondiente a microblink_api y además el parámetro APYKEY debe ser enviado con la Key de Microblink.

Método 1 - Kotlin

SdkManager(this).fingerIntentCaller(APIDEFAULT,REQUEST_CODE)

Método 2 - Kotlin

SdkManager(this).fingerIntentCaller(APIDEFAULT,APIKEY,REQUEST_CODE)

Parámetros

APIDEFAULT: String correspondiente a la api de lectura de documentos que se quiera utilizar, debe tener uno de los siguientes valores : autentia_api o microblink_api

APIKEY: String correspondiente a la llave otorgada por microblink.

REQUEST_CODE: Código asignado por el usuario en formato Int para obtener la respuesta del proceso en el método onActivityResult.

Resultados

Para obtener los resultados del registro de documentos, se utiliza el método onActivityResult:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {  
    super.onActivityResult(requestCode, resultCode, data)  
    if(requestCode == REQUEST_CODE){  
        when (resultCode){  
            Activity.RESULT_OK -> {  
                if(data!=null){  
                    if(data.hasExtra("autentia_sdk_error")){  
                        val sdk_error = data.getStringExtra("autentia_sdk_error")
                        //do something with sdk_error  
                    }                      
                    if(data.hasExtra("autentia_sdk_code")){  
                        val sdk_code = data.getIntExtra("autentia_sdk_code",-1)
                        //do something with sdk_code 
                    }
                    if(data.hasExtra("autentia_token")){
	                    val registry_token = data.getStringExtra("autentia_token")
	                    //do something with registry_token
	                }
                }  
            }  
            Activity.RESULT_CANCELED -> {  
                 //do something with result
            }  
        }  
    }  
}

Posibles respuestas de RESULT_OK

Este resultado se da cuando el SDK termina el flujo completo de manera natural.

autentia_sdk_error: Nombre del error tipo String.

autentia_sdk_code: Código del error ocurrido, tipo Int.

autentia_token: Es un token de registro, devuelto solo en finalización del flujo de registro y se utiliza en caso de que se quiera continuar con un flujo de Login (VER SECCIÓN XXXXXXXXXXXX).

Cuando el resultado es exitoso, autentia_sdk_code tendrá valor 0 y autentia_token contendrá un denominado token de registro, el cuál sirve para realizar un login con nuestros servicios (VER SECCIÓN XXXXXXX).

Posibles respuestas de RESULT_CANCELED

Este resultado se da cuando el SDK no termina el flujo completo de manera natural, ya que el usuario canceló o cerró el flujo invocado.

Tabla de Errores flujos de registro.

Código Valor Descripción
999 cualquiera Retorna el String de error de la API Microblink directamente.
998 microblink_invalid_key La key de microblink es inválida.
997 microblink_empty Léase la documentación oficial de Microblink para la descripción de éstos casos.
996 microblink_uncertain Léase la documentación oficial de Microblink para la descripción de éstos casos.
995 microblink_not_key_found Cuando no se envía el parámetro APIKEY en la llamada al SDK.
3 document_person_underage La persona no tiene una edad válida para continuar el proceso.

Errores Generales:

Código Valor Descripción
1000 cualquiera Error no previsto por el SDK.
699 retrofit_http_error Error de retrofit, con el envío de evidencias.
298 invalid_extra_values Alguno de los valores enviados en la llamada al SDK no son válidos.
297 invalid_return_code Cuando el return code de alguno de los flujos no es el correcto.
1 document_not_supported El documento reconocido no es soportado para el flujo que se está realizando.
2 document_invalid El documento reconocido no es válido para el flujo que se está realizando.
4 document_invalid_flow El flujo que se quiere realizar no está soportado.
5 nfc_error Existe un problema con el NFC del dispositivo.
6 front_camera_error_open Existe un problema abriendo la cámara frontal del dispositivo.
7 front_camera_error_preview Error creando la vista de la cámara.
11 delete_images_error Error eliminando las imágenes del dispositivo.
199 fingerprint_reader_not_found Error cuando se intenta realizar un flujo de Registor con huella sin un lecttor de huellas compatible conectado.
198 fingerprint_cancel_permission Error que se da cuando el usuario cancela los permisos de acceso al lector de huellas.
197 fingerprint_opening_error Error abriendo la conexión con el lector de huellas desde el SDK.
196 fingerprint_not_working_properly El lector de huellas conectado no funciona correctamente.
195 fingerprint_error_getting_info Error obteniendo la información necesaria desde el huellero.
194 fingerprint_error_ci_blocked Error de cédula bloqueada.
193 fingerprint_error_access_error Error solicitando los permisos del lector de huellas.

Flujos Login Autentia SDK

Descripción

Los flujos de Login de Autentia SDK fueron creados para facilitar la integración de nuestros clientes con el Login de Autentia ID, facilitando la toma de evidencias y la comunicación del usuario desde aplicaciones móviles con nuestros servicios.

Para la captura de los documentos sólo está disponible la api AUTENTIA API, MICROBLINK API no está disponible para ésta funcionalidad.

Se asume que el integrador ha cumplido con todos los pre-requisitos necesarios para el funcionamiento de éste flujo. (VÉASE AQUÍ LOS REQUISITOS+++++++++++++++++++++++++++++++++++++)

Implementación

Ésta funcionalidad cuenta con dos métodos, los cuales inicializan los flujos de registro, la diferencia de éstos son las siguientes:

El Método 1 asume que no se recibirá la URL de Concent Flow, sino que la abre directamente después de terminar el proceso de Autorización.

El Método 2 recibe un parámetro extra RETURN_CONCENT_URL, en el cuál se configura explícitamente qué hacer con la URL de Concent Flow.

Método 1 - Kotlin

SdkManager(this).sendLoginChallenge(LOGIN_CHALLENGE,REQUEST_CODE)

Método 2 - Kotlin

SdkManager(this).sendLoginChallenge(LOGIN_CHALLENGE,RETURN_CONCENT_URL,APIKEY,REQUEST_CODE)

Parámetros

LOGIN_CHALLENGE: String correspondiente al Login Challenge recibido por la aplicación cliente al momento de comenzar un Login Flow. (se recibe a través de deep link pre-configurado.)

RETURN_CONCENT_URL: String correspondiente a la URL del ConcentFlow. ésta debe ser desplegada en un navegador para realizar el flujo de Concent.

REQUEST_CODE: Código asignado por el usuario en formato Int para obtener la respuesta del proceso en el método onActivityResult.

Resultados

Para obtener los resultados del registro de documentos, se utiliza el método onActivityResult:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {  
    super.onActivityResult(requestCode, resultCode, data)  
    if(requestCode == REQUEST_CODE){  
        when (resultCode){  
            Activity.RESULT_OK -> {  
                if(data!=null){  
                    if(data.hasExtra("autentia_sdk_error")){  
                        val sdk_error = data.getStringExtra("autentia_sdk_error")
                        //do something with sdk_error  
                    }                      
                    if(data.hasExtra("autentia_sdk_code")){  
                        val sdk_code = data.getIntExtra("autentia_sdk_code",-1)
                        //do something with sdk_code 
                    }
                    if(data.hasExtra("autentia_concent_url")){
	                    val concent_url = data.getStringExtra("autentia_concent_url")
	                    //do something with autentia_concent_url
	                }
                }  
            }  
            Activity.RESULT_CANCELED -> {  
                 //do something with result
            }  
        }  
    }  
}

Posibles respuestas de RESULT_OK

Este resultado se da cuando el SDK termina el flujo completo de manera natural.

autentia_sdk_error: Nombre del error tipo String.

autentia_sdk_code: Código del error ocurrido, tipo Int.

autentia_concent_url: Es la URL del registro en formato STRING, debe ser desplegada en el navegador para continuar el flujo de Concent.

Cuando el resultado es exitoso, autentia_sdk_code tendrá valor 0 y dependiendo de si se solicitó el retorno de la Url de concent, ésta volverá en autentia_concent_url.

Sino se solicitó el retorno de la Url de Concent, Autentia SDK abrirá un navegador y comenzará automáticamente el Flujo de Concent.

Posibles respuestas de RESULT_CANCELED

Este resultado se da cuando el SDK no termina el flujo completo de manera natural, ya que el usuario canceló o cerró el flujo invocado.

Tabla de Errores flujos de registro.

Errores Flujo Login:

Código Valor Descripción
697 login_volley_error Error correspondiente a la conexión con el servicio de Login.
696 login_timeout_error Error de timeout de conexión con el servicio de Login.
695 login_execution_error Error de ejecución de las comunicaciones con el servicio de Login.
694 login_interrupted_error Ejecución interrumpida.
693 cualquiera Error HTTP recibido en la conexión con los servicios de Login.
692 login_pending_credencial El estado del login_challenge continúa pending cuando éste debería haber cambiado.
691 login_failed_credencial El estado del login_challenge está en failed, lo que quiere decir que está invalidado.
690 login_invalid_otp El flujo falla por cantidad de re-intentos en validación 2FA.
689 login_remaining_retries El flujo falla por cantidad de re-intentos en la estrategia.
688 login_retry_again El flujo falla por cantidad de re-intentos a nivel de login_challenge.

Errores Generales:

Código Valor Descripción
1000 cualquiera Error no previsto por el SDK.
699 retrofit_http_error Error de retrofit, con el envío de evidencias.
298 invalid_extra_values Alguno de los valores enviados en la llamada al SDK no son válidos.
297 invalid_return_code Cuando el return code de alguno de los flujos no es el correcto.
1 document_not_supported El documento reconocido no es soportado para el flujo que se está realizando.
2 document_invalid El documento reconocido no es válido para el flujo que se está realizando.
4 document_invalid_flow El flujo que se quiere realizar no está soportado.
5 nfc_error Existe un problema con el NFC del dispositivo.
6 front_camera_error_open Existe un problema abriendo la cámara frontal del dispositivo.
7 front_camera_error_preview Error creando la vista de la cámara.
11 delete_images_error Error eliminando las imágenes del dispositivo.
199 fingerprint_reader_not_found Error cuando se intenta realizar un flujo de Registor con huella sin un lecttor de huellas compatible conectado.
198 fingerprint_cancel_permission Error que se da cuando el usuario cancela los permisos de acceso al lector de huellas.
197 fingerprint_opening_error Error abriendo la conexión con el lector de huellas desde el SDK.
196 fingerprint_not_working_properly El lector de huellas conectado no funciona correctamente.
195 fingerprint_error_getting_info Error obteniendo la información necesaria desde el huellero.
194 fingerprint_error_ci_blocked Error de cédula bloqueada.
193 fingerprint_error_access_error Error solicitando los permisos del lector de huellas.