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

RosterWhat's that?Apply to
OFACOffice of Foreign Assets Control (U.S. sanctions)Any person
INTERPOLINTERPOL News NetworkAny person
INEElectoral headquarters of the National Electoral InstituteNatural persons with a choice key
RENAPO / CURPNational Population RegistryNatural persons with CURP
SAT 69-BThe list of moral persons SATCompany / RFC
CDCCredit ratio (Ficoscore blacklist)Persons with explicit consent

Creating Consultation

POST/api/v2/blacklist/investigate

Consultation with a person against select lists

Leaders

LeaderValueRequired
AuthorizationBearer <api-key-jwt>Yes
Content-Typeapplication/jsonYes

Body

NameTypeRequiredDescription
payloadobjectThe information of the person to be consulted. Fields to be included depend on select lists - see table below.
servicesobjectMap with lists to be consulted. Each key is list name, true value to activate.

Payload fields by list

Payload fieldRequired 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: false The 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 codeerrorCodeDescription
400BL02Payload validation failure (missing fields for requested services)
400BL03Invalid 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

RosterTypical latencyNotes
OFAC< 200 msIncensored local search
INTERPOL< 300 msIncensored local search
INE800-2000 msConsultation INE
RENAPO1500-3500 msExternal consultation RENAPO
SAT 69-B< 500 msLocal list updated daily

Each activated list counts as a separate consultation for your monthly share.


Following

  • INE - Consultation INE with document image
  • Webhooks - receives information about asynchronous consultations
  • Mistakes - complete catalogue of error code