---
title: "Process government validation"
url: "https://developer.incode.com/api-reference/process-government-validation/"
section: "api-reference"
group: "Government validation"
version: "v1.1"
status: "live"
endpoint: "POST /omni/process/government-validation"
---
# Process government validation

`POST /omni/process/government-validation`

Base URL: `https://demo-api.incodesmile.com` — Incode demo environment

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](#/Onboarding/addFaceByThirdParty) is over and
one of ([process-id](#/Onboarding/processId) or [document-id](#/Onboarding/addDocumentId)) 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.

## Path & query parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `fallbackEnabled` | query | boolean |  |  |
| `scrapingMethod` | query | boolean |  |  |
| `scrapingV2` | query | boolean |  |  |
| `scrapingV3` | query | boolean |  |  |
| `telcel` | query | boolean |  |  |
| `interviewId` | query | string |  |  |
| `countryCode` | query | string |  |  |
| `api-version` | header | string | yes |  |

## Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ocr` | string |  |  |
| `cic` | string |  |  |
| `nombre` | string |  |  |
| `apellidoPaterno` | string |  |  |
| `apellidoMaterno` | string |  |  |
| `anioRegistro` | string |  |  |
| `anioEmision` | string |  |  |
| `numeroEmisionCredencial` | string |  |  |
| `claveElector` | string |  |  |
| `curp` | string |  |  |
| `base64Image` | string |  |  |
| `idNumber` | string |  |  |
| `fechaEmision` | string |  |  |
| `personalNumber` | string |  |  |
| `birthDate` | string |  |  |
| `gender` | string |  |  |
| `birthPlace` | string |  |  |
| `address` | string |  |  |
| `latitude` | string |  |  |
| `longitude` | string |  |  |
| `macAddress` | string |  |  |
| `ip` | string |  |  |
| `osVersion` | string |  |  |
| `applicationName` | string |  |  |
| `sufix` | string |  |  |
| `firstName` | string |  |  |
| `givenName` | string |  |  |
| `middleName` | string |  |  |
| `maternalLastName` | string |  |  |
| `paternalLastName` | string |  |  |
| `documentType` | string |  | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` |
| `refNumber` | string |  |  |
| `issuerState` | string |  |  |
| `documentTypeId` | integer (int32) |  |  |
| `issuedAt` | string |  |  |
| `documentNumber` | string |  |  |
| `expireAt` | string |  |  |
| `eyeColor` | string |  |  |
| `height` | string |  |  |
| `weight` | string |  |  |
| `city` | string |  |  |
| `postalCode` | string |  |  |
| `email` | string |  |  |
| `fullName` | string |  |  |
| `nationality` | string |  |  |
| `dateFormat` | string |  |  |
| `fingerprintsData` | FingerprintsData |  |  |
| `fingerprintsData.type` | integer (int32) |  |  |
| `fingerprintsData.fingerprints` | array[Fingerprint] | yes |  |
| `fingerprintsData.fingerprints.index` | integer (int32) |  |  |
| `fingerprintsData.fingerprints.base64Fingerprint` | string |  |  |
| `fingerprintsData.fingerprints.fingerprintMetadata` | FingerprintMetadata |  |  |
| `fingerprintsData.fingerprints.fingerprintMetadata.device` | string |  |  |
| `fingerprintsData.fingerprints.fingerprintMetadata.resolution` | string |  |  |
| `fingerprintsData.fingerprints.fingerprintMetadata.qualityScore` | string |  |  |

## Responses

### 200

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 - 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 - 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") **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**: - 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 **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 **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 - 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). - errorDescription: String. Present only in error responses

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `valid` | boolean |  |  |
| `statusCode` | integer (int32) |  |  |
| `governmentValidation` | GovernmentValidation |  | - 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 face matched, FAIL when no match or face not in SERPRO DB - validationStatus: Key-value mapping: - OK (0, "ok"): CPF found, data and/or face matched - VALIDATION_ERROR (1, "validationError") - MODULE_NOT_SUPPORTED (4, "moduleNotSupported") - MISSING_SELFIE (6, "missingSelfie"): selfie required for SERPRO_FACE - USER_NOT_FOUND (7, "userNotFound"): CPF not found in government DB, 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") - ocrValidation: List of value/status/key objects. Keys present for Brazil: - documentNumber: CPF validity check - fullName: name match (derived from firstName, paternalLastName, maternalLastName — all map to the same SERPRO nome field and always share the same status) - birthDate: date of birth match Not all keys are always present. - ocrValidationOverall: Composite result for ocrValidation score - 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) |
| `governmentValidation.recognitionConfidence` | ResultBean |  |  |
| `governmentValidation.recognitionConfidence.value` | string |  |  |
| `governmentValidation.recognitionConfidence.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.fingerprintConfidence` | ResultBean |  |  |
| `governmentValidation.fingerprintConfidence.value` | string |  |  |
| `governmentValidation.fingerprintConfidence.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.minimumPassingFingerprints` | integer (int32) |  |  |
| `governmentValidation.validationStatus` | IdResultBean |  |  |
| `governmentValidation.validationStatus.value` | string |  |  |
| `governmentValidation.validationStatus.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.validationStatus.key` | string |  |  |
| `governmentValidation.ocrValidation` | array[IdResultBean] |  |  |
| `governmentValidation.ocrValidation.value` | string |  |  |
| `governmentValidation.ocrValidation.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.ocrValidation.key` | string |  |  |
| `governmentValidation.ocrValidationOverall` | ResultBean |  |  |
| `governmentValidation.ocrValidationOverall.value` | string |  |  |
| `governmentValidation.ocrValidationOverall.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.overall` | ResultBean |  |  |
| `governmentValidation.overall.value` | string |  |  |
| `governmentValidation.overall.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `governmentValidation.provider` | string |  |  |
| `governmentValidation.appliedRule` | AppliedFlowRule |  | Specific rule from rule engine |
| `governmentValidation.appliedRule.name` | string |  | Name of the rule. |
| `governmentValidation.appliedRule.expression` | string |  | A logical expression of the rule. |
| `governmentValidation.appliedRule.ruleType` | string |  | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` |
| `governmentValidation.appliedRule.status` | string |  | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` |
| `errorDescription` | string |  |  |

### 400

Bad Request

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `timestamp` | integer (int64) |  | UTC timestamp in milliseconds |
| `status` | integer (int32) |  | Custom error code or HTTP status code |
| `error` | string |  | HTTP status error |
| `message` | string |  | Custom error message |
| `path` | string |  | Endpoint path |
| `details` | object |  | Custom error details |

## Code samples

Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `<YOUR_API_KEY>` with a key for your region.

### cURL

```bash
curl -X POST https://demo-api.incodesmile.com/omni/process/government-validation \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "api-version: 1.0" \
  -H "Content-Type: application/json" \
  -d '{
    "ocr": "",
    "cic": "",
    "nombre": "",
    "apellidoPaterno": "",
    "apellidoMaterno": "",
    "anioRegistro": "",
    "anioEmision": "",
    "numeroEmisionCredencial": "",
    "claveElector": "",
    "curp": "",
    "base64Image": "",
    "idNumber": "",
    "fechaEmision": "",
    "personalNumber": "",
    "birthDate": "",
    "gender": "",
    "birthPlace": "",
    "address": "",
    "latitude": "",
    "longitude": "",
    "macAddress": "",
    "ip": "",
    "osVersion": "",
    "applicationName": "",
    "sufix": "",
    "firstName": "",
    "givenName": "",
    "middleName": "",
    "maternalLastName": "",
    "paternalLastName": "",
    "documentType": "",
    "refNumber": "",
    "issuerState": "",
    "documentTypeId": 0,
    "issuedAt": "",
    "documentNumber": "",
    "expireAt": "",
    "eyeColor": "",
    "height": "",
    "weight": "",
    "city": "",
    "postalCode": "",
    "email": "",
    "fullName": "",
    "nationality": "",
    "dateFormat": "",
    "fingerprintsData": "",
    "fingerprintsData.type": 0,
    "fingerprintsData.fingerprints": [],
    "fingerprintsData.fingerprints.index": 0,
    "fingerprintsData.fingerprints.base64Fingerprint": "",
    "fingerprintsData.fingerprints.fingerprintMetadata": "",
    "fingerprintsData.fingerprints.fingerprintMetadata.device": "",
    "fingerprintsData.fingerprints.fingerprintMetadata.resolution": "",
    "fingerprintsData.fingerprints.fingerprintMetadata.qualityScore": ""
  }'
```

### Node

```js
const res = await fetch("https://demo-api.incodesmile.com/omni/process/government-validation", {
  method: "POST",
  headers: {
      "x-api-key": "<YOUR_API_KEY>",
      "api-version": "1.0",
      "Content-Type": "application/json",
  },
    body: JSON.stringify({
      "ocr": "",
      "cic": "",
      "nombre": "",
      "apellidoPaterno": "",
      "apellidoMaterno": "",
      "anioRegistro": "",
      "anioEmision": "",
      "numeroEmisionCredencial": "",
      "claveElector": "",
      "curp": "",
      "base64Image": "",
      "idNumber": "",
      "fechaEmision": "",
      "personalNumber": "",
      "birthDate": "",
      "gender": "",
      "birthPlace": "",
      "address": "",
      "latitude": "",
      "longitude": "",
      "macAddress": "",
      "ip": "",
      "osVersion": "",
      "applicationName": "",
      "sufix": "",
      "firstName": "",
      "givenName": "",
      "middleName": "",
      "maternalLastName": "",
      "paternalLastName": "",
      "documentType": "",
      "refNumber": "",
      "issuerState": "",
      "documentTypeId": 0,
      "issuedAt": "",
      "documentNumber": "",
      "expireAt": "",
      "eyeColor": "",
      "height": "",
      "weight": "",
      "city": "",
      "postalCode": "",
      "email": "",
      "fullName": "",
      "nationality": "",
      "dateFormat": "",
      "fingerprintsData": "",
      "fingerprintsData.type": 0,
      "fingerprintsData.fingerprints": [],
      "fingerprintsData.fingerprints.index": 0,
      "fingerprintsData.fingerprints.base64Fingerprint": "",
      "fingerprintsData.fingerprints.fingerprintMetadata": "",
      "fingerprintsData.fingerprints.fingerprintMetadata.device": "",
      "fingerprintsData.fingerprints.fingerprintMetadata.resolution": "",
      "fingerprintsData.fingerprints.fingerprintMetadata.qualityScore": ""
    }),
});
const data = await res.json();
```

### Python

```python
import requests

headers = {
    "x-api-key": "<YOUR_API_KEY>",
    "api-version": "1.0",
    "Content-Type": "application/json",
}
res = requests.post("https://demo-api.incodesmile.com/omni/process/government-validation", headers=headers, json={
  "ocr": "",
  "cic": "",
  "nombre": "",
  "apellidoPaterno": "",
  "apellidoMaterno": "",
  "anioRegistro": "",
  "anioEmision": "",
  "numeroEmisionCredencial": "",
  "claveElector": "",
  "curp": "",
  "base64Image": "",
  "idNumber": "",
  "fechaEmision": "",
  "personalNumber": "",
  "birthDate": "",
  "gender": "",
  "birthPlace": "",
  "address": "",
  "latitude": "",
  "longitude": "",
  "macAddress": "",
  "ip": "",
  "osVersion": "",
  "applicationName": "",
  "sufix": "",
  "firstName": "",
  "givenName": "",
  "middleName": "",
  "maternalLastName": "",
  "paternalLastName": "",
  "documentType": "",
  "refNumber": "",
  "issuerState": "",
  "documentTypeId": 0,
  "issuedAt": "",
  "documentNumber": "",
  "expireAt": "",
  "eyeColor": "",
  "height": "",
  "weight": "",
  "city": "",
  "postalCode": "",
  "email": "",
  "fullName": "",
  "nationality": "",
  "dateFormat": "",
  "fingerprintsData": "",
  "fingerprintsData.type": 0,
  "fingerprintsData.fingerprints": [],
  "fingerprintsData.fingerprints.index": 0,
  "fingerprintsData.fingerprints.base64Fingerprint": "",
  "fingerprintsData.fingerprints.fingerprintMetadata": "",
  "fingerprintsData.fingerprints.fingerprintMetadata.device": "",
  "fingerprintsData.fingerprints.fingerprintMetadata.resolution": "",
  "fingerprintsData.fingerprints.fingerprintMetadata.qualityScore": ""
})
data = res.json()
```

### Java

```java
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://demo-api.incodesmile.com/omni/process/government-validation"))
    .header("x-api-key", "<YOUR_API_KEY>")
    .header("api-version", "1.0")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\n  \"ocr\": \"\",\n  \"cic\": \"\",\n  \"nombre\": \"\",\n  \"apellidoPaterno\": \"\",\n  \"apellidoMaterno\": \"\",\n  \"anioRegistro\": \"\",\n  \"anioEmision\": \"\",\n  \"numeroEmisionCredencial\": \"\",\n  \"claveElector\": \"\",\n  \"curp\": \"\",\n  \"base64Image\": \"\",\n  \"idNumber\": \"\",\n  \"fechaEmision\": \"\",\n  \"personalNumber\": \"\",\n  \"birthDate\": \"\",\n  \"gender\": \"\",\n  \"birthPlace\": \"\",\n  \"address\": \"\",\n  \"latitude\": \"\",\n  \"longitude\": \"\",\n  \"macAddress\": \"\",\n  \"ip\": \"\",\n  \"osVersion\": \"\",\n  \"applicationName\": \"\",\n  \"sufix\": \"\",\n  \"firstName\": \"\",\n  \"givenName\": \"\",\n  \"middleName\": \"\",\n  \"maternalLastName\": \"\",\n  \"paternalLastName\": \"\",\n  \"documentType\": \"\",\n  \"refNumber\": \"\",\n  \"issuerState\": \"\",\n  \"documentTypeId\": 0,\n  \"issuedAt\": \"\",\n  \"documentNumber\": \"\",\n  \"expireAt\": \"\",\n  \"eyeColor\": \"\",\n  \"height\": \"\",\n  \"weight\": \"\",\n  \"city\": \"\",\n  \"postalCode\": \"\",\n  \"email\": \"\",\n  \"fullName\": \"\",\n  \"nationality\": \"\",\n  \"dateFormat\": \"\",\n  \"fingerprintsData\": \"\",\n  \"fingerprintsData.type\": 0,\n  \"fingerprintsData.fingerprints\": [],\n  \"fingerprintsData.fingerprints.index\": 0,\n  \"fingerprintsData.fingerprints.base64Fingerprint\": \"\",\n  \"fingerprintsData.fingerprints.fingerprintMetadata\": \"\",\n  \"fingerprintsData.fingerprints.fingerprintMetadata.device\": \"\",\n  \"fingerprintsData.fingerprints.fingerprintMetadata.resolution\": \"\",\n  \"fingerprintsData.fingerprints.fingerprintMetadata.qualityScore\": \"\"\n}"))
    .build();
HttpResponse<String> res = HttpClient.newHttpClient()
    .send(req, HttpResponse.BodyHandlers.ofString());
```

### Example response

```json
{
  "success": true,
  "status": "OK"
}
```
