Pasaportes
POSThttps://api.apptenticate.com/api/v3/ocr/
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 OCR de Apptenticate que permite extraer datos de documentos de identificación. En este caso, es posible procesar pasaportes que contengan MRZ (Machine Readable Zone) y cédulas panameñas con o sin código QR. Estas peticiones deben especificar el tipo de documento a procesar, una imagen del frente del documento y una imagen del dorso (en el caso de que sean cédulas de identidad). Al final, el microservicio de ID Reader retornará un JSON con los datos extraídos si la operación fue exitosa, o el debido error si no lo fue.
NOTA
• La respuesta puede ser 401 unauthorized si el token JWT debe ser refrescado.
• Las imágenes enviadas 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.
• 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”, “passport_plus” o “identification_card”.
Estructura de requests - método: POST
• Payload para request base:
Payload: {
'frontside': Imagen del frente del documento,
'document_type': 'passport',
'document_id': Código del pasaporte // opcional si se quiere obtener el OCR de un pasaporte que esté soportado en la biblioteca
} // (donde las imágenes son archivos .jpg)
• Si se desea obtener el ID de la transacción:
Payload: {
'frontside': Imagen del frente del documento,
'document_type': 'passport',
'return_id':True
'document_id': Código del pasaporte // opcional si se quiere obtener el OCR de un pasaporte que esté soportado en la biblioteca
} // (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,
'document_type': 'passport',
'device':'IOS', // Dispositivos: IOS, ANDROID o DESKTOP
'document_id': Código del pasaporte // opcional si se quiere obtener el OCR de un pasaporte que esté soportado en la biblioteca
} // (donde las imágenes son archivos .jpg)
• Si se desea obtener un OCR del pasaporte además de la lectura del MRZ
Payload: {
'frontside': Imagen del frente del documento,
'document_type': 'passport_plus',
'device':'IOS', // Dispositivos: IOS, ANDROID o DESKTOP
} // (donde las imágenes son archivos .jpg)
Ejemplos de requests
# JWT Token
header = { 'Authorization': 'Bearer {}'.format(token) }
# Payload para request base
data = {'document_type': 'passport'}
files = {
'frontside': imagen_1.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,
} # Donde las imágenes son archivos .jpg
# Payload para request base para obtener MRZ y OCR de pasaporte
data = {'document_type': 'passport','document_id': '052' }
files = {
'frontside': imagen_1.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
• Respuesta con ID de transacción para (pasaporte):
{
"document_number": "AN654321",
"registry_number": "CC0123456789",
"country": "COL",
"names": "JULIAN ANDRES",
"surnames": "PEREZ GARCIA",
"birth_date": "02-05-94",
"gender": "M",
"expiration_date": "30-07-22",
"image_score": 100,
"valid": true,
"id": 281234
}
• Respuesta de Passport Plus:
{
"MRZ": {
"document_number": "G123456",
"registry_number": "",
"country": "MEX",
"names": "LUIS ALFREDO",
"surnames": "LOPEZ",
"birth_date": "06-07-64",
"gender": "M",
"expiration_date": "15-09-23",
"image_score": 100
},
"OCR": {
"names": "LUIS",
"surnames": "LOPEZ",
"midlename": "ALFREDO",
"document_number": "G123456",
"expiration_date": "15-09-2023",
"birth_date": "06-07-1964",
"issuing_date": "15-09-2017",
"place_of_birth": "MEXICO MEXICO",
"mrz_code": "P<MEXPIZARRO<ZUNIGA<<LUIS<ALFREDO<<<<<<<<<<<\nG123456789MEX7654321M1234567<<<<<<<<<<<<<<00"
},
"valid": true,
"id": 8824
}
Pasaportes soportados para obtener OCR
| País del pasaporte | Código (document_id) |
|---|---|
| México | 052 |
• Respuesta con OCR para document_id (052):
{
"MRZ": {
"document_number": "N1234567",
"registry_number": "",
"country": "MEX",
"names": "MARIA FERNANDA",
"surnames": "PENAFLOR AMADO",
"birth_date": "19-08-94",
"gender": "F",
"expiration_date": "24-08-26",
"image_score": 100
},
"OCR": {
"country": "MEX",
"document_number": "N1234567",
"CURP": "PEAF940819MDFXMR03",
"gender": "F",
"names": "MARIA",
"midlename": "FERNANDA",
"expiration_date": "24-08-2026",
"birth_date": "19-08-1994",
"issuing_date": "24-08-2023",
"place_of_birth": "ALVARO OBREGON DISTRITO FEDERAL"
}
}
• En el caso de un OCR fallido:
{
"MRZ": {
"document_number": "N123567",
"registry_number": "",
"country": "VEN",
"names": "MARIA FERNANDA",
"surnames": "PENAFLOR AMADO",
"birth_date": "24-04-94",
"gender": "F",
"expiration_date": "08-10-31"
}
"OCR": {
"error": "El código de pasaporte enviando no está soportado aún por el servicio",
"error_code": 817
}
}
Códigos de error:
| Codigo | Mensaje |
|---|---|
800 | Archivo enviado no pudo ser procesado correctamente. |
801 | No se pudo extraer la MRZ del documento. |
802 | No se pudo procesar la fecha de nacimiento. |
803 | No se pudo procesar el género. |
804 | No se pudo procesar la fecha de expiración. |
805 | Error al procesar QR. |
806 | No se pudo extraer la metadata del documento. |
807 | No se pudo extraer los nombres del documento. |
808 | No se pudo extraer el número de cédula del documento. |
810 | No se envió el "backside" en la request. |
816 | El documento no concuerda con el especificado en el parámetros. |
817 | El código de pasaporte enviando no está soportado aún por el servicio |
818 | No se pudo obtener el OCR del frontside. |