Mexico eKYC verification uses phone and email risk-scoring rather than source-of-truth identity matching. See the eKYC API Reference for common response semantics.
Available sources
| Source | API source string | Description |
|---|---|---|
| MX CONSUMER 1 | MX_Consumer_1 |
Returns risk scores for phone and email based on third-party data, and an aggregate overall risk level. |
| Mexico Civil Register 2 | MX_CIVIL_REGISTER_2 |
Returns risk scores for CURP, Name and DOB based on government database. |
MX CONSUMER 1
MX CONSUMER 1 combines phone and email risk-scoring from third-party providers:
- Phone returns a risk score based on account history, prepaid status, account duration, and monthly bill amount.
- Email returns a predictive risk score based on historical transaction data and behavior patterns.
The request works with only phone or only email supplied. If both are provided, the response includes both individual scores and an aggregate overall risk level.
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be MX_Consumer_1. |
country |
Mandatory | Must be MX. |
phone |
Conditional | Phone number in E.164 format. Either phone or email must be provided. |
email |
Conditional | Email address. Either phone or email must be provided. |
firstName |
Optional | First name of the individual, including middle name if applicable. |
surName |
Optional | Last name of the individual. |
maternalSurname |
Optional | Maternal surname. |
Response fields
| Field | Statuses | Description |
|---|---|---|
phoneLevel |
low, medium, high, very_high |
Risk level associated with the submitted phone number. |
phoneCarrier |
String | Phone carrier associated with the submitted phone number. |
emailLevel |
low, medium, high, very_high |
Risk level associated with the submitted email address. |
overallLevel |
low, medium, high, very_high |
Aggregate risk level combining the phone and email scores. |
Sample response
{
"kyc": [
{ "key": "phoneLevel", "status": "low" },
{ "key": "phoneCarrier", "status": "Verizon" },
{ "key": "emailLevel", "status": "low" },
{ "key": "overallLevel", "status": "low" }
]
}
Mexico Civil Register 2
Mexico eKYC non-doc verification leverages Mexico's source of truth to validate individuals. It is essential in eKYC processes for ensuring identity authenticity, regulatory compliance, and enhanced security. It helps prevent fraud, boosts user trust, and streamlines operations through automated and efficient verification methods.
Request parameters
| Parameter | Required | Description |
|---|---|---|
| plugins | Mandatory | String array. Must be ["kyc"]. |
| source | Mandatory | String. Must be MX_CIVIL_REGISTER_2. |
| firstName | Mandatory | String. First name (Nombre) of the individual. Must not contain digits. |
| surName | Mandatory | String. Father's last name (Apellido Paterno) of the individual. Must not contain digits. |
| country | Mandatory | String. Two-letter Alpha-2 country code. Must be MX. |
| idNum | Mandatory | String. Mexican CURP (Clave Única de Registro de Población). Format: exactly 18 alphanumeric characters (for example, GODE561231HDFRRN09). |
| middleName | Optional | String. Mother's last name (Apellido Materno) of the individual. Must not contain digits. |
| dateOfBirth | Optional | String. Date of birth in yyyy-mm-dd format (for example, 1991-08-02). |
| gender | Optional | String. Gender of the individual. Accepted values: m (male) or f (female). |
Sample request
{
"plugins": ["kyc"],
"source": "MX_CIVIL_REGISTER_2",
"firstName": "Jose",
"middleName": "Example",
"surName": "Alberto",
"country": "MX",
"idNum": "ABCD000101HDFRRN09",
"dateOfBirth": "2000-01-01",
"gender": "m"
}
Sample response
{
"kyc": [
{
"key": "firstNameMatch",
"status": "exact"
},
{
"key": "middleNameMatch",
"status": "exact"
},
{
"key": "lastNameMatch",
"status": "exact"
},
{
"key": "fullNameMatch",
"status": "exact"
},
{
"key": "dobMatch",
"status": "exact"
},
{
"key": "idNumMatch",
"status": "exact"
},
{
"key": "genderMatch",
"status": "exact"
},
{
"key": "overallLevel",
"status": "low"
}
]
}
Response fields
| Incode API Key | Status | Definition |
|---|---|---|
| firstNameMatch | exact, fuzzy, nomatch | Matches first name (Nombre) submitted against the first name in the source of truth. |
| middleNameMatch | exact, fuzzy, nomatch, nodata | Matches mother's last name (Apellido Materno) submitted against the source of truth. nodata is returned when the middle name is not available in the source of truth. |
| lastNameMatch | exact, fuzzy, nomatch | Matches father's last name (Apellido Paterno) submitted against the source of truth. |
| fullNameMatch | exact, fuzzy, nomatch | Composite match derived from firstNameMatch, lastNameMatch, and middleNameMatch. See overallLevel section below for composite logic. |
| dobMatch | exact, fuzzy, nomatch, nodata | Matches date of birth submitted against the source of truth. |
| idNumMatch | exact, fuzzy, nomatch, nodata | Matches the CURP submitted against the source of truth. |
| genderMatch | exact, fuzzy, nomatch, nodata | Matches gender submitted against the source of truth. |
| overallLevel | low, medium, high | Overall Risk Level derived from fullNameMatch and idNumMatch. See below for how low, medium, and high are calculated. |
overallLevel
Overall Level is the API response key for the submitted identity check. The fields low, medium, and high are mapped to the result of the identity verification check.
As a default, overallLevel will return:
low: when fullNameMatch = exact AND idNumMatch = exact;
high: when fullNameMatch = nomatch OR idNumMatch = nomatch;
medium: for all other combinations.