Once data have been drawn from the document at the previous step, this information has been verified against several official lists That step is vital to ensuring that a person is not linked to illicit activity or found within high-risk searches while at the same time confirming his or her existence at legitimate government bases.
Not all lists have a restrictive or risk approach and some are designed to confirm official information. That's why, rather than "blacklists," we referred to this stage as an anti official listsSome examples:
International risk lists: how Interpol or OFACused to detect links with illicit activities or sanctions.
National validation lists: how INE, RENAPO or SAT, employed to confirm an individual's legal identity and existence.
The services available at this stage are: INE, Interpol, OFAC, RENAPO and SAT.
Note
You can only check a list by request. Although the signature to consume the service is the same, each list requires specific parameters depending on the nature of the data that it valids.
The general structure of the URL for these queries and the required parameters are detailed below. Later, you will find a number of tables that indicate what fields to send for each service and how to relate them to the data extracted from the document.
URL
POST https://api.sandbox.jaak.ai/api/v2/blacklist/investigate
Leader
Authorization: Bearer token-session-kyc
| Field | Type | Required | Description |
|---|---|---|---|
| Authorisation | string | Yes | The Session Token should be sent at this headquarters KYC That's been obtained from the exchange with Short Key |
Request
{
"services": {
"ine": Boolean,
"interpol": Boolean,
"ofac": Boolean,
"renapo": {
"curp": Boolean
},
"sat": {
"sat69b": Boolean
},
"cdc": {
"rccFico": Boolean
}
},
"payload": {
"person": {
"name": String,
"secondName": String,
"lastName": String,
"secondLastName": String,
"birthDate": String,
"nationality": String,
"additionalLastName": String
},
"address": {
"address": String,
"neighborhood": String,
"municipality": String,
"city": String,
"state": String,
"postalCode": String
},
"identifications": {
"curp": String,
"rfc": String,
"socialSecurityNumber": String,
"electorKey": String,
"ine": {
"cic": String,
"ocr": String
}
},
"extras": {
"commonId": String,
"wantedIn": String
}
}
}
| Field | Type | Description |
|---|---|---|
| services | Subject matter | Contains different blacklist services where a check can be performed (see sub-tables) |
| payload | Subject matter | Contains information to search for the chosen service (see sub-boards) |
Object * services *
| Field | Type | Description |
|---|---|---|
| ine | boolean | Check at National Electoral Institute (INE). |
| interpol | boolean | Check with Interpol. |
| ofac | boolean | Check with Office of Control of Foreign Assets (OFAC). |
| renap.curp | boolean | Conducts verification at National Population Registry (RENAPO). |
| sat.sat69b | boolean | Check with Tax Administration Service (SAT). |
| cdc.rccFico | boolean | Check at Credit Data Center (CDC). |
Object * payload *
| Field | Type | Description |
|---|---|---|
| payload.person | Subject matter | Contains response information (see sub-tables) |
| payload.address | Subject matter | Contains response information (see sub-tables) |
| payload.identifications | Subject matter | Contains response information (see sub-tables) |
| payload.extras | Subject matter | Contains response information (see sub-tables) |
Object * payload.person *
| Field | Type | Description |
|---|---|---|
| name | string | First name of person to seek. |
| second | string | The second name of the person to be found. |
| last | string | First name of person to be found. |
| second | string | The second name of the person to be found. |
| birthDate | string | Date of birth of person to be sought (Format: YYYY-MM-DD). |
| nationality | string | Nationality of person to seek. |
| Additional | string | Additional name of person to seek. |
Object * payload.address *
| Field | Type | Description |
|---|---|---|
| address | string | Street and address number of person to seek. |
| neighborhood | string | Colony or place of user of person to seek. |
| Municipality | string | Municipality or delegation of person to seek. |
| city | string | The town of residence of the person to be sought. |
| status | string | State of residence of the person to be sought. |
| postalCode | string | The postal code of the person's address to be sought. |
Object * payload.identifications *
| Field | Type | Description |
|---|---|---|
| curp | string | Unique Population Registration Key (CURP) from person to seek. |
| rfc | string | FY (RFC) from person to seek. |
| Social Security | string | Social Security number (NSS) of person to be sought. |
| Key | string | Elector's Key from INE from the person to seek. |
| ine | Object | Object with data from the INE from person to seek. (see sub-boards) |
Object * payload.identifications.ine *
| Field | Type | Description |
|---|---|---|
| ic | string | Credit Identification Code INE from document to be found. |
| ocr | string | Official Identification number (OCR) of the document to be sought. |
Object * payload.extras *
| Field | Type | Description |
|---|---|---|
| commonId | string | Common user identifier (can be internal system ID) of the person to search. |
| wantedIn | string | Code of the country where the user is sought ("MEX" for Mexico) of the person to seek. |
Answer
{
"eventId": String,
"responseId": String,
"processTime": Double,
"organization": String,
"service": String,
"result": {},
"state": {
"foundInService": Bolean,
"mustBeFound": Boolean,
"message": String
}
}
| Field | Type | Description |
|---|---|---|
| event | string | ID for traceability of event details. |
| responded | string | Answer ID. |
| organization | string | The governmental entity that supports the consultation |
| service | string | It's the service of the entity at which the consultation takes place |
| ProcessTime | double | Service consultation processing time |
| result | object | Object with information from person found if applicable |
| status | object | They're states you can get back to figure out if the person was found. |
Object * state *
| Field | Type | Description |
|---|---|---|
| foundInService | boolean | It indicates whether or not the person was found at the service. |
| mosto | boolean | Define if you are expected to find the person at the service for success or otherwise. OFAC the failure to find a person at service is a success case, on the contrary INE if you find a person it's considered a success case. |
| message | string | Message concerning the search for the person in service |
A number of tables organised by list service will then be shown and the fields required for each list and their correspondence with information from the previous step will be detailed.
To conduct check by service INE The following information shall be submitted:
| Field sent to call API | Required | Data extracted from document at previous step |
|---|---|---|
| payload.identifications.ine.cic | Yeah. | content.data.document.additionalNumber |
| payload.identifications.ine.ocr | Yeah. | content.data.personal.extra.ocr |
To conduct check by service INTERPOL The following information shall be submitted:
| Field sent to call API | Required | Data extracted from document at previous step |
|---|---|---|
| payload.person.name | Yeah. | content.data.personal.name |
| payload | No | content.data.person.secondName |
| payload.person.last | Yeah. | content.data.personal .sureName |
| payload.person.second | No | content.data.personal.motherSurname |
To conduct check by service OFAC The following information shall be submitted:
| Field sent to call API | Required | Data extracted from document at previous step |
|---|---|---|
| payload.person.name | Yeah. | content.data.personal.name |
| payload | No | content.data.person.secondName |
| payload.person.last | Yeah. | content.data.personal .sureName |
| payload.person.second | No | content.data.personal.motherSurname |
To conduct check by service RENAPO The following information shall be submitted:
| Field sent to call API | Required | Data extracted from document at previous step |
|---|---|---|
| payload.identifications.curp | Yeah. | content.data.document.personalIdNumber |
To conduct check by service SAT The following information shall be submitted:
| Field sent to call API | Required | Data extracted from document at previous step |
|---|---|---|
| payload.person.name | Yeah. | content.data.personal.name |
| payload | No | content.data.person.secondName |
| payload.person.last | Yeah. | content.data.personal .sureName |
| payload.person.second | No | content.data.personal.motherSurname |
| payload.identifications.rfc | Yeah. | content.data.personal.extra.rfc |
Below we will show you an example of a consultation at the service RENAPO
Request
{
"services": {
"ine": false,
"interpol": false,
"ofac": false,
"renapo": {
"curp": true
},
"sat": {
"sat69b": false
},
"cdc": {
"rccFico": false
}
},
"payload": {
"identifications": {
"curp": "Here goes the curp."
}
}
}
Answer
{
"eventId": "749f88b9-ecce-4f4c-920a-f8ece706501a",
"responseId": "",
"processTime": 0.23123526573181152,
"organization": "curp",
"service": "validaCurp",
"result": null,
"state": {
"message": "Investigation completed successfully",
"foundInService": false,
"mustBeFound": true
}
}
A consultation was conducted with the service of RENAPOIn the request, we can note that only a service was activated, * services.renap.curp * and that only the fields necessary to conduct the search for that service were sent.
The * state * field within the * Response * should have indicated that a person was found to have been found to be successful. Nevertheless, the * foundInService * field shows that the person was not found.
To sum up, by contrasting information extracted from the document with several blacklists, we guarantee the protection of both the company and users. That process guarantees the integrity and compliance of the system and helps prevent fraud.
Once we have checked the document's data from the blacklists we will continue with the following steps.