Lists PLD / AML
The research endpoint crosses a person's data against several official lists into a single call. Specifies what lists you want to consult through the object services and gets a list result.
Lists supported
| Roster | What's that? | Apply to |
|---|---|---|
| OFAC | Office of Foreign Assets Control (U.S. sanctions) | Any person |
| INTERPOL | INTERPOL News Network | Any person |
| INE | Electoral headquarters of the National Electoral Institute | Natural persons with a choice key |
| RENAPO / CURP | National Population Registry | Natural persons with CURP |
| SAT 69-B | The list of moral persons SAT | Company / RFC |
| CDC | Credit ratio (Ficoscore blacklist) | Persons with explicit consent |
Creating Consultation
POST
/api/v2/blacklist/investigateBearer TokenConsultation with a person against select lists
Leaders
| Leader | Value | Required |
|---|---|---|
Authorization | Bearer <api-key-jwt> | Yes |
Content-Type | application/json | Yes |
Body
| Name | Type | Required | Description |
|---|---|---|---|
payload | object | The information of the person to be consulted. Fields to be included depend on select lists - see table below. | |
services | object | Map with lists to be consulted. Each key is list name, true value to activate. |
Payload fields by list
| Payload field | Required for |
|---|---|
firstName (string) | OFACINTERPOL |
lastName (string) | OFACINTERPOL |
motherLastName (string) | OFAC, INTERPOL (optional but improved matching) |
curp (string, 18 cars) | RENAPO, INE (if you don't send ine) |
ine (string, 18 cars) | INE |
rfc (string, 12-13 chars) | SAT 69-B |
Example of application
curl -X POST https://services.api.jaak.ai/api/v2/blacklist/investigate \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"payload": {
"firstName": "Juan",
"lastName": "Pérez",
"motherLastName": "García",
"curp": "PEGJ800115HDFRRL09",
"rfc": "PEGJ800115QJ8"
},
"services": {
"ine": true,
"interpol": true,
"ofac": true,
"renapo": { "curp": true },
"sat": { "sat69b": true }
}
}'
Successful response (200 OK)
{
"eventId": "abc123-evt",
"status": "success",
"processTime": 2450,
"data": {
"ofac": {
"found": false,
"matches": []
},
"interpol": {
"found": false,
"matches": []
},
"ine": {
"found": false,
"matches": []
},
"renapo": {
"found": true,
"data": {
"fullName": "_",
"gender": "HOMBRE",
"birthDate": "1980-01-15",
"nationality": "MEXICAN"
}
},
"sat69b": {
"found": false,
"matches": []
}
}
}
Interpretation
found: falseThe person's NOT on that list.found: true+matches: [...]Each element of the array has the data from the found record.found: true+data: {...}(RENAPO) - confirmation that CURP There are more complete information about the person.
Coincidences aren't guilty
A coincidence with OFAC or INTERPOL does not automatically mean that they are the same person. It applying additional matching criteria (date of birth, nationality, country of residence) before making a decision to block them.
Mistakes
| HTTP code | errorCode | Description |
|---|---|---|
| 400 | BL02 | Payload validation failure (missing fields for requested services) |
| 400 | BL03 | Invalid Payload for some specific service |
| 401 | — | API Invalid or expired key |
| 500 | — | Internal error by consulting outside lists |
Consult lists individually
If you only need a list, you can only activate it:
{
"payload": { "rfc": "PEGJ800115QJ8" },
"services": { "sat": { "sat69b": true } }
}
The response will only include Section sat69b.
Costs and latency
| Roster | Typical latency | Notes |
|---|---|---|
| OFAC | < 200 ms | Incensored local search |
| INTERPOL | < 300 ms | Incensored local search |
| INE | 800-2000 ms | Consultation INE |
| RENAPO | 1500-3500 ms | External consultation RENAPO |
| SAT 69-B | < 500 ms | Local list updated daily |
Each activated list counts as a separate consultation for your monthly share.