Process government validation
This endpoint reads the country code from the interview which can be set at the moment of calling the start endpoint or is updated based on the processed id. Request body can optionally contain data from id in JSON. If omitted, data from scanned ID is read.
Country codes:
MEX: Mexico - INE Validation. 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.
COL: Colombia - Registraduría Validation. Currently there's no option for face validation. Can validate registraduría or extranjería (foreign citizens living in colombia). Note: Government Validations for Colombia acquired via TusDatos
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.
ARG: Argentina - Renaper Validation. Currently there's no option for face validation.
Request Body:
- idNumber: String, mandatory.
PER: Peru - Reniec Validation. Currently there's no option for face validation. Can validate Reniec. Note: Government Validations for Peru obtained by checking against TOC, a risk database. ID must include DNI in order to validate. 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
CHL: Chile - Sinacofi Validation. Currently there's no option for face validation. Can validate Sinacofi. Note: Government Validations for Chile obtained by checking against TOC, a risk database. ID must include DNI in order to validate. 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)
AUS: Australia - Government Validation for Passport and Driver License. Request Body is optional - if not sent data will be taken from the OCR.
For Passport validation:
- firstName: String, mandatory.
- middleName: String, optional.
- paternalLastName: String, mandatory.
- cic: String, mandatory (corresponds to Passport number).
- documentType: String, mandatory ("Passport").
- birthDate: String, mandatory. Format yyyy/MM/dd.
- address: String, optional.
For Driver License validation:
- firstName: String, mandatory.
- middleName: String, optional.
- paternalLastName: String, mandatory.
- documentType: String, mandatory ( com"DriversLicense").
- birthDate: String, mandatory. Format yyyy/MM/dd.
- refNumber: String, mandatory (corresponds to Card number).
- cic: String, mandatory (corresponds to License number).
- issuerState: String, mandatory (e.g., "NSW").
- address: String, optional.
Query parameters
Headers
Request body
Response
Responses: MEX:
- 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, "ineReportedStolen")
- INE_SIGNATURE_ERROR (14, "ineSignaturError")
- INE_NOT_VALID (15, "ineNotValid")
- PROVIDER_UNAVAILABLE (98, "providerUnavailable"). Also returned for an INE-side service degradation (codigoRespuesta=0 with similitud1=null): the face comparison never produced a score, so recognitionConfidence stays null — distinct from a real face mismatch. In that case errorDescription identifies the cause.
- COUNTRY_NOT_SUPPORTED (99, "countryNotSupported")
- PROCESSING_INE (-1, "processingIne"). It only applies for Listas Nominales (INE Scraping).
- PROCESSING (-4, "processing")
- CONNECTION_ERROR (17, "connectionError")
- INFRASTRUCTURE_ERROR (18, "infrastructureError")
- TRANSACTION_LIMIT_REACHED (205, "transactionLimitReached")
- 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 ]
- 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, TRANSACTION_LIMIT_REACHED
- 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
COL:
-
statusCode: 0 - OK, other not OK*
-
governmentValidation - consists of the following fields:
- validationStatus - following values:
- OK (0, "ok"),
- VALIDATION_ERROR (1, "validationError"),
- CONNECTION_ERROR (17, "connectionError"),
- 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 (DEPRECATED):
- COL1: "governmentValidationResponse": { "codError": "0", "contract_id": 111, "departamentoExpedicion": "ATLANTICO", "descripcionEstado": "VIGENTE", "estadoCedula": "0", "fechaExpedicion": "31/12/1990", "fechaHoraConsulta": "2025-03-12 20:32:29", "municipioExpedicion": "BARRANQUILLA", "nuip": "000000000", "particula": "DE", "primerApellido": "Perez", "primerNombre": "Jose", "segundoApellido": "Perez", "segundoNombre": "Juan" }
- COL2: "governmentValidationResponse": { "data": { "anio_resolucion": 0, "codigo_error_datos_cedula": 0, "codigo_respuesta": "", "departamento_expedicion": "ATLANTICO", "descripcion_estado": "Vigente", "estado_cedula": 0, "fecha_expedicion": "Mon, 31 Dec 1990 00:00:00 GMT", "informacion_adicional": "", "municipio_expedicion": "BARRANQUILLA", "nombre_completo": "Jose Juan Perez Perez", "nuip": 000000000, "numero_resolucion": 0, "particula": "DE", "primer_apellido": "Perez", "primer_nombre": "Jose", "segundo_apellido": "Perez", "segundo_nombre": "Juan" } }
-
ocrValidationOverall:
- ocrValidationOverall: 100 - 15 each fail or unknown ocrValidation
- status: ocrValidationOverall > 55 => OK, else FAIL
-
overall: same as ocrValidationOverall
ARG:
- statusCode: Integer. Value 0 means verification Ok.
- governmentValidation - consists of following fieds:
- validationStatus - following values:
- OK (0, "ok")
- FACE_COMPARISON_FAILED (207, "faceComparisonFailed")
- PROCESSING (-4, "processing")
- PROVIDER_NOT_CONFIGURED (96, "providerNotConfigured")
- PROVIDER_UNAVAILABLE (98, "providerUnavailable")
- USER_NOT_FOUND (7, "userNotFound")
- VALIDATION_ERROR (1, "validationError")
- NO_INFORMATION (204, "noInformation")
- validationStatus - following values:
IND:
- statusCode: Integer. Value 0 means verification Ok.
- otpResponse - indicates that OTP code is sent to user
- authBridge - Provider name for Aadhar
- otpCodeRequested - boolean
- mobile - masked mobile number *******725 PER:
- authBridge - Provider name for Aadhar
- 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
CHL:
- 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:
AUS:
- statusCode: 0 - OK, other not OK
- valid: Boolean. Flag stating if request processed successfully.
- governmentValidation - consists of following fields:
- validationStatus - following values:
- OK (0, "ok"),
- USER_NOT_FOUND (7, "userNotFound"),
- NOT_ENOUGH_DATA (9, "notEnoughData"),
- CONNECTION_ERROR (17, "connectionError")
- ocrValidation: Array of structure with following fields:
- value: Possible values - true false
- status: Possible values - OK FAIL
- key: Possible values - documentNumber firstName paternalLastName birthDate expirationDate issueDate
- ocrValidationOverall:
- value: Calculated value between 0 and 100
- status: OK or FAIL based on calculation
- overall: Same as ocrValidationOverall
- validationStatus - following values:
- errorDescription: String. Present only in error responses with values like "userNotFound", "notEnoughData", "connectionError"
BRA:
- statusCode: 0 - OK, other not OK. Always mirrors validationStatus and is independent of the overall score.
- valid: Boolean. True when validationStatus is OK (statusCode 0), i.e. CPF found. Note this tracks validationStatus, NOT the overall score: an OCR-field mismatch or a SERPRO_FACE face mismatch can leave valid=true while overall is FAIL.
- governmentValidation - consists of following fields:
- validationStatus - following values:
- OK (0, "ok"): CPF found, data and/or face matched
- VALIDATION_ERROR (1, "validationError")
- MODULE_NOT_SUPPORTED (4, "moduleNotSupported")
- MISSING_SELFIE (6, "missingSelfie"): required for SERPRO_FACE
- USER_NOT_FOUND (7, "userNotFound"): CPF not found, or face not matched
- CPF_NUMBER_INVALID_OR_MISSING (16, "cpfNumberInvalidOrMissing")
- CONNECTION_ERROR (17, "connectionError")
- PROVIDER_NOT_CONFIGURED (96, "providerNotConfigured")
- PROVIDER_UNAVAILABLE (98, "providerUnavailable")
- GEOGRAPHIC_REGION_NOT_SUPPORTED (99, "geographicRegionNotSupported")
- recognitionConfidence: Present when government face validation is attempted (e.g. SERPRO_FACE).
- value: "100.0" when face matched, "0.0" when no match or face not in SERPRO DB
- status: OK when matched, FAIL otherwise
- ocrValidation: Array of structure with following fields (present for both SERPRO and SERPRO_FACE when validationStatus is OK):
- value: Possible values - true false
- status: Possible values - OK FAIL UNKNOWN
- key: Possible values - documentNumber fullName birthDate Note: fullName is derived from firstName, paternalLastName, and maternalLastName, which all map to the same SERPRO nome field and always share the same status.
- ocrValidationOverall:
- value: Calculated value between 0 and 100
- status: OK or FAIL based on calculation
- overall: Equals ocrValidationOverall for SERPRO. For SERPRO_FACE the face recognitionConfidence can override it (e.g. face not in DB / not matched drives overall to 0.0 FAIL even when ocrValidationOverall is OK).
- validationStatus - following values:
- errorDescription: String. Present only in error responses
Example response
{
"deviceInfo": {
"getmAdminArea": "CA",
"getmSubAdminArea": "Santa Clara",
"getmSubLocality": "Mission District",
"getmCountryCode": "US",
"getmCountryName": "United States",
"hostingApp": "Onboarding"
}
}