Servicio de Identificación Biométrica (SIB Plus)
POSThttps://api.apptenticate.com/api/v3.2/biometrics/nationals/
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 SIB que permite verificar biométricamente a los ciudadanos panameños. Estas peticiones deben contener al menos dos parámetros: la cédula del ciudadano y una imagen .jpg del rostro del mismo. Al final, el servicio del tribunal electoral responderá si este rostro corresponde a la cédula indicada.
** 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.
Estructura de requests - método: POST
• Payload para request base:
Payload: {
'citizen_id':'Cédula del ciudadano',
'selfie': imagen
} // (donde la imagen es un archivo .jpg)
• Si se desea obtener el ID de la transacción:
Payload: {
'return_id':True,
'citizen_id':'Cédula del ciudadano',
'selfie': imagen
} //donde la imagen es un archivo .jpg)
• Si se desea mejorar la precisión de la prueba de vida
Payload: {
'citizen_id':'Cédula del ciudadano',
'device':'IOS', // Dispositivos: IOS, ANDROID o DESKTOP
'selfie': imagen
} // (donde la imagen es un archivo .jpg)
Ejemplos de requests
# JWT Token
header = { 'Authorization': 'Bearer {}'.format(token) }
# Payload para request base
data = { 'citizen_id': 'Cédula del ciudadano'}
files = { 'selfie': imagen } # Donde la imagen es un archivo .jpg
# Si se desea obtener el ID de la transacción:
data = { 'return_id': True,'citizen_id': 'Cédula del ciudadano' }
files = { 'selfie': imagen } # Donde la imagen es un archivo .jpg
# Si se desea mejorar la precisión de la prueba de vida
data = { 'citizen_id': 'Cédula del ciudadano', 'device':'IOS' }
# Dispositivos: IOS, ANDROID o DESKTOP
files = { 'selfie': imagen } # Donde la imagen es un archivo .jpg
# Envío de request
response = requests.post(
apptenticate_url,
data=data,
files=files,
headers=header
)
response = json.loads(response.content)
Estructura de respuestas
• 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",
"error_code": código de error (int)
"details": "Un string especificando el error, o un key-value pair detallando si alguno de los parámetros son inválidos y el error",
"cedula": "Cédula del ciudadano",
"nombres": "Nombres del ciudadano",
"apellidos": "Apellidos del ciudadano",
"sexo": "Sexo del ciudadano",
"lugarNacimiento": "Lugar de nacimiento del ciudadano" (str),
"fechaNacimiento": "Fecha de nacimiento del ciudadano" (str),
"fechaSolicitud": "Fecha de solicitud de la cédula" (str),
"fechaExpiracion": "Fecha de expiración de la cédula" (str),
"firma": "Imagen de la firma del ciudadano consultado, tal cual aparece en la cédula" (base64),
}
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),
"cedula": "Cédula del ciudadano",
"nombres": "Nombres del ciudadano",
"apellidos": "Apellidos del ciudadano",
"sexo": "Sexo del ciudadano",
"lugarNacimiento": "Lugar de nacimiento del ciudadano" (str),
"fechaNacimiento": "Fecha de nacimiento del ciudadano" (str),
"fechaSolicitud": "Fecha de solicitud de la cédula" (str),
"fechaExpiracion": "Fecha de expiración de la cédula" (str),
"firma": "Imagen de la firma del ciudadano consultado, tal cual aparece en la cédula" (base64),
}
Códigos de rechazo
| Codigo | Mensaje |
|---|---|
601 | Operador no existe en la base de datos. |
602 | Ciudadano es menor de 12 años. |
603 | Ciudadano está difunto. |
604 | Ciudadano con inscripción inválida. |
605 | Ciudadano no reconocido. |
606 | Campo cédula viene en blanco. |
607 | Ciudadano no encontrado. |
608 | No se tiene acceso a SIB para este cliente. |
610 | Error general de validación facial. |
611 | No se envio la imagen para comparar. |
612 | Imagen sin contenido. |
613 | Formato de imagen invalido. |
614 | No se detecto rostro en la imagen. |
615 | Umbral de similitud no alcanzado. |