Government Validation
An in-depth explanation of the different countries supported by the /omni/process/government-validation endpoint.
Mexico - INE Validation​
POST /omni/process/government-validation
Country Code - MEX
When government face validation is enabled this method compares the user's selfie against the image in the INE database. The method should be called after add-face is over and one of (process-id or document-id) is over.
Request parameters:
- fallbackEnabled: Boolean, optional. If it is not sent, it will default to false.
- scrapingMethod: Boolean, optional. If it is not sent, it will default to false.
If parameter fallbackEnabled is true and there's some connection or infrastructure error with the INE service, validation by scraping will start. If parameter scrapingMethod is true, then direct connection to INE service won't be attempted and the scraping approach will be used instead.
Request Body is optional - if not sent, data will be taken from the session:
- ocr: String, mandatory for INE and IFE.
- cic: String, mandatory for INE.
- nombre: String, optional.
- apellidoPaterno: String, optional.
- apellidoMaterno: String, optional.
- anioRegistro: String, optional.
- anioEmision: String, optional.
- numeroEmisionCredencial: String, mandatory for ife.
- claveElector: String, mandatory for ife.
- curp: String, optional.
Response:
statusCode: Integer. Possible values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- INE_CONNECTION_ERROR (2, "ineConnectionError"),
- INE_INFRASTRUCTURE_ERROR (3, "ineInfrastructureError"),
- MODULE_NOT_SUPPORTED (4, "moduleNotSupported"),
- MISSING_DOCUMENT_ID (5, "missingDocumentId"),
- MISSING_SELFIE (6, "missingSelfie"),
- USER_NOT_FOUND (7, "userNotFound");
- USER_NOT_FOUND_IN_INE_DB (8, "userNotFoundInIneDb"),
- NOT_ENOUGH_DATA (9, "notEnoughData"),
- LIVENESS_FAIL (10, "livenessFail")
- INE_NOT_CURRENT (11, "ineNotCurrent")
- INE_REPORTED_LOST (12, "ineReportedLost")
- INE_REPORTED_STOLEN (13, "livenessFail")
- INE_SIGNATURE_ERROR (14, "ineSignaturError")
- INE_NOT_VALID (15, "ineNotValid")
- PROVIDER_UNAVAILABLE (98, "providerUnavailable")
- COUNTRY_NOT_SUPPORTED (99, "countryNotSupported")
- PROCESSING_INE (-1, "processingIne"). It only applies for Listas Nominales (INE Scraping).
valid: Boolean. Flag stating if request processed successfully.
registralSituation: Structure with following fields:
- tipoSituacionRegistral: String. Possible values: [
VIGENTE
,NO_VIGENTE
,DATOS_NO_ENCONTRADOS
] - tipoReporteRoboExtravio: String, optional. Possible values: [
null
,REPORTE_DE_EXTRAVIO
,REPORTE_DE_ROBO
,REPORTE_DE_ROBO_TEMPORAL
,REPORTE_DE_EXTRAVIO_TEMPORAL
]
- tipoSituacionRegistral: String. Possible values: [
governmentValidation: Structure with following fields:
- validationStatus: Structure with following fields:
- value: Look statusCode
- status: Look statusCode
- key:
- ok: when value OK
- error: when value VALIDATION_ERROR, INE_INFRASTRUCTURE_ERROR, USER_NOT_FOUND_IN_INE_DB, INE_NOT_CURRENT, INE_REPORTED_LOST, INE_REPORTED_STOLEN, USER_NOT_FOUND
- unknown: otherwise
- ocrValidation: Array of structure with following fields:
- value: Possible values - true false empty
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - issueDate firstName maternalLastName paternalLastName ocr personalId electorsKey emissionNumber registrationDate
- ocrValidationOverall: Structure with following fields:
- value: Calculated value based on Ocr Validation between 0 and 100
- status: OK or FAIL based on calculation
- overall: Same as ocrValidationOverall
- validationStatus: Structure with following fields:
ocrData: Look at fetch-OCR
deviceInfo: Look at fetch-deviceInfo
ineTransactionId: String
Colombia - RegistradurÃa Provider​
POST /omni/process/government-validation?countryCode=COL
Country Code - COL
Validation performed by RegistradurÃa (source of truth) through a local biometric operator.
Enabling it requires an additional service agreement and use case evaluation by registradurÃa, you can ask your Incode account manager about it. Once obtained Incode Team can help you configure your credentials and onboarding flows to start using the service.
Validation performed is id data + face match response of "HIT" or "NO HIT" which translates in either a 100 or 0 recognition score. All of the fields are mandatory for the validation per registradurÃa instructions.
Request Body is optional - any fields that are not sent will be taken from the session obtained from Device Fingerprint, ID capture and Face capture modules:
- idNumber: String.
- latitude: String.
- longitude: String.
- deviceHash: String.
- ip: String.
- osVersion: String.
- base64Image: String, user's selfie.
Response:
statusCode: 0 - OK, other not OK*
governmentValidation - consists of the following fieds:
- validationStatus - following values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- USER_NOT_FOUND (7, "userNotFound"),
- NOT_ENOUGH_DATA (9, "notEnoughData"),
- PROVIDER_UNAVAILABLE (98, "providerUnavailable"),
- ocrValidation: Array of structure with following fields:
- value: Possible values - true false empty
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - firstName maternalLastName paternalLastName ocr birthDate gender
- validationStatus - following values:
governmentValidationResponse: Response received from registraduria
ocrValidationOverall:
- ocrValidationOverall: 100 - 15 each fail or unknown ocrValidation
- status: OK status if ocrValidationOverall > 55, else FAIL
overall: same as ocrValidationOverall
Colombia - TusDatos Provider​
**Note: Government Validations for Colombia acquired via TusDatos
POST /omni/process/government-validation?countryCode=COL
Country Code - COL
Provider does not support face validation.
Can validate registradurÃa or extranjerÃa (foreign citizens living in colombia).
Request Body is optional - if not sent data will be taken from the session:
- idNumber: String, mandatory.
- fechaEmision: String, mandatory when Nationality is not Columbia. Format dd/mm/yyyy
- nombre: String, optional.
- apellidoPaterno: String, optional.
- apellidoMaterno: String, optional.
Response:
statusCode: 0 - OK, other not OK*
governmentValidation - consists of the following fieds:
- validationStatus - following values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- INE_CONNECTION_ERROR (2, "ineConnectionError"),
- USER_NOT_FOUND (7, "userNotFound"),
- NOT_ENOUGH_DATA (9, "notEnoughData")
- ocrValidation: Array of structure with following fields:
- value: Possible values - true false empty
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - firstName maternalLastName paternalLastName ocr birthDate gender
- validationStatus - following values:
governmentValidationResponse: Response received from * external source (see example)
ocrValidationOverall:
- ocrValidationOverall: 100 - 15 each fail or unknown ocrValidation
- status: ocrValidationOverall > 55 => OK, else FAIL
overall: same as ocrValidationOverall
Argentina - Renaper Validation​
POST /omni/process/government-validation?countryCode=ARG
Country Code - ARG
Request Body:
- idNumber: String, mandatory.
Response:
- statusCode: Integer. Value 0 means verification Ok.
Peru - Reniec Validation​
**Note: Government Validations for Peru obtained by checking against TOC, a risk database. ID must include DNI in order to validate.
POST /omni/process/government-validation?countryCode=PER
Country Code - PER
Currently there's no option for face validation.
Can validate Reniec.
Request Body is optional - if not sent data will be taken from the session.
idNumber: String, mandatory (corresponds to DNI number)
nombre: String, optional - if not provided ocrValidation for FistName will be UNKNOWN
apellidoPaterno: String, optional - if not provided ocrValidation for PaternalLastName will be UNKNOWN
apellidoMaterno: String, optional - if not provided ocrValidation for MaternalLastName will be UNKNOWN
birthDate: String, optional - if not provided ocrValidation for BirthDate will be UNKNOWN
gender: String, optional - if not provided ocrValidation for Gender will be UNKNOWN
Response has the following structure:
statusCode: 0 - OK, other not OK
governmentValidation - consists of following fieds:
- validationStatus - following values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- INE_CONNECTION_ERROR (2, "ineConnectionError"),
- USER_NOT_FOUND (7, "userNotFound"),
- NOT_ENOUGH_DATA (9, "notEnoughData")
- validationStatus - following values:
ocrValidation: Array of structure with following fields:
- value: Possible values - true false empty
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - documentNumber firstName maternalLastName paternalLastName ocr birthDate gender
governmentValidationResponse: Response received from external source (see example)
ocrValidationOverall:
- ocrValidationOverall: 100 - 15*each fail or unknown ocrValidation
- status: ocrValidationOverall > 55 => OK, else FAIL
overall: same as ocrValidationOverall
Chile - Sinacofi Validation​
**Note: Government Validations for Chile obtained by checking against TOC, a risk database. ID must include DNI in order to validate.
POST /omni/process/government-validation?countryCode=CHL
Country Code - CHL
Currently there's no option for face validation.
Can validate Sinacofi.
Request Body is optional - if not sent data will be taken from the session:
- idNumber: String, mandatory (corresponds Serie)
- personalNumber: String, mandatory (corresponds RUT/RUN)
Response have following structure:
statusCode: 0 - OK, other not OK
governmentValidation - consists of following fieds:
- validationStatus - following values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- INE_CONNECTION_ERROR (2, "ineConnectionError"),
- USER_NOT_FOUND (7, "userNotFound"),
- NOT_ENOUGH_DATA (9, "notEnoughData")
- ocrValidation: Array of structure with following fields:
- value: Possible values - true false empty
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - documentNumber firstName maternalLastName paternalLastName ocr birthDate gender
- governmentValidationResponse: Response received from external source (see example)
- ocrValidationOverall:
- ocrValidationOverall: 100 - 15*each fail or unknown ocrValidation
- status: ocrValidationOverall > 55 => OK, else FAIL
- overall: same as ocrValidationOverall
- validationStatus - following values: