Blacklist para Android

Empezando


Para proceder, es indispensable generar una clave API con un tiempo de expiración definido.

Este proceso puede completarse fácilmente mediante el panel de administrado. Esto garantiza un acceso seguro y gestionado a los recursos necesarios durante el tiempo estipulado.

Para más detalles, consulta la documentación específica de cada método disponible a través de los siguientes enlaces:

Puedes hacer uso de dos funcionalidades:

  • Integra con KYC de JAAK: Utilizando las cabeceras y llaves de acceso de KYC podrás enlazar el producto a tu flujo de KYC.
  • Manéjalo de manera individual: Utilizando una llave API, utiliza blacklist para investigar u validar identidades.


Utilizando el servicio


1. Obtén un Api Key

Para proceder, es indispensable generar una clave API con un tiempo de expiración definido.

Este proceso puede completarse fácilmente mediante el panel de administrado. Esto garantiza un acceso seguro y gestionado a los recursos necesarios durante el tiempo estipulado.

Para más detalles, consulta la documentación específica de cada método disponible a través de los siguientes enlaces:


2. Utiliza el servicio

Una vez cuentes con tu API Key podrás utilizar el servicio de Blacklist, realizando una petición tipo post e ingresando los valores correspondientes a la búsqueda de identidad deseada.

 @POST("api/v2/blacklist/investigate")
    suspend fun blacklistInvestigate(@Header("Authorization") auth: String,
@Body request: BlacklistInvestigateRequest): Response<BlacklistInvestigateResponse>

Agrega localización

Si deseas agregar localización a la ejecución del evento agrega las cabeceras **Longitude ** y **Latitude ** con los valores numericos de la ubicación de la cual se esta ejecutando tu petición.

 @POST("api/v2/blacklist/investigate")
    suspend fun blacklistInvestigate(@Header("Authorization") auth: String,
@Header("Latitude") latitude: String, @Header("Longitude") longitude: String,
@Body request: BlacklistInvestigateRequest): Response<BlacklistInvestigateResponse>

Investigar


POST basePath/api/v2/blacklist/investigate

Este endpoint valida el servicio especificado dentro de sus parámetros. A continuación, encuentra las solicitudes para cada servicio, formando parte de una consulta general.

Para utilizar este endpoint dentro de KYC utiliza tu token de acceso KYC como la cabecera Authorization: Bearer <token_kyc>

Servicios Activos

El servicio API de Blacklist se extiende para abarcar la verificación en varios servicios relacionados.

  • Listas Negras:

    • SAT69B (MEX)
    • Interpol
    • OFAC
  • Verificación de Identificación:

    • INE (MEX)
    • RENAPO CURP (MEX)
  • Chequeo de Información de Crédito (MEX):

    • Informe de Crédito Consolidado del Círculo de Crédito + FICO® Score Individuos (BETA)

Detalles Generales

Describe la estructura de solicitud para nuestra API. Las consultas varían según la propiedad del servicio que indique qué repositorio de datos verificar.

📝 Note: Los tiempos de respuesta pueden variar para cada servicio.
En la sección "Extras", verás un esquema JSON que indica los países soportados y sus detalles. Países Soportados


Descripción de la Solicitud

Petición

 @POST("api/v2/blacklist/investigate")
    suspend fun blacklistInvestigate(@Header("Authorization") auth: String,
@Body request: BlacklistInvestigateRequest): Response<BlacklistInvestigateResponse>
data class BlacklistInvestigateRequest(
    @SerializedName("ine") val ine: Boolean,
    @SerializedName("interpol") val interpol: Boolean,
    @SerializedName("ofac") val ofac: Boolean,
    @SerializedName("renapo") val renapo: Renapo,
    @SerializedName("sat") val sat: Sat,
    @SerializedName("cdc") val cdc: Cdc
)

data class Renapo(
    @SerializedName("curp") val curp: Boolean
)

data class Sat(
    @SerializedName("sat69b") val sat69b: Boolean
)

data class Cdc(
    @SerializedName("rccFico") val rccFico: Boolean
)

