Saltar al contenido principal
Version: 3.1.0

Pasaportes

POST

  https://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

Ruta: api/ocr/

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

Python

# 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):

Formato de respuesta: JSON
{
"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:

Formato de respuesta: JSON
{
"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 pasaporteCódigo (document_id)
México052

• Respuesta con OCR para document_id (052):

Formato de respuesta: JSON
{
"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:

Formato de respuesta: JSON
{ 
"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:

CodigoMensaje
800Archivo enviado no pudo ser procesado correctamente.
801No se pudo extraer la MRZ del documento.
802No se pudo procesar la fecha de nacimiento.
803No se pudo procesar el género.
804No se pudo procesar la fecha de expiración.
805Error al procesar QR.
806No se pudo extraer la metadata del documento.
807No se pudo extraer los nombres del documento.
808No se pudo extraer el número de cédula del documento.
810No se envió el "backside" en la request.
811No se pudo extraer los apellidos del documento, "surnames".
812No se pudo extraer el lugar de nacimiento del documento, "birth_country".
813Datos no coinciden entre frontside y backside, "data".
814La imagen no cumple con el score mínimo para la lectura del MRZ, "mrz".
815Formato de QR de cédula no legible, "backside".
816El documento no concuerda con el especificado en el parámetros.
817El código de pasaporte enviando no está soportado aún por el servicio
818No se pudo obtener el OCR del frontside.