Skip to main content

Mexican INE Data & Face Validation

Jumio has a number of database check services available for Mexico. These checks allow you to validate Mexican National IDs and personal identifiable information.

This service connects with the Mexican National Electoral Institute (Instituto Nacional Electoral, INE) to validate INE ID numbers, owner information and biometric information. There are 2 services that are available for INE:

1. Data Validation of Voting credential at INE.

  • Verifies that the data registered at INE’s nominal database matches those presented by the user.
  • Validates that the credential is a valid document. image

2. Biometric Validation of Voting credential at INE.

Verifies that the face of the user matches that registered in the INE.

info

The data validation and Biometric validation services both require a direct contract with the INE. Please see your Jumio Sales representative for more information. We work with a partner to directly integrate with INE.

image

Service NameDescriptionRequired FieldsVerifiable Fields
Mexico INE Data ValidationInput is verified against the INEElector Key, OCR, Issue #Name, Paternal Surname, Maternal Surname, Curp #(National Id), OCR#, Elector Key, Registration Year, Issuing Year, Issuing Number
Mexico INE Face ValidationInput is verified against the INEElector Key, OCR, Issue #Selfie Image, Name, Paternal Surname, Maternal Surname, Face Match, OCR#, Elector Key, Registration Year, Issuing Year, Issuing Number, Curp #(Id number)

Customer Onboarding

Due to the nature of the integration with INE, we will work with our partner to stand up a dedicated secure infrastructure that is required by the Mexican Government to access INE. Once the contract with INE is signed, our production team will work you and our partner (FIMPE) to start the onboarding process.

Our production team needs the following information:

AWS Region and Stage where Middleware needs to be deployed.

Tenant Information:

  • Tenant GUID
  • Tenant Id
  • Tenant Name

FIMPE Middleware Key files(provided by FIMPE):

  • INSTITUTONACIONALELECTORAL_publica.key
  • MW_KEYS_TO_SVBI_PRIVATE_MW_KEY
  • publica.key
  • privada.key
  • FIMPE SVBI Port Number(provided by FIMPE)

The estimated time needed for completion:

  • 4-5 days/client to setup the environments
  • 2 days/client for the Engineering team to test and certify the setup and functionality.

Required Credentials

Prepared Data: INE Data
KeyTypeMandatoryDescription
firstNamestringnoFirst name of the subject. Optimal to include.
paternalSurnamestringnoPaternal surname of the subject.
maternalSurnamestringnoMaternal surname of the subject.
addressObjectnoOnly the fields which are mentioned are required
address.countrystringnocountry should be set to “MEX”
idObjectnoSee in next row
id.idNumberstringnoCURP ID number # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringnoOnly required for countries where idType is not sufficient.
id.issuingDatestringnoDate in YYYY-MM-DD format only.
id.expiryDatestringnoDate in YYYY-MM-DD format only.
ineObjectyesSee in next row
ine.cicstringnoCIC number of the elector credential
ine.ocrstringyesOCR number of the elector credential
ine.issuingNumberstringyesIssuing Number - Numeric
ine.electorKeystringyesElector Key - 18 Characters
ine.registrationYearstringnoYYYY
ine.issuingYearstringnoYYYY

Capability Request

{
"firstName": "XXXXX",
"paternalSurname": "XXXXXX",
"maternalSurname": "XXXXX",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XYZA891218ABCEFG01",
"type": "ID_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic": "201112341",
"ocr": "0000345678911", <mandatory>
"issuingNumber": "02", <mandatory>
"electorKey": "ABCDEF12341809C100",<mandatory>
"registrationYear": 2008,
"issuingYear": 2019
}
}

Response Values

Details
ParameterTypeNote
idstringUUID of the capability
credentialsarray(Credential)
decisionobject
decision.typestringPossible values: NOT_EXECUTED, PASSED, REJECTED, WARNING
If curp # is a mismatch, decision = REJECT, risk score 100, else:
If elector key, ocr, and name are a match, decision = PASS, risk score 0, else decision = WARNING, risk score 50
decision.detailsobject
decision.details.labelstringPossible values: OK, DENY, ALERT, NOT_ENOUGH_DATA, TECHNICAL_ERROR, PERMISSION_DENIED, BAD_REQUEST, PRECONDITION_NOT_FULFILLED
dataobject
data.completeNameMatchstringPossible values: MATCH, NOT_MATCH
data.nationalIdMatchstringPossible values: MATCH, NOT_MATCH
data.ocrMatchstringPossible values: MATCH, NOT_MATCH
data.issuingNumberMatchstringPossible values: MATCH, NOT_MATCH
data.registrationYearMatchstringPossible values: MATCH, NOT_MATCH
data.issuingYearMatchstringPossible values: MATCH, NOT_MATCH
data.electorKeyMatchstringPossible values: MATCH, NOT_MATCH
data.paternalSurnameMatchstringPossible values: MATCH, NOT_MATCH
data.maternalSurnameMatchstringPossible values: MATCH, NOT_MATCH

Credential

KeyTypeDescription
idstringUUID of credential used
categorystringCategory of credential used

Capability Response

"govtIdVerification": [
{
"id": "d1858198-d2f2-4235-97f7-5f9cb088a2ae",
"credentials": [
{
"id": "21135260-f435-4052-93a7-a943f12d5f2c",
"category": "ID"
}
],
"decision": {
"type": "WARNING",
"details": {
"label": "ALERT"
}
},
"data": {
"completeNameMatch": "NOT_MATCH",
"nationalIdMatch": "MATCH",
"ocrMatch": "MATCH",
"issuingNumberMatch": "NOT_MATCH",
"registrationYearMatch": "NOT_MATCH",
"issuingYearMatch": "MATCH",
"electorKeyMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH"
}
}
]

Required Credentials for Prepared Data: INE Data with Biometric (Selfie)

Required Credentials
KeyTypeMandatoryDescription
firstNamestringno
paternalSurnamestringno
maternalSurnamestringno
addressObjectnoOnly the fields which are mentioned are required
address.countrystringnocountry should be set to “MEX”
idObjectnoSee in next row
id.idNumberstringnoCURP ID number # example "XXXX910225XXXXXS09"
id.TypestringconditionalID_CARD
id.subTypestringno
id.issuingDatestringno
id.expiryDatestringno
ineObjectyesSee in next row
ine.cicstringnoCIC number of the elector credential
ine.ocrstringyesOCR number of the elector credential
ine.issuingNumberstringyesIssuing Number - Numeric
ine.electorKeystringyesElector Key - 18 Characters
ine.registrationYearstringnoYYYY
ine.issuingYearstringnoYYYY
note

Biometric (Selfie) needs to be sent with Prepared Data.

Capability Request

{
"firstName": "XXXXX",
"paternalSurname": "XXXXXX",
"maternalSurname": "XXXXX",
"address": {
"country": "MEX"
},
"id": {
"idNumber": "XYZA891218ABCEFG01",
"type": "ID_CARD",
"subType": "",
"issuingDate": "",
"expiryDate": ""
},
"ine": {
"cic": "201112341",
"ocr": "0000345678911", <mandatory>
"issuingNumber": "02", <mandatory>
"electorKey": "ABCDEF12341809C100",<mandatory>
"registrationYear": 2008,
"issuingYear": 2019
}
}

Response Values

Details
ParameterTypeNote
idstringUUID of the capability
credentialsarray(Credential)
decisionobject
decision.typestringPossible values: NOT_EXECUTED, PASSED, REJECTED, WARNING
If curp is a mismatch and face similarity is <=50%, decision = REJECT, risk score is 100, else:
If the elector key, ocr, and name match with similarity >=85%, decision = PASS, risk score = 0, else decision = WARNING. Risk score = 50
decision.detailsobject
decision.details.labelstringPossible values: OK, DENY, ALERT, NOT_ENOUGH_DATA, TECHNICAL_ERROR, PERMISSION_DENIED, BAD_REQUEST, PRECONDITION_NOT_FULFILLED
dataobject
data.NameMatchstringPossible values: MATCH, NOT_MATCH
data.faceMatchstringPossible values: MATCH, NOT_MATCH
data.ocrMatchstringPossible values: MATCH, NOT_MATCH
data.issuingNumberMatchstringPossible values: MATCH, NOT_MATCH
data.registrationYearMatchstringPossible values: MATCH, NOT_MATCH
data.issuingYearMatchstringPossible values: MATCH, NOT_MATCH
data.electorKeyMatchstringPossible values: MATCH, NOT_MATCH
data.paternalSurnameMatchstringPossible values: MATCH, NOT_MATCH
data.maternalSurnameMatchstringPossible values: MATCH, NOT_MATCH
data.idNumberMatchstringPossible values: MATCH, NOT_MATCH

Credential

KeyTypeDescription
idstringUUID of credential used
categorystringCategory of credential used

Capability Response

"biometricVerification": [
{
"id": "c0015f7b-0999-4682-a1a6-a10241a01f7c",
"credentials": [
{
"id": "36b715ee-2822-488d-ac2a-159536645411",
"category": "DATA"
},
{
"id": "adce826e-a43d-45d4-84f7-80e2b917fda1",
"category": "SELFIE"
}
],
"decision": {
"type": "REJECTED",
"details": {
"label": "HIGH_RISK"
}
},
"data": {
"nameMatch": "NOT_MATCH",
"faceMatch": "NOT_MATCH",
"ocrMatch": "MATCH",
"issuingNumberMatch": "NOT_MATCH",
"registrationYearMatch": "NOT_MATCH",
"issuingYearMatch": "MATCH",
"electorKeyMatch": "MATCH",
"paternalSurnameMatch": "MATCH",
"maternalSurnameMatch": "MATCH",
"idNumberMatch": "MATCH"
}
}
]