Saltar al contenido principal
Version: 2.0.0

Biometría Apptentícate

POST

  https://api.apptenticate.com/api/biometrics/foreigns/


Autenticación

Usa tu JWT obtenido del proceso de autenticación para hacer peticiones a este endpoint.

La respuesta sera 401 unauthorized si el JWT se encuentra vencido. En dicho caso deberás obtener un nuevo JWT.


Este endpoint recibe todas las peticiones dirigidas al microservicio de Biometría Apptenticate que permite verificar biométricamente a personas sin cédulas panameñas, a través de su documento de identidad (pasaportes o cédulas de otros países) o con su foto de perfil. Estas peticiones deben contener al menos dos parámetros: la foto del documento no panameño y una imagen .jpg del rostro del mismo. Al final, el microservicio de Biometría Apptenticate responderá si el rostro en el documento hace match con el rostro en el selfie de la persona.

** NOTA **

• La respuesta puede ser 401 unauthorized si el token JWT debe ser refrescado.

• La imagen enviada en formato jpg no debe exceder los 2MB.

• Si se desea obtener en la respuesta el ID de la transacción, se debe indicar "return_id": "True" en el JSON de la request.

• Si se desea mejorar la precisión de la prueba de vida (si este servicio está contratado), se debe indicar el tipo de dispositivo en el JSON de la request. Estos pueden ser "DESKTOP", "IOS" o "ANDROID" y la manera de especificarlo sería "device":"IOS", por ejemplo.

• Se debe especificar en la request si se envía foto de un pasaporte o una cédula mediante el parámetro “document_type”, que puede tomar los valores “passport”, “identification_card” o “profile_image”.

Estructura de requests - método: POST

Ruta: api/biometrics/foreigns/

Payload para request base:

Payload: {
'frontside': Imagen del frente del documento,
'selfie': Imagen del selfie de la persona,
'document_type': 'passport', 'identification_card' o 'profile_image',
} // (donde las imágenes son archivos .jpg)

Si se desea obtener el ID de la transacción:

Payload: {
'frontside': Imagen del frente del documento,
'selfie': Imagen del selfie de la persona,
'document_type': 'passport', 'identification_card' o 'profile_image',
'return_id':True
} // (donde las imágenes son archivos .jpg)

Si se desea mejorar la precisión de la prueba de vida

Payload: {
'frontside': Imagen del frente del documento,
'selfie': Imagen del selfie de la persona,
'document_type': 'passport', 'identification_card' o 'profile_image',
'device':'IOS', // Dispositivos: IOS, ANDROID o DESKTOP
} // (donde las imágenes son archivos .jpg)

Ejemplos de requests

Python

# JWT Token
header = { 'Authorization': 'Bearer {}'.format(token) }

# Payload para request base
data = {'document_type': 'passport'}
files = {
'frontside': imagen_1.jpg,
'selfie': imagen_2.jpg,
} # Donde las imágenes son archivos .jpg

# Si se desea obtener el ID de la transacción:
data = {'document_type': 'passport', 'return_id': True}
files = {
'frontside': imagen_1.jpg,
'selfie': imagen_2.jpg,
} # Donde las imágenes son archivos .jpg

# Si se desea mejorar la precisión de la prueba de vida
data = {'document_type': 'passport', 'device':'IOS'}
files = {
'frontside': imagen_1.jpg,
'selfie': imagen_2.jpg,
} # Donde las imágenes son archivos .jpg

# Envío de request
response = requests.post(
apptenticate_url,
data=data,
files=files,
headers=header
)
response = json.loads(response.content)

Estructura de respuestas

Formato de respuesta: JSON

Respuesta base:

Respuesta: {
"valid": True o False, // Booleano el cual determina si la petición resultó en una validación exitosa o no
"error": "String con descripción breve del error",
"details": "Un string especificando el error, o un key-value pair detallando si alguno de los parámetros son inválidos y el error",
"error_code": código de error (int)
}

Adicionalmente a la respuesta, se envía el status code correspondiente al outcome de la operación.

Respuesta con ID de transacción:

Respuesta: {
"valid": True o False, // Booleano el cual determina si la petición resultó en una validación exitosa o no
"error": "String con descripción breve del error",
"details": "Un string especificando el error, o un key-value pair detallando si alguno de los parámetros son inválidos y el error",
"error_code": código de error (int),
"id": número de transacción (int),
}

Errores

CodigoMensaje
900"Frontside" no pudo ser procesado correctamente.
901"Selfie" no pudo ser procesado correctamente.
902No se pudo extraer el rostro del "frontside".
903"No se pudo extraer el rostro del "selfie".
904El motor de validación biométrica ha fallado (acompañado de un status code 500).
905Rostros no coinciden.
909No se envió el "frontside" en la request.
910No se envió el "selfie" en la request.
911No se envió “document_type” en la request.
912“document_type” debe ser tipo “passport” o “identification_card”.