data class Payload(
    @SerializedName("person") val person: Person,
    @SerializedName("address") val address: Address,
    @SerializedName("identifications") val identifications: Identifications,
    @SerializedName("extras") val extras: Extras
)

data class Person(
    @SerializedName("name") val name: String,
    @SerializedName("secondName") val secondName: String,
    @SerializedName("lastName") val lastName: String,
    @SerializedName("secondLastName") val secondLastName: String,
    @SerializedName("birthDate") val birthDate: String,
    @SerializedName("nationality") val nationality: String,
    @SerializedName("additionalLastName") val additionalLastName: String
)

data class Address(
    @SerializedName("address") val address: String,
    @SerializedName("neighborhood") val neighborhood: String,
    @SerializedName("municipality") val municipality: String,
    @SerializedName("city") val city: String,
    @SerializedName("state") val state: String,
    @SerializedName("postalCode") val postalCode: String
)

data class Identifications(
    @SerializedName("curp") val curp: String,
    @SerializedName("rfc") val rfc: String,
    @SerializedName("socialSecurityNumber") val socialSecurityNumber: String,
    @SerializedName("electorKey") val electorKey: String,
    @SerializedName("ine") val ine: Ine
)

data class Ine(
    @SerializedName("cic") val cic: String,
    @SerializedName("ocr") val ocr: String
)

data class Extras(
    @SerializedName("commonId") val commonId: String,
    @SerializedName("wantedIn") val wantedIn: String
)

Parámetros de la petición

Parámetros de Servicios

CategoríaParámetroDescripción
eventIdexample_event_idIdentificador único del evento.
servicesineBooleano que indica si verificar la información en el Instituto Nacional Electoral (INE).
interpolBooleano que indica si verificar la información en la base de datos de Interpol.
ofacBooleano que indica si verificar la información en la lista de la Oficina de Control de Activos Extranjeros (OFAC).
renapoObjeto que contiene parámetros relacionados con la verificación en el Registro Nacional de Población.
satObjeto que contiene parámetros relacionados con la verificación en el Servicio de Administración Tributaria.
cdcObjeto que contiene parámetros relacionados con la verificación en el Centro de Datos de Crédito.

Parámetros de Payload

CategoríaParámetroDescripción
payloadpersonObjeto que contiene información personal de la persona a verificar.
addressObjeto que contiene información sobre la dirección de la persona.
identificationsObjeto que contiene información sobre las identificaciones de la persona.
extrasObjeto que contiene información adicional.

Parámetros de Persona

CategoríaParámetroDescripción
personnameNombre de la persona.
secondNameSegundo nombre de la persona.
lastNamePrimer apellido de la persona.
secondLastNameSegundo apellido de la persona.
birthDateFecha de nacimiento de la persona.
nationalityNacionalidad de la persona.
additionalLastNameApellido adicional de la persona.

Parámetros de Dirección

CategoríaParámetroDescripción
addressaddressDirección de la persona.
neighborhoodBarrio de la persona.
municipalityMunicipio de la persona.
cityCiudad de la persona.
stateEstado o provincia de la persona.
postalCodeCódigo postal de la persona.

Parámetros de Identificaciones

CategoríaParámetroDescripción
identificationscurpNúmero de Clave Única de Registro de Población (CURP) de la persona.
rfcNúmero de Registro Federal de Contribuyentes (RFC) de la persona.
socialSecurityNumberNúmero de Seguridad Social de la persona.
electorKeyClave de Elector de la persona.
ineObjeto que contiene información relacionada con la credencial del Instituto Nacional Electoral (INE).

Parámetros del INE

📝 Nota: En la sección "Datos adicionales", verás cómo encontrar los parámetros CIC y OCR en una identificación INE. Credencial INE

CategoríaParámetroDescripción
inecicCódigo de identificación de la credencial INE.
ocrNúmero Oficial de Identificación (OCR) de la credencial INE.

Parámetros Adicionales

CategoríaParámetroDescripción
extrascommonIdIdentificador común adicional.
wantedInPaís donde se busca al individuo.

Respuesta

{
    "statusCode": "integer",        // Tipo: Int
    "eventId": "string",            // Tipo: String
    "elapsedTime": "double",        // Tipo: Double
    "message": "string",            // Tipo: String
    "found": "boolean",             // Tipo: Boolean
    "result": "object"              // Tipo: Object (dependiendo del contenido de 'result')
}
data class BlacklistInvestigateResponse(
    @SerializedName("statusCode") val statusCode: Int,
    @SerializedName("eventId") val eventId: String,
    @SerializedName("elapsedTime") val elapsedTime: Double,
    @SerializedName("message") val message: String,
    @SerializedName("found") val found: Boolean,
    @SerializedName("result") val result: Any // Dependiendo del contenido de 'result', podrías reemplazar 'Any' con una clase más específica.
)

Parámetros de la respuesta

ParámetroDescripción
statusCodeCódigo de estado de la respuesta HTTP.
eventIdIdentificador único del evento.
elapsedTimeTiempo transcurrido en segundos para procesar la solicitud.
messageMensaje que describe el resultado de la solicitud.
foundBooleano que indica si se encontraron resultados.
resultContenido dinámico que puede tener diversas estructuras según el contexto.
Ejemplos de Solicitudes

INE: Esta definición nos guía a como solicitar el servicio de verificación de identificación del INE para confirmar identidades en México.

ℹ️ Para conocer las propiedades de una identificacion tipo INE dirigete a la seccions Credencial INE

Considera los parámetros para esta verificación como los indicados en el siguiente esquema:

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "ine": true
    },
    "payload": {
        "identifications": {
            "ine": {
                "cic": "233763295", // requerido
                "ocr": "0859117383550"  // requerido
            }
        }
    }
}
# Respuesta
{
  "eventId": "9cf100e3-bb04-4d79-ac07-ce117be7363d",
  "responseId": "",
  "processTime": 6.833165645599365,
  "organization": "ine",
  "service": "identification",
  "result": {
    "identification": {
      "content": {
        "cicNumber": "118725314",
        "federalDistrict": "29",
        "issuanceNumber": "0",
        "issuanceYear": "2014",
        "localDistrict": "24",
        "ocrNumber": "3394137824855",
        "registrationYear": "2014",
        "voterIdNumber": "SNCNAL95071409H600"
      }
    }
  },
  "state": {
    "message": "Investigation completed successfully",
    "foundInService": true,
    "mustBeFound": true
  }
}

Interpol: Esta definición nos guía sobre cómo realizar una solicitud al servicio de base de datos de Interpol para encontrar coincidencias de individuos no confiables.

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "interpol": true
    },
    "payload": {
        "person": {
            "name": "WISSEM",           // requerido
            "lastName": "CHIBOUNI",     // requerido
            "secondName": "",
            "secondLastName": "",
            "nationality": "FRA"  
        },
        "extras": {
            "wantedIn": "FRA"          // requerido
        }
    }
}
# Respuesta 
{
  "eventId": "d159bb0c-0e00-4c4e-aa0b-0e5f4eb93ba3",
  "responseId": "",
  "processTime": 0.22434282302856445,
  "organization": "interpol",
  "service": "all",
  "result": {
    "0": {
      "content": {
        "dateOfBirth": "2005/01/29",
        "entityId": "2024/19162",
        "familyName": "CHIBOUNI",
        "id": "66ecbc543c604bc84522d483",
        "imgLinksHref": "https://ws-public.interpol.int/notices/v1/red/2024-19162",
        "imgLinksImagesHref": "https://ws-public.interpol.int/notices/v1/red/2024-19162/images",
        "imgLinksThumbnailHref": "https://ws-public.interpol.int/notices/v1/red/2024-19162/images/63026975",
        "interpolList": "red",
        "name": "WISSEM",
        "nationalities": "['FR']",
        "wantedBy": "FRA"
      }
    },
    ...
  },
  "state": {
    "message": "Investigation completed successfully",
    "foundInService": true,
    "mustBeFound": false
  }
}

OFAC: Esta definición nos guía sobre cómo realizar una solicitud al servicio de base de datos de OFAC para encontrar coincidencias de individuos no confiables.

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "ofac": true
    },
    "payload": {
        "person": {
            "name": "Mario",            // requerido
            "lastName": "Beltran",      // requerido
            "secondName": "",
            "secondLastName": "Leyva",
        },
        "extras": {
            "commonId": "",
            "wantedIn": "MEX"          // requerido
        }
    }
}
# Respuesta
{
  "eventId": "676f440b-92b8-4e60-9d38-ac7ad90f4db1",
  "responseId": "",
  "processTime": 4.799860954284668,
  "organization": "ofac",
  "service": "coincidences",
  "result": {
    "0": {
      "content": {
        "address": " ",
        "city": "",
        "country": "All",
        "idNumber": "",
        "lookupId": "46494",
        "lookupType": "Individual",
        "minimumNameScore": "80",
        "name": "BELTRAN ARAUJO, Mario German",
        "programLists": "SDN",
        "programs": "ILLICIT-DRUGS-EO14059",
        "sanctionProgram": "All",
        "score": "100",
        "searchType": "Individual",
        "state": ""
      }
    },
    "1": {
      "content": {
        "address": " ",
        "city": "",
        "country": "All",
        "idNumber": "",
        "lookupId": "11726",
        "lookupType": "Individual",
        "minimumNameScore": "80",
        "name": "BELTRAN LEYVA, Mario Alberto",
        "programLists": "SDN",
        "programs": "SDNTK",
        "sanctionProgram": "All",
        "score": "100",
        "searchType": "Individual",
        "state": ""
      }
    }
  },
  "state": {
    "message": "Investigation completed successfully",
    "foundInService": true,
    "mustBeFound": false
  }
}

SAT69B: Esta definición nos guía sobre cómo realizar una solicitud al servicio de base de datos de SAT para encontrar coincidencias de individuos no confiables (Servicio exclusivo para datos en México).

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "sat": {
          "sat69b": true,
        }
    },
    "payload": {
        "person": {
            "name": "GRICELDA",         // requerido
            "lastName": "ARAGON",       // requerido
            "secondLastName": "",      
            "secondName": ""
        },
        "identifications": {
            "rfc": "AAAG7012036UA"      // requerido
        }
    }
}
# Respuesta
{
  "eventId": "3f5c1e15-59f9-495d-9db0-4a94a190726f",
  "responseId": "",
  "processTime": 0.09072279930114746,
  "organization": "sat",
  "service": "sat69b",
  "result": {
    "0": {
      "content": {
        "dofDefinitiveGlobalOffNumDateSat": "500-05-2018-14172 de fecha 25 de mayo de 2018",
        "dofDefinitivePagePubSat": "28/06/2018",
        "dofDisprovingGlobalOffNumDateSat": "nan",
        "dofDisprovingPagePubSat": "nan",
        "dofFavorableSentenceGlobalOffNumDateSat": "nan",
        "dofFavorableSentencePagePubSat": "nan",
        "dofPresumptionGlobalOffNumDateSat": "500-05-2017-38633 de fecha 31 de octubre de 2017",
        "dofPresumptionPagePubSat": "15/11/2017",
        "rfc": "AAAG7012036UA",
        "satDefinitiveGlobalOffNumDateSat": "500-05-2018-14172 de fecha 25 de mayo de 2018",
        "satDefinitivePagePubSat": "25/05/2018",
        "satDisprovingGlobalOffNumDateSat": "nan",
        "satDisprovingPagePubSat": "nan",
        "satFavorableSentenceGlobalOffNumDateSat": "nan",
        "satFavorableSentencePagePubSat": "nan",
        "satPresumptionGlobalOffNumDateSat": "500-05-2017-38633 de fecha 31 de octubre de 2017",
        "satPresumptionPagePubSat": "31/10/2017",
        "taxpayerName": "ARAGÓN AYALA GRICELDA",
        "taxpayerStatus": "Definitivo"
      }
    }
  },
  "state": {
    "message": "Investigation completed successfully",
    "foundInService": true,
    "mustBeFound": false
  }
}

CURP: Esta definición nos guía sobre cómo realizar una solicitud al servicio de verificación de identificación para una CURP dentro de la base de datos de RENAPO (Servicio exclusivo para datos en México).

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "renapo": {
          "curp": true
        }
    },
    "payload": {
        "identifications": {
            "curp": "LELD981130HGTNPG05"   // requerido
        }
    }
}
# Respuesta
{
  "eventId": "50b64a14-e32e-426a-a8d4-7d1c2792433d",
  "responseId": "",
  "processTime": 0.22829174995422363,
  "organization": "curp",
  "service": "validaCurp",
  "result": {
    "validaCurp": {
      "content": {
        "codeError": "0",
        "curp": "LELD981130HGTNPG05",
        "error": "False",
        "errorMessage": "",
        "personalDataBirthDate": "1998-11-30",
        "personalDataBirthEntity": "Guanajuato",
        "personalDataFirstName": "DIEGO ALBERTO",
        "personalDataGender": "Hombre",
        "personalDataLastName": "LEON",
        "personalDataNationality": "MEX",
        "personalDataSecondLastName": "LOPEZ",
        "probativeDocActNumber": "229",
        "probativeDocProbativeDoc": "",
        "probativeDocRegistrationEntity": "Guanajuato",
        "probativeDocRegistrationMunicipality": "",
        "probativeDocRegistrationYear": "1999",
        "valid": "True"
      }
    }
  },
  "state": {
    "message": "Investigation completed successfully",
    "foundInService": true,
    "mustBeFound": true
  }
}

Informe de Crédito Consolidado del Círculo de Crédito + FICO® Score (BETA DUMMY): Esta definición nos guía sobre cómo realizar una solicitud al servicio de consulta de información crediticia proporcionada por Círculo de Crédito (Servicio exclusivo para datos en México).

# Solicitud
{
    "eventId": "example_event_id",
    "services": {
        "cdc": {
          "rccFico": true,
        }
    },
    "payload": {
        "person": {
            "name": "Jesus",
            "lastName": "Serrano",
            "secondLastName": "",
            "secondName": "",
            "additionalLastName": "",
            "nationality": "",
            "birthDate": ""
        },
        "identifications": {
            "rfc": "",
            "curp": "",
            "socialSecurityNumber": "",
          
            "electorKey": ""
        },
        "address": {
            "address": "",
            "neighborhood": "",
            "municipality": "",
            "city": "",
            "state": "",
            "postalCode": ""
        }
    }
}
# Respuesta
{
  "eventId": "bab07d7e-f749-4f88-b8af-3053609d1880",
  "responseId": "",
  "processTime": 0,
  "organization": "cdc",
  "service": "rccFico",
  "result": {
    "additionalLastName": "",
    "addressCity": "BENITO JUAREZ",
    "addressGrantorsConsultationNumber": "1",
    "addressGrantorsLoadNumber": "1",
    "addressHighType": "1",
    "addressID": "316110890",
    "addressMunicipality": "LA BARCA",
    "addressNeighborhood": "CENTRO",
    "addressPhoneNumber": "5512345678",
    "addressPostalCode": "47917",
    "addressRegistrationDate": "2018-12-20",
    "addressResidenceDate": "2018-12-21",
    "addressSettlementType": "28",
    "addressState": "JAL",
    "addressStreet": "HIDALGO 32",
    "addressType": "C",
    "authenticationNumber": "96529",
    "authenticationRequestNumber": "1519244698",
    "authenticationStatus": "true",
    "canCancellationDate": "2016-03-16",
    "canCurrentPriority": "1",
    "canHistory": "1",
    "canIdentifier": "01",
    "canMACANDate": "2016-03-16",
    "canMRCANDate": "2016-03-16",
    "canOpeningDate": "2016-03-16",
    "canOriginPriority": "1",
    "consultationAddressID": "316110890",
    "consultationCreditAmount": "0",
    "consultationCreditType": "M",
    "consultationCurrencyUnit": "MX",
    "consultationDate": "2020-01-09",
    "consultationFolio": "386636538",
    "consultationGrantorAddress": "HIDALGO 32",
    "consultationGrantorKey": "CDC0001",
    "consultationGrantorName": "MICROFINANCIERA",
    "consultationGrantorPhone": "5512345678",
    "consultationResponsibilityType": "I",
    "consultationServices": "1",
    "consumerDeclarations": "Inconforme con el Resultado",
    "creditAccountClosingDate": "2016-04-29",
    "creditAccountOpeningDate": "2018-01-20",
    "creditAccountType": "F",
    "creditAddressID": "316110890",
    "creditAssetValuationValue": "0",
    "creditCurrencyUnit": "MX",
    "creditCurrentAccount": "303139149",
    "creditCurrentBalance": "14714",
    "creditCurrentPayment": " V",
    "creditDisputedRecord": "0",
    "creditGrantorKey": "CDC0001",
    "creditGrantorName": "MICROFINANCIERA",
    "creditGuarantee": "Seguro de vida SA de CV",
    "creditLastPaymentAmount": "0",
    "creditLastPaymentDate": "2018-02-20",
    "creditLastPurchaseDate": "2018-02-26",
    "creditLastZeroBalanceDate": "2001-01-01",
    "creditLimit": "0",
    "creditMaximumCredit": "25104",
    "creditNumberOfOverduePayments": "0",
    "creditNumberOfPayments": "2",
    "creditOldestPaymentHistoryDate": "2016-03-16",
    "creditOverdueBalance": "0",
    "creditPaymentAmount": "6276",
    "creditPaymentFrequency": "S",
    "creditPaymentHistory": " V-- V",
    "creditPreventionKey": "CA",
    "creditRecentPaymentHistoryDate": "2016-03-16",
    "creditReportDate": "2018-02-28",
    "creditResponsibilityType": "I",
    "creditServices": "1",
    "creditTotalReportedPayments": "3",
    "creditType": "PP",
    "creditUpdateDate": "2016-04-30",
    "creditWorstDelay": "0",
    "creditWorstDelayDate": "",
    "creditWorstDelayOverdueBalance": "0",
    "curp": "SAZR010101HCMLNS09",
    "dateOfBirth": "2001-01-01",
    "dateOfDeath": "9999-01-01",
    "employmentCity": "BENITO JUAREZ",
    "employmentCompanyName": "MICROFINANCIERA",
    "employmentCurrency": "MX",
    "employmentExtension": "301",
    "employmentFax": "901955791",
    "employmentHiringDate": "2016-04-30",
    "employmentLastDay": "2019-04-15",
    "employmentMonthlySalary": "10000",
    "employmentMunicipality": "LA BARCA",
    "employmentNeighborhood": "CENTRO",
    "employmentPhoneNumber": "5512345678",
    "employmentPosition": "Administrator",
    "employmentPostalCode": "47917",
    "employmentState": "JAL",
    "employmentStreet": "HIDALGO 32",
    "employmentVerificationDate": "2019-04-15",
    "firstNames": "ROBERTO",
    "gender": "F",
    "grantorConsultationFolio": "0000001",
    "grantorKey": "API0000001",
    "lastNameMaternal": "ZARAGOZA",
    "lastNamePaternal": "SAHAGUN",
    "maritalStatus": "D",
    "messageText": "No response obtained from other SIC's",
    "messageType": "2",
    "nationality": "MX",
    "numberOfDependents": "0",
    "residence": "1",
    "scoreName": "FICO",
    "scoreReason1": "D8",
    "scoreReason2": "E4",
    "scoreReason3": "K0",
    "scoreReason4": "D2",
    "scoreValue": "546",
    "socialSecurityNumber": "990099000099",
    "taxID": "SAZR010101",
    "voterID": "000000000000"
  },
  "state": {
    "message": "Not yet implemented",
    "foundInService": false,
    "mustBeFound": true
  }
}